Professional Documents
Culture Documents
Database-System Applications
Purpose of Database Systems
View of Data
Database Languages
Database Design
Database Engine
Database Architecture
Database Users and Administrators
History of Database Systems
Database System Concepts - 7th Edition 1.2 ©Silberschatz, Korth and Sudarshan
Database Systems
Database System Concepts - 7th Edition 1.3 ©Silberschatz, Korth and Sudarshan
Database Applications Examples
Enterprise Information
• Sales: customers, products, purchases
• Accounting: payments, receipts, assets
• Human Resources: Information about employees, salaries, payroll
taxes.
Manufacturing: management of production, inventory, orders, supply
chain.
Banking and finance
• customer information, accounts, loans, and banking transactions.
• Credit card transactions
• Finance: sales and purchases of financial instruments (e.g., stocks
and bonds; storing real-time market data
Universities: registration, grades
Database System Concepts - 7th Edition 1.4 ©Silberschatz, Korth and Sudarshan
Database Applications Examples (Cont.)
Database System Concepts - 7th Edition 1.5 ©Silberschatz, Korth and Sudarshan
University Database Example
In this text we will be using a university database to illustrate all the
concepts
Data consists of information about:
• Students
• Instructors
• Classes
Application program examples:
• Add new students, instructors, and courses
• Register students for courses, and generate class rosters
• Assign grades to students, compute grade point averages (GPA) and
generate transcripts
Database System Concepts - 7th Edition 1.6 ©Silberschatz, Korth and Sudarshan
Purpose of Database Systems
In the early days, database applications were built directly on top of file
systems, which leads to:
Database System Concepts - 7th Edition 1.7 ©Silberschatz, Korth and Sudarshan
Purpose of Database Systems (Cont.)
Atomicity of updates
• Failures may leave database in an inconsistent state with partial
updates carried out
• Example: Transfer of funds from one account to another should either
complete or not happen at all
Concurrent access by multiple users
• Concurrent access needed for performance
• Uncontrolled concurrent accesses can lead to inconsistencies
Ex: Two people reading a balance (say 100) and updating it by
withdrawing money (say 50 each) at the same time
Security problems
• Hard to provide user access to some, but not all, data
Database System Concepts - 7th Edition 1.8 ©Silberschatz, Korth and Sudarshan
View of Data
A database system is a collection of interrelated data and a set of
programs that allow users to access and modify these data.
A major purpose of a database system is to provide users with an abstract
view of the data.
• Data models
A collection of conceptual tools for describing data, data
relationships, data semantics, and consistency constraints.
• Data abstraction
Hide the complexity of data structures to represent data in the
database from users through several levels of data abstraction.
Database System Concepts - 7th Edition 1.9 ©Silberschatz, Korth and Sudarshan
Data Models
Database System Concepts - 7th Edition 1.10 ©Silberschatz, Korth and Sudarshan
Relational Model
Columns
Rows
Ted Codd
Turing Award 1981
Database System Concepts - 7th Edition 1.11 ©Silberschatz, Korth and Sudarshan
A Sample Relational Database
Database System Concepts - 7th Edition 1.12 ©Silberschatz, Korth and Sudarshan
Levels of Abstraction
Database System Concepts - 7th Edition 1.13 ©Silberschatz, Korth and Sudarshan
View of Data
Database System Concepts - 7th Edition 1.14 ©Silberschatz, Korth and Sudarshan
Instances and Schemas
Database System Concepts - 7th Edition 1.15 ©Silberschatz, Korth and Sudarshan
Physical Data Independence
Database System Concepts - 7th Edition 1.16 ©Silberschatz, Korth and Sudarshan
Data Definition Language (DDL)
Database System Concepts - 7th Edition 1.17 ©Silberschatz, Korth and Sudarshan
Data Manipulation Language (DML)
Database System Concepts - 7th Edition 1.18 ©Silberschatz, Korth and Sudarshan
SQL Query Language
Database System Concepts - 7th Edition 1.19 ©Silberschatz, Korth and Sudarshan
Database Access from Application Program
Database System Concepts - 7th Edition 1.20 ©Silberschatz, Korth and Sudarshan
Database Design
Database System Concepts - 7th Edition 1.21 ©Silberschatz, Korth and Sudarshan
Database Engine
A database system is partitioned into modules that deal with each of the
responsibilities of the overall system.
The functional components of a database system can be divided into
• The storage manager,
• The query processor component,
• The transaction management component.
Database System Concepts - 7th Edition 1.22 ©Silberschatz, Korth and Sudarshan
Storage Manager
A program module that provides the interface between the low-level data
stored in the database and the application programs and queries
submitted to the system.
The storage manager is responsible to the following tasks:
• Interaction with the OS file manager
• Efficient storing, retrieving and updating of data
The storage manager components include:
• Authorization and integrity manager
• Transaction manager
• File manager
• Buffer manager
Database System Concepts - 7th Edition 1.23 ©Silberschatz, Korth and Sudarshan
Storage Manager (Cont.)
Database System Concepts - 7th Edition 1.24 ©Silberschatz, Korth and Sudarshan
Query Processor
Database System Concepts - 7th Edition 1.25 ©Silberschatz, Korth and Sudarshan
Query Processing
Database System Concepts - 7th Edition 1.26 ©Silberschatz, Korth and Sudarshan
Transaction Management
Database System Concepts - 7th Edition 1.27 ©Silberschatz, Korth and Sudarshan
Database Architecture
Centralized databases
• One to a few cores, shared memory
Client-server,
• One server machine executes work on behalf of multiple client
machines.
Parallel databases
• Many cores, shared memory
• Shared disk
• Shared nothing
Distributed databases
• Geographical distribution
• Schema/data heterogeneity
Database System Concepts - 7th Edition 1.28 ©Silberschatz, Korth and Sudarshan
Database Architecture
(Centralized/Shared-Memory)
Database System Concepts - 7th Edition 1.29 ©Silberschatz, Korth and Sudarshan
Database Applications
Database System Concepts - 7th Edition 1.30 ©Silberschatz, Korth and Sudarshan
Two-tier and three-tier architectures
Database System Concepts - 7th Edition 1.31 ©Silberschatz, Korth and Sudarshan
Database Users
Database System Concepts - 7th Edition 1.32 ©Silberschatz, Korth and Sudarshan
Database Administrator
A person who has central control over the system is called a database
administrator (DBA). Functions of a DBA include:
Schema definition
Storage structure and access-method definition
Schema and physical-organization modification
Granting of authorization for data access
Routine maintenance
• Periodically backing up the database
• Ensuring that enough free disk space is available for normal
operations, and upgrading disk space as required
• Monitoring jobs running on the database
Database System Concepts - 7th Edition 1.33 ©Silberschatz, Korth and Sudarshan
History of Database Systems
Database System Concepts - 7th Edition 1.34 ©Silberschatz, Korth and Sudarshan
History of Database Systems (Cont.)
1980s:
• Research relational prototypes evolve into commercial systems
SQL becomes industrial standard
• Parallel and distributed database systems
Wisconsin, IBM, Teradata
• Object-oriented database systems
1990s:
• Large decision support and data-mining applications
• Large multi-terabyte data warehouses
• Emergence of Web commerce
Database System Concepts - 7th Edition 1.35 ©Silberschatz, Korth and Sudarshan
History of Database Systems (Cont.)
2000s
• Big data storage systems
Google BigTable, Yahoo PNuts, Amazon,
“NoSQL” systems.
• Big data analysis: beyond SQL
Map reduce and friends
2010s
• SQL reloaded
SQL front end to Map Reduce systems
Massively parallel database systems
Multi-core main-memory databases
Database System Concepts - 7th Edition 1.36 ©Silberschatz, Korth and Sudarshan
End of Chapter 1
Database System Concepts - 7th Edition 1.37 ©Silberschatz, Korth and Sudarshan
Chapter 2: Intro to Relational Model
Database System Concepts - 7th Edition 2.2 ©Silberschatz, Korth and Sudarshan
Example of a Instructor Relation
attributes
(or columns)
tuples
(or rows)
Database System Concepts - 7th Edition 2.3 ©Silberschatz, Korth and Sudarshan
Relation Schema and Instance
Database System Concepts - 7th Edition 2.4 ©Silberschatz, Korth and Sudarshan
Attributes
The set of allowed values for each attribute is called the domain of the
attribute
Attribute values are (normally) required to be atomic; that is, indivisible
The special value null is a member of every domain. Indicated that the
value is “unknown”
The null value causes complications in the definition of many operations
Database System Concepts - 7th Edition 2.5 ©Silberschatz, Korth and Sudarshan
Relations are Unordered
Database System Concepts - 7th Edition 2.6 ©Silberschatz, Korth and Sudarshan
Database Schema
Database System Concepts - 7th Edition 2.7 ©Silberschatz, Korth and Sudarshan
Keys
Let K R
K is a superkey of R if values for K are sufficient to identify a unique tuple
of each possible relation r(R)
• Example: {ID} and {ID,name} are both superkeys of instructor.
Superkey K is a candidate key if K is minimal
Example: {ID} is a candidate key for Instructor
One of the candidate keys is selected to be the primary key.
• Which one?
Foreign key constraint: Value in one relation must appear in another
• Referencing relation
• Referenced relation
• Example: dept_name in instructor is a foreign key from instructor
referencing department
Database System Concepts - 7th Edition 2.8 ©Silberschatz, Korth and Sudarshan
Schema Diagram for University Database
Database System Concepts - 7th Edition 2.9 ©Silberschatz, Korth and Sudarshan
Relational Query Languages
Database System Concepts - 7th Edition 2.10 ©Silberschatz, Korth and Sudarshan
Relational Algebra
Database System Concepts - 7th Edition 2.11 ©Silberschatz, Korth and Sudarshan
Select Operation
Database System Concepts - 7th Edition 2.12 ©Silberschatz, Korth and Sudarshan
Select Operation (Cont.)
Database System Concepts - 7th Edition 2.13 ©Silberschatz, Korth and Sudarshan
Project Operation
A unary operation that returns its argument relation, with certain attributes
left out.
Notation:
A1,A2,A3 ….Ak (r)
where A1, A2, …, Ak are attribute names and r is a relation name.
The result is defined as the relation of k columns obtained by erasing the
columns that are not listed
Duplicate rows removed from result, since relations are sets
Database System Concepts - 7th Edition 2.14 ©Silberschatz, Korth and Sudarshan
Project Operation Example
Database System Concepts - 7th Edition 2.15 ©Silberschatz, Korth and Sudarshan
Composition of Relational Operations
Database System Concepts - 7th Edition 2.16 ©Silberschatz, Korth and Sudarshan
Cartesian-Product Operation
Database System Concepts - 7th Edition 2.17 ©Silberschatz, Korth and Sudarshan
The instructor X teaches table
Database System Concepts - 7th Edition 2.18 ©Silberschatz, Korth and Sudarshan
Join Operation
The Cartesian-Product
instructor X teaches
associates every tuple of instructor with every tuple of teaches.
• Most of the resulting rows have information about instructors who did
NOT teach a particular course.
To get only those tuples of “instructor X teaches “ that pertain to
instructors and the courses that they taught, we write:
instructor.id = teaches.id (instructor x teaches ))
Database System Concepts - 7th Edition 2.19 ©Silberschatz, Korth and Sudarshan
Join Operation (Cont.)
Database System Concepts - 7th Edition 2.20 ©Silberschatz, Korth and Sudarshan
Join Operation (Cont.)
Thus
instructor.id = teaches.id (instructor x teaches ))
Database System Concepts - 7th Edition 2.21 ©Silberschatz, Korth and Sudarshan
Union Operation
Database System Concepts - 7th Edition 2.22 ©Silberschatz, Korth and Sudarshan
Union Operation (Cont.)
Result of:
course_id ( semester=“Fall” Λ year=2017 (section))
course_id ( semester=“Spring” Λ year=2018 (section))
Database System Concepts - 7th Edition 2.23 ©Silberschatz, Korth and Sudarshan
Set-Intersection Operation
• Result
Database System Concepts - 7th Edition 2.24 ©Silberschatz, Korth and Sudarshan
Set Difference Operation
The set-difference operation allows us to find tuples that are in one relation
but are not in another.
Notation r – s
Set differences must be taken between compatible relations.
• r and s must have the same arity
• attribute domains of r and s must be compatible
Example: to find all courses taught in the Fall 2017 semester, but not in the
Spring 2018 semester
course_id ( semester=“Fall” Λ year=2017 (section)) −
course_id ( semester=“Spring” Λ year=2018 (section))
Database System Concepts - 7th Edition 2.25 ©Silberschatz, Korth and Sudarshan
The Assignment Operation
Database System Concepts - 7th Edition 2.26 ©Silberschatz, Korth and Sudarshan
The Rename Operation
Database System Concepts - 7th Edition 2.27 ©Silberschatz, Korth and Sudarshan
Equivalent Queries
Query 2
dept_name=“Physics” ( salary > 90.000 (instructor))
The two queries are not identical; they are, however, equivalent -- they
give the same result on any database.
Database System Concepts - 7th Edition 2.28 ©Silberschatz, Korth and Sudarshan
Equivalent Queries
Query 2
(dept_name=“Physics” (instructor)) ⋈ instructor.ID = teaches.ID teaches
The two queries are not identical; they are, however, equivalent -- they
give the same result on any database.
Database System Concepts - 7th Edition 2.29 ©Silberschatz, Korth and Sudarshan
End of Chapter 2
Database System Concepts - 7th Edition 2.30 ©Silberschatz, Korth and Sudarshan