Τ.Ε.Ι ΘΕΣΣΑΛΟΝΙΚΗΣ, ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ Σ Β (ΕΡΓΑΣΤΗΡΙΟ 3) Τελευταία ενηµέρωση: 10/2011 Μετασχηµατισµός διαγράµµατος ER σε σχεσιακό σχήµα Β ΣΤΟΧΟΣ Στόχοs του 3 ου εργαστηρίου είναι η υλοποίηση µοντέλων οντοτήτων-συσχετίσεων. ΣΧΕΤΙΚΟ ΕΚΠΑΙ ΕΥΤΙΚΟ ΥΛΙΚΟ Το µοντέλο οντότητας-συσχέτισης εξετάζεται στο κεφάλαιο 2 του βιβλίου του µαθήµατος. ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ Οντότητα Οντότητα είναι ένα διακριτό αντικείµενο του πραγµατικού κόσµου (π.χ. ο ναύτης, το αυτοκίνητο) και αντιστοιχεί σε πίνακα του σχεσιακού µοντέλου. Μία οντότητα έχει γνωρίσµατα, δηλαδή ιδιαίτερα χαρακτηριστικά (π.χ. η οντότητα ναύτης έχει τα: όνοµα, επώνυµο), τα οποία αντιστοιχούν σε στήλες του σχεσιακού µοντέλου. Κάθε γνώρισµα παίρνει τιµές από ένα πεδίο ορισµού (π.χ. ακέραιους αριθµούς) το οποίο αντιστοιχεί στον τύπο του σχεσιακού µοντέλου. Όπως στο σχεσιακό µοντέλο για τον κάθε ένα πίνακα µία ή περισσότερες στήλες συνθέτει το κύριο κλειδί, στο µοντέλο οντοτήτων ένα ή περισσότερα γνωρίσµατα συνθέτουν επίσης το κύριο κλειδί. Στην εικόνα 3.1 παρουσιάζεται η αντιστοιχία των δύο µοντέλων µαζί µε το διάγραµµα που απεικονίζει κάθε ιδιαίτερο χαρακτηριστικό του µοντέλου. Εικόνα 3.1 Αντιστοιχία του µοντέλου Οντότητας-Συσχέτισης µε το σχεσιακό µοντέλο και παρουσίαση των αντίστοιχων διαγραµµάτων.
Παράδειγµα: Ο πίνακας ΤΑΙΝΙΑ (Τίτλος, Απόθεµα_Video, Απόθεµα_DVD, Παραγωγή, T_Video, T_DVD) απεικονίζεται µε το διάγραµµα του µοντέλου οντότητας-συσχέτισης στην Eικόνα 3.2. Εικόνα 3.2 Συσχέτιση Το διάγραµµα του µοντέλου Οντότητας-Συσχέτισης για την οντότητα Ταινία Συσχέτιση είναι ο συνδυασµός δύο ή περισσότερων οντοτήτων. Μία συσχέτιση µπορεί να έχει και περιγραφικά γνωρίσµατα, δηλαδή γνωρίσµατα τα οποία προσθέτουν κάποια ιδιαίτερη πληροφορία στη συσχέτιση. Παράδειγµα: Έστω σε µία βάση δεδοµένων οι πίνακες/οντότητες ΤΑΙΝΙΑ (Τίτλος, Απόθεµα_Video, Απόθεµα_DVD, Παραγωγή, T_Video, T_DVD) και ΙΑΝΟΜΕΑΣ (Όνοµα, ιεύθυνση, Τηλέφωνο). Μπορεί να οριστεί µία συσχέτιση ΙΑΝΟΜΗ_ΤΑΙΝΙΑΣ ανάµεσα στους δύο πίνακες, η οποία θα ορίζει τον διανοµέα κάθε ταινίας και θα περιλαµβάνει και ένα περιγραφικό γνώρισµα: την ηµεροµηνία που έγινε για πρώτη φορά η διανοµή της εν λόγω ταινίας από τον συγκεκριµένο διανοµέα. Στην Εικόνα 3.3 απεικονίζεται το αντίστοιχο διάγραµµα οντότηταςσυσχέτισης. Εικόνα 3.3 Το διάγραµµα του µοντέλου Οντότητας-Συσχέτισης των οντοτήτων Ταινία, ιανοµέας και της συσχέτισης ιανοµή_ταινίας
Περιορισµός Κλειδιού Ο περιορισµός κλειδιού υποχρεώνει µια οντότητα να συµµετάσχει περισσότερες από µία φορά σε µία συσχέτιση. ιακρίνονται τρεις τύποι (δυαδικών) συσχετίσεων: 1 προς 1, όπου µία συγκεκριµένη οντότητα µπορεί να συµµετάσχει µέχρι µία φορά στη συσχέτιση. Για παράδειγµα, µία ταινία διανέµεται από έναν διανοµέα και ένας διανοµέας διανέµει µία ταινία. Ο τύπος όπου µία οντότητα συµµετέχει µόνο µία φορά σε µία συσχέτιση απεικονίζεται µε ένα βέλος στο διάγραµµα του µοντέλου οντότητας-συσχέτιση. 1 προς Πολλά, όπου η µία οντότητα συµµετέχει µέχρι µία φορά στη συσχέτιση ενώ η άλλη οντότητα δεν έχει περιορισµό στη συµµετοχή της. Για παράδειγµα, µία ταινία διανέµεται από έναν διανοµέα και ένας διανοµέας µπορεί να διανέµει πολλές ταινίες. Πολλά προς Πολλά, όπου και οι δύο οντότητες δεν έχουν περιορισµό στη συµµετοχή τους στη συσχέτιση. Για παράδειγµα, µία ταινία διανέµεται από πολλούς διανοµείς και ένας διανοµέας µπορεί να διανέµει πολλές ταινία. Παράδειγµα: Αν θεωρήσουµε ότι στο προηγούµενο ισχύει ότι µία ταινία διανέµεται το πολύ από έναν διανοµέα (δηλαδή υπάρχει περιορισµός κλειδιού στη συµµετοχή της Ταινίας στη συσχέτιση ιανοµή_ταινίας) και ένας διανοµέας µπορεί να διανέµει πολλές ταινίες τότε το διάγραµµα του µοντέλου οντότητας-συσχέτισης απεικονίζεται στην Εικόνα 3.4. Το βέλος υποδηλώνει τον εν λόγω περιορισµό κλειδιού. Εικόνα 3.4 Το διάγραµµα του µοντέλου Οντότητας-Συσχέτισης των οντοτήτων Ταινία και ιανοµέας και της συσχέτισης ανάµεσά τους η οποία είναι τύπου ένα-προς-πολλά.
Περιορισµός Συµµετοχής ύο είναι οι περιπτώσεις του περιορισµού συµµετοχής, η ολική (ή υποχρεωτική) και η µερική (ή προαιρετική) συµµετοχή. Ολική συµµετοχή έχουµε όταν σε ένα σύνολο (οµοειδών) οντοτήτων το οποίο συσχετίζεται µε άλλο σύνολο οντοτήτων, όλες οι οντότητες του πρώτου συσχετίζονται µε οντότητες του δεύτερου. Στο παράδειγµά µας, έστω ότι όλες ανεξαιρέτως οι ταινίες έχουν (η καθεµιά τους) διανοµέα. Τότε λέµε ότι το σύνολο οντοτήτων Ταινία συµµετέχει ολικά (ισοδύναµα: υποχρεωτικά) στη συσχέτιση ιανοµή_ταινίας. Στην αντίθετη περίπτωση έχουµε µερική (ισοδύναµα: προαιρετική) συµµετοχή. Η ολική συµµετοχή απεικονίζεται µε µία παχιά γραµµή που ενώνει το σύνολο οντοτήτων µα το σύνολο συσχετίσεων στο διάγραµµα οντότητας-συσχέτισης. Παράδειγµα: Έστω ότι στο παράδειγµα που εξετάζουµε το σύνολο οντοτήτων Ταινία έχει ολική συµµετοχή στο σύνολο συσχετίσεων ιανοµή_ταινίας (Εικόνα 3.5) Εικόνα 3.5 Το σύνολο οντοτήτων Ταινία συµµετέχει ολικά στο σύνολο συσχετίσεων ιανοµή_ταινίας ΑΣΚΗΣΕΙΣ Να σχεδιάσετε τα E-R διαγράµµατα σύµφωνα µε την ανάλυση απαιτήσεων των παρακάτω ασκήσεων.
ΑΣΚΗΣΗ 1 ηµιουργία βάσης δεδοµένων για ηλεκτρονικό κατάστηµα. Ανάλυση απαιτήσεων: Για κάθε πελάτη του καταστήµατος αποθηκεύονται: κωδικός, όνοµα, διεύθυνση. Για τα προϊόντα του καταστήµατος αποθηκεύονται: κωδικός, ονοµασία, τιµή. Ο πελάτης αποθηκεύει τα προϊόντα που έχει επιλέξει (σε ένα καλάθι αγορών) και κάθε προϊόν το αποθηκεύει στην επιθυµητή ποσότητα. Ένα προϊόν µπορεί να επιλεχθεί από ένα πελάτη και µπορεί να παραγγελθεί. Όλοι οι πελάτες κάνουν παραγγελίες. Οι παραγγελίες έχουν µοναδικό κωδικό και καταχωρείται η ηµεροµηνία τους και η διεύθυνση αποστολής. Κάθε παραγγελία αφορά ένα ή περισσότερα προϊόντα. Για κάθε προϊόν µιας παραγγελίας θέλουµε να γνωρίζουµε την τιµή αγοράς. ΑΣΚΗΣΗ 2 ηµιουργία βάσης δεδοµένων για συναυλίες. Ανάλυση απαιτήσεων: Ένα συγκρότηµα (ονοµασία, έτος ίδρυσης) αποτελείται από έναν ή περισσότερους καλλιτέχνες (αρ. µητρώου, τηλέφωνο, όνοµα). Ένας καλλιτέχνης ανήκει σε ένα µόνο συγκρότηµα. Ένα συγκρότηµα δίνει συναυλίες σε µία ή περισσότερες πόλεις (κωδικός, πληθυσµός, ονοµασία), ενώ στις πόλεις εµφανίζονται κανένα, ένα ή περισσότερα συγκροτήµατα. Για κάθε συναυλία το σχήµα αποθηκεύει και την ηµεροµηνία διεξαγωγής της. Οι συναυλίες προωθούνται από ραδιοφωνικούς σταθµούς (ονοµασία, διεύθυνση, τηλέφωνο). Μία συναυλία προωθείται από έναν το πολύ ραδιοφωνικό σταθµό, ενώ κάθε ραδιοφωνικός σταθµός µπορεί να προωθεί πολλές συναυλίες. Υπόδειξη: Θυµηθείτε το συνυπολογισµό από τη θεωρία ΑΣΚΗΣΗ 3 ηµιουργία βάσης δεδοµένων για άρθρα εφηµερίδας. Ανάλυση απαιτήσεων Τα άρθρα (κωδικός, τίτλος, περιεχόµενο, τεύχος) συντάσσονται από δηµοσιογράφους. Ένα άρθρο συντάσσεται από έναν δηµοσιογράφο ακριβώς. Ένας δηµοσιογράφος (ΑΦΜ, όνοµα, τηλέφωνο, διεύθυνση) µπορεί να συντάσσει κανένα, ένα ή περισσότερα άρθρα. Στη βάση δεδοµένων πρέπει να αποθηκεύονται και οι πληροφορίες σχετικά µε τις φωτογραφίες που εµφανίζονται στα διάφορα άρθρα. Συγκεκριµένα σε κάθε άρθρο µπορεί να εµφανίζεται το πολύ µία φωτογραφία, ενώ µία φωτογραφία µπορεί να εµφανίζεται σε περισσότερα του ενός άρθρα. Οι φωτογραφίες (κωδικός, ύψος, πλάτος) διακρίνονται σε εσωτερικές (µε επιπρόσθετο πεδίο το όνοµα του φωτογράφου που τις τράβηξε) και σε εξωτερικές (µε επιπρόσθετα πεδία την επωνυµία της συνεργαζόµενης εταιρίας από την οποία αγοράστηκαν και την τιµή τους). Κάθε φωτογραφία απεικονίζει κανέναν, έναν ή περισσότερους πολιτικούς (όνοµα, παράταξη). Οι πολιτικοί µπορεί να απεικονίζονται σε µία ή περισσότερες φωτογραφίες.
Για κάθε πολιτικό που απεικονίζεται σε κάποια φωτογραφία µας ενδιαφέρει να αποθηκεύουµε και τη σειρά του εντός της φωτογραφίας (πρώτος, δεύτερος, τρίτος, κτλ). Υπόδειξη: Θυµηθείτε τις ιεραρχίες ISA από τη θεωρία ΑΣΚΗΣΗ 4 ηµιουργία βάσης δεδοµένων για τηλεοπτικές σειρές. Ανάλυση απαιτήσεων: Μία σειρά (κωδικός, τίτλος, έτος-πρώτης-προβολής) αποτελείται από επεισόδια (αριθµός-επεισοδίου, σενάριο, αφµ-σκηνοθέτη). Τα επεισόδια σκηνοθετούνται από σκηνοθέτες (αφµ, όνοµα, τηλέφωνο, διεύθυνση). Ένα επεισόδιο σκηνοθετείται από έναν σκηνοθέτη ακριβώς, ενώ ένας σκηνοθέτης µπορεί να σκηνοθετεί περισσότερα του ενός επεισόδια Παρατήρηση: Ο αριθµός-επεισοδίου δεν είναι αρκετός από µόνος για τον προσδιορισµό του επεισοδίου, καθώς είναι πιθανό να υπάρχουν πολλά επεισόδια στη βάση δεδοµένων µε τον ίδιο αριθµό επεισοδίου. Ο συνδυασµός όµως κωδικού σειράς και αριθµού επεισοδίου µπορεί να προσδιορίσει µοναδικά το κάθε επεισόδιο. Υπόδειξη: Θυµηθείτε τις αδύναµες οντότητες από τη θεωρία