Βάσεις Δεδομένων (Databases) ΕΠΛ 342 Χειμερινό Εξάμηνο 2011 Διδάσκοντες Καθηγητές Γιώργος Σαμάρας (ΧΩΔ01 109)
Εννοιολογικός Σχεδιασμός Βάσεων Δεδομένων & ER-Μοντέλο ER-Μοντέλο ER-Διαγράμματα EER Μοντέλο & Διαγράμματα
Σχεδιασμός Συστημάτων Βάσεων Δεδομένων Μοντελοποίηση Δεδομένων Πρόβλημα ; Μικρόκοσμος Πραγματικότητα Ενδιαφέροντος Μοντελοποίηση DBS
Διαδικασία Ανάπτυξης Βάσεων Για την ανάπτυξη μιας Σχεσιακής Βάσης δεδομένων ακολουθούνται τα ακόλουθα βήματα A. Ανάλυση Απαιτήσεων (Requirement Analysis): Ο Αναλυτής του συστήματος προετοιμάζει ένα έγγραφο απαιτήσεων με την βοήθεια του πελάτη. Τι δεδομένα να αποθηκεύονται και που; Τι εφαρμογές θα χτιστούν πάνω από τα δεδομένα; Ποιες πράξεις/διαδικασίες πρέπει να υποστηριχθούν και με τι απαιτήσεις επίδοσης; B. Εννοιολογική Σχεδίαση Βάσης (Conceptual Database Design): O DB Designer ετοιμάζει ένα ER διάγραμμα το οποίο μπορεί να γίνει αντιληπτό στο πελάτη (για επικύρωση) Το διάγραμμα αυτό πρέπει να ορθό, πλήρες και αποδοτικό για να είναι εύκολη η μετατροπή στο επόμενο στάδιο.
Διαδικασία Ανάπτυξης Βάσεων C. Λογική Σχεδίαση Βάσης (Logical Database Design): Μετατροπή του ER διαγράμματος σε ένα (Σχεσιακό) Σχήμα Βάσης. Μπορεί να γίνει και αυτόματα με κάποιο αλγόριθμο / εργαλείο D. Εκλέπτυνση Σχήματος (Schema Refinement): Ανάλυση σχήματος για εντοπισμό ενδεχόμενων προβλημάτων π.χ., Student(ssn, vehicleid, motorid). Αποφυγή πολλών κενών τιμών π.χ., Ο Κώστας ΔΕΝ έχει αυτοκίνητο δημιουργεί την μη επιθυμητή εγγραφή (111, NULL, NULL); E. Φυσικός Σχεδιασμός Βάσης (Physical Database Design) Έλεγχος ότι η βάση θα ικανοποιεί τις απαιτήσεις επίδοσης/φόρτου κτλ. τα οποία επιβάλλουν οι απαιτήσεις του εγγράφου ανάλυσης. Εάν δεν ικανοποιούνται τότε σε αυτό το στάδιο λαμβάνονται διορθωτικά μέτρα (π.χ., προσθήκη ευρετηρίων, κτλ). F. Υλοποίηση Εφαρμογής και Μηχανισμών Ασφάλειας (Application & Security Design)
Fig 3.1
Διαδικασία Ανάπτυξης Βάσεων (Διαγραμματική) Εφαρμογή Ανάλυση Απαιτήσεων Εννοιολογική Σχεδίαση (ER) Λογική Σχεδίαση (ER2Rel Mapping) Φυσική Σχεδίαση (Ευρετήρια, κτλ)
Database System Life Cycle Μελέτη σκοπιμότητας Συλλογή & ανάλυση απαιτήσεων Σχεδιασμός Πρωτότυπο Υλοποίηση Επικύρωση και έλεγχος Λειτουργία
Σχεδιασμός Βάσης Δεδομένων Ο σχεδιασμός Βάσης Δεδομένων είναι η δραστηριότητα καθορισμού του σχήματος μιας βάσης δεδομένων σε ένα συγκεκριμένο μοντέλο δεδομένων Τρεις κατηγορίες: Εννοιολογικός σχεδιασμός βάσης δεδομένων Λογικός σχεδιασμός βάσης δεδομένων Φυσικός σχεδιασμός βάσης δεδομένων
Entity-Relationship Model (ER Διαγράμματα) Διαγράμματα τα οποία χρησιμοποιούνται για την εννοιολογική αναπαράσταση δεδομένων. Ορίζεται το 1976 από τον Prof. Peter Chen The Entity-Relationship Model--Toward a Unified View of Data, ACM Transactions on Database Systems, Vol. 1, No. 1, March 1976, Pages 9 36 Θα αναφερθούμε σε αυτά τα διαγράμματα ως Διάγραμμα Οντοτήτων Συσχετίσων (ΔΟΣ) ή ER Diagram (ERD) Υπάρχουν διάφορoι (όμοιοι) συμβολισμοί οι οποίοι χρησιμοποιούνται. Στο μάθημα (εργασίες, εξετάσεις, κτλ) θα χρησιμοποιήσουμε την σημειογραφία (notation) του βιβλίου. Παραλλαγές τέτοιων διαγραμμάτων χρησιμοποιούνται σε διάφορα εμπορικά εργαλεία για την ανάπτυξη βάσεων δεδομένων.
Entity-Relationship Model (Chen) Οντολογικό Σχεσιακό Μοντέλο Χρησιμοποιείται για την εννοιολογική ανάλυση μιας εφαρμογής. Για τον ορισμό του λογικού σχήματος Ένα εργαλείο (tool) το οποίο επιτρέπει σε ένα σχεδιαστή (designer) να εκφράσει τις λογικές ιδιότητες μιας βάσης δεδομένων σε ένα καθολικό σχήμα. Μια διαγραμματική τεχνική όπου τα αντικείμενα και οι κανόνες μιας εφαρμογής παρουσιάζονται σαν Οντότητες, Σχέσεις, και Ιδιότητες.
Entity-Relationship Model (Chen) Οντολογικό Σχεσιακό Μοντέλο Εννοιολογικό Μοντέλο Προσπαθεί να συλλάβει «έννοια» καθώς και τύπο (structure) Τυπικό (formal) και κυρίως χρησιμοποιείται σαν εργαλείο σχεδιάσματος (π.χ.case tool) Ανεξάρτητο οποιασδήποτε βάσης δεδομένων
Διαδικασία Ανάπτυξης Βάσεων (Α. Ανάλυση Απαιτήσεων) Θεωρήστε τις ακόλουθές Απαιτήσεις (Requirements) μιας υποθετικής βάσης COMPANY για την οποία πρέπει να κάνουμε την Εννοιολογική Σχεδίαση: Η COMPANY οργανώνεται σε DEPARTMENTs. Κάθε department έχει τα ακόλουθα πεδία: name, number και ένα manager που διαχειρίζεται το department, start date του department manager. Κάθε department μπορεί να έχει πολλαπλά locations. Κάθε department ελέγχει ένα αριθμό από PROJECTs. Κάθε project έχει ένα μοναδικό name, μοναδικό number και βρίσκεται σε μια μόνο τοποθεσία (location).
Διαδικασία Ανάπτυξης Βάσεων (Α. Ανάλυση Απαιτήσεων) Για κάθε EMPLOYEE αποθηκεύουμε το social security number (SSN ταυτότητα), address, salary, sex, και birthdate. Κάθε employee δουλεύει για ένα department αλλά μπορεί να εργάζεται πάνω σε πολλά projects. Για κάθε project καταγράφουμε τον χρόνο (number of hours per week) τα οποία αφιερώνει ένας employee πάνω σε κάθε project. Επίσης καταγράφουμε τον προϊστάμενο (direct supervisor) κάθε employee. Κάθε employee μπορεί να έχει ένα αριθμό από Εξαρτώμενα (DEPENDENTs), δηλ., παιδιά. Για κάθε depend, κρατούμε το name, sex, birthdate, και τον τύπο της σχέσης (relationship) με τον employee.
Διαδικασία Ανάπτυξης Βάσεων (Β. Εννοιολογική Σχεδίαση) Αποτέλεσμα: Διάγραμμα ER * Λεπτομέρειες θα μελετηθούν σε αυτή και τις ερχόμενες διαλέξεις.
Διαδικασία Ανάπτυξης Βάσεων (C. Λογική Σχεδίαση) Αποτέλεσμα: Σχεσιακό Σχήμα * Λεπτομέρειες για αυτή και τις άλλες φάσεις (Εκλέπτυνση, Φυσική Σχεδίαση, κτλ) θα δούμε σε ερχόμενες διαλέξεις.
Μοντέλο Οντοτήτων- Συσχετίσεων (P. Chen, 1976) Δυο Σημασιολογικά αρχέτυπα Οντότητες Αντικείμενα με φυσική ύπαρξη, π.χ., ο Πέτρος, η Μαρία, το σπίτι του Πέτρου, κ.τ.λ. Αντικείμενα με εννοιολογική ύπαρξη, π.χ., Πανεπιστήμιο, Μάθημα, Λογαριασμός, κ.τ.λ. Συσχετίσεις COURSE Συσχετισμοί μεταξύ δυο ή περισσοτέρων οντοτήτων π.χ., ο Πέτρος παντρεύτηκε τη Μαρία, η Μαρία σπουδάζει Φυσική, κ.τ.λ.
Χαρακτηριστικά Οι οντότητες χαρακτηρίζονται από τα χαρακτηριστικά (ιδιότητες) τους Ο Πέτρος έχει μια ηλικία, Το αυτοκίνητο της Μαρίας έχει ένα χρώμα Ηλικια Οι σχέσεις μπορεί επίσης να έχουν χαρακτηριστικά Ο Πέτρος παντρεύτηκε τη στις 7 του Ιάν.
Κατηγοριοποίηση Χαρακτηριστικών Τιμή Δομή Απλή-τιμή (π.χ., Ηλικία) Πλειότιμη (π.χ., {πτυχία}) Υπολογισμένη-τιμή (π.χ., Ηλικία από DoB) NULL (Άγνωστη, N/A) Απλά (ατομικά) (π.χ., Ηλικία) Σύνθετα, π.χ., Ημερομηνία=(ηη,μμ,εε) Ένα σύνθετο χαρακτηριστικό Μπορεί να έχει απλή τιμή, π.χ.;
Τύποι Οντοτήτων Όλες οι παρόμοιες (ίδια χαρακτηριστικά) οντότητες ομαδοποιούνται σε σύνολα, ένα τύπο οντότητας Το σχήμα τύπων οντοτήτων καθορίζει την κοινή δομή: όνομα τύπου οντότητας χαρακτηριστικά οντότητας (Πεδίο, σύνολο τιμών) περιορισμού οντοτήτων Π.χ., FACULTY: Name(FN,LM,MI), DoB, SSN, {Degree},Rank FN:String(15), LN: String(15), SSN: String(9), etc. DoB: DD/MM/YYYY Degree: {BS,MS,PhD} Rank: {Lecturer, Assistant, Associate, Full}
Βασικές Έννοιες του Ε-R Μοντέλου Τύπος Οντότητας (Entity Type) Συλλογή παρόμοιων αντικειμένων Αντικείμενο (noun) Παράδειγμα
Βασικές Έννοιες του Ε-R Μοντέλου Η έννοια του «Τύπου Οντότητας» είναι έννοια «σχήματος» (τύπου). Δημιουργεί τον τύπο (ΙΝΤΕΝSION) της Οντότητας. Το μόνιμο ορισμό του τύπου οντότητας. Όλοι οι αντιπρόσωποι μιας οντότητας που πληρούν τον ορισμό» σε κάποια δεδομένη στιγμή απαρτίζουν τη επέκταση (EXTENSION) του «Τύπου Οντότητας» Παράδειγμα STUDENT ENTITY TYPE
Έννοιες του ER Model (Τύποι Οντοτήτων και Κλειδιά) Τύποι Οντοτήτων (Entity Types): ENTITY Το σχήμα (δομή) μιας οντότητας. Π.χ., STUDENT(SSN, name, age) Σύνολο Οντοτήτων (Entity Set ή Entity State) Ένα σύνολο οντοτήτων με τα ίδια χαρακτηριστικά π.χ., {Student1, Student2, } κτλ. Τύποι Οντοτήτων Σύνολο Οντοτήτων Συνήθως θα αναφερόμαστε και στα: Οντότητα, Τύπος Οντότητας, Σύνολο Οντότητας ως Οντότητα (εκτός και εάν γίνεται ρητή διαφοροποίηση)
Μοναδικότητα ή περιορισμός κλειδιού Οι οντότητες διακρίνονται χρησιμοποιώντας διάφορα κλειδιά Ένα κλειδί είναι ένας περιορισμός μοναδικότητας στα χαρακτηριστικά Ένα κλειδί ορίζετε πάνω σε ένα ή περισσότερα χαρακτηριστικά SSN, StudentID, Car License Plate: State & Number Υπερκλειδί: Οποιοσδήποτε συνδυασμός χαρακτηριστικών που μοναδικά καθορίζει μια οντότητα Name and SSN, Name and StudentID, Υποψήφιο Κλειδί είναι ένα ελάχιστο υπερκλειδί E.g., SSN and StudentID Πρωτεύων Κλειδί είναι ένα από τα υποψήφια κλειδιά (SSN) Εναλλακτικά κλειδιά είναι τα εναπομείναντα υποψήφια κλειδιά Το πρωτεύων κλειδί είναι υπογραμμισμένο, τα εναλλακτικά κλειδιά είναι over-lined
Τύποι Συσχετίσεων Τύποι Συσχετίσεων: σύνολα συσχετίσεων τα οποία είναι ομογενοποιημένα στις συμμετέχοντες οντότητες BELONG:<FACULTY, DEPARTMENT> ENROLLS:<STUDENT, SECTION> Ο Βαθμός μια συσχέτισης είναι αριθμός των συμμετεχόντων τύπων οντοτήτων: 2-οντότητες δυαδική συσχέτιση 3-οντότητες τριαδική συσχέτιση N-οντότητες Ν-αδική συσχέτιση Αναδρομικές συσχετίσεις που περιλαμβάνουν περισσότερο από μια φορά την ίδια οντότητα με διαφορετικούς Ρόλους: SUPERVISES:<supervisor-faculty, supervisee-faculty>
Περιορισμοί Τύπων Συσχετίσεων Λόγος Πληθυκότητας: Καθορίζει τον αριθμό στιγμιότυπων της συσχέτισης στα οποία μια οντότητα μπορεί να συμμετέχει. 1:1 Τμήματα έχουν Προέδρους N:1 Παιδιά έχουν Μητέρες 1:N Μητέρες έχουν Παιδιά (αντίστροφο του N:1) M:N Φοιτητές εγγράφονται σε Μαθήματα Συμμετοχή: Ολική Η ύπαρξη τη οντότητας εξαρτάτε στην ύπαρξη μιας σχετισμένης οντότητας. Π.χ., τα Μαθήματα έχουν ολική συμμετοχή στην OFFER_BY τμήμα. Μερική Μερικές οντότητες δεν σχετίζονται με άλλες οντότητες. Π.χ. Το Faculty έχει μερική συμμετοχή στο CHAIR του τμήματος.
Δυνατές και Ασθενής Οντότητες Δυνατές ή κανονικές Οντότητες: Έχουν ανεξάρτητη ύπαρξη στο μικρόκοσμο Είναι μέρος του ενδιαφέροντος της εφαρμογής Ασθενής Οντότητες : Εξαρτώνται από κάποια άλλη οντότητα Η Προσδιορίζουσα ιδιοκτήτης είναι η συγκεκριμένη οντότητα πάνω στην οποία η ασθενής οντότητα εξαρτάται Δεν έχουν χαρακτηριστικό κλειδί; διακρίνονται μέσω μιας προσδιορίζουσας συσχέτισης και ένα διευκρινιστή ή μερικό κλειδί Η προσδιορίζουσα συσχέτιση έχει πάντα ολική συμμετοχή Μπορεί να αναπαρασταθεί σαν πλειότιμο, σύνθετο χαρακτηριστικό του ιδιοκτήτη (Πότε αυτό δεν είναι εφικτό;)