Lecture 01 Intro
Lecture 01 Intro
January 6, 2018 1
CS3200 – Database Design・ ・・ Spring 2018・ ・・ Derbinsky
Outline
1. What is a Database? A DBMS?
2. Why use a DBMS?
3. Databases in Context
4. Design and Implementation Process
January 6, 2018 2
CS3200 – Database Design・ ・・ Spring 2018・ ・・ Derbinsky
What is a Database?
January 6, 2018 3
CS3200 – Database Design・ ・・ Spring 2018・ ・・ Derbinsky
What is a Database?
January 6, 2018 4
CS3200 – Database Design・ ・・ Spring 2018・ ・・ Derbinsky
What is a Database?
A collection of related data, most often…
– reflects some aspect of the real world
– logically coherent with inherent meaning
– designed, built, and populated with data for a
specific purpose
• intended group of users
• some preconceived applications with which these
users are interested
• application requirements in terms of performance,
security, redundancy, concurrency, etc.
January 6, 2018 5
CS3200 – Database Design・ ・・ Spring 2018・ ・・ Derbinsky
January 6, 2018 6
CS3200 – Database Design・ ・・ Spring 2018・ ・・ Derbinsky
January 6, 2018 7
CS3200 – Database Design・ ・・ Spring 2018・ ・・ Derbinsky
January 6, 2018 8
CS3200 – Database Design・ ・・ Spring 2018・ ・・ Derbinsky
• Spatial databases
– Objects in 2D/3D
– Query locations, relations
• Collision detection
January 6, 2018 9
CS3200 – Database Design・ ・・ Spring 2018・ ・・ Derbinsky
• Key-Value stores
– Associative array
– Scalable, fault-tolerant
– Query
January 6, 2018 10
CS3200 – Database Design・ ・・ Spring 2018・ ・・ Derbinsky
Relational DBMS
We focus on relational databases
January 6, 2018 11
CS3200 – Database Design・ ・・ Spring 2018・ ・・ Derbinsky
STUDENT
Name SSN Phone Address Age GPA
January 6, 2018 12
CS3200 – Database Design・ ・・ Spring 2018・ ・・ Derbinsky
January 6, 2018 13
CS3200 – Database Design・ ・・ Spring 2018・ ・・ Derbinsky
January 6, 2018 14
CS3200 – Database Design・ ・・ Spring 2018・ ・・ Derbinsky
January 6, 2018 15
CS3200 – Database Design・ ・・ Spring 2018・ ・・ Derbinsky
January 6, 2018 16
CS3200 – Database Design・ ・・ Spring 2018・ ・・ Derbinsky
Databases in Context
Three-Tier Architecture
January 6, 2018 17
CS3200 – Database Design・ ・・ Spring 2018・ ・・ Derbinsky
ER Diagrams
Relations
January 6, 2018 18
CS3200 – Database Design・ ・・ Spring 2018・ ・・ Derbinsky
– Declarative languages
• Structured Query Language (SQL)
– Data… definition, manipulation, query
– Programmatic APIs
• Function libraries (focus), embedded languages,
stored procedures, etc.
January 6, 2018 19
CS3200 – Database Design・ ・・ Spring 2018・ ・・ Derbinsky
• High performance
– Buffering, caching, locking (like a mini OS)
– Query optimization, redundant data
structures (e.g. indexes, materialized views)
Database Management Systems: An Architectural View
January 6, 2018 20
CS3200 – Database Design・ ・・ Spring 2018・ ・・ Derbinsky
January 6, 2018 21
CS3200 – Database Design・ ・・ Spring 2018・ ・・ Derbinsky
January 6, 2018 22
CS3200 – Database Design・ ・・ Spring 2018・ ・・ Derbinsky
Databases in Context
People
1. Database designers
2. System analysts & application
programmers
3. Database administrators
4. End users
5. Back-end
a. DBMS designer/implementer
b. Tool developers
c. SysAdmins
Database Management Systems: An Architectural View
January 6, 2018 23
CS3200 – Database Design・ ・・ Spring 2018・ ・・ Derbinsky
Relational DBMS
January 6, 2018 24
CS3200 – Database Design・ ・・ Spring 2018・ ・・ Derbinsky
January 6, 2018 25
CS3200 – Database Design・ ・・ Spring 2018・ ・・ Derbinsky
• Functional Needs
– Operations/queries/reports
• Frequency
– Performance, security, etc.
January 6, 2018 26
CS3200 – Database Design・ ・・ Spring 2018・ ・・ Derbinsky
Conceptual Design
Data Application
• Software
– UML
– Form design
• Database
– Transaction design
– Report design
January 6, 2018 27
CS3200 – Database Design・ ・・ Spring 2018・ ・・ Derbinsky
Logical Design
Data Application
• Supporting code (that
does not depend upon
database)
– Possibly using techniques
from databases (e.g.
indexing)
• Normalization
January 6, 2018 28
CS3200 – Database Design・ ・・ Spring 2018・ ・・ Derbinsky
Physical Design
Data Application
• Index, materialized view • Implementing operations
selection and analysis as queries
• Implementing constraints
as keys, triggers, views
• Implementing multi-user
security as grants
January 6, 2018 29
CS3200 – Database Design・ ・・ Spring 2018・ ・・ Derbinsky
January 6, 2018 30
CS3200 – Database Design・ ・・ Spring 2018・ ・・ Derbinsky
Summary
• A database is a collection of related data that reflects
some aspect of the real world; is logically coherent
with inherent meaning; and is designed, built, and
populated with data for a specific purpose
• A database management system (DBMS) is a
collection of programs that enables users to create
and maintain a database
• There are many types – we will focus on relational
databases (RDBMS)
• The typical database design process is an iterative
process of requirements collection/analysis,
conceptual design, logical design, physical design,
and system implementation/tuning
Database Management Systems: An Architectural View
January 6, 2018 31