Συσχετίσεις Υπερκλάσης/Υποκλάσης και Εξειδίκευση (ή Γενίκευση) Κανόνας για Ιεραρχίες (ή πλέγμα) Κανόνας για Διαμοιραζόμενες Υποκλάσεις Κανόνας για απεικόνιση Κατηγοριών Απεικόνιση του ΕΟΣ Μοντέλου στο Σχεσιακό Μοντέλο Αντζουλάτος Γεράσιμος antzoulatos@upatras.gr Τμήμα Εφαρμογών Πληροφορικής στην Διοίκηση και Οικονομία ΤΕΙ Πατρών - Παράρτημα Αμαλιάδας 14 Νοεμβρίου 2012
Συσχετίσεις Υπερκλάσης/Υποκλάσης και Εξειδίκευση (ή Γενίκευση) Κανόνας για Ιεραρχίες (ή πλέγμα) Κανόνας για Διαμοιραζόμενες Υποκλάσεις Κανόνας για απεικόνιση Κατηγοριών Περιεχομενα Παρουσίασης 1 Συσχετίσεις Υπερκλάσης/Υποκλάσης και Εξειδίκευση (ή Γενίκευση) Βασικός Κανόνας Κανόνας 2ος: Μη Επικαλυπτόμενες Κλάσεις/Υποκλάσεις Ολική Συμμετοχή Κανόνας 3ος: Μη Επικαλυπτόμενες Κλάσεις/Υποκλάσεις Κανόνας 4ος: Επικαλυπτόμενες Κλάσεις/Υποκλάσεις 2 Κανόνας για Ιεραρχίες (ή πλέγμα) 3 Κανόνας για Διαμοιραζόμενες Υποκλάσεις 4 Κανόνας για απεικόνιση Κατηγοριών
Συσχετίσεις Υπερκλάσης/Υποκλάσης Κανόνας: Για την απεικόνιση των κλάσεων/υποκλάσεων στο Σχεσιακό Μοντέλο θα πρέπει να δημιουργηθεί ένας πίνακας για κάθε μία από τις οντότητες Το πρωτεύον κλειδί Κ της κλάσης Ο θα συμπεριληθεί ως νέο πεδίο σε κάθε έναν πίνακα που αντιστοιχούν στις υποκλάσεις O 1, O 2,..., O n Πρωτεύον κλειδί κάθε ενός πίνακα των υποκλάσεων O 1, O 2,..., O n θα είναι το Κ Παρατηρήσεις Ο κανόνας αυτός καλείται και πολλαπλών σχέσεων Ισχύει για όλους τους περιορισμούς της εξειδίκευσης: μη επικαλυπτόμενη, επικαλυπτόμενη, ολική ή μερική
Συσχετίσεις Υπερκλάσης/Υποκλάσης - Παράδειγμα Η απεικόνιση του παρακάτω ΕΟΣ:
Συσχετίσεις Υπερκλάσης/Υποκλάσης - Παράδειγμα στο λογικό σχεσιακό μοντέλο με βάση τον παραπάνω κανόνα είναι η ακόλουθη: ΕΡΓΑΖΟΜΕΝΟΣ ΑΡΙΘΜΟΣ ΤΑΥΤΟΤΗΤΑΣ ΟΝΟΜΑ ΕΠΩΝΥΝΟ ΗΜΕΡ ΓΕΝ ΔΙΕΥΘΥΝΣΗ Είδος Εργασίας ΓΡΑΜΜΑΤΕΑΣ ΑΡΙΘΜΟΣ ΤΑΥΤΟΤΗΤΑΣ ΤΕΧΝΙΚΟΣ ΑΡΙΘΜΟΣ ΤΑΥΤΟΤΗΤΑΣ ΜΗΧΑΝΙΚΟΣ ΑΡΙΘΜΟΣ ΤΑΥΤΟΤΗΤΑΣ ΤΑΧ ΔΑΚΤΥΛ ΒΑΘ ΤΕΧΝ ΕΙΔΙΚΟΤΗΤΑ
Συσχετίσεις Υπερκλάσης/Υποκλάσης Εάν λάβουμε υπόψη τους περιορισμούς που υπάρχουν κάθε φορά για τις υπερκλάσεις/υποκλάσεις, τότε η μεθοδολογία του σχεδιασμού μπορεί περαιτέρω να εξειδικευθεί, όπως φαίνεται παρακάτω:
Μη Επικαλυπτόμενες Κλάσεις/Υποκλάσεις με Ολική Συμμετοχή Κανόνας: Δημιουργείται ένας πίνακας για κάθε μία από τις υποκλάσεις O 1, O 2,..., O n Ο κάθε πίνακας θα περιέχει επιπλέον και τα γνωρίσματα της κλάσης Πρωτεύον κλειδί κάθε ενός πίνακα των υποκλάσεων O 1, O 2,..., O n θα είναι το πρωτεύον κλειδί Κ της κλάσης Παρατηρήσεις Εάν η εξειδίκευση δεν είναι ολική τότε οι οντότητες που δεν ανήκουν σε κάποια από τις υποκλάσεις χάνονται Εάν η εξειδίκευση είναι επικαλυπτόμενη τότε για τις οντότητες που ανήκουν σε περισσότερες από μία υποκλάσεις, τα γνωρίσματα που κληρονομούνται από την υπερκλάση θα επαναλαμβάνονται σε περισσότερους από έναν πίνακα
Μη Επικαλυπτόμενες Κλάσεις/Υποκλάσεις με Ολική Συμμετοχή - Παράδειγμα Για το παρακάτω ΕΟΣ: η απεικόνισή του στο σχεσιακό μοντέλο χρησιμοποιώντας τον κανόνα της προηγούμενης διαφάνειας δίνει τους πίνακες: ΕΠΙΒΑΤΙΚΟ Κωδ Οχήμ Αριθ Κυκλ Τιμή Ανωτ Ταχ Αρ Επιβατών ΦΟΡΤΗΓΟ Κωδ Οχήμ Αριθ Κυκλ Τιμή Αρ Αξόνων Χωρητικότητα
Μη Επικαλυπτόμενες Κλάσεις/Υποκλάσεις Κανόνας μιας Σχέσης : Δημιουργείται μόνο ένας πίνακας που αντιστοιχεί στην οντότητα-κλάση και συμπεριλαμβάνονται σε αυτόν όλα τα κατηγορήματα των οντοτήτων-υποκλάσεων O 1, O 2,..., O n Επιπλέον στον πίνακα αυτόν συμπεριλαμβάνεται ένα νέο γνώρισμα ένδειξης τύπου που δείχνει την υποκλάση στην οποία ανήκει κάθε πλειάδα (ενδεχομένως καμία) Πρωτεύον κλειδί του πίνακα θα είναι το πρωτεύον κλειδί Κ της κλάσης Παρατηρήσεις Μια οντότητα που δεν ανήκει σε κάποιες από τις υποκλάσεις θα έχει τιμές NULL στα ιδιαίτερα γνωρίσματα αυτών των υποκλάσεων Δεν ενδείκνυται αν οι υποκλάσεις έχουν πολλά ιδιαίτερα γνωρίσματα Αν υπάρχουν n υποκλάσεις, τότε το γνώρισμα ένδειξης τύπου μπορεί να πάρει τιμές από το σύνολο {1, 2,..., n}. Αν η εξειδίκευση είναι μερική, το γνώρισμα ένδειξης τύπου μπορεί να έχει τιμές NULL στις πλειάδες που δεν ανήκουν σε κάποια υποκλάση
Μη Επικαλυπτόμενες Κλάσεις/Υποκλάσεις - Παράδειγμα Η απεικόνιση του παρακάτω ΕΟΣ: με βάση τον παραπάνω κανόνα χρησιμοποιώντας το γνώρισμα Είδος Εργασίας να παίζει το ρόλο του γνωρίσματος ένδειξης τύπου: ΕΡΓΑΖΟΜΕΝΟΣ ΑΡΙΘΜΟΣ ΤΑΥΤΟΤΗΤΑΣ ΟΝΟΜΑ ΕΠΩΝΥΝΟ ΗΜΕΡ ΓΕΝ ΔΙΕΥΘΥΝΣΗ Είδος Εργασίας ΤΑΧ ΔΑΚΤΥΛ ΒΑΘ ΤΕΧΝ ΕΙΔΙΚΟΤΗΤΑ
Επικαλυπτόμενες Κλάσεις/Υποκλάσεις Κανόνας μιας Σχέσης : Δημιουργείται μόνο ένας πίνακας που αντιστοιχεί στην οντότητα-κλάση και συμπεριλαμβάνονται σε αυτόν όλα τα κατηγορήματα των οντοτήτων-υποκλάσεων Στον πίνακα προσθέτουμε τόσα γνωρίσματα (Boolean), όσες είναι και οι υποκλάσεις. Το κάθε ένα από αυτά τα πεδία θα αντιπροσωπεύει μια υποκλάση και η τιμή του θα υποδεικνύει αν η αντίστοιχη εγγραφή ανήκει στην υποκλάση αυτή Κλειδί του πίνακα μπορεί να είναι ο συνδυασμός του πρωτεύοντος κλειδιού της κλάσης και των νέων πεδίων Παρατήρηση Χρησιμοποιείται για την αντιμετώπιση επικαλυπτόμενων κλάσεων με την εισαγωγή n λογικών πεδίων, ένα για κάθε υποκλάση, όπου κάθε γνώρισμα ένδειξης τύπου μπορεί να έχει πεδίο τιμών {ναι, όχι}, όπου η τιμή ναι σημαίνει πως η πλειάδα είναι μέλος της συγκεκριμένης υποκλάσης
Επικαλυπτόμενες Κλάσεις/Υποκλάσεις - Παράδειγμα Η απεικόνιση του παρακάτω ΕΟΣ: με βάση τον παραπάνω κανόνα χρησιμοποιώντας τα γνωρίσματα Ενδ Κατ και Ενδ Προμ να παίζουν το ρόλο των γνωρισμάτων ένδειξης τύπου: ΑΝΤΑΛΛΑΚΤΙΚΟ Κωδ Ανταλ Περιγραφή Ενδ Κατ Αρ Σχεδίου Ημερ Παραγγελίας Παρτίδα Ενδ Προμ Ονομ Κατασκευαστή Τιμή
Συσχετίσεις Υπερκλάσης/Υποκλάσης και Εξειδίκευση (ή Γενίκευση) Κανόνας για Ιεραρχίες (ή πλέγμα) Κανόνας για Διαμοιραζόμενες Υποκλάσεις Κανόνας για απεικόνιση Κατηγοριών Ιεραρχία (ή πλέγμα) εξειδίκευσης (ή γενίκευσης) Σε μια πολυεπίπεδη ιεραρχία (ή πλέγμα) εξειδίκευσης (ή γενίκευσης) δεν είναι απαραίτητο να χρησιμοποιηθεί ο ίδιος κανόνας απεικόνισης για όλες τις εξειδικεύσεις Αντίθετα, μπορούμε να χρησιμοποιήσουμε έναν κανόνα απεικόνισης για τμήμα της ιεραρχίας ή του πλέγματος και διαφορετικές επιλογές για άλλα μέρη
Συσχετίσεις Υπερκλάσης/Υποκλάσης και Εξειδίκευση (ή Γενίκευση) Κανόνας για Ιεραρχίες (ή πλέγμα) Κανόνας για Διαμοιραζόμενες Υποκλάσεις Κανόνας για απεικόνιση Κατηγοριών Απεικόνιση Διαμοιραζόμενων Υποκλάσεων Για μια διαμοιραζόμενη υποκλάση, όπως είναι ο ΔΙΕΥΘΥΝΩΝ ΜΗΧΑΝΙΚΟΣ του σχήματος, μπορούμε να εφαρμόσουμε οποιονδήποτε κανόνα από τους παραπάνω αν και συνήθως χρησιμοποιείται ο πρώτος κανόνας Οι κλάσεις αυτές πρέπει όλες να έχουν το ίδιο γνώρισμα-κλειδί
Συσχετίσεις Υπερκλάσης/Υποκλάσης και Εξειδίκευση (ή Γενίκευση) Κανόνας για Ιεραρχίες (ή πλέγμα) Κανόνας για Διαμοιραζόμενες Υποκλάσεις Κανόνας για απεικόνιση Κατηγοριών Απεικόνιση Κατηγοριών Κανόνας Για την απεικόνιση μιας κατηγορίας της οποίας οι ορίζουσες υπερκλάσεις έχουν διαφορετικά κλειδιά συνηθίζεται να ορίζεται ένα νέο γνώρισμα-κλειδί, το οποίο ονομάζεται αναπληρωματικό κλειδί, κατά τη δημιουργία μιας σχέσης (πίνακα) που αντιστοιχεί στην κατηγορία Το αναπληρωματικό κλειδί προστίθεται ως ξένο κλειδί σε κάθε σχέση που αντιστοιχεί σε υπερκλάση της κατηγορίας, προκειμένου να προσδιορισθούν οι αντιστοιχίες στις τιμές μεταξύ του αναπληρωματικού κλειδιού και του κλειδιού κάθε υπερκλάσης Για μια κατηγορία της οποίας οι υπερκλάσεις έχουν το ίδιο κλειδί, δεν χρειάζεται να ορισθεί αναπληρωματικό κλειδί
Συσχετίσεις Υπερκλάσης/Υποκλάσης και Εξειδίκευση (ή Γενίκευση) Κανόνας για Ιεραρχίες (ή πλέγμα) Κανόνας για Διαμοιραζόμενες Υποκλάσεις Κανόνας για απεικόνιση Κατηγοριών Απεικόνιση Κατηγοριών - Παράδειγμα Για την απεικόνιση της κατηγορίας ΙΔΙΟΚΤΗΤΗΣ του σχήματος, η οποία είναι υποσύνολο της ένωσης των τριών υπερκλάσεων ΑΤΟΜΟ, ΤΡΑΠΕΖΑ και ΕΤΑΙΡΙΑ γίνονται τα ακόλουθα: δημιουργείται μια σχέση ΙΔΙΟΚΤΗΤΗΣ που αντιστοιχεί στην κατηγορία και συμπεριλαμβάνεται στη σχέση κάθε γνώρισμα της κατηγορίας πρωτεύον κλειδί της σχέσης ΙΔΙΟΚΤΗΤΗΣ είναι το αναπληρωματικό κλειδί Κωδ Ιδιοκτ Προσθέτουμε ως το αναπληρωματικό κλειδί Κωδ Ιδιοκτ ως ξένο κλειδί σε κάθε σχέση που αντιστοιχεί στις υπερκλάσεις της κατηγορίας
Συσχετίσεις Υπερκλάσης/Υποκλάσης και Εξειδίκευση (ή Γενίκευση) Κανόνας για Ιεραρχίες (ή πλέγμα) Κανόνας για Διαμοιραζόμενες Υποκλάσεις Κανόνας για απεικόνιση Κατηγοριών Απεικόνιση Κατηγοριών - Παράδειγμα Συνεπώς η κατηγορία απεικονίζεται στο Σχεσιακό μοντέλο ως εξής: ΑΤΟΜΟ Αρ Ταυτ Αρ Διπλ Οδήγ Ονομα Διεύθυνση Κωδ Ιδιοκτ ΤΡΑΠΕΖΑ Ονομα Τρ Διεύθυνση Τρ Κωδ Ιδιοκτ ΕΤΑΙΡΙΑ Ονομα Ετ Διεύθυνση Ετ Κωδ Ιδιοκτ ΙΔΙΟΚΤΗΤΗΣ Κωδ Ιδιοκτ ΟΧΗΜΑ ΜΕ ΑΔΕΙΑ Κωδ Οχήμ Αριθμ Κυκλοφ ΕΠΙΒΑΤΙΚΟ Κωδ Οχήμ Είδος Επιβ Κατασκευαστής Ε Μοντέλο Ε Ετος Κ Ε ΦΟΡΤΗΓΟ Κωδ Οχήμ Κατασκευαστής Φ Μοντέλο Φ Ετος Κ Φ Χωρητικότητα ΚΑΤΕΧΕΙ Κωδ Ιδιοκτ Κωδ Οχήμ Ημερ Αγοράς Κανονική ΗΚατάσχεση
Συσχετίσεις Υπερκλάσης/Υποκλάσης και Εξειδίκευση (ή Γενίκευση) Κανόνας για Ιεραρχίες (ή πλέγμα) Κανόνας για Διαμοιραζόμενες Υποκλάσεις Κανόνας για απεικόνιση Κατηγοριών Προτεινόμενη Βιβλιογραφία 1 R. Elmasri - S.B. Navathe, μετάφραση Μ. Χατζόπουλος, Θεμελιώδεις Αρχές Συστημάτων Βάσεων Δεδομένων - Τόμος Α, 3η έκδοση, Δίαυλος 2 Ταμπακάς Β. Βάσεις Δεδομένων, αυτοέκδοση