What is a Database
Download
Report
Transcript What is a Database
DB and DBMS
Adapted from Silberschatz, Korth and Sudarshan
Database System Concepts, 5th Ed.
©Silberschatz, Korth and Sudarshan
See www.db-book.com for conditions on re-use
Summary
What is a Database (DB)?
Data Models
DB Schemas and Instances
Database Management System (DBMS)
DB Design
Centralized DBMS Architecture
DBMS Users and Administrators
Advanced DBMS Architectures
Database System Concepts - 5th Edition, May 23, 2005
1.2
©Silberschatz, Korth and Sudarshan
What is a Database (DB)?
A very large, integrated collection of data
Models real-world enterprise
Set of Entities (e.g., Student, Course)
Relationships (e.g., Student is Taking Course)
Associations (e.g., Madonna is Taking CS564)
Database System Concepts - 5th Edition, May 23, 2005
1.3
©Silberschatz, Korth and Sudarshan
(Logical) Data Models
A collection of tools, at a high abstraction level, for describing
Data manipulation
Data definition, data updating, data querying
Data relationships
Data constraints
Examples of data models
Entity-Relationship (ER)
Relational
Object-based (Object-oriented and Object-relational)
Semistructured (XML)
Other older models:
Network model
Hierarchical model
Database System Concepts - 5th Edition, May 23, 2005
1.4
©Silberschatz, Korth and Sudarshan
ER Model
Models an enterprise as a collection of entities and relationships
Entity: a “thing” or “object” in the enterprise that is distinguishable
from other objects
Described by a set of attributes
Relationship: an association among several entities
Represented diagrammatically by an entity-relationship diagram:
Database System Concepts - 5th Edition, May 23, 2005
1.5
©Silberschatz, Korth and Sudarshan
ER Model (Cont.)
The ER model is static
It does not support operations and data querying
Other weakness
Atomic attributes
Database System Concepts - 5th Edition, May 23, 2005
1.6
©Silberschatz, Korth and Sudarshan
Relational Model
Attributes
Example of tabular data in the relational model
Database System Concepts - 5th Edition, May 23, 2005
1.7
©Silberschatz, Korth and Sudarshan
A Sample Relational Database
Database System Concepts - 5th Edition, May 23, 2005
1.8
©Silberschatz, Korth and Sudarshan
Relational Model
Weaknesses
Atomic columns
Does not explicitly support relationships
Database System Concepts - 5th Edition, May 23, 2005
1.9
©Silberschatz, Korth and Sudarshan
Relational Data Manipulation Language (DML)
Language for defining, updating and querying the data organized as
relational tables
SQL is the most widely used DML language
Data Definition Language (DDL)
Data Updating Language
Data Query Language
Declarative: user specifies what data is required without
specifying how to get those data
– Select … From … Where … paradigm
Procedural Language
User specifies how (control) to get data
Database System Concepts - 5th Edition, May 23, 2005
1.10
©Silberschatz, Korth and Sudarshan
SQL DDL
Specification notation for defining the database
Example:
create table account (
account-number primary key char(13),
balance real)
Data constraints
Domain constraints (char, real)
Key integrity (primary key)
Referential integrity (references)
Assertions check (balance > 0.0)
Authorization
Database System Concepts - 5th Edition, May 23, 2005
1.11
©Silberschatz, Korth and Sudarshan
SQL DDL: Assertion Example
Every loan has at least one borrower who maintains an account with a
minimum balance or $1000.00
create assertion balance_constraint check
(not exists (
select *
from loan
where not exists (
select *
from borrower, depositor, account
where loan.loan_number = borrower.loan_number
and borrower.customer_name = depositor.customer_name
and depositor.account_number = account.account_number
and account.balance >= 1000)))
Database System Concepts - 5th Edition, May 23, 2005
1.12
©Silberschatz, Korth and Sudarshan
SQL DDL: Authorization
Forms of authorization on parts of the database:
Read - allows reading, but not modification of data.
Insert - allows insertion of new data, but not modification of existing data.
Update - allows modification, but not deletion of data.
Delete - allows deletion of data.
Forms of authorization to modify the database schema (covered in Chapter 8):
Index - allows creation and deletion of indices.
Resources - allows creation of new relations.
Alteration - allows addition or deletion of attributes in a relation.
Drop - allows deletion of relations.
Database System Concepts - 5th Edition, May 23, 2005
1.13
©Silberschatz, Korth and Sudarshan
SQL Data Updating Language
Insert
insert Into account values (‘1951-150737-7’, 2500.00)
Update
update account
set balance = 2600.00
where account-number = ‘1951-150737-7’
Delete
delete from account
where account-number = ‘1951-150737-7’
Database System Concepts - 5th Edition, May 23, 2005
1.14
©Silberschatz, Korth and Sudarshan
SQL Query Language
Examples
Find the name of the customer with customer-id 192-83-7465
select customer.customer_name
from
customer
where customer.customer_id = ‘192-83-7465’
Find the balances of all accounts held by the customer with customer-id
192-83-7465
select account.balance
from
depositor, account
where depositor.customer_id = ‘192-83-7465’ and
depositor.account_number = account.account_number
Application programs generally access databases through one of
Language extensions – host languages -- to allow embedded SQL
SQL procedural languages
Application program interface (e.g., ODBC/JDBC) which allow SQL
queries to be sent to a database
Database System Concepts - 5th Edition, May 23, 2005
1.15
©Silberschatz, Korth and Sudarshan
SQL Procedural Languages
MS Transact SQL
Oracle PL/SQL
Standard?
Database System Concepts - 5th Edition, May 23, 2005
1.16
©Silberschatz, Korth and Sudarshan
Procedural Constructs
For loop
Permits iteration over all results of a query
Example: find total of all balances at the Perryridge branch
declare bal real default 0.0;
for r as
select balance from account
where branch_name = ‘Perryridge’
do
set bal = bal + r.balance
end for
Database System Concepts - 5th Edition, May 23, 2005
1.17
©Silberschatz, Korth and Sudarshan
Object Model
ODMG standard
ODL: Object Definition Language
Persistent classes
– Class attributes
»
Non-atomic attributes
– Class relationships
– Class methods
– Class constraints
– Class repositories
OQL: Object Query Language
Object querying
Declarative
Database System Concepts - 5th Edition, May 23, 2005
1.18
©Silberschatz, Korth and Sudarshan
Object-Relational (OR) Model
Object Model
Extend the relational data model by
including object orientation and
constructs to deal with added data
types
Allow attributes of tuples to have
complex types, including nonatomic values such as nested
relations
Preserve relational foundations, in
particular the declarative access to
data, while extending modeling
power
Provide upward compatibility with
existing relational languages
OR Model
Class
Type
Class repository
Object table
Class
relationships
Type references
Class attributes
Type attributes
Non-atomic
attributes: set,
bag, list and array
Non-atomic
attributes: array,
nested table
(Oracle)
OQL
Extended SQL
query language
Extended SQL
DDL and Updating
Database System Concepts - 5th Edition, May 23, 2005
1.19
©Silberschatz, Korth and Sudarshan
OR Model: Non-1NF Relation
Example: library information system
Each book has
title,
a set of authors,
Publisher, and
a set of keywords
Database System Concepts - 5th Edition, May 23, 2005
1.20
©Silberschatz, Korth and Sudarshan
OR Model: Structured Types and Inheritance
Structured types can be declared and used in SQL
create type Name as
(firstname
varchar(20),
lastname
varchar(20))
final
create type Address as
(street
varchar(20),
city
varchar(20),
zipcode
varchar(20))
not final
Note: final and not final indicate whether subtypes can be created
Structured types can be used to create tables with composite attributes
create table customer (
name
Name,
address Address,
dateOfBirth date)
Dot notation used to reference components: name.firstname
Database System Concepts - 5th Edition, May 23, 2005
1.21
©Silberschatz, Korth and Sudarshan
OR Model: Structured Types (cont.)
create type CustomerType as (
name Name,
address Address,
dateOfBirth date,
<instance_methods)>
)
not final
Can then create a table whose rows are a user-defined type
create table customer of CustomerType
Database System Concepts - 5th Edition, May 23, 2005
1.22
©Silberschatz, Korth and Sudarshan
OR Model: Methods
Can add a method declaration with a structured type
method ageOnDate (onDate date)
returns integer
Method body is given separately
create instance method ageOnDate (onDate date)
returns integer
for CustomerType
begin
return onDate - self.dateOfBirth;
end
We can now find the age of each customer:
select name.lastname, ageOnDate (current_date)
from customer
Database System Concepts - 5th Edition, May 23, 2005
1.23
©Silberschatz, Korth and Sudarshan
OR Model: Inheritance
Suppose that we have the following type definition for people
create type Person
(name varchar(20),
address varchar(20))
[not final]
Using inheritance to define the student and teacher types
create type Student
under Person
(degree
varchar(20),
department varchar(20))
create type Teacher
under Person
(salary
integer,
department varchar(20))
Subtypes can redefine methods by using overriding method in place of
method in the method declaration
Database System Concepts - 5th Edition, May 23, 2005
1.24
©Silberschatz, Korth and Sudarshan
OR Model: Array and Multiset Types
Example of array and multiset declaration:
create type Publisher as
(name
varchar(20),
branch
varchar(20))
create type Book as
(title
varchar(20),
author-array varchar(20) array [10],
pub-date
date,
publisher
Publisher,
keyword-set varchar(20) multiset )
create table books of Book
Database System Concepts - 5th Edition, May 23, 2005
1.25
©Silberschatz, Korth and Sudarshan
OR Model: Querying Collection-Valued Attributes
To find all books that have the word “database” as a keyword
select title
from books
where ‘database’ in (unnest(keyword-set ))
We can access individual elements of an array by using indices
E.g.: If we know that a particular book has three authors, we could write
select author-array[1], author-array[2], author-array[3]
from books
where title = `Database System Concepts’
Database System Concepts - 5th Edition, May 23, 2005
1.26
©Silberschatz, Korth and Sudarshan
Comparison of O-O and O-R Databases
Relational systems
simple data types, powerful query languages, high protection
Persistent-programming-language-based OODBs
complex data types, integration with programming language, high
performance
Object-relational systems
complex data types, powerful query and procedural languages, high
protection
Performance?
It depends on the DBMS Administrator
Note: Many real systems blur these boundaries
E.g. persistent programming language built as a wrapper on a
relational database offers first two benefits, but may have poor
performance
Database System Concepts - 5th Edition, May 23, 2005
1.27
©Silberschatz, Korth and Sudarshan
XML: Extensible Markup Language
Defined by the WWW Consortium (W3C)
Originally intended as a document markup language not a
database language
The ability to specify new tags, and to create nested tag structures
made XML a great way to exchange data, not just documents
XML has become the basis for all new generation data interchange
formats.
A wide variety of tools is available for parsing, browsing and
querying XML documents/data
Example of XML DBMS
Tamino
Database System Concepts - 5th Edition, May 23, 2005
1.28
©Silberschatz, Korth and Sudarshan
Schemas and Instances
Schema – the structure of the database at a certain abstraction level
Types of schema
Logical schema: database design according to an underlying logical data
model
Example of an ER schema: the database consists of information about an
entity set customer and another entity set account and the relationship
between them
– Other types of schema: relational schema, object schema, OR schema
» Relational and OR schemas: SQL DDL
Physical schema: database design at the physical level
Example: the set of customers is an indexed-sequential data file
Instance – the actual content of the database at a particular point in time
Physical Data Independence – the ability to modify the physical schema without
changing the logical schema
A fundamental requirement for database management systems
Applications depend on the logical schema
In general, the interfaces between the various levels and components should
be well defined so that changes in some parts do not seriously influence others
Database System Concepts - 5th Edition, May 23, 2005
1.29
©Silberschatz, Korth and Sudarshan
Database Management System (DBMS)
DBMS is a software that supports
Database
Set of programs to access the database
An environment that is both convenient and efficient to use
Benefits of using DBMS
No data redundancy
Make data access easy
No duplication of information in different files
No need to write a new program to carry out each new task
It becomes easy to guarantee integrity constraints
Integrity constraints (e.g. account balance > 0) become
“buried” in program code rather than being stated explicitly
Soft to add new constraints or change existing ones
Database System Concepts - 5th Edition, May 23, 2005
1.30
©Silberschatz, Korth and Sudarshan
DBMS (Cont.)
Support for the Transaction concept
Atomicity of updates
– Failures do not leave database in an inconsistent state since
that partial updates are not carried out
– Example: Transfer of funds from one account to another should
either complete or not happen at all
Controlled concurrent access by multiple users
– Uncontrolled concurrent accesses can lead to inconsistencies
» Example: Two people reading a balance and updating it at
the same time
Support for Security
Soft to provide user access control to all data
Access Efficiency
Query optimization
Database System Concepts - 5th Edition, May 23, 2005
1.31
©Silberschatz, Korth and Sudarshan
DBMS (Cont.)
Families of DBMSs
Relational DBMSs
MS SQL Server 2000 (?), Oracle 7
Object-relational DBMSs
Oracle 8-10, IBM DB/2
Database System Concepts - 5th Edition, May 23, 2005
1.32
©Silberschatz, Korth and Sudarshan
Database Design
The process of designing the general structure of the database
Conceptual Design – Deciding on the database schema at a higher abstraction level than
relational or object-relational schemas
ER schema, Object schema
Logical Design – Deciding on the logical database schema implemented by DBMSs
R schema, OR schema
Physical Design – Deciding on the physical layout of the R(OR) database
Mappings
Conceptual schema logical schema
Case tools
Manual task
Logical schema physical schema
DBMS
Database System Concepts - 5th Edition, May 23, 2005
1.33
©Silberschatz, Korth and Sudarshan
Database Design (Cont.)
OO Database Design
R Database Design
Object schema
ER schema
OR schema
R schema
Physical OR schema
Database System Concepts - 5th Edition, May 23, 2005
Physical R schema
1.34
©Silberschatz, Korth and Sudarshan
Centralized DBMS Architecture
Database System Concepts - 5th Edition, May 23, 2005
1.35
©Silberschatz, Korth and Sudarshan
Query Processing
1. Parsing and translation
2. Optimization
3. Evaluation
Database System Concepts - 5th Edition, May 23, 2005
1.36
©Silberschatz, Korth and Sudarshan
Query Processing (Cont.)
Alternative ways of evaluating a given query
Equivalent expressions
Different algorithms for each operation
Cost difference between a good and a bad way of evaluating a query can
be enormous
Need to estimate the cost of operations
Depends critically on statistical information about relations which the
database must maintain
Need to estimate statistics for intermediate results to compute cost of
complex expressions
Database System Concepts - 5th Edition, May 23, 2005
1.37
©Silberschatz, Korth and Sudarshan
Transaction Management
A transaction is a collection of operations that performs a single
logical function in a database application
Transaction-management component ensures that the database
remains in a consistent (correct) state despite system failures (e.g.,
power failures and operating system crashes) and transaction failures
Concurrency-control manager controls the interaction among
the concurrent transactions, to ensure the consistency of the
database
Recovery manager assures atomicity of updates
Database System Concepts - 5th Edition, May 23, 2005
1.38
©Silberschatz, Korth and Sudarshan
DBMS Users
Users are differentiated by the way they expect to interact with
the system
Application programmers – interact with system through DML calls
Sophisticated users – form requests in a database query language
Specialized users – write specialized database applications that do
not fit into the traditional data processing framework
Naïve users – invoke one of the permanent application programs that
have been written previously
Examples, people accessing database over the web, bank tellers,
clerical staff
Database System Concepts - 5th Edition, May 23, 2005
1.39
©Silberschatz, Korth and Sudarshan
Database Administrator
Coordinates all the activities of the database system; the
database administrator has a good understanding of the
enterprise’s information resources and needs
Database administrator's duties include
Schema definition
Storage structure and access method definition
Schema and physical organization modification
Granting user authority to access the database
Specifying integrity constraints
Acting as liaison with users
Monitoring performance and responding to changes in
requirements
Database System Concepts - 5th Edition, May 23, 2005
1.40
©Silberschatz, Korth and Sudarshan
Advanced DBMS Architectures
Client-server
Two-tier
Three-tier
Parallel (multi-processor)
Distributed
Data Grid
Database System Concepts - 5th Edition, May 23, 2005
1.41
©Silberschatz, Korth and Sudarshan
DBMS Architectures (Cont.)
Database System Concepts - 5th Edition, May 23, 2005
1.42
©Silberschatz, Korth and Sudarshan