Department of Computer Science University of Cyprus EPL342 Databases Lecture 1: Introduction I Introduction to Databases (Chapter 1: Elmasri-Navathe, 5ED) Demetris Zeinalipour (Γεκήηξεο Εετλαιηπνύξ) http://www.cs.ucy.ac.cy/courses/epl342 1-1
ηόρνη Μαζήκαηνο ΔΠΛ342: Δθαξκνγέο ησλ Βάζεσλ Γεδνκέλσλ Δηζαγσγή ζηηο βαζηθέο έλλνηεο δηαρείξηζεο δεδνκέλσλ Σρεδηαζκόο θαη Φξήζε ζπζηεκάησλ βάζεσλ δεδνκέλσλ Πξαθηηθή Δμάζθεζε ζηελ εθαξκνγή απηώλ ησλ ελλνηώλ ρξεζηκνπνηώληαο βηνκεραληθό ζύζηεκα δηαρείξηζεο βάζεο δεδνκέλσλ. ΔΠΛ446: Πξνρσξεκέλεο Βάζεηο Γεδνκέλσλ Καηαλόεζε θαη Υινπνίεζε πξνρσξεκέλσλ ελλνηώλ πνπ αθνξνύλ ηελ εζσηεξηθή ιεηηνπξγία κηαο ζρεζηαθήο βάζεο δεδνκέλσλ Έθζεζε ζε Πξνρσξεκέλα θαη Αλεξρόκελα Θέκαηα ζην πεδίν ησλ βάζεσλ δεδνκέλσλ. 1-2
Ση είλαη κηα DBMS; Αλαηνκία ελόο SQL Server Άπεηξνη Υξήζηεο Έκπεηξνη Υξήζηεο ΔΠΛ342 ρεδηαζκόο & Υξήζε Γνζνιεςηώλ θαη Σερληθέο Διέγρνπ Σαπηνρξνλίαο Γνκή Δπξεηεξίσλ Γεπηεξεύνπζαο Μλήκεο (Hash, B+) Απνζήθεπζε Γεδνκέλσλ θαη Μεηα-πιεξνθνξηώλ Βειηηζηνπνίεζεο Δπεξσηήζεσλ Σερληθέο Αλάθακςεο (ζε πεξηπηώζεηο ζθαικάησλ) Δλδόκλεκε Γηαρείξηζε Γεδνκέλσλ ΔΠΛ446 1-3
Ση είλαη κηα DBMS; Αλαηνκία ηνπ MySQL Server 1-4
πκβόιαην Μαζήκαηνο Δπίπεδν: Πξνπηπρηαθό Τπνρξεσηηθό Μάζεκα (Γεληθή Καηεύζπλζε & Τπ. πζηεκάησλ θαη Γηθηύσλ) Πίζησζε: 7.5 κνλάδεο ECTS Πξναπαηηνύκελα: ΔΠΛ231: Γνκέο Γεδνκέλσλ & Αιγόξηζκνη ΔΠΛ111: Γηαθξηηέο Γνκέο ζηελ Πιεξνθνξηθή θαη ηνλ Τπνινγηζκό ΔΠΛ132: Αξρέο Πξνγξακκαηηζκνύ ΙΙ Μέζνδνη Γηδαζθαιίαο Γηαιέμεηο (3 ώξεο εβδνκαδηαίσο): Παξάδνζε Γηδαζ. Ύιεο Φξνληηζηήξην (1 1/2 ώξα εβδνκαδηαίσο): Θεσξεηηθή Δμάζθεζε Δξγαζηήξην (1 ώξα εβδνκαδηαίσο): Πξαθηηθή Δμάζθεζε 1-5
πκβόιαην Μαζήκαηνο Αμηνιόγεζε 50% Σειηθή Δμέηαζε (1) 25% Δλδηάκεζε Δμέηαζε (1) Ζκεξ.: Τξίηε, 2 Ννεκβξίνπ 2010! (9 ε Δβδ.) 25% Αζθήζεηο - Exercises 10% Θεσξεηηθέο ή/θαη Πξνγξακκαηηζηηθέο. Αζθήζεηο (4) 15% Project Μαζήκαηνο ζε Δκπνξηθή Βάζε Γεδνκέλσλ. 1-6
Βηβιηνγξαθία Βαζηθή Βηβιηνγξαθία A1) Fundamentals of Database Systems, 5/E Ramez Elmasri, Shamkant B. Navathe ISBN: 0-321-36957-2 Publisher: ΑW 1168 pages, 2007. Ζ Διιεληθή Μεηάθξαζε Α2) Θεκειηώδεηο Αξρέο Σπζηεκάησλ Βάζεσλ Γεδνκέλσλ - 5ε έθδνζε (1νο ηόκνο), γξακκέλν από ηνπο Ramez Elmasri θαη Sham B. Navathe (κεηάθξαζε M. Υαηδόπνπινο), Γίαπινο, 2007. Βνεζεηηθή Βηβιηνγξαθία B) εκεηώζεηο Μαζήκαηνο θαη πλνδεπηηθό Τιηθό Γ) Database Management Systems, 3rd Edition R. Ramakrishnan, & Johannes Gehrke, 1104 pp. McGraw-Hill Publisher, ISBN 0-07-123057-2, 2003. Γ) Database Systems Concepts, 5th Edition, Abraham Silberschatz, Henry F. Korth, S. Sudarshan Hardcover, 1168 pages, McGraw-Hill Publisher, ISBN 0072958863, 2006. 1-7
Ιζηνζειίδα EΠΛ342 Όιεο νη πιεξνθνξίεο ζρεηηθά κε ην κάζεκα βξίζθνληαη ζην αθόινπζν URL http://www.cs.ucy.ac.cy/courses/epl342 1-8
ΔΠΛ342 Moodle Γηα ηηο εθπαηδεπηηθέο δξαζηεξηόηεηεο ηνπ καζήκαηνο (ππνβνιή εξγαζηώλ, θόξνπκ αλαθνηλώζεσλ, εξσηεκαηνιόγηα, βαζκνινγίεο εξγαζηώλ, θηι) ζα ρξεζηκνπνηεζεί ην Moodle: http://moodle.cs.ucy.ac.cy/ Δγγξαθείηε ζήκεξα θάλνληαο ρξήζε ηνπ Κιεηδηνύ Δγγξαθήο πνπ ζα δνζεί ζηελ ηάμε! 1-9
Πεξηερόκελν Γηάιεμεο 1 Σύπνη Βάζεσλ θαη Δθαξκνγέο ηνπο Βαζηθνί Οξηζκνί Σππηθέο Λεηηνπξγίεο κηαο DBMS Παξάδεηγκα Βάζεο (UNIVERSITY) Βαζηθά Πιενλεθηήκαηα ηεο Πξνζέγγηζεο ησλ Βάζεσλ (ζε αληίζεζε κε Αξρεία) Υξήζηεο Βάζεσλ Άιια Πιενλεθηήκαηα Υξήζεο Βάζεσλ Πόηε λα κελ ρξεζηκνπνηνύκε Βάζεηο 1-10
Δθαξκνγέο Βάζεσλ Γεδνκέλσλ Αεξνπνξηθέο θξαηήζεηο (expedia.com) Ννζνθνκεία, Υεκεία Σξαπεδηθέο Δθαξκνγέο (WellsFargo.com) Λνγηζηήξηα ύζηεκα εγγξαθήο θνηηεηώλ Κνηλσληθέο Αζθαιίζεηο, Φόξνη Πσιήζεηο Απνζήθεο (Amazon.com, ebay) Πηζησηηθέο θάξηεο Υξεκαηηζηήξην Σειεπηθνηλσλίεο θαη άιιεο πνιιέο! 1-11
Σύπνη Βάζεσλ Γεδνκέλσλ Παξαδνζηαθέο Δθαξκνγέο: Αξηζκεηηθέο Βάζεηο (Numerical) and Βάζεηο Κεηκέλνπ (Text) Παξάδεηγκα Sprint Telecom (Ακεξηθή): ΣOP-5 Database. Καηαγξαθή ζηνηρείσλ ζπλδηάιεμεο (π.ρ., ν X ηειεθώλεζε ηνπ Τ γηα 10 ιεπηά θαη 20 δεπηεξόιεπηα) 2,85 ηξηζεθαηνκκύξηα (x10 12 ) εγγξαθέο! 385 εθαηνκκύξηα (x10 6 ) λέεο εγγξαθέο ηελ εκέξα! ε εμαηξεηηθέο πεξηπηώζεηο κέρξη θαη 70,000 λέεο εγγξαθέο ην Γεπηεξόιεπην. Πξόζθαηεο Δθαξκνγέο: Βάζεηο Πνιπκέζσλ θαη Γεσγξαθηθώλ Πιεξνθ. πζηεκάησλ (GIS) Απνζήθεο Γεδνκέλσλ (Data Warehouses) Βάζεηο Ρνώλ (Stream Databases), Βάζεηο Νέθνπο (Cloud Databases), Βάζεηο XML, θηι Δκείο ζα επηθεληξσζνύκε ζηηο Παξαδνζηαθέο Δθαξκνγέο 1-12
Βαζηθνί Οξηζκνί Βάζε Γεδνκέλσλ (Database - DB): Μηα ζπιινγή από ζπζρεηηδόκελα δεδνκέλα. Σπραία ζπιινγή δεδνκέλσλ δελ απνηεινύλ βάζε Π.ρ., όιεο νη ιέμεηο ελόο βηβιίνπ παξόιν πνπ είλαη ζπζρεηηδόκελα δεδνκέλα δελ απνηεινύλ βάζε δεδνκέλσλ. Γεδνκέλα (Data): Γλσζηά γεγνλόηα ηα νπνία κπνξνύλ λα θαηαγξαθνύλ θαη ηα νπνία έρνπλ ζπγθεθξηκέλε ζεκαζία Π.ρ., Ο Κώζηαο είλαη θνηηεηήο ηνπ ΔΠΛ342. Mini-world (Σύλνιν Αλαθνξάο Universe of Discourse) Έλα κέξνο (ππνζύλνιν) ηνπ πξαγκαηηθνύ θόζκνπ ην νπνίν αληηπξνζσπεύεη κηα DB. Π.ρ., Οη εγγξαθέο ησλ θνηηεηώλ ελόο Παλεπηζηεκίνπ 1-13
Βαζηθνί Οξηζκνί Database Management System (DBMS): Λνγηζκηθό/α γηα ηε δεκηνπξγία, ηε δηαηήξεζε, θαη επεμεξγαζία κηαο DB. π.ρ., Oracle, IBM DB2, SQL-Server, Postgres, MySQL, MS Access, Interbase, Sybase, Κύξηνο ζθνπόο ησλ DBMS: απνζήθεπζε & δηαρείξηζε Δύθνια θαη βνιηθά (conveniently) Γξήγνξα θαη απνδνηηθά (efficiently) Αμηόπηζηα θαη κε ζπλέπεηα (reliably and consistently) Σύζηεκα Βάζεο (Database System): DBS = DBMS + DATA Κάπνηε πεξηιακβάλνληαη ζηελ πην πάλσ εμίζσζε θαη νη εθαξκνγέο. 1-14
Βαζηθνί Οξηζκνί (Γηαγξακκαηηθά) (DB) 1-15
Σππηθέο Λεηηνπξγίεο ζε κηα DBMS Α) Οπισμόρ βάσηρ: ηύποι δεδομένων (data types), δνκέο (structures), θαη πεξηνξηζκνί (constraints) Β) Γημιοςπγία ή Φόπτυση ηοσ αρτικού περιετομένοσ ηης βάζης δεδομένων ζηη δεσηερεύοσζα μνήμη (secondary storage medium) Γ) (Ταςτόσπονη) Δπεξεπγασία τηρ Βάσηρ: Αλάθηεζε (Retrieval): Δπεξσηήζεηο (Querying), Γεκηνπξγία Αλαθνξώλ (Generating reports), Τξνπνπνίεζε: Δηζαγσγέο, Γηαγξαθέο θαη Δλεκεξώζεηο Ταπηόρξνλε πξόζβαζε ηεο βάζεο από εθαξκνγέο, web, θηι από πνιινύο ρξήζηεο δηαζθαιίδνληαο όηη ηα δεδνκέλα είλαη νξζά (valid) θαη ζπλεπή (consistent) π.ρ., δπν δηαθνξεηηθνί θνηηεηέο δελ κπνξνύλ λα έρνπλ ηνλ ίδην αξηζκό ηαπηόηεηαο. EPL342: Databases Απηόο -ν Demetris θαλόλαο Zeinalipour πξέπεη (University λα ηζρύεη of ζπλέρεηα. Cyprus) 1-16
Σππηθέο Λεηηνπξγίεο ζε κηα DBMS Άιιεο Λεηηνπξγίεο ζε κηα DBMS: Μέηξα Πξνζηαζίαο ή Αζθάιεηαο γηα πεξηνξηζκό κε-εμνπδηνηεκέλσλ (unauthorized) πξνζβάζεσλ ζηα δεδνκέλα. Αλαπαξάζηαζε (Representation) θαη Γξαθηθή Απεηθόληζε (Visualization) ησλ δεδνκέλσλ Βειηηζηνπνίεζε Δθηέιεζεο Δξσηεκάησλ, Υώξνπ Απνζήθεπζεο, θηι Κηι. 1-17
Παξάδεηγκα κηαο Βάζεο (κε Δλλνηνινγηθό (Conceptual) Μνληέιν) Mini-world παξαδείγκαηνο: Μέξνο ελόο Παλεπηζηεκίνπ (UNIVERSITY). Μεξηθέο Οληόηεηεο (Entities) ηνπ miniworld : STUDENTs COURSEs SECTIONs (of COURSEs) (academic) DEPARTMENTs INSTRUCTORs 1-18
Παξάδεηγκα κηαο Βάζεο (κε Δλλνηνινγηθό (Conceptual) Μνληέιν) Μεξηθέο Σρέζεηο (relationships) τος mini-world : SECTIONs are of specific COURSEs STUDENTs take SECTIONs COURSEs have prerequisite COURSEs INSTRUCTORs teach SECTIONs COURSEs are offered by DEPARTMENTs STUDENTs major in DEPARTMENTs Σημείωζη: Οι πιο πάνω οντότητερ (entities) και σςσσετίσειρ (relationships) ησπικά αναπαριζηώνηαι ζε ένα εννοιολογικό μονηέλο δεδομένων (π.τ., ηο Μονηέλο Ονηοηήηων-Σσζτεηίζεων ποσ θα δούμε αργόηερα) 1-19
Παξάδεηγκα κηαο Απιήο Βάζεο 1-20
Βαζηθά Πιενλεθηήκαηα ηεο Πξνζέγγηζεο ησλ Βάζεσλ (ζε αληίζεζε κε Αξρεία) 1) Απηό-Πεξηγξαθηθή Φύζε κηαο Βάζεο: Μηα DBMS πεξηέρεη έλα Καηάινγν (Catalog) ν νπνίνο απνζεθεύεη ηελ πεξηγξαθή κηαο βάζεο (π.ρ., δνκή πηλάθσλ, ηύπνη δεδνκέλσλ, πεξηνξηζκνί, θηι) Η πιεξνθνξία νλνκάδεηαη meta-data. Απηό επηηξέπεη ηελ πξόζβαζε ζηηο πιεξνθνξίεο ρσξίο λα γλσξίδνπκε ηε δνκή ηεο απνζεθεπκέλεο πιεξνθνξίαο. 1-21
Παξάδεηγκα ελόο Απινπνηεκέλνπ Καηαιόγνπ (Catalog) 1-22
Βαζηθά Πιενλεθηήκαηα ηεο Πξνζέγγηζεο ησλ Βάζεσλ (ζε αληίζεζε κε Αξρεία) 2) Αλεμαξηεζία Πξνγξάκκαηνο-Γεδνκέλσλ (Program-data independence) Δπηηξέπεη λα αιιάμνπκε ηελ δνκή θαη θπζηθή νξγάλσζε ησλ δεδνκέλσλ ρσξίο λα ρξεηαζηεί λα αιιάμνπκε ηα Πξνγξάκκαηα (DBMS Application Programs / Queries) Π.ρ., εάλ ε DB ρσξηζηεί ζε 2 επί κέξνπο DBs ηόηε απηό δε ρξεηάδεηαη λα ην γλσξίδεη ν ρξήζηεο! (DB) Αθαηξεηηθόηεηα (Data Abstraction)! 1-23
Βαζηθά Πιενλεθηήκαηα ηεο Πξνζέγγηζεο ησλ Βάζεσλ (ζε αληίζεζε κε Αξρεία) 3) Παξνρή Πνιιαπιώλ Όςεσλ (Views) ηεο ίδηαο πιεξνθνξίαο. Π.ρ., ε γξακκαηεία ηεο πιεξνθνξηθήο βιέπεη κόλν όζεο εγγξαθέο θνηηεηώλ ζπζρεηίδνληαη κε ηηο εγγξαθέο ησλ θνηηεηώλ ηνπ Τκήκαηνο Πιεξνθνξηθήο. CS-Students Students Math-Students 1-24
Βαζηθά Πιενλεθηήκαηα ηεο Πξνζέγγηζεο ησλ Βάζεσλ (ζε αληίζεζε κε Αξρεία) 4) Γηακνηξαζκόο Γεδνκέλσλ (Μεηαμύ Φξεζηώλ) θαη Δπεμεξγαζία Γνζνιεςηώλ Πνιιαπιώλ Φξεζηώλ : Δπηηξέπεη ζε ηαπηόρξνλνπο ρξήζηεο (concurrent users) λα αλαθηνύλ θαη λα ελεκεξώλνπλ ηελ βάζε. Το Υποσύστημα Ταςτοσπονίαρ (Concurrency control subsystem) ηης DBMS δηαζθαιίδεη όηη ηα δεδνκέλα ζα παξακέλνπλ ζε νξζή (correct) θαη ζπλεπή (consistent) θαηάζηαζε. Γεο παξάδεηγκα ζηελ επόκελε δηαθάλεηα Το Υποσύστημα Ανάκαμτηρ (Recovery subsystem) δηαζθαιίδεη όηη θάζε νινθιεξσκέλε δνζνιεςία (πξόγξακκα βάζεο) ζα θαηαγξάςεη κόληκα ηα απνηειέζκαηα ηεο ζηε βάζε δεδνκέλσλ 1-25
Τπνζύζηεκα Διέγρνπ Σαπηνρξνλίαο (δηαζθαιίδεη όηη ε Δθηέιεζε 2 δε ζα ζπκβεί) Deposit (amount, account#) { } Θεσξήζηε: x = read(accounts[account#]); write(accounts[account#], amount + x); Account[7] = 100 T1: Deposit1(100, 7) T2: Deposit2(50, 7) Εκτέλεση 1 Εκηέλεζη 2 T1 Read1 Write1 T2 Read2 Write2 250 (Correct) T1 Read1 Write1 T2 Read2 Write2 150! WRONG 1-26