ΕΣΔ516 Τεχνολογίες Διαδικτύου Εισαγωγή στις βάσεις δεδομένων - Η ανατομία μιας βάσης δεδομένων Περιεχόμενα - Βιβλιογραφία Ενότητας Περιεχόμενα Ορισμοί Συστατικά στοιχεία εννοιολογικής σχεδίασης Συστατικά στοιχεία λογικής / φυσικής σχεδίασης Παραδείγματα Βιβλιογραφία [Nixon 2009]: Chapter 8 [Ulman 2007]: Chapter 4 Αθ. Μάργαρης, Πανεπιστήμιο Μακεδονίας: Εισαγωγή στις Βάσεις Δεδομένων 1
Ορισμοί Δεδομένα αντικείμενα που επιδέχονται ψηφιοποίησης (άρα και καταγραφής) και έχουν αυτονόητη εξήγηση Βάση δεδομένων (Database) Μια συλλογή από συσχετιζόμενα δεδομένα με σαφή και συγκεκριμένο νόημα τα οποία Αντιπροσωπεύουν ένα μέρος του πραγματικού κόσμου έχουν αυταπόδεικτη υφή απευθύνονται σε συγκεκριμένους τελικούς αποδέκτες Αποτελείται από οντότητες και συσχετίσεις Οντότητα (φοιτητής, μάθημα, καθηγητής, αίθουσα, κοκ) Συσχετίσεις (ο Σ. Ρουβάς παρακολουθεί το CIS232) Ορισμοί (2) Σύστημα Διαχείρισης Βάσης Δεδομένων (DBMS) Μια συλλογή προγραμμάτων για την δημιουργία και την διαχείριση των βάσεων δεδομένων (αποτελεί συνήθως ένα ολοκληρωμένο πακέτο λογισμικού). Μέσω του DBMS υπάρχει η δυνατότητα: Ορισμού μιας βάσης: τύπος δεδομένων, δομή, περιορισμοί Δημιουργίας μιας βάσης: αποθήκευση δεδομένων Χειρισμού μιας βάσης: δομημένα ερωτήματα, ενημερώσεις, αναφορά Παράλληλης χρήσης της βάσης: από πολλά προγράμματα και χρήστες ταυτόχρονα Προστασίας της Βάσης Δεδομένων Σύστημα Βάσης Δεδομένων (Database System) ηβάση+ ένα DBMS (σχήμα) 2
Σχεδίαση βάσης δεδομένων Στη συγκεκριμένη ενότητα εξετάζουμε τα διάφορα συστατικά στοιχεία τα οποία απαρτίζουν μια σχεσιακή βάση δεδομένων. Τα στοιχεία αυτά διακρίνονται σε: Στοιχεία εννοιολογικής σχεδίασης Η εννοιολογική σχεδίαση μιας βάσης δεδομένων αφορά την μελέτη και μοντελοποίηση των δεδομένων που θα εισαχθούν στη βάση με τρόπο ανεξάρτητο της τεχνολογίας που θα χρησιμοποιηθεί (δηλαδή του συστήματος DBMS, του λειτουργικού συστήματος του υπολογιστή στον οποίο θα εγκατασταθεί η βάση, και των φυσικών μέσων αποθήκευσης σκληρός δίσκος κλπ) Στοιχεία λογικής σχεδίασης Η λογική σχεδίαση αφορά την μεταφορά υλοποίηση της εννοιολογικής σχεδίασης σε ένα συγκεκριμένο μοντέλο βάσης δεδομένων (π.χ. συσχετιστικό -relational-, αντικειμενοστραφές, κοκ) και σε ένα συγκεκριμένο σύστημα DBMS. Συστατικά στοιχεία εννοιολογικής σχεδίασης EM PLOYEE Last_Nam e Τα βασικά συστατικά στοιχεία τα οποία ορίζονται κατά τη διάρκεια της εννοιολογικής σχεδίασης είναι: Οντότητες (Entities) Ιδιότητες Χαρακτηριστικά (Attributes) Σχέσεις (s) Κανόνες επιχείρησης (business rules) Δεδομένα διασταύρωσης () (Δεδομένα Διασταύρωσης) Q uantity U nits_in_stock (FK) 3
Οντότητες Μιαοντότηταμπορείναείναι: Ένα άτομο, μια τοποθεσία, ένα αντικείμενο, ή μια έννοια για την οποία συλλέγουμε δεδομένα (με απλά λόγια οτιδήποτε μπορεί να ονομασθεί με ένα ουσιαστικό) Συγκεκριμένες οντότητες (π.χ. οι εγγραφές στον πίνακα των πελατών) ονομάζονται υποδείγματα (instances) Ο πελάτης Μιχάλης Πελατίδης αποτελεί ένα υπόδειγμα της οντότητας πελάτης Οντότητες οι οποίες επικοινωνούν με τη βάση δεδομένων αλλά για τις οποίες δεν συλλέγουμε δεδομένα (π.χ. γραμματειακό προσωπικό στο νοσοκομείο) ονομάζονται εξωτερικές οντότητες Οι εξωτερικές οντότητες δεν μοντελοποιούνται ούτε συμπεριλαμβάνονται στο σχήμα της βάσης δεδομένων). Είναι όμως χρήσιμα για τον ορισμό της λειτουργικότητας της εφαρμογής της βάσης δεδομένων Ιδιότητες - χαρακτηριστικά (Δεδομένα Διασταύρωσης) Quantity Ιδιότητα ή χαρακτηριστικό είναι ένα μοναδιαίο γεγονός το οποίο χαρακτηρίζει ή περιγράφει μια οντότητα: EMPLOYEE Last_Name Units_in_Stock (FK) Στα ορθογώνια του σχήματος φαίνονται αρκετά παραδείγματα χαρακτηριστικών ή ιδιοτήτων Οι ιδιότητες οι οποίες χαρακτηρίζουν μοναδικά (δηλαδή κάθε υπόδειγμα instance- μιας οντότητας έχει διαφορετική τιμή ως προς αυτό το χαρακτηριστικό) μιαοντότηταονομάζονται μοναδικοί χαρακτηριστές και αντιστοιχίζονται κατά τη λογική σχεδίαση σε πρωτεύοντα κλειδιά Οι μοναδικοί χαρακτηριστές τοποθετούνται πρώτοι στον κατάλογο των ιδιοτήτων εντός του ορθογωνίου κάθε οντότητας Τα χαρακτηριστικά πρέπει να έχουν ατομική υφή (δηλαδή να μην μπορούν να διασπαστούν περαιτέρω όπως π.χ. Ονοματεπώνυμο) 4
Σχέσεις (Δεδομένα Διασταύρωσης) Quantity EMPLOYEE Last_Name Units_in_Stock (FK) Οι σχέσεις καθορίζουν συσχετίσεις ανάμεσα στις οντότητες. Αποτελούντηβασικήιδιότητασεένα σχεσιακό μοντέλο βάσης δεδομένων Αν κάποια οντότητα δεν σχετίζεται με καμία άλλη σε μια συγκεκριμένη βάση δεδομένων τότε δεν χρειάζεται να συμπεριληφθεί στο σχήμα της βάσης Τύποι σχέσεων: Ένα προς πολλά Ένα προς ένα (όταν είναι υποχρεωτική και προς τις δύο κατευθύνσεις αποτελεί σφάλμα σχεδίασης) Πολλά προς πολλά Κάθεσχέσηέχεισεκάθεκατεύθυνσηένα ελάχιστο και ένα μέγιστο αριθμό οντοτήτων Κανόνες επιχείρησης (Δεδομένα Διασταύρωσης) Quantity EMPLOYEE Last_Name Units_in_Stock (FK) Κανόνες επιχείρησης αφορούν κάποια στοιχεία πολιτικής, μια διαδικασία ή ένα πρότυπο Κατά τη σχεδίαση οι κανόνες επιχείρησης δεν εμφανίζονται στο διάγραμμα οντοτήτων σχέσεων αλλά σε συνοδευτικό κείμενο Στη υλοποίηση της βάσης χρησιμοποιούνται ως προστασία από ανεπιθύμητα σφάλματα που μπορούν να κάνει το προσωπικό Οι κανόνες επιχείρησης υλοποιούνται συνήθως στη λογική σχεδίαση ως περιορισμοί 5
Δεδομένα διασταύρωσης EMPLOYEE Last_Name Τα δεδομένα διασταύρωσης χρησιμοποιούνται συνήθως για να λύσουν μια σχέση πολλά προς πολλά (order, product στο παράδειγμα) Συνήθως υλοποιούνται στη λογική σχεδίαση ως πίνακες. Εντούτοις επειδή δεν εμπίπτουν στο ορισμό της οντότητας δεν εμφανίζονται ως οντότητες στα διαγράμματα οντοτήτων συσχετίσεων (Δεδομένα Διασταύρωσης) Quantity Units_in_Stock (FK) Στοιχεία λογικής σχεδίασης Τα βασικά στοιχεία που καθορίζονται κατά τη διάρκεια της λογικής σχεδίασης είναι: Πίνακες (μοντελοποιούν οντότητες και δεδομένα διασταύρωσης) Στήλες και τύποι δεδομένων (υλοποιούν ιδιότητες και χαρακτηριστικών των οντοτήτων) Περιορισμοί (υλοποιούν κανόνες επιχείρησης αλλά και μοναδικά χαρακτηριστικά) Περιορισμοί Ακεραιότητας Όψεις (αφορούν το σχεδιασμό της διαπροσωπείας με εξωτερικούς χρήστες του συστήματος) 6
Πίνακες Οι πίνακες αποτελούν τη βασική μονάδα αποθήκευσης δεδομένων στο σχεσιακό μοντέλο βάσης δεδομένων Κάθε πίνακας πρέπει να έχει μοναδικό όνομα. Συνήθως ονομάζουμε τους πίνακες με όνομα αντίστοιχο της οντότητας αλλά στον πληθυντικό (π.χ. αν ηοντότηταείναιcustomer ονομάζουμε τον πίνακα customers) Οι στήλες σε κάθε πίνακα αντιστοιχούν στις ιδιότητες /χαρακτηριστικά μιας οντότητας ενώ οι γραμμές (ή εγγραφές records)αντιστοιχούν σε συγκεκριμένα υποδείγματα μιας οντότητας Οι πίνακες δεν αποθηκεύονται σε φυσικό επίπεδο υποχρεωτικά σε αρχείο που έχει τη μορφή πίνακα. Πολλοί πίνακες μπορεί να αποθηκεύονται σε ένα αρχείο στο δίσκο (π.χ. MS Access) ενώ ένας πίνακας μπορεί να αποθηκεύεται σε πολλά αρχεία (DBMS όπως η Oracle, Informix, SQL Server, κλπ) Στήλες και τύποι δεδομένων Όπως ήδη έχουμε δει οι στήλες σε ένα πίνακα μοντελοποιούν τις ιδιότητες / χαρακτηριστικά μιας οντότητας. Κάθε στήλη συσχετίζεται με ένα συγκεκριμένο τύπο δεδομένων 7
Περιορισμοί Περιορισμός (constraint) είναι ένας κανόνας ο οποίος τοποθετείται πάνω σε ένα αντικείμενο της βάσης (συνήθως πίνακα ή στήλη). Οι συνηθέστεροι τύποι περιορισμών είναι οι πιο κάτω: Περιορισμοί πρωτεύοντος κλειδιού (μια ιδιότητα η οποία ορίζεται ως πρωτεύον κλειδί απαγορεύεται να έχει την ίδια τιμή για περισσότερες από μια εγγραφές) Περιορισμοί αναφοράς. Μέσω των περιορισμών αυτών υλοποιούνται οι συσχετίσεις μεταξύ πινάκων. Οι περιορισμοί αναφοράς έχουν τη μορφή ξένου κλειδιού (foreign key) δηλαδή η τιμή μιας ιδιότητας η οποία συσχετίζει δύο πίνακες πρέπει να είναι η ίδια στους δύο πίνακες εφόσον αναφέρονται στο ίδιο αντικείμενο. Περιορισμοί Ακεραιότητας Περιορισμοί Ακεραιότητας καθορίζουν την ακρίβεια των δεδομένων στη βάση Συνήθως υλοποιούνται ως NOT NULL constraints (δεν επιτρέπει κενό στη τιμή μιας ιδιότητας) CHECK constraints (ελέγχει τη τιμή μιας ιδιότητας) 8
Εισαγωγή Παραδείγματα Θέλουμε να φτιάξουμε μια βάση δεδομένων για να διευκολύνουμε τη διαδικασία εγγραφών φοιτητών σε μαθήματα. Να προσδιορίσετε τις βασικές οντότητες που χρειάζεται να μοντελοποιηθούν μέσω ενός διαγράμματος ER Να προσδιορίσετε τα πεδία των πιο πάνω οντοτήτων Να προσδιορίσετε τα πεδία κλειδιά στις πιο πάνω οντότητες Να βρείτε τις σχέσεις ανάμεσα στις οντότητες Να αναγνωρίσετε τυχόν περιορισμούς που δεν μπορούν να αποτυπωθούν στο διάγραμμα (π.χ. κανόνες επιχείρησης) 9