Lecture 1 - Introduction to Advanced Database Systems

26
1-1 EPL342: Databases - Demetris Zeinalipour (University of Cyprus) EPL342 Databases Lecture 1: Introduction I Introduction to Databases (Chapter 1: Elmasri-Navathe, 5ED) Department of Computer Science University of Cyprus Demetris Zeinalipour (Γεκήηξεο Εετλαιηπνύξ) http://www.cs.ucy.ac.cy/courses/EPL342

Transcript of Lecture 1 - Introduction to Advanced Database Systems

Page 2: Lecture 1 - Introduction to Advanced Database Systems

1-2EPL342: Databases - Demetris Zeinalipour (University of Cyprus)

ηόρνη Μαζήκαηνο• ΔΠΛ342: Δθαξκνγέο ησλ Βάζεσλ Γεδνκέλσλ

– Δηζαγσγή ζηηο βαζηθέο έλλνηεο δηαρείξηζεο δεδνκέλσλ

– Σρεδηαζκόο θαη Φξήζε ζπζηεκάησλ βάζεσλδεδνκέλσλ

– Πξαθηηθή Δμάζθεζε ζηελ εθαξκνγή απηώλ ησλ ελλνηώλ ρξεζηκνπνηώληαο βηνκεραληθό ζύζηεκα δηαρείξηζεο βάζεο δεδνκέλσλ.

• ΔΠΛ446: Πξνρσξεκέλεο Βάζεηο Γεδνκέλσλ

– Καηαλόεζε θαη Υινπνίεζε πξνρσξεκέλσλ

ελλνηώλ πνπ αθνξνύλ ηελ εζσηεξηθή ιεηηνπξγία

κηαο ζρεζηαθήο βάζεο δεδνκέλσλ

– Έθζεζε ζε Πξνρσξεκέλα θαη Αλεξρόκελα

Θέκαηα ζην πεδίν ησλ βάζεσλ δεδνκέλσλ.

Page 3: Lecture 1 - Introduction to Advanced Database Systems

1-3EPL342: Databases - Demetris Zeinalipour (University of Cyprus)

Έκπεηξνη ΥξήζηεοΆπεηξνη Υξήζηεο

Ση είλαη κηα DBMS;Αλαηνκία ελόο SQL Server

ΔΠΛ342

Απνζήθεπζε

Γεδνκέλσλ θαη

Μεηα-πιεξνθνξηώλ

Σερληθέο

Αλάθακςεο (ζε

πεξηπηώζεηο

ζθαικάησλ)

Δλδόκλεκε

Γηαρείξηζε

Γεδνκέλσλ

Γνζνιεςηώλ θαη

Σερληθέο Διέγρνπ

Σαπηνρξνλίαο

Γνκή Δπξεηεξίσλ

Γεπηεξεύνπζαο

Μλήκεο (Hash,

B+)

Βειηηζηνπνίεζεο

Δπεξσηήζεσλ

ΔΠΛ446

ρεδηαζκόο & Υξήζε

Page 5: Lecture 1 - Introduction to Advanced Database Systems

1-5EPL342: Databases - Demetris Zeinalipour (University of Cyprus)

πκβόιαην Μαζήκαηνο • Δπίπεδν: Πξνπηπρηαθό

– Τπνρξεσηηθό Μάζεκα (Γεληθή Καηεύζπλζε & Τπ. πζηεκάησλ θαη

Γηθηύσλ)

• Πίζησζε: 7.5 κνλάδεο ECTS

• Πξναπαηηνύκελα:

– ΔΠΛ231: Γνκέο Γεδνκέλσλ & Αιγόξηζκνη

• ΔΠΛ111: Γηαθξηηέο Γνκέο ζηελ Πιεξνθνξηθή θαη ηνλ Τπνινγηζκό

• ΔΠΛ132: Αξρέο Πξνγξακκαηηζκνύ ΙΙ

• Μέζνδνη Γηδαζθαιίαο

– Γηαιέμεηο (3 ώξεο εβδνκαδηαίσο): Παξάδνζε Γηδαζ. Ύιεο

– Φξνληηζηήξην (1 1/2 ώξα εβδνκαδηαίσο): Θεσξεηηθή Δμάζθεζε

– Δξγαζηήξην (1 ώξα εβδνκαδηαίσο): Πξαθηηθή Δμάζθεζε

Page 6: Lecture 1 - Introduction to Advanced Database Systems

1-6EPL342: Databases - Demetris Zeinalipour (University of Cyprus)

πκβόιαην Μαζήκαηνο

• Αμηνιόγεζε

– 50% Σειηθή Δμέηαζε (1)

– 25% Δλδηάκεζε Δμέηαζε (1)• Ζκεξ.: Τξίηε, 2 Ννεκβξίνπ 2010! (9ε Δβδ.)

– 25% Αζθήζεηο - Exercises

• 10% Θεσξεηηθέο ή/θαη Πξνγξακκαηηζηηθέο.

Αζθήζεηο (4)

• 15% Project Μαζήκαηνο ζε Δκπνξηθή Βάζε

Γεδνκέλσλ.

Page 7: Lecture 1 - Introduction to Advanced Database Systems

1-7EPL342: Databases - Demetris Zeinalipour (University of Cyprus)

ΒηβιηνγξαθίαΒαζηθή Βηβιηνγξαθία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.

Page 8: Lecture 1 - Introduction to Advanced Database Systems

1-8EPL342: Databases - Demetris Zeinalipour (University of Cyprus)

Ιζηνζειίδα EΠΛ342

• Όιεο νη πιεξνθνξίεο ζρεηηθά κε ην κάζεκα

βξίζθνληαη ζην αθόινπζν URL

http://www.cs.ucy.ac.cy/courses/EPL342

Page 9: Lecture 1 - Introduction to Advanced Database Systems

1-9EPL342: Databases - Demetris Zeinalipour (University of Cyprus)

ΔΠΛ342 Moodle

• Γηα ηηο εθπαηδεπηηθέο δξαζηεξηόηεηεο ηνπ καζήκαηνο

(ππνβνιή εξγαζηώλ, θόξνπκ αλαθνηλώζεσλ,

εξσηεκαηνιόγηα, βαζκνινγίεο εξγαζηώλ, θηι) ζα

ρξεζηκνπνηεζεί ην Moodle: http://moodle.cs.ucy.ac.cy/

Δγγξαθείηε ζήκεξα θάλνληαο ρξήζε ηνπ

Κιεηδηνύ Δγγξαθήο πνπ ζα δνζεί ζηελ ηάμε!

Page 10: Lecture 1 - Introduction to Advanced Database Systems

1-10EPL342: Databases - Demetris Zeinalipour (University of Cyprus)

Πεξηερόκελν Γηάιεμεο 1

• Σύπνη Βάζεσλ θαη Δθαξκνγέο ηνπο

• Βαζηθνί Οξηζκνί

• Σππηθέο Λεηηνπξγίεο κηαο DBMS

• Παξάδεηγκα Βάζεο (UNIVERSITY)

• Βαζηθά Πιενλεθηήκαηα ηεο Πξνζέγγηζεο

ησλ Βάζεσλ (ζε αληίζεζε κε Αξρεία)

• Υξήζηεο Βάζεσλ

• Άιια Πιενλεθηήκαηα Υξήζεο Βάζεσλ

• Πόηε λα κελ ρξεζηκνπνηνύκε Βάζεηο

Page 11: Lecture 1 - Introduction to Advanced Database Systems

1-11EPL342: Databases - Demetris Zeinalipour (University of Cyprus)

Δθαξκνγέο Βάζεσλ Γεδνκέλσλ

• Αεξνπνξηθέο θξαηήζεηο (expedia.com)

• Ννζνθνκεία, Υεκεία

• Σξαπεδηθέο Δθαξκνγέο (WellsFargo.com)

• Λνγηζηήξηα

• ύζηεκα εγγξαθήο θνηηεηώλ

• Κνηλσληθέο Αζθαιίζεηο, Φόξνη

• Πσιήζεηο – Απνζήθεο (Amazon.com, eBay)

• Πηζησηηθέο θάξηεο

• Υξεκαηηζηήξην

• Σειεπηθνηλσλίεο

• … θαη άιιεο πνιιέο!

Page 12: Lecture 1 - Introduction to Advanced Database Systems

1-12EPL342: Databases - Demetris Zeinalipour (University of Cyprus)

Σύπνη Βάζεσλ Γεδνκέλσλ

• Παξαδνζηαθέο Δθαξκνγέο:

– Αξηζκεηηθέο Βάζεηο (Numerical) and Βάζεηο Κεηκέλνπ (Text)

– Παξάδεηγκα Sprint Telecom (Ακεξηθή): ΣOP-5 Database.

• Καηαγξαθή ζηνηρείσλ ζπλδηάιεμεο (π.ρ., ν X ηειεθώλεζε ηνπ Τ γηα 10 ιεπηά

θαη 20 δεπηεξόιεπηα)

• 2,85 ηξηζεθαηνκκύξηα (x1012) εγγξαθέο!

• 385 εθαηνκκύξηα (x106) λέεο εγγξαθέο ηελ εκέξα!

• ε εμαηξεηηθέο πεξηπηώζεηο κέρξη θαη 70,000 λέεο εγγξαθέο ην Γεπηεξόιεπην.

• Πξόζθαηεο Δθαξκνγέο:

– Βάζεηο Πνιπκέζσλ θαη Γεσγξαθηθώλ Πιεξνθ. πζηεκάησλ (GIS)

– Απνζήθεο Γεδνκέλσλ (Data Warehouses)

– Βάζεηο Ρνώλ (Stream Databases), Βάζεηο Νέθνπο (Cloud Databases),

Βάζεηο XML, θηι

• Δκείο ζα επηθεληξσζνύκε ζηηο Παξαδνζηαθέο Δθαξκνγέο

Page 13: Lecture 1 - Introduction to Advanced Database Systems

1-13EPL342: Databases - Demetris Zeinalipour (University of Cyprus)

Βαζηθνί Οξηζκνί

• Βάζε Γεδνκέλσλ (Database - DB):

– Μηα ζπιινγή από ζπζρεηηδόκελα δεδνκέλα.• Σπραία ζπιινγή δεδνκέλσλ δελ απνηεινύλ βάζε

– Π.ρ., όιεο νη ιέμεηο ελόο βηβιίνπ παξόιν πνπ είλαη ζπζρεηηδόκελα δεδνκέλα δελ απνηεινύλ βάζε δεδνκέλσλ.

• Γεδνκέλα (Data):

– Γλσζηά γεγνλόηα ηα νπνία κπνξνύλ λα θαηαγξαθνύλ θαη ηα νπνία έρνπλ ζπγθεθξηκέλε ζεκαζία

• Π.ρ., Ο Κώζηαο είλαη θνηηεηήο ηνπ ΔΠΛ342.

• Mini-world (Σύλνιν Αλαθνξάο – Universe of Discourse)

– Έλα κέξνο (ππνζύλνιν) ηνπ πξαγκαηηθνύ θόζκνπ ην νπνίν αληηπξνζσπεύεη κηα DB.

• Π.ρ., Οη εγγξαθέο ησλ θνηηεηώλ ελόο Παλεπηζηεκίνπ

Page 14: Lecture 1 - Introduction to Advanced Database Systems

1-14EPL342: Databases - Demetris Zeinalipour (University of Cyprus)

Βαζηθνί Οξηζκνί

• 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

– Κάπνηε πεξηιακβάλνληαη ζηελ πην πάλσ εμίζσζε θαη νη εθαξκνγέο.

Page 16: Lecture 1 - Introduction to Advanced Database Systems

1-16EPL342: Databases - Demetris Zeinalipour (University of Cyprus)

Σππηθέο Λεηηνπξγίεο ζε κηα DBMS

• Α) Οπισμόρ βάσηρ: ηύποι δεδομένων (data types), δνκέο

(structures), θαη πεξηνξηζκνί (constraints)

• Β) Γημιοςπγία ή Φόπτυση ηοσ αρτικού περιετομένοσ ηης

βάζης δεδομένων ζηη δεσηερεύοσζα μνήμη (secondary

storage medium)

• Γ) (Ταςτόσπονη) Δπεξεπγασία τηρ Βάσηρ:

– Αλάθηεζε (Retrieval): Δπεξσηήζεηο (Querying), Γεκηνπξγία

Αλαθνξώλ (Generating reports),…

– Τξνπνπνίεζε: Δηζαγσγέο, Γηαγξαθέο θαη Δλεκεξώζεηο

– Ταπηόρξνλε πξόζβαζε ηεο βάζεο από εθαξκνγέο, web,

θηι από πνιινύο ρξήζηεο

• … δηαζθαιίδνληαο όηη ηα δεδνκέλα είλαη νξζά (valid) θαη ζπλεπή

(consistent)

• π.ρ., δπν δηαθνξεηηθνί θνηηεηέο δελ κπνξνύλ λα έρνπλ ηνλ ίδην αξηζκό

ηαπηόηεηαο. Απηόο ν θαλόλαο πξέπεη λα ηζρύεη ζπλέρεηα.

Page 17: Lecture 1 - Introduction to Advanced Database Systems

1-17EPL342: Databases - Demetris Zeinalipour (University of Cyprus)

Σππηθέο Λεηηνπξγίεο ζε κηα DBMS

• Άιιεο Λεηηνπξγίεο ζε κηα DBMS:

– Μέηξα Πξνζηαζίαο ή Αζθάιεηαο γηα

πεξηνξηζκό κε-εμνπδηνηεκέλσλ

(unauthorized) πξνζβάζεσλ ζηα δεδνκέλα.

– Αλαπαξάζηαζε (Representation) θαη

Γξαθηθή Απεηθόληζε (Visualization) ησλ

δεδνκέλσλ

– Βειηηζηνπνίεζε Δθηέιεζεο Δξσηεκάησλ,

Υώξνπ Απνζήθεπζεο, θηι

– Κηι.

Page 18: Lecture 1 - Introduction to Advanced Database Systems

1-18EPL342: Databases - Demetris Zeinalipour (University of Cyprus)

Παξάδεηγκα κηαο Βάζεο(κε Δλλνηνινγηθό (Conceptual) Μνληέιν)

• Mini-world παξαδείγκαηνο:

– Μέξνο ελόο Παλεπηζηεκίνπ (UNIVERSITY).

• Μεξηθέο Οληόηεηεο (Entities) ηνπ mini-

world :

– STUDENTs

– COURSEs

– SECTIONs (of COURSEs)

– (academic) DEPARTMENTs

– INSTRUCTORs

Page 19: Lecture 1 - Introduction to Advanced Database Systems

1-19EPL342: Databases - Demetris Zeinalipour (University of Cyprus)

• Μεξηθέο Σρέζεηο (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) ησπικά αναπαριζηώνηαι ζε

ένα εννοιολογικό μονηέλο δεδομένων (π.τ., ηο Μονηέλο

Ονηοηήηων-Σσζτεηίζεων ποσ θα δούμε αργόηερα)

Παξάδεηγκα κηαο Βάζεο(κε Δλλνηνινγηθό (Conceptual) Μνληέιν)

Page 21: Lecture 1 - Introduction to Advanced Database Systems

1-21EPL342: Databases - Demetris Zeinalipour (University of Cyprus)

Βαζηθά Πιενλεθηήκαηα ηεο Πξνζέγγηζεο

ησλ Βάζεσλ (ζε αληίζεζε κε Αξρεία)

1) Απηό-Πεξηγξαθηθή Φύζε κηαο Βάζεο:

– Μηα DBMS πεξηέρεη έλα Καηάινγν (Catalog)

ν νπνίνο απνζεθεύεη ηελ πεξηγξαθή κηαο

βάζεο (π.ρ., δνκή πηλάθσλ, ηύπνη δεδνκέλσλ,

πεξηνξηζκνί, θηι)

– Η πιεξνθνξία νλνκάδεηαη meta-data.

– Απηό επηηξέπεη ηελ πξόζβαζε ζηηο

πιεξνθνξίεο ρσξίο λα γλσξίδνπκε ηε δνκή

ηεο απνζεθεπκέλεο πιεξνθνξίαο.

Page 23: Lecture 1 - Introduction to Advanced Database Systems

1-23EPL342: Databases - Demetris Zeinalipour (University of Cyprus)

Βαζηθά Πιενλεθηήκαηα ηεο Πξνζέγγηζεο

ησλ Βάζεσλ (ζε αληίζεζε κε Αξρεία)

2) Αλεμαξηεζία Πξνγξάκκαηνο-Γεδνκέλσλ

(Program-data independence)

– Δπηηξέπεη λα αιιάμνπκε ηελ δνκή θαη θπζηθή

νξγάλσζε ησλ δεδνκέλσλ ρσξίο λα ρξεηαζηεί λα

αιιάμνπκε ηα Πξνγξάκκαηα (DBMS Application

Programs / Queries)Π.ρ., εάλ ε DB ρσξηζηεί ζε

2 επί κέξνπο DBs ηόηε απηό

δε ρξεηάδεηαη λα ην γλσξίδεη

ν ρξήζηεο!

(DB)

Αθαηξεηηθόηεηα (Data

Abstraction)!

Page 24: Lecture 1 - Introduction to Advanced Database Systems

1-24EPL342: Databases - Demetris Zeinalipour (University of Cyprus)

Βαζηθά Πιενλεθηήκαηα ηεο Πξνζέγγηζεο

ησλ Βάζεσλ (ζε αληίζεζε κε Αξρεία)

3) Παξνρή Πνιιαπιώλ Όςεσλ (Views)

ηεο ίδηαο πιεξνθνξίαο.

– Π.ρ., ε γξακκαηεία ηεο πιεξνθνξηθήο

βιέπεη κόλν όζεο εγγξαθέο θνηηεηώλ

ζπζρεηίδνληαη κε ηηο εγγξαθέο ησλ θνηηεηώλ

ηνπ Τκήκαηνο Πιεξνθνξηθήο.

Students

CS-Students

Math-Students

Page 25: Lecture 1 - Introduction to Advanced Database Systems

1-25EPL342: Databases - Demetris Zeinalipour (University of Cyprus)

Βαζηθά Πιενλεθηήκαηα ηεο Πξνζέγγηζεο

ησλ Βάζεσλ (ζε αληίζεζε κε Αξρεία)

4) Γηακνηξαζκόο Γεδνκέλσλ (Μεηαμύ Φξεζηώλ) θαη

Δπεμεξγαζία Γνζνιεςηώλ Πνιιαπιώλ Φξεζηώλ :

– Δπηηξέπεη ζε ηαπηόρξνλνπο ρξήζηεο (concurrent users)

λα αλαθηνύλ θαη λα ελεκεξώλνπλ ηελ βάζε.

– Το Υποσύστημα Ταςτοσπονίαρ (Concurrency control

subsystem) ηης DBMS δηαζθαιίδεη όηη ηα δεδνκέλα ζα

παξακέλνπλ ζε νξζή (correct) θαη ζπλεπή (consistent)

θαηάζηαζε.

• Γεο παξάδεηγκα ζηελ επόκελε δηαθάλεηα

– Το Υποσύστημα Ανάκαμτηρ (Recovery subsystem)

δηαζθαιίδεη όηη θάζε νινθιεξσκέλε δνζνιεςία

(πξόγξακκα βάζεο) ζα θαηαγξάςεη κόληκα ηα

απνηειέζκαηα ηεο ζηε βάζε δεδνκέλσλ

Page 26: Lecture 1 - Introduction to Advanced Database Systems

1-26EPL342: Databases - Demetris Zeinalipour (University of Cyprus)

Τπνζύζηεκα Διέγρνπ Σαπηνρξνλίαο(δηαζθαιίδεη όηη ε Δθηέιεζε 2 δε ζα ζπκβεί)

Deposit (amount, account#) {

x = read(accounts[account#]);

write(accounts[account#], amount + x);

}

Θεσξήζηε:

Account[7] = €100

T1: Deposit1(100, 7)

T2: Deposit2(50, 7)

T1

Read1

Write1

T2

Read2

Write2

T1

Read1

Write1

T2

Read2

Write2

Εκτέλεση 1 Εκηέλεζη 2

250€ (Correct)150€ !

WRONG