Βάσεις Δεδομένων (Databases) ΕΠΛ 342 Χειμερινό Εξάμηνο 2014 Διδάσκοντες Καθηγητές Γιώργος Σαμάρας (ΧΩΔ01 109)
Βασικές Πληροφορίες Πότε: Τρίτη & Παρασκευή 3:00-4:30μμ Πού: ΧΩΔ01 109 (ΓΣ) Πράξη: Fundamentals of Database Systems, R. Elmasri and S. B. Navathe, A-W 2006 Βαθμολογία & Προαγωγή: Τελική εξέταση 55% Ενδιάμεση εξέταση 20% Θεωρητικές και προγραμματιστικές ασκήσεις 10% Τελική Εργασία (σε SQL Server) 15% Τουλάχιστον πέντε (5) σε ένα από τα διαγωνίσματα
Βιβλιογραφία Βασική Βιβλιογραφία 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.
ΣΤΟΧΟI ΜΑΘΗΜΑΤΟΣ ΕΠΛ342: Εφαρμογές των Βάσεων Δεδομένων εισαγωγή στις βασικές έννοιες διαχείρισης δεδομένων σχεδιασμός και χρήση συστημάτων βάσεων δεδομένων πρακτική εξάσκηση στην εφαρμογή αυτών των εννοιών χρησιμοποιώντας βιομηχανικό σύστημα διαχείρισης βάσης δεδομένων. ΕΠΛ446: Προχωρημένες Βάσεις Δεδομένων Διαχείριση βάσεων δεδομένων και σχεδιασμός των Συστημάτων Διαχείρισης Βάσεων Δεδομένων Έκθεση σε Προχωρημένα και Ανερχόμενα Θέματα στο πεδίο των βάσεων δεδομένων.
Τι είναι μια DBMS; Ανατομία ενός SQL Server Άπειροι Χρήστες Έμπειροι Χρήστες ΕΠΛ342 Σχεδιασμός & Χρήση Δοσοληψιών και Τεχνικές Ελέγχου Ταυτοχρονίας Δομή Ευρετηρίων Δευτερεύουσας Μνήμης (Hash, B+) Αποθήκευση Δεδομένων και Μεταπληροφοριών Βελτιστοποίησης Επερωτήσεων Τεχνικές Ανάκαμψης (σε περιπτώσεις σφαλμάτων) Ενδόμνημη Διαχείριση Δεδομένων ΕΠΛ446
Συστήματα Διαχείρισης Βάσεων Δεδομένων (Database Management Systems) Αρχιτεκτονική Πλεονεκτήματα Εφαρμογή
Τι είναι ένα Σύστημα Διαχείρισης Βάσεων Δεδομένων; Τώρα! Τότε, στην αρχή ( 60s)
Τι είναι ένα Σύστημα Διαχείρισης Βάσεων Δεδομένων; Παραδείγματα χρήσης αυτών των συστημάτων: Αεροπορικές κρατήσεις (expedia.com) Νοσοκομεία, Χημεία Τραπεζικές Εφαρμογές (WellsFargo.com) Λογιστήρια Σύστημα εγγραφής φοιτητών Κοινωνικές Ασφαλίσεις, Φόροι Πωλήσεις Απο0ήκες (Amazon.com, ebay) Πιστωτικές κάρτες Χρηματιστήριο Τηλεπικοινωνίες και άλλες πολλές!
Τύποι Βάσεων Δεδομένων Παραδοσιακές Εφαρμογές: Αριθμητικές Βάσεις (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, κτλ Εμείς θα επικεντρωθούμε στις Παραδοσιακές Εφαρμογές
Συστήματα Διαχείρισης Βάσεων Δεδομένων Τι είναι ένα Σύστημα Διαχείρισης Βάσεων Δεδομένων; Ορισμός: Μία Βάση Δεδομένων (DB) είναι μια ολοκληρωμένη συλλογή από συσχετιζόμενα δεδομένα. Ένα Σύστημα Διαχείρισης Βάσεων Δεδομένων (DBMS) είναι ένα σύνολο προγραμμάτων, που επιτρέπει στους χρήστες να δημιουργούν, να διατηρούν, και να επεξεργάζονται μια DB. Κύριος σκοπός των DBMS: αποθήκευση & διαχείριση Εύκολα και βολικά (conveniently) Γρήγορα και αποδοτικά (efficiently) Αξιόπιστα και με συνέπεια
Συσχετιζόμενα Δεδομένα Δεδομένα είναι βασικά στοιχεία που χαρακτηρίζουν κάποιο πραγματικό γεγονός bytes + δομή = δεδομένο Π.χ., μια καρέκλα. το αυτοκίνητο, Ο Κώστας είναι φοιτητής του ΕΠΛ342 Συσχετιζόμενα Δεδομένα: Λογικά συνδεόμενα δεδομένα που παρουσιάζουν μια συναφή όψη του πραγματικού κόσμου με κάποια ειδική σημασία Π.Χ., Σύστημα Εγγραφής Φοιτητών Δεδομένα + σημασία = Πληροφορία Τυχαία συλλογή δεδομένων δεν αποτελούν βάση Π.χ., όλες οι λέξεις ενός βιβλίου παρόλο που είναι συσχετιζόμενα δεδομένα δεν αποτελούν βάση δεδομένων.
Ολοκληρωμένη Συλλογή Όλα τα δεδομένα αποθηκεύονται και διαχειρίζονται ομοιόμορφα σε δευτεροβάθμια μνήμη DB αποθηκεύει μεγάλο όγκο από δεδομένα που δεν χωρούν στη κύρια μνήμη. Δεδομένα αποθηκεύονται μακροχρόνια και επ άπειρον. Δεδομένα χρησιμοποιούνται και μεταλλάσσονται από πολλές εφαρμογές.
Συστήματα Διαχείρισης Βάσεων Δεδομένων & Συστήματα Βάσεων Το DBMS είναι ένα γενικού-σκοπού λογισμικό το οποίο διευκολύνει τις διαδικασίες ΟΡΙΣΜΟΥ, ΚΑΤΑΣΚΕΥΗΣ, και ΕΠΕΞΕΡΓΑΣΙΑΣ βάσεων δεδομένων για διάφορες εφαρμογές Π.Χ., Oracle, IBM DB2, SQL-Server, Postgres, MySQL, MS Access, Interbase, Sybase, Ορισμός: Ενα Σύστημα Βάσεων (DBS) αναπτύσσεται για ένα σκοπό και αποτελείται από: DB + DBMS + Λογισμικό Εφαρμογών
Βασικοί Ορισμοί (Διαγραμματικά) (DB)
Τυπικές Λειτουργίες σε μια DBMS Α) Ορισμός βάσης: τύποι δεδομένων (data types), δομές (structures), και περιορισμοί (constraints) Β) Δημιουργία ή Φόρτωση του αρχικού περιεχομένου της βάσης δεδομένων στη δευτερεύουσα μνήμη (secondary storage medium) Γ) (Ταυτόχρονη) Επεξεργασία της Βάσης: Ταυτόχρονη πρόσβαση της βάσης από εφαρμογές, web, κτλ από πολλούς χρήστες διασφαλίζοντας ότι τα δεδομένα είναι ορθά (valid) και συνεπή (consistent) π.χ., δυο διαφορετικοί φοιτητές δεν μπορούν να έχουν τον ίδιο αριθμό ταυτότητας. Αυτός ο κανόνας πρέπει να ισχύει συνέχεια.
Αναζητήσεις (Queries) και Συναλλαγές (Transactions) Αναζητήσεις δεδομένων (Queries): DBMS εντολές για ανάκτηση δεδομένων από το DB Ενημερώσεις (Updates): DBMS εντολές για εισαγωγή, διαγραφή ή τροποποίηση δεδομένων Συναλλαγές (Transactions): Λογική ομαδοποίηση εντολών αναζήτησης και ενημερώσεων για την επίτευξη μιας πράξης κατάθεση, ανάληψη, μεταφορά Χρέωση σε πιστωτική κάρτα $50 σε estore Συναλλαγές Αναζητήσεων (read-only or query transactions): Συναλλαγές με μόνο εντολές αναζήτησης, όχι ενημερώσεις.
Simplified Database System Organization DB Σχεδιαστές & Προγραμματιστές Χρήστες DB System Application Programs D B M S DB Design Tools Language Compilers DB Engine Query Processor Transaction Processor Form Processor Κατάλογος ή Metadata Application metadata
Παράδειγμα Σχεσιακής Βάσης: Αρχεία Φοιτητών Course CourseNo CourseName Credits Dept cs1550 os 3 CS math2210 stats 4 MATH cs1555 db 3 CS Student StudentID LName Name Class Major 123 Smith John 3 CS 395 Aiken Mary 4 CS GradeReport StudentID CourseNo Grade Term 123 cs1555 A 99-1 395 cs1550 A 00-1
Παράδειγμα Σχεσιακής Βάσης: E-Store Product ProductNo Name Description Price Picture Category 132.12 PicoDB DBMS for Handhelds 49.99 NULL Software Customer CustomerID Name Address ZipCode DayOfBirth 11 CSD Pitt, Pgh, PA 15260 NULL Shopping Basket BasketNo ProdNo Qty SubTotal Order CID BasketNo Total CreditCard 11233 132.12 2 99.98 11 11233 99.98 #####
Παράδειγμα μιας Βάσης (με Εννοιολογικό (Conceptual) Μοντέλο) Mini-world παραδείγματος: Μέρος ενός Πανεπιστημίου (UNIVERSITY). Μερικές Οντότητες (Entities) του miniworld : STUDENTs COURSEs SECTIONs (of COURSEs) (academic) DEPARTMENTs INSTRUCTORs
Παράδειγμα μιας Βάσης (με Εννοιολογικό (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) τυπικά αναπαριστώνται σε ένα εννοιολογικό μοντέλο δεδομένων (π.χ., το Μοντέλο Οντοτήτων-Συσχετίσεων που θα δούμε αργότερα)
Παράδειγμα μιας Απλής Βάσης