Βάσεις Δεδομένων (Databases) ΕΠΛ 342 Χειμερινό Εξάμηνο 2011 Διδάσκοντες Καθηγητές Γιώργος Σαμάρας (ΧΩΔ01 109)
Βάσεις Δεδομένων Vs. Αρχείων Αφαίρεση (Data Abstraction) Αξιοπιστία (Reliability) Ικανότητα/Απόδοση (Efficiency/Performance)
Πότε να μην χρησιμοποιούμε Βάσεις; Α) Υπάρχει συνήθως ψηλό κόστος αγοράς (9/9/09), π.χ., Oracle Standard Edition (per CPU): 5,900$ Oracle Enterprise Edition (per CPU): 47,500$ ΙΒΜ DB2 v9.7 Enterprise: 25,000$ SQL Server 2008 Enterprise: 25,000$ Τα πιο πάνω ΔΕΝ περιλαμβάνουν κόστος αγοράς υλικού (server), λειτουργικού συστήματος, training, κτλ.! Όταν ο προϋπολογισμός ενός project είναι περιορισμός τότε λαμβάνεται σημαντικά υπόψη μια τέτοια παράμετρος. Ακόμη και εάν χρησιμοποιηθεί DBMS ανοικτού πηγαίου κώδικα (π.χ., MySQL, PostgreSQL, κτλ.), οι οποίες είναι δωρεάν, τότε υπάρχουν και πάλι λόγοι για τους οποίους δεν θέλουμε να χρησιμοποιήσουμε τέτοιες βάσεις Δες επόμενη διαφάνεια
Εφαρμοσιμότητα: Πότε ένα DBMS χρειάζεται? Για την επιτυχή συνένωση μεγάλων και συσχετιζόμενων δεδομένων Υποστηρίζει διάθεση και εξόρυξη πληροφοριών Εξόρυξη δεδομένων (data mining) Συμπερασματικές Βάσεις (deductive databases) Ενεργές Βάσεις (active databases) DBMS εξασφαλίζει πραγματικό QoS
Πότε ένα DBMS δεν αρμόζει? Μειονεκτήματα: Ακριβή η αγορά Ακριβή η συντήρηση (χρειάζεται διαχειριστή) Ακριβή η λειτουργία (χρειάζεται πολλούς πόρους) Για αυτό, είναι υπερβολή όταν: Η βάση είναι μικρή Η βάση έχει απλή δομή Η εφαρμογή είναι απλή και δεν αναμένετε να αλλάξει Μπορούμε να ανεχθούμε σφάλματα Δεν απαιτούνται πολλοί και ταυτόχρονοι χρήστες Δεν υπάρχει το αναγκαίο προσωπικό
Γλώσσες Συστήματος Βάσης Δεδομένων (Database Languages) Γλώσσα ορισμού δεδομένων (Data Description Language DDL) Δίνει τη δυνατότητα δημιουργίας του ΣΧΗΜΑΤΟΣ Γλώσσα ορισμού φυσικής αποθήκευσης (Storage Definition Language SDL) Περιγράφει το εσωτερικό σχήμα Γλώσσα ορισμού όψεων (View Definition Language VDL) Ορίζει τις διάφορες όψεις και τη μεταφράζει από την όψη στο λογικό σχήμα
Γλώσσα επεξεργασίας δεδομένων (Data Manipulation Language DML) Εντολές για πρόσβαση, ανάκτηση, εισαγωγή, αφαίρεση δεδομένων Διαδικαστικές (procedural) Ο χρήστης καθορίζει το Πως να αποκτηθεί μια πληροφορία Συνήθως είναι γλώσσες που χειρίζονται «εγγραφή μετά εγγραφή» ( record-at-a-time ) Π.χ., Ιεραρχικό ή Δικτυωτό Μοντέλο Δηλωτικές, υψηλού επιπέδου ή μη-διαδικαστικές (π.χ., SQL declarative) Ο χρήστης καθορίζει το Τι και όχι το Πως Γλώσσες που χειρίζονται ένα σύνολο από εγγραφές ταυτοχρόνως ( set-at-a-time ) Οι γλώσσες αυτές μπορούν να εμπεριέχονται σε γενικού σκοπού γλώσσες προγραμματισμού π.χ., Java, C, C++, COBOL, etc.
DB Τελικοί χρήστες Απλός Χρήστης Δημιουργεί απλά, ad-hoc ερωτήματα με τυπική αλληλεπίδραση κάνοντας χρήση: Υψηλού επιπέδου, δηλωτική γλώσσα DB (DML) Γραφική/Οπτική/Εικονική Γλώσσα Αφελής ή Παραμετρικός Χρήστης Διασύνδεση με φόρμες, Διασύνδεση βασισμένη με μενού Τυποποιημένες συναλλαγές (DML ενσωματωμένη σε μια γενική high-level PL ή low-level διαδικαστική DML) Έμπειρος Χρήστης Έχει καλή γνώση των διευκολύνσεων του DBMS για κατασκευή πολύπλοκων ερωτημάτων
Έμπειρος db designer Χρήστες Αφελής Απλός appl. progr. DBA embeded DML app. pgm(obj) DML processor query evaluation DDL inter. trans. mgr buffer mgr file mgr storage manager DB Catalog Metadata
Διαχειριστής Βάσης Δεδομένων (DBA) Ορισμός σχήματος ( Λογικό επίπεδο) Φυσικό σχήμα (Δομή αποθήκευσης, Μέθοδοι πρόσβασης) Τροποποίηση σχήματος Παραχώρηση εξουσιοδοτήσεων Ορισμός περιορισμών ακεραιότητας Χρήση: DDL: data definition language SDL: storage definition language VDL: view definition language
Έμπειρος db designer Χρήστες Αφελής Απλός appl. progr. DBA embeded DML app. pgm(obj) DML processor query evaluation DDL inter. trans. mgr buffer mgr file mgr storage manager DB Catalog Metadata
DB Προγραμματιστές DB Σχεδιαστές (Data Engineers) Αναγνώριση των δεδομένων που θα φυλάσσονται Επιλογή κατάλληλων δομών (σχήμα) Υλοποίηση όψεων (views) Αναλυτές Συστήματος και προγραμματιστές εφαρμογών (Software Engineers) Καθορισμός απαιτήσεων και προδιαγραφών Υλοποίηση των προδιαγραφών σε προγράμματα Σχεδιαστές εργαλείων και προγραμματιστές Εργαλεία για όλα τα στάδια: CASE εργαλεία (db σχεδιασμός, διαπροσωπίες, κτλ.), επιτήρηση και ρύθμιση (monitoring και tuning), κτλ. Π.χ., Κατασκευαστές ΜS Visio, Oracle Designer, DDS Studio. DBMS builders: ερευνητές, σχεδιαστές και προγραμματιστές
Β. Χρήστες στο Παρασκήνιο Παράδειγμα Εργαλείου για την Ανάπτυξη Βάσεων Δεδομένων
Συστήματα Διαχειριστών Βάσεων Δεδομένων & Πακέτα Διαχειριστών Κελύφη DB για συστήματα αρχείων Συστήματα αποθήκευσης δεδομένων (Data storage systems). Υποστηρίζουν αντοχή ή μονιμότητα (persistence) Ενός χρήστη DBMS με ή χωρίς ικανότητα επανάκτησης (recovery) και επιδιόρ0ωσης Έτοιμα πακέτα συγκεκριμένων εφαρμογών Πολλών χρηστών, γενικής χρήσης DBMS Αποθήκες Δεδομένων (Data Warehouses)
Αρχιτεκτονικές DBMS Διασύνδεση Συσκευών Αποθήκευσης Διασύνδεση πελάτη και DBMS Διασύνδεση DBMS
Διασύνδεση Συσκευών Αποθήκευσης Απ ευθείας σύνδεσης μέσω κάποιας διεπαφής (π.χ., SCSI) Direct attached storage (DAS) Σύνδεση μέσω δικτύου με σύστημα αποθήκευσης Network attached storage (NAS) Σύνδεση μέσω (οπτικού) κόμβου (switch) με αποθηκευτές Storage area network (SAN)
Παραδείγματα Διασύνδεση Συσκευών Αποθήκευσης Παράρτημα (Λεμεσός) Κεντρικό DB 1 Παράρτημα (Λευκωσία) DB 2 DAS Απο0ηκευτής Γ DB DB SAN Δίκτυο Τηλεπικοινωνιών Απο0ηκευτής Β Παράρτημα (Πάφος) Απο0ηκευτής Α DB DB NAS DB DB
Βασική Αρχιτεκτονική Διασύνδεσης Πελάτη-DBMS (Client-Server) 2-επιπέδων (two-tier) DBMS Συσκευές πελατών (PC/PDA) Λογισμικό Εφαρμογών
Νέα Αρχιτεκτονική διασύνδεσης Πελάτη-DBMS (Client-Server) 3-επιπέδων (three-tier) DBMS WebDBs Λογισμικό Εφαρμογών Συσκευές Χρήστη
Παράδειγμα κεντροποιημένου συστήματος Client-Server Κεντρικό DB 1 Παράρτημα DB 2 (Λευκωσία) Παράρτημα (Λεμεσός) Παράρτημα (Πάφος) Δίκτυο Τηλεπικοινωνιών Παράρτημα (Λάρνακα) Παράρτημα (Αμμόχωστος) Παράρτημα (Κερύνεια)
Παράδειγμα Κατανεμημένου Συστήματος Παράρτημα 6 Παράρτημα 5 Παράρτημα 4 Δίκτυο Τηλεπικοινωνιών Παράρτημα 3 Παράρτημα 1 Παράρτημα 2
Διασύνδεση DBMS: Κατανεμημένα Συστήματα DBMS Τίποτα Κοινό (shared nothing) Ομογενή Με ή χωρίς πλεονασμό (Replication) Ετερογενή Συνομόσπονδα Federated Αυτόνομα Multidatabases Υπολογιστής 1 CP U Μνήμη DB Δίκτυο Υπολογιστής n CP U Μνήμη DB Υπολογιστής 2 CP U Μνήμη DB
Ιστορική Προοπτική Πρώτο σύστημα βάσεως δεδομένων Πήλινες πλάκες για καταγραφή συναλλαγών αγαθών (πριν 6000 χρόνια) Πηλός Πάπυρος Περγαμηνή Χαρτί 1890, Hollerith: διατρητές κάρτες για επεξεργασία δεδομένων 1950s: Η/Υ / Μαγνητικές ταινίες για αποθήκευση δεδομένων 1960s/70s: μαγνητικοί δίσκοι 1980s: εμπορικά σχεσιακά DBMSs Αρχές 1990s: σχεδιασμός του ANSI SQL2 Τέλη 1990s: WWW boom Έκδοση του ANSI SQL3 Εκτενή ανάπτυξη βάσεων δεδομένων Βάσεις δεδομένων είναι online και διαθέσιμές 24x7
Ιστορική Εξέλιξη των Βάσεων 1960: Αρχικές Εφαρμογές «Βάσεων»: Ξεκίνησαν με την δημιουργία των Η/Υ τη δεκαετία του 60 και έχουν από τότε αλλάξει σε όλα τα επίπεδα. Το πρώτο λογισμικό ΒΔ το Integrated Data Store (IDS) / Codasyl το οποίο προσωποποιήθηκε το 1971. 1970: Σχεσιακές Βάσεις Δεδομένων Το Σχεσιακό Μοντέλο (όπου η πληροφορία αναπαριστάται με με σχέσεις) προτάθηκε το 1969 από τον E.F. Codd. Στη συνέχεια ερευνήθηκε και δοκιμάστηκε εκτενώς στο IBM Research και πολλά πανεπιστήμια. Προϊόντα Σχεσ. DBMS δημιουργούνται στις αρχές του 1980 H Oracle δημιουργείται το 1977 από ένα project το οποίο επιχορηγείται από το CIA. Η Oracle είναι σήμερα ένας από τους κολοσσούς στο χώρο των βάσεων με γραφεία σε 126 χώρες του κόσμου!
Ιστορική Εξέλιξη των Βάσεων 1980: Αντικειμενοστρεφείς Βάσεις: Object-Oriented Database Management Systems (OODBMSs) εισήχθηκαν περί τα τέλη του 1980s σε μια ανάγκη να αναπαριστάνουν περίπλοκες ανάγκες διαχείρισης δεδομένων τα οποία προέκυπταν σε CAD (Computer-Aided design) εφαρμογές. Σε αυτές, τα δεδομένα αναπαριστώνται από Αντικείμενα (Objects) κατά αντίστοιχο τρόπο με OO Προγραμματισμό. Σήμερα δεν χρησιμοποιούνται πολύ εκτενώς Ωστόσο πολλές έννοιες εισήχθηκαν σε Σχεσιακές DBMS δημιουργώντας την έννοια Σχεσιό-Αντικειμενοστρεφών Βάσεων Δεδομένων [ Οbject-Relational DBMSs (ORDBMSs)] Π.χ., η PostgreSQL είναι μια τέτοια βάση δεδομένων η οποία επιτρέπει τη δημιουργία οντοτήτων με κληρονομικότητα και πολλά άλλα.
Ιστορική Εξέλιξη των Βάσεων 1990: Δεδομένα στο Web και εφαρμογές Ηλεκτρονικού Εμπορίου: To Web περιέχει περιεχόμενο στη Γλώσσα Μορφοποίησης HTML (Hypertext markup language) με συνδέσμους ανάμεσα σε ιστοσελίδες. Αυτό έχει δώσει χώρο σε ένα νέο σύνολο εφαρμογών στο χώρο των βάσεων δεδομένων. Συγκεκριμένα: Διαδικτυακές Βάσεις Δεδομένων. Παραγωγή Περιεχομένου HTML από τα δομημένα δεδομένα ΒΔ με χρήση γλωσσών όπως PHP, Java, ASP, κτλ. Επιτρέπει επίσης αλλαγές στα δεδομένα της βάσης Εφαρμογές Business-to-Business (Ανταλλαγή Εγγράφων με χρήση της XML (extended Markup Language)) Παράδειγμα XML ακολουθεί στην επόμενη διαφάνεια.
Επεκτείνοντας τις Δυνατότητες ΒΔ Υπάρχουν προσθήκες δυνατοτήτων στα ακόλουθα πεδία: Αποθήκευση και Διαχείριση Εικόνων Q=(χρώμα,texture, κτλ.) Q O1 O2 O3 Διαχείριση Ήχου (αλλά και Βίντεο) O4 O5 ----Mat-lab--------------- ----------- ---Maat--llaabb--------- ---------- Σύγκριση Spectographs για εντοπισμό όμοιων λέξεων
Επεκτείνοντας τις Δυνατότητες ΒΔ Υπάρχουν προσθήκες δυνατοτήτων στα ακόλουθα πεδία: Διαχείριση Χρονικών (Temporal) Δεδομένων D = 7.3 Distance χρόνος? D = 10.2 Query D = 11.8 Βρες ποια μετοχή κινήθηκε παρόμοια με αυτή που δίνεται ως ερώτηση D = 17 D = 22