ΣΧΕΣΙΑΚΕΣ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ευάγγελος Κεχρής
Κεφάλαιο 2: Το Διάγραμμα Οντοτήτων - Συσχετίσεων Κεφάλαιο 2: Το Διάγραμμα Οντοτήτων - Συσχετίσεων Σχεσιακές Βάσεις Δεδομένων Δρ. Ε. Κεχρής
Στόχοι του 2ου κεφαλαίου Στόχος του κεφαλαίου αυτού είναι να περιγράψει τις βασικές έννοιες που χρησιμοποιούνται για τη διαγραμματική περιγραφή μίας βάσης δεδομένων. Σχεσιακές Βάσεις Δεδομένων Δρ. Ε. Κεχρής
Μοντέλα Δεδομένων Ένα μοντέλο δεδομένων παρέχει ένα σύνολο εννοιών που είναι απαραίτητες για την περιγραφή της βάσης δεδομένων. Σχεσιακές Βάσεις Δεδομένων Δρ. Ε. Κεχρής
Τύποι Μοντέλων Δεδομένων Λογικά ή υψηλού επιπέδου Εύκολα κατανοητά από τον άνθρωπο Οι έννοιες τους αναπαριστώνται με σύμβολα Υλοποίησης Κατανοητά από τον άνθρωπο και τον Η/Υ Φυσικά ή χαμηλού επιπέδου Κατανοητά από ειδικούς της πληροφορικής Κατάλληλα για τεχνικές λεπτομέρειες Σχεσιακές Βάσεις Δεδομένων Δρ. Ε. Κεχρής
Παραδείγματα Μοντέλων Δεδομένων Λογικά ή υψηλού επιπέδου: Μοντέλο Οντοτήτων-Συσχετίσεων (ΜΟΣ) Μοντέλα υλοποίησης Ιεραρχικό Δικτυωτό Σχεσιακό Αντικειμενοστραφές Σχεσιακές Βάσεις Δεδομένων Δρ. Ε. Κεχρής
Τύποι Μοντέλων Δεδομένων: μία εποπτική παρουσίαση Φυσικά ή χαμηλού επιπέδου Μοντέλα Εφαρμογής Λογικά ή υψηλού επιπέδου Σχεσιακό Μοντέλο - 1970 Διάγραμμα Οντοτήτων Συσχετίσεων - 1976 Σχεσιακές Βάσεις Δεδομένων Δρ. Ε. Κεχρής
Διάγραμμα Οντοτήτων-Συσχετίσεων (ΔΟΣ) Προτάθηκε από τον Peter Chen το 1976 Οι βασικές του έννοιες είναι: Οντότητα Γνώρισμα Συσχέτιση Υιοθετεί σύμβολα για την αναπαράσταση αυτών των εννοιών Peter Chen Σχεσιακές Βάσεις Δεδομένων Δρ. Ε. Κεχρής
Οντότητα Φυσικό ή νοητό αντικείμενο του πραγματικού κόσμου και για το οποίο θέλουμε να αποθηκεύσουμε δεδομένα στη βάση δεδομένων Κάθε οντότητα συμβολίζεται με ένα παραλληλόγραμμο Μέσα στο παραλληλόγραμμο γράφουμε το όνομα της οντότητας (συνήθως στον ενικό) ΟΝΤΟΤΗΤΑ Σχεσιακές Βάσεις Δεδομένων Δρ. Ε. Κεχρής
Παράδειγμα οντοτήτων ΚΑΘΗΓΗΤΗΣ ΤΜΗΜΑ Μία βάση δεδομένων αναπτύσσεται για ένα εκπαιδευτικό ίδρυμα Θέλουμε να περιγράψουμε αυτή τη βάση δεδομένων με ένα ΔΟΣ Μας δίνεται ότι στη βάση δεδομένων θα αποθηκεύονται δεδομένα που αφορούν τους ΚΑΘΗΓΗΤΕΣ και τα ΤΜΗΜΑΤΑ του εκπαιδευτικού ιδρύματος . Τότε, το ΔΟΣ που περιγράφει τη βάση δεδομένων, θα πρέπει να περιέχει τις οντότητες ΚΑΘΗΓΗΤΗΣ και ΤΜΗΜΑ: ΚΑΘΗΓΗΤΗΣ ΤΜΗΜΑ Σχεσιακές Βάσεις Δεδομένων Δρ. Ε. Κεχρής
Η οντότητα ΚΑΘΗΓΗΤΗΣ και οι αντιπρόσωποί της Η οντότητα ΚΑΘΗΓΗΤΗΣ αναπαριστάνει όλα τα φυσικά πρόσωπα του πραγματικού κόσμου που είναι καθηγητές στο εκπαιδευτικό ίδρυμα. Ισοδύναμα λέμε: Κάθε ένας καθηγητής του ιδρύματος είναι ένας αντιπρόσωπος της οντότητας ΚΑΘΗΓΗΤΗΣ. ΚΑΘΗΓΗΤΗΣ Σχεσιακές Βάσεις Δεδομένων Δρ. Ε. Κεχρής
Οι αντιπρόσωποι ως μέλη ενός συνόλου Οι αντιπρόσωποι μίας οντότητας αναπαριστάνονται ως μέλη ενός συνόλου. Μας δίνεται ότι στο ίδρυμα υπάρχουν 5 καθηγητές, οι Κ1, Κ2, Κ3, κ4 και Κ5: ΚΑΘΗΓΗΤΕΣ Κ1 Κ2 ΚΑΘΗΓΗΤΗΣ Κ3 Κ4 Κ5 Σχεσιακές Βάσεις Δεδομένων Δρ. Ε. Κεχρής
Η οντότητα ΤΜΗΜΑ και οι αντιπρόσωποί της Η οντότητα ΤΜΗΜΑ αναπαριστάνει όλα τα νοητά αντικείμενα του πραγματικού κόσμου που είναι τμήματα του εκπαιδευτικού ιδρύματος. Ισοδύναμα λέμε: Κάθε ένα τμήμα του ιδρύματος είναι ένας αντιπρόσωπος της οντότητας ΤΜΗΜΑ. Μας δίνεται ότι το ίδρυμα έχει δύο τμήματα: Τ1 και Τ2: ΤΜΗΜΑΤΑ ΤΜΗΜΑ Τ1 Τ2 Σχεσιακές Βάσεις Δεδομένων Δρ. Ε. Κεχρής
Γνωρίσματα Οι οντότητες έχουν ιδιότητες που τις περιγράφουν. Οι οντότητες έχουν ιδιότητες που τις περιγράφουν. Οι ιδιότητες αυτές ονομάζονται γνωρίσματα (attributes). Τα γνωρίσματα αναπαριστάνονται με την έλλειψη. Τα γνωρίσματα των οντοτήτων αναπαριστούν συγκεκριμένα δεδομένα που θέλουμε να αποθηκεύσουμε στη βάση δεδομένων Σχεσιακές Βάσεις Δεδομένων Δρ. Ε. Κεχρής
Γνωρίσματα Μας δίνεται ότι στη βάση δεδομένων για κάθε τμήμα θα αποθηκεύεται, το όνομά του και το τηλέφωνό του τμήματος: Τηλέφωνο Όνομα ΤΜΗΜΑ Σχεσιακές Βάσεις Δεδομένων Δρ. Ε. Κεχρής
Στο ΔΟΣ: γνωρίσματα, όχι τιμές Στο ΔΟΣ δεν εμφανίζονται πιθανές τιμές χαρακτηριστικών Στα μέλη ενός συνόλου, ωστόσο, μπορεί να εμφανίζεται οι τιμές κάθε γνωρίσματος Μας δίνεται ότι στο ίδρυμα υπάρχει το Τμήμα Πληροφορικής με τηλέφωνο 2321054321 και το Τμήμα Λογιστική με τηλέφωνο 2321065432. ΤΜΗΜΑΤΑ Τηλέφωνο Όνομα (Τμήμα Πληροφορικής, 23210 54321) ΤΜΗΜΑ Τ1 (Τμήμα Λογιστικής, 23210 65432) Τ2 Αναπαράσταση τμημάτων με την οντότητα Αναπαράσταση τμημάτων ως μέλη συνόλου Σχεσιακές Βάσεις Δεδομένων Δρ. Ε. Κεχρής
Είδη γνωρισμάτων Πρωτεύον (primary attribute) Σύνθετο (composite attribute) Πολλαπλών Τιμών (multi-valued attribute) Συναγόμενο (derived attribute) Σχεσιακές Βάσεις Δεδομένων Δρ. Ε. Κεχρής
Πρωτεύον γνώρισμα έχει μοναδικές τιμές Κάθε οντότητα πρέπει να έχει πρωτεύων γνώρισμα Π.χ: ο Αριθμός Φορολογικού Μητρώου καθηγητή είναι πρωτεύον γνώρισμα, επειδή δεν είναι δυνατό δύο καθηγητές να έχουν το ίδιο ΑΦΜ Τηλέφωνο ΑΦΜ ΚΑΘΗΓΗΤΗΣ Σχεσιακές Βάσεις Δεδομένων Δρ. Ε. Κεχρής
Σύνθετο Γνώρισμα Αποτελείται απλούστερα χαρακτηριστικά Π.χ: Η διεύθυνση ΚΑΘΗΓΗΤΗΣ Διεύθυνση Οδός Αριθμός Πόλη Σχεσιακές Βάσεις Δεδομένων Δρ. Ε. Κεχρής
Γνώρισμα Πολλαπλών Τιμών Μπορεί να πάρει περισσότερες από μία τιμές Π.χ: τα πτυχία ενός Καθηγητή ΚΑΘΗΓΗΤΗΣ Πτυχία Σχεσιακές Βάσεις Δεδομένων Δρ. Ε. Κεχρής
Συναγόμενο Γνώρισμα Υπολογίζεται με βάση άλλα χαρακτηριστικά Π.χ: η ηλικία του καθηγητή ΚΑΘΗΓΗΤΗΣ ΗμερΓέννησης Ηλικία Σχεσιακές Βάσεις Δεδομένων Δρ. Ε. Κεχρής
Συσχέτιση Οι οντότητες συσχετίζονται μεταξύ τους. Η συσχέτιση μεταξύ δύο οντοτήτων μπορεί να δείχνει συνεργασία, αλληλεπίδραση ή άλλου είδους σχέση. Η συσχέτιση συμβολίζεται με έναν ρόμβο. Μέσα στον ρόμβο αναγράφεται η ονομασία της συσχέτισης που είναι ένα ρήμα. Για παράδειγμα: ο καθηγητής ανήκει στο Τμήμα ΚΑΘΗΓΗΤΗΣ ΤΜΗΜΑ Ανήκει Σχεσιακές Βάσεις Δεδομένων Δρ. Ε. Κεχρής
Συσχέτιση Μία συσχέτιση διαβάζεται πάντοτε με δύο τρόπους. Στο παρακάτω παράδειγμα η συσχέτιση «Ανήκει» διαβάζεται: Ο Καθηγητής ανήκει σε Τμήμα ΚΑΙ Σε Τμήμα ανήκει Καθηγητής ΚΑΘΗΓΗΤΗΣ ΤΜΗΜΑ Ανήκει Σχεσιακές Βάσεις Δεδομένων Δρ. Ε. Κεχρής
Αναπαράσταση συσχέτισης ως σύνολο Μία συσχέτιση μπορεί να αναπαρασταθεί ως ένα σύνολο, όπως φαίνεται στο επόμενο παράδειγμα Στο τμήμα Πληροφορικής ανήκουν 2 καθηγητές και στο τμήμα Λογιστικής 3 (Ποιοί;) ΚΑΘΗΓΗΤΕΣ ΑΝΗΚΟΥΝ (012345678, Ανδρέας Ζάχαρης) Κ1 Α1 (023456789, Γεωργία Γλύκα) ΤΜΗΜΑΤΑ Κ2 Α2 (Τμήμα Πληροφορικής, 23210 54321) (034567891, Γεωργία Πίκρα) Τ1 Κ3 Α3 (Τμήμα Λογιστικής, 23210 65432) (045678912, Ελένη Ξύδη) Κ4 Τ2 Α4 (056789123, Ζαχαρίας Μούστος) Κ5 Α5 Σχεσιακές Βάσεις Δεδομένων Δρ. Ε. Κεχρής
Είδη Συσχετίσεων Τα είδη συσχετίσεων εξαρτώνται από: Την συμμετοχή Τον Λόγο Πολλαπλότητας Σχεσιακές Βάσεις Δεδομένων Δρ. Ε. Κεχρής
Συμμετοχή Ολική: όλοι οι αντιπρόσωποι μίας οντότητας συμμετέχουν σε μία συσχέτιση Η ολική συμμετοχή αναπαριστάνεται με συνεχόμενη γραμμή: Μερική: ορισμένοι (και όχι όλοι) οι αντιπρόσωποι μίας οντότητας συμμετέχουν σε μία συσχέτιση Η μερική συμμετοχή αναπαριστάνεται με διακεκομμένη γραμμή: Σχεσιακές Βάσεις Δεδομένων Δρ. Ε. Κεχρής
Παράδειγμα Συμμετοχής Ολική συμμετοχή από την πλευρά της οντότητας Α: ΟΛΟΙ οι αντιπρόσωποι της οντότητας Α συμμετέχουν στη συσχέτιση Σ Μερική συμμετοχή από την πλευρά της οντότητας Β: ΟΡΙΣΜΕΝΟΙ αντιπρόσωποι της οντότητας Β συμμετέχουν στην συσχέτιση Σ. Β Α Σ Σχεσιακές Βάσεις Δεδομένων Δρ. Ε. Κεχρής
Παράδειγμα συμμετοχής Η παρακάτω συσχέτιση έχει ολική συμμετοχή από το μέρος του Α και μερική από το μέρος του Β. Α Σ Β Α1 Σ1 Β1 Σ2 Β2 Α2 Σ3 Β3 Β Α Β4 Σ Σχεσιακές Βάσεις Δεδομένων Δρ. Ε. Κεχρής
Πολλαπλότητα Επάνω σε κάθε γραμμή ενός ΔΟΣ που συνδέει μία συσχέτιση με μία οντότητα σημειώνουμε είτε το σύμβολο 1 είτε το σύμβολο Μ (που διαβάζεται ΠΟΛΛΑ). Καθένα από τα σύμβολα αυτά από μόνο του λέγεται πολλαπλότητα και δίνει σημαντικές πληροφορίες για την συσχέτιση. Σχεσιακές Βάσεις Δεδομένων Δρ. Ε. Κεχρής
Παράδειγμα πολλαπλότητας Κάποιος αντιπρόσωπος από το Α συσχετίζεται με ΠΟΛΛΟΥΣ αντιπροσώπους του Β Κάθε αντιπρόσωπος από το Β συσχετίζεται με ΈΝΑΝ αντιπρόσωπο του Α Α Σ Β Α1 Σ1 Β1 Σ2 Β2 Α2 Β3 Σ3 Β4 Β Α 1 Μ Σ Σχεσιακές Βάσεις Δεδομένων Δρ. Ε. Κεχρής
Εναλλακτικά λέμε: Α Σ Β Β Α 1 Μ Σ Κάποιο Α συσχετίζεται με ΠΟΛΛΑ Β Κάποιο Α συσχετίζεται με ΠΟΛΛΑ Β Κάθε Β συσχετίζεται με ΈΝΑ Α Α Σ Β Α1 Σ1 Β1 Σ2 Β2 Α2 Β3 Σ3 Β4 Β Α 1 Μ Σ Σχεσιακές Βάσεις Δεδομένων Δρ. Ε. Κεχρής
Συσχέτιση «Ένα Προς Πολλά» Η πολλαπλότητα είναι 'πολλά' (Μ) από το μέρος της οντότητας Α και 'ένα' (1) από το μέρος της Β. Επομένως ο λόγος πολλαπλότητας της συσχέτισης Σ είναι 'πολλά προς ένα' αν αναγνώσουμε τη συσχέτιση ξεκινώντας από την οντότητα Α. Β Α 1 Μ Σ Σχεσιακές Βάσεις Δεδομένων Δρ. Ε. Κεχρής
Συσχέτιση «Πολλά προς Ένα» Υπενθύμιση: Κάθε συσχέτιση διαβάζεται και προς τις δύο κατευθύνσεις επομένως, Ο λόγος πολλαπλότητας της συσχέτισης είναι 'ένα προς πολλά' αν διαβάσουμε τη συσχέτιση ξεκινώντας από την οντότητα Β. Επειδή, όταν αναφερόμαστε σε μία συσχέτιση, δεν προσδιορίζουμε την οντότητα από την οποία ξεκινάμε την ανάγνωση, ο λόγος 'ένα προς πολλά' είναι ίδιος με τον λόγο πολλαπλότητας 'πολλά προς ένα'. Β Α 1 Μ Σ Σχεσιακές Βάσεις Δεδομένων Δρ. Ε. Κεχρής
Λόγος Πολλαπλότητας Δείχνει με πόσους αντιπροσώπους μίας άλλης οντότητες συσχετίζεται ένας αντιπρόσωπος κάποιας οντότητας Πιθανές τιμές: Ένα προς Ένα (1:1) Ένα προς Πολλά (1:Μ ή 1:Ν) που είναι ίδιο με το Πολλά προς Ένα Πολλά προς Πολλά (Μ:Μ ή Ν:Ν) Σχεσιακές Βάσεις Δεδομένων Δρ. Ε. Κεχρής
Παράδειγμα Λόγου Πολλαπλότητας Κάθε φοιτητής εγγράφεται σε ΈΝΑ τμήμα Κάποιο τμήμα έχει εγγεγραμμένους ΠΟΛΛΟΥΣ φοιτητές ΤΜΗΜΑ ΦΟΙΤΗΤΗΣ Ν 1 Εγγρά-φεται Σχεσιακές Βάσεις Δεδομένων Δρ. Ε. Κεχρής
Προσδιορισμός της συμμετοχής Ας υποθέσουμε ότι η συσχέτιση Σ συνδέει τις οντότητες Α και Β. Για να προσδιορίσουμε την συμμετοχή της οντότητας Α σε μία συσχέτιση Σ κάνουμε την εξής ερώτηση: «Όλα τα Α συμμετέχουν στη Σ;» Αν η απάντηση στην ερώτηση αυτή είναι «ΝΑΙ» τότε η συσχέτιση από το μέρος του Α είναι ολική. Αν η απάντηση στην ερώτηση αυτή είναι «ΟΧΙ, υπάρχει τουλάχιστον ένα Α που δεν συμμετέχει στη Σ», τότε η συσχέτιση από το μέρος του Α είναι μερική. Με την αντίστοιχη ερώτηση «Όλα τα Β συμμετέχουν στη Σ;» προσδιορίζουμε τη συμμετοχή του Β. Σχεσιακές Βάσεις Δεδομένων Δρ. Ε. Κεχρής
Προσδιορισμός της πολλαπλότητας Ας υποθέσουμε ότι η συσχέτιση Σ συνδέει τις οντότητες Α και Β. Για να προσδιορίσουμε την πολλαπλότητα από το μέρος της οντότητας Β κάνουμε την εξής ερώτηση: «Κάθε Α συσχετίζεται με ΕΝΑ Β;» Αν η απάντηση στην ερώτηση αυτή είναι «ΝΑΙ» τότε η πολλαπλότητα από το μέρος του Β είναι 1. Αν η απάντηση στην ερώτηση αυτή είναι «ΟΧΙ, υπάρχει τουλάχιστον ένα Α που συσχετίζεται με ΠΟΛΛΑ Β», τότε η πολλαπλότητα από το μέρος του Β είναι Μ. Με την αντίστοιχη ερώτηση «Κάθε Β συσχετίζεται με ΕΝΑ Α;» προσδιορίζουμε την πολλαπλότητα από το μέρος της οντότητας Α. Σχεσιακές Βάσεις Δεδομένων Δρ. Ε. Κεχρής
Ασθενείς Οντότητες Κανονικά κάθε οντότητα πρέπει να έχει ένα πρωτεύον χαρακτηριστικό. Υπάρχουν περιπτώσεις που αυτό δεν είναι δυνατό. Οντότητες που δεν έχουν δικό τους πρωτεύον κλειδί λέγονται ασθενείς οντότητες Οι οντότητες αυτές προσδιορίζονται μόνο σε σχέση με κάποιες άλλες οντότητες Σχεσιακές Βάσεις Δεδομένων Δρ. Ε. Κεχρής
Παράδειγμα Ασθενούς Οντότητας Όνομα ΑΦΜ Μερικό πρωτεύον χαρακτηριστικό Έχει ΠΑΙΔΙ ΚΑΘΗΓΗΤΗΣ Προσδιορίζουσα συσχέτιση Προσδιορίζουσα οντότητα Σχεσιακές Βάσεις Δεδομένων Δρ. Ε. Κεχρής
Αναδρομικές Συσχετίσεις Συνήθως μία συσχέτιση συνδέει μία οντότητα με μία άλλη οντότητα Υπάρχουν συσχετίσεις που συνδέουν μία οντότητα με τον εαυτό της. Οι συσχετίσεις αυτές λέγονται αναδρομικές Ο προσδιορισμός τους διευκολύνεται από την κατάλληλη λεκτική διαμόρφωση της πρότασης Σχεσιακές Βάσεις Δεδομένων Δρ. Ε. Κεχρής
Λεκτική Διαμόρφωση Οι σπουδαστές παρακολουθούν μαθήματα Ουσιαστικό Ρήμα ΜΑΘΗΜΑ ΣΠΟΥΔΑΣΤΗΣ Παρακο-λουθεί Σχεσιακές Βάσεις Δεδομένων Δρ. Ε. Κεχρής
Εντοπισμός Αναδρομικής Συσχέτισης [ορισμένα] Μαθήματα προαπαιτούν [κάποια άλλα] μαθήματα Ρήμα Προ-απαιτεί Ουσιαστικό Ουσιαστικό ΜΑΘΗΜΑ Σχεσιακές Βάσεις Δεδομένων Δρ. Ε. Κεχρής
ΔΟΣ και Περιορισμοί Δεν επιτρέπει την καταγραφή των περιορισμών που πρέπει να ικανοποιούνται από τα δεδομένα στο στάδιο της υλοποίησης της βάσης δεδομένων, με χρήση ενός ΣΔΒΔ, είναι δυνατή η περιγραφή των περιορισμών. Οι περιορισμοί αυτοί αποθηκεύονται μόνιμα στον κατάλογο του ΣΔΒΔ και επιβάλλονται αυτόματα από αυτό. Σχεσιακές Βάσεις Δεδομένων Δρ. Ε. Κεχρής
Ανάπτυξη ΔΟΣ στην πράξη Συλλογή κατάλληλων πληροφοριών από τους χρήστες Σταδιακή ανάπτυξη του ΔΟΣ Χρήση κατάλληλων εργαλείων Σχεσιακές Βάσεις Δεδομένων Δρ. Ε. Κεχρής
Συλλογή πληροφοριών Οι πληροφορίες συλλέγονται από: Συνεντεύξεις με χρήστες Επιχειρησιακά έγγραφα Επιτόπια παρατήρηση Σχεσιακές Βάσεις Δεδομένων Δρ. Ε. Κεχρής
Χρήση Κατάλληλων Εργαλείων Υπάρχουν ειδικά προγράμματα που μπορούν να βοηθήσουν στην ανάπτυξη ΜΟΣ: Γενικά σχεδιαστικά προγράμματα π.χ. Smartdraw (www.smartdraw.com) Εξειδικευμένα προγράμματα CASE tools τα οποία ελέγχουν και επιβάλλουν κανόνες σχεδίασης Π.χ: S-designer Σχεσιακές Βάσεις Δεδομένων Δρ. Ε. Κεχρής
Σταδιακή Ανάπτυξη ΔΟΣ Α’ στάδιο: συλλέγονται πληροφορίες από κάθε χρήστη χωριστά Για κάθε χρήστη αναπτύσσεται το ΔΟΣ που περιγράφει τις πληροφορίες που έδωσε ο χρήστης αυτός Β’ στάδιο: τα επιμέρους ΔΟΣ των χρηστών ενοποιούνται σε ένα ενιαίο (συγκεντρωτικό ΜΟΣ) Σχεσιακές Βάσεις Δεδομένων Δρ. Ε. Κεχρής