Βάσεις εδοµένων 5 ο Εξάµηνο ηµήτρης Λέκκας Επίκουρος Καθηγητής dlekkas@env.aegean.gr Τµήµα Στατιστικής & Αναλογιστικών-Χρηµατοοικονοµικών Μαθηµατικών Επισκόπηση Μαθήµατος Εισαγωγή (Σ Β ) Το µοντέλο σχέσεων οντοτήτων Το σχεσιακό µοντέλο Η σχεσιακή άλγεβρα ACCESS Σχεδίαση ενός καλού σχεσιακού σχήµατος οσοληψίες Οργάνωση αρχείων Εργαστηριακή εξάσκηση στην ACCESS 1
Βιβλιογραφία C.J. Date, "Εισαγωγή στα Συστήµατα Βάσεων εδοµένων", Α' τόµος, 6η Αµερικάνική έκδοση, µετάφραση στα Ελληνικά από τις εκδόσεις "Κλειδάριθµος", 1996. Βιβλία για συµπληρωµατική µελέτη: Silberschatz, Korth & Sudarshan, "Database System Concepts", 3rd edition, McGraw-Hill, 1997. Elmasri & Navathe, "Fundamentals of Database Systems", 3rd edition, Reading, Addiso-Wesley, c2000. Σύστηµα ιαχείρισης Βάσεων εδοµένων Τι είναι Σ Β ; Eνα Σύστηµα ιαχείρισης Βάσεων εδοµένων (Σ Β ) (Database Management System - DBMS) αποτελείται από µία συλλογή σχετιζόµενων δεδοµένων και ένα σύνολο προγραµµάτων για την προσπέλαση σε αυτά τα δεδοµένα. Η συλλογή των δεδοµένων ονοµάζεται βάση δεδοµένων (Β ) (database). Μια Βάση εδοµένων είναι µια σηµαντική συλλογή δοµηµένων πληροφοριών που κρατούνται σε ένα µόνιµο αποθηκευτικό χώρο. Ο κύριος σκοπός ενός Σ Β είναι να παρέχει ένα περιβάλλον για την εύκολη και αποδοτική αποθήκευση και ανάκληση µεγάλου όγκου πληροφορίας. 2
Συστήµατα Β Ιατρικά αρχεία Λεξικά Πληροφορίες προσωπικού µια εταιρίας OnLine Τηλ. κατάλογος Πανεπιστηµίου και καταγραφή τηλ. Κλήσεων Google και άλλες µηχανές αναζήτησης Βιβλιογραφία της επιστήµης Υπολογιστών http://www.informatik.uni-trier.de/~ley/db/ http://terraserver.microsoft.com Αρχεία ή Βάσεις εδοµένων; Μειονεκτήµατα των αρχείων: Τα αρχεία φορτώνονται στην κύρια µνήµη του υπολογιστή. ύσκολη διαχείριση µεγάλου όγκου δεδοµένων Εξειδικευµένα προγράµµατα για διαφορετικούς τύπους αρχείων Μη δοµηµένη πληροφορία Μη έγκυρες πληροφορίες λόγω ταυτόχρονης προσπέλασης πολλών χρηστών Ανάκαµψη από καταστροφή Ασφάλεια και έλεγχος προσπέλασης σε πολλά επίπεδα 3
Γιατί να χρησιµοποιήσω Β ; Αποτελεσµατική αποθήκευση, αναζήτηση, ταξινόµηση, συνδυασµός δεδοµένων Μείωση χρόνου ανάπτυξης εφαρµογών που βασίζονται σε Β Ασφάλεια των δεδοµένων (Ακεραιότητα, Εµπιστευτικότητα, ιαθεσιµότητα) Κοινός τρόπος διαχείρισης δεδοµένων Ταυτόχρονη προσπέλαση από πολλούς χρήστες ή διεργασίες (π.χ. Χρήση τραπεζικού λογαριασµού) Ανάκαµψη από λάθη και καταστροφές 4
Γιατί µελετώ τις Β ; Μετάβαση από τον υπολογισµό στην πληροφορία. Π.χ. Στο χαµηλό επίπεδο: Λογιστικές πράξεις Στο υψηλό επίπεδο: Σύστηµα διαχείρισης εταιρικών πόρων (Enterprise Resource Planning - ERP) Τα δεδοµένα αυξάνονται συνεχώς σε πολυµορφία και σε όγκο. Π.χ. Ψηφιακές βιβλιοθήκες, video on demand, Semantic Web, Γεωγραφικά συστήµατα, ανθρώπινο DNA, κλπ. 5
Μοντέλα εδοµένων (Data Models) Μοντέλο εδοµένων: Σύνολο κανόνων και εννοιών για την περιγραφή των δεδοµένων Σχήµα: Η περιγραφή µιας συγκεκριµένης συλλογής δεδοµένων, χρησιµοποιώντας ένα µοντέλο Στιγµιότυπο: Συγκεκριµένα δεδοµένα µιας Β σε κάποια χρονική στιγµή. 6
7
Σύστηµα ιαχείρισης Βάσεων εδοµένων Η διαχείριση των δεδοµένων περιλαµβάνει: τον ορισµό δοµών για την αποθήκευση πληροφορίας µηχανισµούς για τον χειρισµό της πληροφορίας και την ενηµέρωσή της µηχανισµούς για την ασφάλεια πληροφορίας που είναι προσβάσιµη από πολλούς χρήστες Αρχιτεκτονική 3 επιπέδων: Σύστηµα ιαχείρισης Βάσεων εδοµένων View 1 View 2 View 3 Λογικό Επίπεδο Φυσικό Επίπεδο 8
εδοµένα και Μετα-δεδοµένα Μια Β στο Λογικό επίπεδο: Μετα-δεδοµένα: Περιγραφή, όµηση, ικαιώµατα, κλπ. + εδοµένα 9
Επίπεδα Αφαίρεσης Σ Β Ένας από τους κύριους στόχους ενός Σ Β είναι να παρέχει µια αφηρηµένη όψη των δεδοµένων, αποκρύπτοντας από το χρήστη λεπτοµέρειες σχετικά µε την αναπαράσταση και την αποθήκευσή τους. Σε ένα Σ Β, τα δεδοµένα αναπαριστώνται σε 3 επίπεδα αφαίρεσης (abstraction levels): Λειτουργικότητα ενός Σ Β Φυσικό Επίπεδο Μονιµότητα δεδοµένων, σχηµάτων, ευρετηριών (διαχείριση δευτερεύουσας µνήµης) ιαµοιρασµός δεδοµένων και έλεγχος ταυτόχρονων προσπελάσεων (ταυτοχρονισµός) Ανάκαµψη από λάθη λογισµικού και υλικού (αξιοπιστία) Κατανοµή δεδοµένων και διαλειτουργικότητα. 10
Λειτουργικότητα ενός Σ Β Λογικό Επίπεδο Ορισµός της δοµής των δεδοµένων: Γλώσσες Ορισµού εδοµένων. Προσπέλαση και ενηµέρωση δεδοµένων: Γλώσσες χειρισµού εδοµένων και Γλώσσες Επερώτησης. ιαχείριση της εµπιστευτικότητας των δεδοµένων. ιατήρηση της ακεραιότητας των δεδοµένων. Λειτουργικότητα ενός Σ Β Εξωτερικό Επίπεδο Πολλαπλές όψεις Περιβάλλον προγραµµατισµού (σύνδεση µε µια γλώσσα προγραµµατισµού) Φιλικές διεπαφές χρήσης και γλώσσες 4ης γενιάς Εργαλεία σχεδίασης σχηµάτων Β Εργαλεία εισαγωγής δεδοµένων, εκτύπωσης αναφορών. Εργαλεία διασύνδεσης µε άλλα συστήµατα και εφαρµογές. 11
Όψεις εδοµένων Ένας από τους κύριους στόχους ενός Σ Β είναι να παρέχει µια αφαιρετική όψη των δεδοµένων αποκρύπτοντας λεπτοµέρειες της αναπαράστασης και της αποθήκευσής τους στο σύστηµα. Ένα Σ Β είναι ένα πρόγραµµα για τη διαχείριση ηλεκτρονικών αρχείων επιχειρησιακών δεδοµένων µε δοµηµένο τρόπο. Για παράδειγµα, Σ Β ενός πανεπιστηµίου διαχειρίζεται αρχεία για τους φοιτητές, τις εγγραφές τους σε µαθήµατα, βαθµολογία, κ.λ.π. Εµπορικές επιχειρήσεις χρησιµοποιούν Σ Β για την αποθήκευση στοιχείων σχετικά µε πωλήσεις, αγορές, τιµολόγηση, αποθήκη κ.λ.π. Όψεις εδοµένων Αεροπορικές εταιρίες χρησιµοποιούν Σ Β για την αποθήκευση στοιχείων σχετικά µε πτήσεις, δροµολόγια, διαθεσιµότητα θέσεων, κρατήσεις, προσωπικό, κ.λ.π Ένα Σ Β µιας βιβλιοθήκης καταγράφει τα διαθέσιµα βιβλία, τα άτοµα που τα δανείζονται, και παρέχει θεµατική κατηγοριοποίηση. Η συλλογή των αρχείων και εγγραφών που κρατούνται για ένα συγκεκριµένο σκοπό ονοµάζεται βάση δεδοµένων (database) Κατά κανόνα, οι βάσεις δεδοµένων αποθηκεύονται σε δευτερεύουσα µνήµη. Ένα Σ Β µπορεί να διαχειρίζεται περισσότερες από µία βάσεις δεδοµένων. 12
Όψεις εδοµένων Οι βάσεις δεδοµένων µπορούν να µοιράζονται πληροφορία. Η πρόσβαση σε αυτές ελέγχεται από ένα κεντρικό πρόγραµµα το οποίο ονοµάζεται διαχειριστής βάσεων δεδοµένων (db manager). Η δόµηση της πληροφορίας που αποθηκεύεται στις βάσεις δεδοµένων καθορίζεται από το µοντέλο δεδοµένων (data model). Παράδειγµα Ένα τραπεζικό σύστηµα αποθηκεύει πληροφορία σχετικά µε τους πελάτες της τράπεζας και τους λογαριασµούς τους. Η πληροφορία αποθηκεύεται σε αρχεία του συστήµατος τα οποία διαχειρίζονται προγράµµατα για: χρέωση ή πίστωση λογαριασµού προσθήκη νέου λογαριασµού εύρεση υπολοίπου µηνιαίες / ετήσιες καταστάσεις κίνησης,κλπ Καινούργια αρχεία και προγράµµατα εφαρµογών προστίθενται ανάλογα µε τις ανάγκες 13
Προβλήµατα λύσης µε αρχεία Ηυλοποίηση ενός τέτοιου συστήµατος µπορεί να βασιστεί σε ένα «τυπικό» σύστηµα διαχείρισης και επεξεργασίας αρχείων (file processing system), πάσχει όµως από διάφορα µειονεκτήµατα: Πλεονασµός και Ασυνέπεια δεδοµένων (data redundancy and inconsistency) η ίδια πληροφορία πιθανόν να επαναλαµβάνεται σε διαφορετικά αρχεία µε αποτέλεσµα να υπάρχει µεγαλύτερο κόστος αποθήκευσης και ανάκλησης Επιπλέον, ενηµέρωση ενός αρχείου πρέπει να συνοδεύεται από την ενηµέρωση όλων των αρχείων στα οποία η πληροφορία επαναλαµβάνεται. Προβλήµατα λύσης µε αρχεία υσκολία στην πρόσβαση στα δεδοµένα τα συστήµατα διαχείρισης αρχείων δεν παρέχουν αποδοτικούς µηχανισµούς για αναζήτηση και ανάκληση πληροφορίας µε διαφορετικούς τρόπους. Επιπλέον, τα δεδοµένα διασκορπίζονται σε αρχεία που χρησιµοποιούν διαφορετικές µορφές. Προβλήµατα ακεραιότητας δεδοµένων (data integrity) τα δεδοµένα υπόκεινται σε περιορισµούς συνέπειας ή ακεραιότητας (consistency or integrity constraints). Οι περιορισµοί αυτοί εφαρµόζονται µέσω των προγραµµάτων εφαρµογών τα οποία πρέπει να αλλαχθούν για την προσθήκη νέων ή τη µεταβολή περιορισµών. 14
Λοιπά Προβλήµατα Προβλήµατα ατοµικότητας δοσοληψιών (transaction atomicity) Π.χ. µεταφορά ενός ποσού Χ από λογαριασµό Α σε λογαριασµο Β. Αν συµβεί καποιο σφάλµα κατά τη διάρκεια της µεταφοράς, ο λογαριασµός Α µπορεί να χρεωθεί χωρίς να πιστωθεί ο λογαριασµός Β. Οι δοσοληψίες πρέπει να χαρακτηρίζονται από ατοµικότητα, δηλαδή, ή όλη η δοσοληψία ολοκληρώνεται ή κανένα µέρος αυτής (ιδιότητα όλα-ή-τίποτα). Λοιπά Προβλήµατα Προβλήµατα ασφάλειας (security). Π.χ. Έλεγχος προσπέλασης: Ποιος διαχειρίζεται τα δεδοµένα και ποιος τα µετα-δεδοµένα Τι είδους δικαιώµατα έχει ο καθένας; Σε ποιο τµήµα των δεδοµένων έχει κάποιος δικαιώµατα; 15
Λοιπά Προβλήµατα Ανωµαλίες ταυτόχρονης πρόσβασης (concurrent access) Η ταυτόχρονη πρόσβαση και ενηµέρωση της πληροφορίας από πολλούς χρήστες µπορεί να δηµιουργήσει προβλήµατα συνέπειας. Π.χ. έστω ότι ο λογαριασµός Α έχει υπόλοιπο Χ. Αν δύο χρήστες αφαιρέσουν ποσά 1 και 2 "ταυτόχρονα" από τον Α, το αποτέλεσµα µπορεί να µην είναι ορθό. διαφορετικοί χρήστες θα πρέπει να έχουν διαφορετικά δικαιώµατα πρόσβασης σε αρχεία ή σε συγκεκριµένα δεδοµένα. Μοντέλα εδοµένων Ιεραρχικό (hierarchical data model): διαφορετικοί τύποι εγγραφών δοµούνται υπό µορφή ιεραρχίας (δένδρου) Μοντέλο δικτύου (network data model): γενίκευση του ιεραρχικού µοντέλου. Οι εγγραφές οργανώνονται υπό µορφή κατευθυνόµενου άκυκλου γράφου. Μειονέκτηµα των παραπάνω µοντέλων δεδοµένων: η επερώτηση στις βάσεις δεδοµένων γίνεται πολύπλοκη. 16
Μοντέλα εδοµένων Το σχεσιακό µοντέλο (relational model) είναι το πλέον επιτυχηµένο µοντέλο δεδοµένων που αυτά έχουν προταθεί. Τα δεδοµένα οργανώνονται σε µορφή πινάκων εγγραφών ή σχέσεων (tables of records or relations). Οι πίνακες είναι οντότητες του πραγµατικού κόσµου (λογικές ή φυσικές) Οι σχέσεις είναι συλλογές γνωρισµάτων (attributes), όπου κάθε γνώρισµα (µια στήλη του πίνακα) αναπαριστά µια ιδιότητα της εγγραφής. Παρέχει εύκολο τρόπο επερώτησης των δεδοµένων. Εµπορικά σχεσιακά Σ Β : SQL-Server, Oracle, κλπ. Επίπεδα Αφαίρεσης Σ Β Η διάκριση µεταξύ των διαφορετικών επιπέδων αφαίρεσης είναι ανάλογη µε τη διάκριση µεταξύ επιπέδων αφαίρεσης στις γλώσσες προγραµµατισµού Για παράδειγµα, σε µια γλώσσα προγραµµατισµού, οι δηλώσεις: type customer = record customer-name : string; customer-id : string; customer-address: string; end; type account=record account-number: integer; end; 17
Επίπεδα Αφαίρεσης Σ Β type employee=record employee-name: string; salary: integer; end;... αντιστοιχούν στο λογικό επίπεδο. Στο φυσικό επίπεδο, οι τύποι αυτοί αναπαριστώνται σαν συνεχόµενες θέσεις αποθήκευσης. Η λεπτοµέρεια αυτή αποκρύπτεται από τον προγραµµατιστή. Σχήµα και Στιγµιότυπα (Schema and Instances) Οι Β µεταβάλλονται µε την πάροδο του χρόνου καθώς πληροφορία προστίθεται, αφαιρείται ή τροποποιείται. Το σύνολο της πληροφορίας το οποίο βρίσκεται αποθηκευµένο σε µια Β σε µια συγκεκριµένη χρονική στιγµή λέγεται στιγµιότυπο (instance or snapshot) της Β. Το σχήµα (schema) της Β είναι το σύνολο των εννοιών που περιγράφουν τη δοµή της και είναι σχεδόν πάντα σταθερό. Αναλογία : record types schema, variables instances Μια Β έχει ένα (ή περισσότερα) σχήµατα σε κάθε επίπεδο αφαίρεσης: Φυσικό σχήµα, Λογικό σχήµα, Σχήµατα όψεων ή υποσχήµατα 18
Αρχή της Ανεξαρτησίας εδοµένων (Data Independence) Οόρος ανεξαρτησία δεδοµένων (data independence) χαρακτηρίζει την ικανότητα µεταβολής του σχήµατος σε κάποιο επίπεδο αφαίρεσης, χωρίς να επηρεάζεται ο ορισµός του σχήµατος στο αµέσως υψηλότερο επίπεδο φυσική ανεξαρτησία δεδοµένων: το φυσικό σχήµα µπορεί να µεταβάλλεται χωρίς να χρειάζεται να γραφούν ξανά τα προγράµµατα εφαρµογών που έχουν πρόσβαση στη Β. µεταβολές στο φυσικό σχήµα είναι συχνά απαραίτητες για λόγους βελτιστοποίησης της απόδοσης του συστήµατος Αρχή της Ανεξαρτησίας εδοµένων (Data Independence) λογική ανεξαρτησία δεδοµένων: είναι η ικανότητα µεταβολής του λογικού σχήµατος χωρίς την ανάγκη µεταβολής των προγραµµάτων εφαρµογών τέτοιες µεταβολές είναι απαραίτητες όταν µεταβάλλεται η εννοιολογική δοµή µιας Β Η λογική ανεξαρτησία είναι δυσκολότερο να επιτευχθεί από τη φυσική ανεξαρτησία, καθώς τα προγράµµατα εφαρµογών εξαρτούνται σε µεγάλο βαθµό από τη λογική δοµή µιας Β. (π.χ. Πρόβληµα του έτους 2000) Η έννοια της ανεξαρτησίας είναι συγγενής µε αυτή των αφηρηµένων τύπων δεδοµένων (abstract data types). 19