Μετασχηματισμός διαγράμματος ER σε σχεσιακό σχήμα ΒΔ ΣΤΟΧΟΣ Στόχο του παρόντος εργαστηρίου αποτελεί η κατανόηση και η εφαρμογή της μεθοδολογίας του μετασχηματισμού ενός διαγράμματος ER στο αντίστοιχο σχεσιακό σχήμα βάσης δεδομένων. Αφού επεξηγηθούν/ κατανοηθούν τα επιμέρους, η μεθοδολογία εφαρμόζεται στην περίπτωση υλοποίησης στο περιβάλλον του Power Architect του σχεσιακού σχήματος μιας βάσης δεδομένων η οποία καταχωρεί πληροφορία σχετική με ακαδημαϊκά ιδρύματα, σχολές, τμήματα, μαθήματα, καθηγητές και φοιτητές. ΣΧΕΤΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΥΛΙΚΟ Γίνεται χρήση της μεθοδολογίας των διαγραμμάτων ER και των σχεσιακών σχημάτων, όπως αυτά ορίζονται και χρησιμοποιούνται στο βιβλίο των Ramakrishnan και Gehrke (Κεφάλαια 2 και 3). ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ Σύνολο συσχετίσεων ένα-προς-ένα Στην Εικόνα 4.1 παρουσιάζεται το διάγραμμα ER της συσχέτισης δύο πινάκων Α(ΚΚ Α, Α 1, Α 2,..., Α κ ) και Β(ΚΚ Β, Β 1, Β 2,..., Β μ ) με κύρια κλειδιά ΚΚ Α και ΚΚ Β, αντίστοιχα (σημειώνεται ότι το κάθε ένα κύριο κλειδί μπορεί να είναι σύνθετο, δηλαδή να προκύπτει από το συνδυασμό δύο ή περισσοτέρων στηλών του αντίστοιχου πίνακα). Για να υλοποιηθεί/υποστηριχθεί το ένα-προς-ένα σύνολο συσχετίσεων μεταξύ των δύο συνόλων οντοτήτων (πινάκων), πρέπει να συμβαίνει/ επιβληθεί ένα από τα παρακάτω:. Εικόνα 4.1 Σύνολο συσχετίσεων ένα-προς-ένα (διάγραμμα ER) Για να υλοποιηθεί/υποστηριχθεί η ένα-προς-ένα συσχέτιση μεταξύ των δύο πινάκων, πρέπει να συμβαίνει/επιβληθεί ένα από τα παρακάτω: 1. Οι δύο πίνακες να έχουν το ίδιο κύριο κλειδί, δηλαδή το ΚΚ Α και να αντλούν τις
τιμές τους από το ίδιο πεδίο τιμών και (σημασιολογικά) να αναφέρονται στο ίδιο χαρακτηριστικό/γνώρισμα. Η περίπτωση απεικονίζεται στο επόμενο σχήμα σχεσιακής βάσης δεδομένων με ταυτόσημο ονοματισμό των δύο κύριων κλειδιών: Α(ΚΚ Α, Α 1, Α 2,..., Α κ ) Β(ΚΚ Α, Β 1, Β 2,..., Β μ ) 2. Με την επιβολή της παρουσίας του κύριου κλειδιού του ενός πίνακα στη δομή του άλλου ως ξένο κλειδί, με την ταυτόχρονη ισχύ ενός επιπλέον περιορισμού ακεραιότητας των δεδομένων: το ξένο κλειδί να παίρνει μοναδικές τιμές, να μην υπάρχουν, δηλαδή, δύο εγγραφές του πίνακα ο οποίος το φιλοξενεί οι οποίες να καταχωρούν την ίδια τιμή για το ξένο κλειδί: Α(ΚΚ Α, Α 1, Α 2,..., Α κ, ΚΚ Β ) Β(ΚΚ Β, Β 1, Β 2,..., Β μ ) ή Α(ΚΚ Α, Α 1, Α 2,..., Α κ ) Β(ΚΚ Β, Β 1, Β 2,..., Β μ, ΚΚ Α ) Στο σημείο αυτό διακρίνουμε επιπλέον υπο-περιπτώσεις των παραπάνω (1) και (2), όσον αφορά στο υποχρεωτικό ή όχι της συμμετοχής του κάθε ενός από τα σύνολα οντοτήτων (πινάκων Α και Β) στην ένα-προς-ένα συσχέτιση. Κατά τα γνωστά, ο περιορισμός της υποχρεωτικής συμμετοχής συνόλου οντοτήτων σε σύνολο συσχετίσεων απεικονίζεται στο διάγραμμα ER με παχιά (bold) τη γραμμή της συσχέτισης. Στην περίπτωση (1), υποχρεωτική συμμετοχή του συνόλου/πίνακα Α σημαίνει ότι ο πληθυσμός του (δηλαδή, οι οντότητες-γραμμές του) είναι μικρότερος (στον αριθμό) ή ίσος του πληθυσμού του Β. Αντίστοιχα, όσον αφορά στην υποχρεωτική συμμετοχή του συνόλου/πίνακα Β. Προφανώς, υποχρεωτική συμμετοχή και του Α και του Β σημαίνει ότι (αριθμητικά) οι δύο πληθυσμοί ισούνται: υπάρχει μία αμφιμονοσήμανη, ένα-προς-ένα, αντιστοίχιση μεταξύ των γραμμών του Α και του Β. Στην περίπτωση (2), υποχρεωτική συμμετοχή του συνόλου/πίνακα που φιλοξενεί στη δομή του το ξένο κλειδί σημαίνει ότι το τελευταίο, εκτός από το ότι παίρνει μοναδικές τιμές, υπόκειται σε έναν επιπλέον περιορισμό ακεραιότητας των δεδομένων: δεν του επιτρέπεται να μένει κενό (καλύτερα: να παίρνει την 'τιμή' NULL) σε μία ή περισσότερες γραμμές του αντίστοιχου πίνακα. Σύνολο συσχετίσεων ένα-προς-πολλά Η Εικόνα 4.2 παρουσιάζει το αντίστοιχο διάγραμμα ER: όσον αφορά σε κάθε μία από τις οντότητες του συνόλου οντοτήτων/πίνακα Α, αυτή μπορεί να συσχετίζεται με καμία, μία ή περισσότερες από τις οντότητες του συνόλου/πίνακα Β, αντίθετα: κάθε μία από τις οντότητες του συνόλου οντοτήτων/πίνακα Β μπορεί να συσχετίζεται με καμία, ή το πολύ μία από τις οντότητες του συνόλου/πίνακα Α (περιορισμός κλειδιού).
Εικόνα 4.2 Σύνολο συσχετίσεων ένα-προς-πολλά (διάγραμμα ER) Το σχήμα απεικονίζεται σε σχεσιακή βάση δεδομένων με την 'εμφύτευση' του κύριου κλειδιού του πίνακα Α στη δομή του πίνακα Β: Α(ΚΚ Α, Α 1, Α 2,..., Α κ ) Β(ΚΚ Β, Β 1, Β 2,..., Β μ, ΚΚ Α ) Υποχρεωτική συμμετοχή του συνόλου οντοτήτων Β στο σύνολο συσχετίσεων θα σημαίνει περιορισμό για το ξένο κλειδί ΚΚ Α ώστε αυτό να μην μπορεί να πάρει την 'τιμή' NULL. Υποχρεωτική συμμετοχή του συνόλου οντοτήτων Α στο σύνολο συσχετίσεων Α/Β θα σημαίνει την ισχύ ενός, αντίστοιχου, περιορισμού ακεραιότητας των δεδομένων ο οποίος δεν μπορεί να απεικονισθεί/υποστηριχθεί από το σχεσιακό μοντέλο της βάσης δεδομένων (απεικονίζεται στο διάγραμμα ER και απομένει να υποστηριχθεί προγραμματιστικά κατά την υλοποίησή του σε σχήμα σχεσιακής βάσης δεδομένων). Αντίστοιχα για την περίπτωση όπου ο περιορισμός κλειδιού εφαρμόζεται από την πλευρά της συμμετοχής του συνόλου οντοτήτων Α στο σύνολο συσχετίσεων Α/Β. Σύνολο συσχετίσεων πολλά-προς-πολλά Η Εικόνα 4.3 παρουσιάζει το αντίστοιχο διάγραμμα ER: κάθε μία από τις οντότητητες των συνόλων οντοτήτων/πινάκων Α και Β μπορεί να συσχετίζεται με καμία, μία ή περισσότερες από τις οντότητες του έτερου συνόλου οντοτήτων.
Εικόνα 4.3 Σύνολο συσχετίσεων πολλά-προς-πολλά (διάγραμμα ER) Η περίπτωση αντιμετωπίζεται με τη δημιουργία ενός πίνακα (μπορούμε να πούμε: ενός 'τεχνητού' συνόλου οντοτήτων) Α_Β, κύριο κλειδί του οποίου αποτελεί ο συνδυασμός των δύο ξένων κλειδιών μέσω των οποίων οι εγγραφές του συσχετίζονται με τις εγγραφές των πινάκων Α και Β: Α_Β(ΚΚ Α, ΚΚ Β ) Από κατασκευής, οι εγγραφές του πίνακα Α_Β συσχετίζονται με ένα-προς- πολλά τρόπο με αντίστοιχες εγγραφές στους δύο πίνακες Α και Β. Μάλιστα, η συμμετοχή του (τεχνητού) συνόλου οντοτήτων Α_Β σε κάθε ένα από αυτά τα δύο σύνολα συσχετίσεων είναι υποχρεωτική (Εικόνα 4.4). Εικόνα 4.4 Αναγωγή πολλά-προς-πολλά συνόλου συσχετίσεων σε δύο ένα προς-πολλά (ER) Έχοντας ανάγει την περίπτωση του διαγράμματος ER με πολλά-προς-πολλά σύνολο συσχετίσεων (Εικόνα 4.3) σε ισοδύναμο διάγραμμα ER με δύο ένα- προς-πολλά σύνολα συσχετίσεων (Εικόνα 4.4), συνεχίζουμε κατά τα γνωστά (περίπτωση συνόλου συσχετίσεων ένα-προς-πολλά, παραπάνω). Στην περίπτωση όπου έχουμε υποχρεωτική συμμετοχή ενός (ή και των δύο) των
συνόλων οντοτήτων Α και Β στην πολλά-προς-πολλά συσχέτιση (Εικόνα 4.3), η υποχρεωτική αυτή συμμετοχή μεταφέρεται και απεικονίζεται στο αντίστοιχο μέρος του διαγράμματος ER στην Εικόνα 4.4 (δηλαδή, υποχρεωτική συμμετοχή του Α στην Α_Β/Α ή/και υποχρεωτική συμμετοχή του Β στην Α_Β/Β) και αντιμετωπίζεται/ υποστηρίζεται κατά τα γνωστά (περίπτωση συνόλου συσχετίσεων ένα-προς-πολλά, παραπάνω). Σύνολα τριαδικών συσχετίσεων Η Εικόνα 4.5 παρουσιάζει το διάγραμμα ER ενός συνόλου τριαδικών συσχετίσεων (Α/Β/Γ) ανάμεσα σε τρία σύνολα οντοτήτων (Α, Β και Γ). Εικόνα 4.5 Τριαδικό σύνολο συσχετίσεων (διάγραμμα ER) Σε τρόπο ανάλογο εκείνου του συνόλου συσχετίσεων πολλά-προς-πολλά, η περίπτωση αντιμετωπίζεται με τη δημιουργία ενός πίνακα (μπορούμε να πούμε: ενός 'τεχνητού' συνόλου οντοτήτων) Α_Β_Γ, κύριο κλειδί του οποίου αποτελεί ο συνδυασμός των τριών ξένων κλειδιών μέσω των οποίων οι εγγραφές του συσχετίζονται με τις εγγραφές των πινάκων Α, Β και Γ: Α_Β_Γ(ΚΚ Α, ΚΚ Β, ΚΚ Γ ) Από κατασκευής, οι εγγραφές του πίνακα Α_Β_Γ συσχετίζονται με ένα-προς- πολλά τρόπο με αντίστοιχες εγγραφές στους τρεις πίνακες Α, Β και Γ. Μάλιστα, η συμμετοχή του (τεχνητού) συνόλου οντοτήτων Α_Β_Γ σε κάθε ένα από αυτά τα τρία σύνολα συσχετίσεων είναι υποχρεωτική (Εικόνα 4.6).
Εικόνα 4.6 Αναγωγή τριαδικού συνόλου συσχετίσεων σε τρία ένα-προςπολλά (ER) Έχοντας ανάγει την περίπτωση του διαγράμματος ER ενός συνόλου τριαδικών συσχετίσεων (Εικόνα 4.5) σε ισοδύναμο διάγραμμα ER με τρία ένα-προς-πολλά σύνολα συσχετίσεων (Εικόνα 4.6), συνεχίζουμε κατά τα γνωστά (περίπτωση συνόλου συσχετίσεων ένα-προς-πολλά, παραπάνω). Στην περίπτωση όπου έχουμε υποχρεωτική συμμετοχή ενός ή δύο ή τιρών από τα σύνολα οντοτήτων Α, Β και Γ στην πολλά-προς-πολλά συσχέτιση (Εικόνα 4.5), η υποχρεωτική αυτή συμμετοχή μεταφέρεται και απεικονίζεται στο αντίστοιχο μέρος του διαγράμματος ER στην Εικόνα 4.6 (δηλαδή, υποχρεωτική συμμετοχή του Α στην Α_Β_Γ/Α ή/και υποχρεωτική συμμετοχή του Β στην Α_Β_Γ/Β ή/και υποχρεωτική συμμετοχή του Γ στην Α_Β_Γ/Γ) και αντιμετωπίζεται/υποστηρίζεται κατά τα γνωστά (περίπτωση συνόλου συσχετίσεων ένα-προς-πολλά, παραπάνω). Γενική παρατήρηση Στην περίπτωση κατά την οποία το σύνολο συσχετίσεων συμπεριλαμβάνει και δικά του, ιδιαίτερα, χαρακτηριστικά, τα τελευταία 'μετακομίζουν' κατάλληλα στον πίνακα ο οποίος φιλοξενεί το/α ξένο/α κλειδί/ιά. Ο αναγνώστης καλείται να κατανοήσει ότι τέτοια περίπτωση δεν είναι δυνατόν να προκύψει στην περίπτωση των ένα-προς-ένα συνόλων συσχετίσεων, καθόσον η σημασιολογία της περίπτωσης ισοδυναμεί με μια αντίστοιχη όπου τα χαρακτηριστικά του συνόλου συσχετίσεων επισυνάπτονται στη δομή ενός εκ των δύο συνόλων οντοτήτων τα οποία συσχετίζονται. ΠΕΡΙΒΑΛΛΟΝ ΓΙΑ ΕΞΑΣΚΗΣΗ
Περιβάλλον εξάσκησης και υλοποίησης των σχεσιακών σχημάτων βάσεων δεδομένων για το σημερινό εργαστήριο είναι η εφαρμογή Power Architect. Μπορείτε να κατεβάσετε την εφαρμογή από την παρακάτω: http://vod.it.teithe.gr/dbtech/architect-setup-windows-jdbc-0.9.15.exe ΣΥΝΟΠΤΙΚΟΣ ΟΔΗΓΟΣ ΧΡΗΣΗΣ ΤΟΥ POWER ARCHITECT Σχεδίαση σχεσιακού σχήματος 1. Επιλέξτε το εικονίδιο «Νέος Πίνακας» στο δεξί μέρος της οθόνης. Ο δείκτης μετατρέπεται σε «σταυρό». Στην επιφάνεια εργασίας αν κάνετε κλικ σε οποιοδήποτε σημείο θα εμφανιστεί το πλαίσιο διαλόγου για τη δημιουργία νέου πίνακα. Ονομάστε τον πίνακα Customers και πιέστε «ΟΚ».
2. Κάνοντας δεξί κλικ επάνω στον πίνακα επιλέξτε «New Column» για να προσθέσετε νέα στήλη στον πίνακα. Ονομάστε τη στήλη id, ως τύπο δεδομένων επιλέξτε τον ακέραιο αριθμό (INTEGER) και επιλέξτε να είναι μέρος του πρωτεύοντος κλειδιού από τη σχετική επιλογή «In primary key». 3. Προσθέστε επιπρόσθετα τα πεδία: firstname, lastname, city, province, countrycode και postalcode. Η τελική μορφή του πίνακα εμφανίζεται παρακάτω.
4. Δημιουργήστε τον πίνακα Orders σύμφωνα με την παρακάτω εικόνα. 5. Δημιουργήστε τη συσχέτιση ανάμεσα στους δύο πίνακες χρησιμοποιώντας το πλήκτρο «Non-Identifying Relationship» (εμφανίζεται σημειωμένο παρακάτω). Το πλήκτρο «Identifying Relationship» χρησιμοποιείται για τη δημιουργία συσχετίσεων σε αδύναμες οντότητες. Για τη δημιουργία της συσχέτισης επιλέξτε πρώτα τον πίνακα Customers και έπειτα τον πίνακα Orders. Το τελικό αποτέλεσμα εμφανίζεται παρακάτω. Θα παρατηρήσετε ότι έχει δημιουργηθεί ένα νέο πεδίο customer_id στον πίνακα Orders (ένδειξη FK).
6. Με δεξί κλικ στη γραμμή της συσχέτισης επιλέγουμε «Relationship properties» και εμφανίζεται το πλαίσιο των ιδιοτήτων που ακολουθεί, από το οποίο μπορούμε να καθορίσουμε τους περιορισμούς κλειδιού και συμμετοχής (κανένα, ένα ή περισσότερα). Αντίστοιχα μεταβάλλονται σε κάθε περίπτωση οι συνδέσεις της γραμμής με τους πίνακές της. 7. Το Power Architect προσφέρει τη δυνατότητα εξαγωγής των εντολών CREATE που θα δημιουργήσουν το διάγραμμα της εικόνας. Επιλέξτε «Tools», «Forward Engineer» και συμπληρώστε τα πεδία σύμφωνα με την παρακάτω εικόνα
8. Πιέζοντας «ΟΚ» εμφανίζονται οι εντολές. ΣΗΜΕΙΩΣΗ: Αν θέλουμε να δημιουργήσουμε μια πολλά προς πολλά συσχέτιση, δημιουργούμε έναν κενό πίνακα και στη συνέχεια μέσω της γραμμής «Non-Identifying Relationship» τοποθετούμε τα δύο ξένα κλειδιά εντός του κενού πίνακα (με βάση το πρότυπο της εικόνας 5). Κάνουμε δεξί κλικ σε κάθε πεδίο που τοποθετείται στον πίνακα, και στις ιδιότητες επιλέγουμε να συμμετέχει στο πρωτεύον κλειδί, ώστε να σχηματιστεί το τελικό σύνθετο πρωτεύον κλειδί. Αν υπάρχουν και άλλα πεδία στη συσχέτιση, τα προσθέτουμε και αυτά. Ακολουθεί παράδειγμα:
ΑΣΚΗΣH Να υλοποιηθεί στο περιβάλλον του Power Architect το σχεσιακό σχήμα βάσης δεδομένων η οποία έχει να κάνει με την καταχώρηση και διαχείριση πληροφορίας η οποία αφορά σε ακαδημαϊκά ιδρύματα όπου εντάσσονται σχολές και τμήματα τα οποία προσφέρουν μαθήματα με διδάσκοντες καθηγητές και ακροατές τους φοιτητές οι οποίοι φοιτούν στο αντίστοιχο τμήμα (Εικόνα 4.7). Εικόνα 4.7 Βάση δεδομένων για ακαδημαϊκά ιδρύματα (διάγραμμα ER) Το διάγραμμα ER της Εικόνας 4.7 απεικονίζει ένα μέρος του μοντέλου το οποίο πρόκειται να μηχανογραφηθεί. Ό,τι δεν απεικονίζει αντιστοιχεί σε περιορισμούς στην ακεραιότητα των δεδομένων οι οποίοι δεν είναι δυνατόν να υποστηριχθούν/ απεικονισθούν στο διάγραμμα ER. Για να φανταστείτε ποιοι είναι αυτοί οι (επιπλέον) περιορισμοί στην ακεραιότητα των δεδομένων, κάνετε λογικές παραδοχές επικαλούμενοι την εμπειρία που έχετε από τις σπουδές σας στο ΑΤΕΙ (φανταστείτε, δηλαδή, τα ιδρύματα να λειτουργούν όπως ένα ΑΤΕΙ).
Ζητείται: Τ.Ε.Ι ΘΕΣΣΑΛΟΝΙΚΗΣ, ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΣΔΒΔ (ΕΡΓΑΣΤΗΡΙΟ 4) 1. Να γραφούν οι περιορισμοί ακεραιότητας των δεδομένων (φανεροί και 'κρυφοί', σε σχέση με το ER) οι οποίοι διέπουν το συγκεκριμένο, υπό ανάπτυξη, μοντέλο. 2. Να δημιουργηθεί το σχεσιακό σχήμα στο περιβάλλον του Power Architect. 3. Να γίνει εξαγωγή των εντολών δημιουργίας της βάσης δεδομένων στο περιβάλλον IBM DB2. 4. Να σχολιαστούν/ εντοπιστούν εκείνοι οι περιορισμοί του (1) οι οποίοι δεν είναι δυνατόν να υποστηριχθούν απευθείας μέσω της δήλωσης του συγκεκριμένου σχεσιακού σχήματος βάσης δεδομένων.