Principles of Database Management Systems (Tietokannanhallintajärjestelmät) Pekka Kilpeläinen Fall 2001 Credits Based on Stanford CS 245 lecture notes by original authors Hector Garcia- Molina, Jeff Ullman and Jennifer Widom Responsibility of any errors due to modifications belongs to Pekka Kilpeläinen DBMS 2001 Notes 1: Introduction 1 DBMS 2001 Notes 1: Introduction 2 Isn t Implementing a Database System Simple? Introducing the Relations Statements Results Database Management System The latest from Megatron Labs Incorporates latest relational technology UNIX/Linux compatible DBMS 2001 Notes 1: Introduction 3 DBMS 2001 Notes 1: Introduction 4 First sign non-disclosure agreement Relations stored in files (ASCII) eg, relation R(A,B,C) is in /usr/db/r Smith # 123 # CS Jones # 522 # EE DBMS 2001 Notes 1: Introduction 5 DBMS 2001 Notes 1: Introduction 6 1
Schema file (ASCII) in /usr/db/schema: relations/ tables domains/types R1 # A # INT # B # STR R2 # C # STR # A # INT attributes/columns DBMS 2001 Notes 1: Introduction 7 % MEGATRON3000 Welcome to MEGATRON 3000! quit % DBMS 2001 Notes 1: Introduction 8 select * from R ; A Relation R B C Smith 123 CS Jones 522 EE columns/attributes rows/tuples select A,B from R,S where RB = SB and SC > 100; A B Smith 123 Jones 522 DBMS 2001 Notes 1: Introduction 9 DBMS 2001 Notes 1: Introduction 10 select * from R LPR ; Result sent to LPR (printer) select * from R where RA < 100 T ; New relation T created DBMS 2001 Notes 1: Introduction 11 DBMS 2001 Notes 1: Introduction 12 2
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 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 13 DBMS 2001 Notes 1: Introduction 14 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 rs (ii) Check condition (iii) If TRUE, display rs[a,b] No GUI DBMS? DBMS 2001 Notes 1: Introduction 15 DBMS 2001 Notes 1: Introduction 16 DBMS? Tuple layout on disk Eg, - Change a string from Cat to Cats and we have to rewrite the end of the file - Updates are expensive - ASCII storage is expensive; Eg, MAXINT = 2 31-1=2147483647 takes 4 B; string 2147483647 takes 10 B DBMS? Search expensive; no indexes eg, - Cannot find tuples with given key quickly - Always have to read the full relation DBMS 2001 Notes 1: Introduction 17 DBMS 2001 Notes 1: Introduction 18 3
DBMS? Brute force query processing eg, select * from R,S where RA = SA and SB > 1000 - Do selection using SB > 1000 first? - More efficient join? DBMS? No concurrency control: simultaneously working processes (transactions) could cause inconsistent database state DBMS 2001 Notes 1: Introduction 19 DBMS 2001 Notes 1: Introduction 20 DBMS? No reliability In case of error, say, power failure - Can lose data - Can leave operations half done DBMS? No security File system security is coarse Unable to restrict access, say, to some fields of relations DBMS 2001 Notes 1: Introduction 21 DBMS 2001 Notes 1: Introduction 22 DBMS? No application program interface (API) eg, How can a payroll program get at the data? 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 23 DBMS 2001 Notes 1: Introduction 24 4
Course Overview Simplified DBMS structure Concurrency Control Correctness, serializability, locks, Information integration Storage manager Buffers Query processor Transaction processor User/ Application (if time permits) Permanent storage User Data Indexes System Data DBMS 2001 Notes 1: Introduction 25 DBMS 2001 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 Administration Course homepage: http://wwwcsukufi/~kilpelai/dbms01/ assignments, announcements, notes Lecturer: PekkaKilpelainen@csukufi Assistant: TarjaLohioja@csukufi NB: This course is not about designing DBbased applications or about using some specific database systems DBMS 2001 Notes 1: Introduction 27 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://wwwcsukufi/~kilpelai/dbms01 Plase check it periodically for last minute announcements Reading assignment Refresh your memory about basics of the relational model and SQL from your earlier course notes from some textbook Eg Garcia-Molina, Ullman Widom, pp 14-20 DBMS 2001 Notes 1: Introduction 29 DBMS 2001 Notes 1: Introduction 30 5