Download PowerPoint

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts

Tandem Computers wikipedia , lookup

Relational algebra wikipedia , lookup

IBM Notes wikipedia , lookup

Clusterpoint wikipedia , lookup

Concurrency control wikipedia , lookup

Database model wikipedia , lookup

Open Database Connectivity wikipedia , lookup

Relational model wikipedia , lookup

Database wikipedia , lookup

Transcript
Principles of Database
Management Systems
(Tietokannanhallintajärjestelmät)
Pekka Kilpeläinen
Fall 2001
DBMS 2001
Notes 1: Introduction
1
Credits
• Based on Stanford CS 245 lecture notes
by original authors Hector GarciaMolina, Jeff Ullman and Jennifer Widom
• Responsibility of any errors due to
modifications belongs to Pekka
Kilpeläinen
DBMS 2001
Notes 1: Introduction
2
Isn’t Implementing a
Database System Simple?
Relations
DBMS 2001
Statements
Notes 1: Introduction
Results
3
Introducing the
Database Management System
• The latest from Megatron Labs
• Incorporates latest relational technology
• UNIX/Linux compatible
DBMS 2001
Notes 1: Introduction
4
Megatron 3000
Implementation Details
First sign non-disclosure agreement
DBMS 2001
Notes 1: Introduction
5
Megatron 3000
Implementation Details
• Relations stored in files (ASCII)
e.g., relation R(A,B,C) is in /usr/db/R
Smith # 123 # CS
Jones # 522 # EE
.
.
.
DBMS 2001
Notes 1: Introduction
6
Megatron 3000
Implementation Details
• Schema file (ASCII) in /usr/db/schema:
domains/types
R1 # A # INT # B # STR …
R2 # C # STR # A # INT …
..
.
relations/
tables
DBMS 2001
attributes/columns
Notes 1: Introduction
7
Megatron 3000
Sample Sessions
% MEGATRON3000
Welcome to MEGATRON 3000!
& .
..
& quit
%
DBMS 2001
Notes 1: Introduction
8
Megatron 3000
Sample Sessions
& select *
from R ;
Relation R
A
B
Smith 123
Jones 522
...
columns/attributes
C
CS
EE
rows/tuples
&
DBMS 2001
Notes 1: Introduction
9
Megatron 3000
Sample Sessions
& select A,B
from R,S
where R.B = S.B and S.C > 100;
A
B
Smith 123
Jones 522
&
DBMS 2001
Notes 1: Introduction
10
Megatron 3000
Sample Sessions
& select *
from R | LPR ;
&
Result sent to LPR (printer).
DBMS 2001
Notes 1: Introduction
11
Megatron 3000
Sample Sessions
& select *
from R
where R.A < 100 | T ;
&
New relation T created.
DBMS 2001
Notes 1: Introduction
12
Megatron 3000
• To execute
“select * from R where condition”:
(1) Read dictionary to get attributes of R
(2) Check validity of condition
(3) Display attributes of R as the header
(4) Read file R; for each line:
(a) Check condition
(b) If TRUE, display
DBMS 2001
Notes 1: Introduction
13
Megatron 3000
• To execute “select * from R
where condition | T”:
(1) Process select as before
(2) Write results to new file T
(3) Append new line to usr/db/schema
DBMS 2001
Notes 1: Introduction
14
Megatron 3000
• To execute
“select A,B from R,S where condition”:
(1) Read dictionary to get attributes of R and S
(2) Read file R: for each line r:
(a) Read file S: for each line s:
(i) Create join tuple r&s
(ii) Check condition
(iii) If TRUE, display r&s[A,B]
DBMS 2001
Notes 1: Introduction
15
What’s wrong with the
Megatron 3000 DBMS?
• No GUI
DBMS 2001
Notes 1: Introduction
16
What’s wrong with the
Megatron 3000 DBMS?
• Tuple layout on disk
E.g., - Change a string from ‘Cat’ to ‘Cats’ and
we have to rewrite the end of the file
- Updates are expensive
- ASCII storage is expensive; E.g.,
MAXINT = 231-1=2147483647 takes 4 B;
string “2147483647” takes 10 B
DBMS 2001
Notes 1: Introduction
17
What’s wrong with the
Megatron 3000 DBMS?
• Search expensive; no indexes
e.g., - Cannot find tuples with given key quickly
- Always have to read the full relation
DBMS 2001
Notes 1: Introduction
18
What’s wrong with the
Megatron 3000 DBMS?
• Brute force query processing
e.g., select *
from R,S
where R.A = S.A and S.B > 1000
- Do selection using S.B > 1000 first?
- More efficient join?
DBMS 2001
Notes 1: Introduction
19
What’s wrong with the
Megatron 3000 DBMS?
• No concurrency control:
– simultaneously working processes
(transactions) could cause
inconsistent database state
DBMS 2001
Notes 1: Introduction
20
What’s wrong with the
Megatron 3000 DBMS?
• No reliability
• In case of error, say, power failure
- Can lose data
- Can leave operations half done
DBMS 2001
Notes 1: Introduction
21
What’s wrong with the
Megatron 3000 DBMS?
• No security
– File system security is coarse
– Unable to restrict access, say, to some
fields of relations
DBMS 2001
Notes 1: Introduction
22
What’s wrong with the
Megatron 3000 DBMS?
• No application program interface (API)
e.g., How can a payroll program get at the
data?
DBMS 2001
Notes 1: Introduction
23
Course Overview
• Physical data storage
Blocks on disks, records in blocks, fields in records
• Indexing & Hashing
B-Trees, hashing,…
• Query Processing
Methods to execute SQL queries efficiently
• Crash Recovery
Failures, stable storage, logging policies, ...
DBMS 2001
Notes 1: Introduction
24
Course Overview
• Concurrency Control
Correctness, serializability, locks,…
• Information integration
– (if time permits)
DBMS 2001
Notes 1: Introduction
25
Simplified DBMS structure
Storage manager
Query processor
Transaction processor
Buffers
Permanent
storage
DBMS 2001
User/
Application
Indexes
User Data
System Data
Notes 1: Introduction
26
Why study DBMS implementation
techniques?
• Computer scientists’ core knowledge
• Techniques applicable in implementing
DBMS-like systems
• Understanding of DBMS internals
necessary for database administrators
• NB: This course is not about designing DBbased applications or about using some
specific database systems
DBMS 2001
Notes 1: Introduction
27
Administration
• Course homepage:
http://www.cs.uku.fi/~kilpelai/DBMS01/
– assignments, announcements, notes
• Lecturer: [email protected]
• Assistant: [email protected]
DBMS 2001
Notes 1: Introduction
28
Details
• LECTURES: Oct. 29 - Dec. 17, Microteknia MT2
• TEXTBOOK: Garcia-Molina, Ullman, Widom;
"DATABASE SYSTEM IMPLEMENTATION"
• ASSIGNMENTS: Seven written homework assignments;
solutions discussed in exercise sessions.
No programming.
• GRADING:
(32*Exam/MaxExam + 12*HomeWork/MaxHomeWork - 8)/3
• WEB SITE: Assignments & notes will be posted on our Web site at
http://www.cs.uku.fi/~kilpelai/DBMS01
• Plase check it periodically for last minute announcements.
DBMS 2001
Notes 1: Introduction
29
Reading assignment
• Refresh your memory about basics of
the relational model and SQL
– from your earlier course notes
– from some textbook
– E.g. Garcia-Molina, Ullman & Widom, pp.
14-20
DBMS 2001
Notes 1: Introduction
30