580 likes | 859 Views
Βάσεις Γνώσεων. Επεκτεταμένο Μοντέλο Οντοτήτων Συσχετίσεων Πάνος Βασιλειάδης pvassil@cs.uoi.gr Μάρτης 200 3. www.cs.uoi.gr/~pvassil/courses/knowledge_bases/. Περιεχόμενα. Επανάληψη Εξειδίκευση και Γενίκευση Συνάθροιση Από EER σε Σχεσιακή Μοντελοποίηση Παράρτημα. Βασισμένο στο
E N D
ΒάσειςΓνώσεων Επεκτεταμένο Μοντέλο Οντοτήτων Συσχετίσεων Πάνος Βασιλειάδης pvassil@cs.uoi.gr Μάρτης 2003 www.cs.uoi.gr/~pvassil/courses/knowledge_bases/
Περιεχόμενα • Επανάληψη • Εξειδίκευση και Γενίκευση • Συνάθροιση • Από EER σε Σχεσιακή Μοντελοποίηση • Παράρτημα Βασισμένο στο «Database System Concepts», Silberschatz, Korth & Sudarshan
Περιεχόμενα • Επανάληψη • Εξειδίκευση και Γενίκευση • Συνάθροιση • Από EER σε Σχεσιακή Μοντελοποίηση • Παράρτημα
Διαγράμματα Οντοτήτων – Συσχετίσεων (E-R Diagrams) • Παραλληλόγραμμαγια τύπους οντοτήτων • Ελλείψεις για γνωρίσματα • Διπλές ελλείψειςγια πλειότιμα γνωρίσματα. • Διακεκομμένες ελλείψειςγια παραγόμενα γνωρίσματα. • Υπογράμμισηγια πρωτεύοντα κλειδιά (στη συνέχεια...) • Ρόμβοι για τύπους συσχετίσεων • Ακμές για να συνδέσουν τύπους οντοτήτων με γνωρίσματα και τύπους συσχετίσεων
Γραφική Αναπαράσταση Τύπων Οντοτήτων
Γραφική Αναπαράσταση Τύπων Συσχετίσεων
Ρόλοι & Αυτοσυσχετίσεις • Οι ρόλοι είναι ταμπέλες που βάζουμε στις ακμές ενός τύπου συσχέτισης για να δείξουμε περιγραφικά τη σημασία της συμμετοχής ενός τύπου οντοτήτων στον εν λόγω τύπο συσχετίσεων.
Περιεχόμενα • Επανάληψη • Εξειδίκευση και Γενίκευση • Συνάθροιση • Από EER σε Σχεσιακή Μοντελοποίηση • Παράρτημα
Εξειδίκευση (Specialization) • Ένα από τα αποτελέσματα της αναλυτικής (top-down)διαδικασίας σχεδίασης είναι ο εντοπισμός υποσυνόλων ενός τύπου οντοτήτων με κοινά χαρακτηριστικά, τα οποία τα διαφοροποιούν από τα υπόλοιπα μέλη του τύπου οντοτήτων • Ένα τέτοιο υποσύνολο, ανάγεται σε ένα εξειδικευμένο τύπο οντοτήτων, με εξειδικευμένα γνωρίσματα ή συσχετίσεις, τα οποία δεν αφορούν τον αρχικό τύπο οντοτήτων από τον οποίο προήλθε • Θυμάστε γιατί επέμενα στο διαχωρισμό εννοιολογικής και δομικής συνάφειας?
Εξειδίκευση Employee e1 e7 e10 e13 e4 e2 e8 e11 e14 e5 e3 e9 e12 e15 e6
Εξειδίκευση Middle management Employee e1 e7 e10 e13 e4 e2 e8 e11 e14 e5 e3 e9 e12 e15 e6 High management Plain
Εξειδίκευση και Έκταση • Έκταση (extension) ενός τύπου οντοτήτων, τύπου συσχετίσεων, κλάσης, σχεσιακού πίνακα: το σύνολο των αντικειμένων που ανήκουν σε αυτόν • Τα αντικείμενα ονομάζονται και στιγμιότυπα του τύπου / κλάσης / πίνακα / ... • Σε ότι αφορά την εξειδίκευση, η σχέση τύπου και υποτύπου είναι ΠΑΝΤΑ σχέση υπερσυνόλου!!
Εξειδίκευση Middle management Employee Officer e1 e7 e10 e13 e4 Secretary e2 e8 e11 e14 e5 e3 e9 e12 e15 e6 Teller High management Plain
Εξειδίκευσηκαι Σχήμα • Κληρονομικότητα Τύπων(Type Inheritance): Ο εξειδικευμένος τύπος οντοτήτων «κληρονομεί» (inherits) όλα τα γνωρίσματα του τύπου οντοτήτων από τον οποίο παράγεται • Employee(Id,Name,Salary) • PlainEmployee(Id,Name,Salary) • MiddleManagement(Id,Name,Salary,Bonus) • HighManagement(Id,Name,Salary,Rank)
Εξειδίκευση (Specialization) • Η γραφική αναπαράσταση μιας σχέσης εξειδίκευσης γίνεται μέσω ενός τριγώνου που γράφει ISA • Σε κάποιες αναπαραστάσεις το τρίγωνο δείχνει προς τον παραγόμενο και σε κάποιες προς τον γεννήτορα τύπο . • Προσοχή: τα γνωρίσματα του παραγόμενου τύπου που κληρονομούνται, ΔΕΝ καταγράφονται στη γραφική αναπαράσταση
Προσωπική προτίμηση: ISA Παράδειγμα
Ιδιότητες της εξειδίκευσης • Η σχέση τύπου και υποτύπου είναι ΠΑΝΤΑ σχέση υπερσυνόλου!! • Άμεσο αποτέλεσμα αυτού είναι ότι τα στιγμιότυπα του υποτύπου αποτελούν ΚΑΙ στιγμιότυπα του υπερτύπου => ανήκουν και στους δύο τύπους!! • MiddleManagement Employee • xMiddleManagement => xEmployee
Ιδιότητες της εξειδίκευσης • Τα κριτήρια της ταυτότητας ενός στιγμιοτύπου πρέπει να είναι συμβατά μεταξύ τους! • Στη σχεδίαση: Για να είναι κάποιος τύπος C υποτύπος ενός τύπου Μ, πρέπει ΟΛΑ τα στιγμιότυπα του C να ΕΙΝΑΙ και στιγμιότυπα του Μ !! ΕΙΝΑΙ = «είναι» σημασιολογικώς, πληρούν τους λογικούς και δομικούς περιορισμούς, ... • Εν γένει, για κάθε περιορισμό που ανήκει στον υπερτύπο, ο περιορισμός επιβάλλεται ΚΑΙ στον υπερτύπου, πιθανώς και σε πιο ισχυρή μορφή. • π.χ., όλοι οι customerάνω των 65 είναι μέλη του υποτύπου senior-customer και όλοι οι πελάτες άνω των 85 είναι μέλη του υποτύπου ultra-senior-customer
Συσχετίσεις και Εξειδίκευση ? works for Branch Employee ISA ISA ISA public wf Public Branch Teller
Συσχετίσεις και Εξειδίκευση ? • Το παραπάνω σχήμα είναι για να πάρετε την ιδέα και μόνο. • Γενικά, οι εξειδικεύσεις συσχετίσεων ΔΕΝ είναι κοινά αποδεκτό τμήμα του μοντέλου! • Προφανώς, αν σκεφτείτε την έννοια του υποσυνόλου, προφανώς πρέπει να ισχύει το προηγούμενο σχήμα! • Επίσης, μη ξεχνάτε ότι, τυπικά, ένας τύπος είναι υποτύπος του εαυτού του...
Γενίκευση (Generalization) • Αντίστροφα από την αναλυτική μέθοδο σχεδίασης, στην συνθετική (bottom-up) μέθοδο, μπορεί να εντοπίσουμε ένα σύνολο από τύπους οντοτήτων που έχουν κάποια κοινά γνωρίσματα • Μπορούμε να εξάγουμε από τους τύπους αυτούς ένα γενικότερο τύπο οντοτήτων με τα κοινά αυτά χαρακτηριστικά. • Η εξειδίκευση και η γενίκευση είναι αντίστροφες συσχετίσεις, αναπαριστούνται όμοια και εν γένει, χρησιμοποιούνται η μια στη θέση της άλλης
Ιεραρχίες εξειδίκευσης τύπων • Επειδή η σχέση εξειδίκευσης είναι μεταβατική(A ISA B, B ISA C => A ISA C), αναφερόμαστε συχνά σε ιεραρχίες εξειδίκευσης (ή γενίκευσης), ιεραρχίες εξειδίκευσης τύπων, ή απλά ιεραρχίες τύπων • Εναλλακτική ορολογία : • υπερ-τύπος και υπο-τύπος • υπερκλάση και υποκλάση
Ιεραρχίες εξειδίκευσης τύπων • Ένας τύπος οντοτήτων μπορεί να εξειδικευθεί σε περισσότερους του ενός υποτύπους, στη βάση διαφορετικών χαρακτηριστικών • Π.χ., μόνιμος-υπάλληλοςκαιπροσωρινός-υπάλληλος, αλλά καιστέλεχοςκαιγραμματέαςκαιταμίας • Κάθε υπάλληλος θα ανήκει: • Σε ένα εκ των μόνιμος-υπάλληλοςκαιπροσωρινός-υπάλληλοςΚΑΙ • σε ένα εκ των στέλεχος,γραμματέας,ταμίας
Παράδειγμα Employee ISA ISA Permanent- Employee Officer Secretary Temporary- Employee Teller
Περιορισμοί Ιεραρχιών Τύπων • Μπορούμε να ορίσουμε περιορισμούς στο ποιες οντότητες του υπερτύπου ανήκουν σε ένα υποτύπο, στη βάση μιας συνθήκης • π.χ., όλοι οι πελάτες άνω των 65 είναι μέλη του υποτύπου Senior-customer • Υποκλάσεις οριζόμενες βάση κατηγορήματος (predicate-based): • xCustomer,x.age>=65 =>xSenior-customer
Περιορισμοί Ιεραρχιών Τύπων • Σε πόσους υποτύπους της ίδιας ιεραρχίας επιτρέπεται μια οντότητα που ανήκει σε ένα υπερτύπο, να ανήκει? • Μη επικαλυπτόμενη εξειδίκευση (disjoint) • Μια οντότητα επιτρέπεται να ανήκει μόνο σε ένα υποτύπο μιας ιεραρχίας • Διαγραμματικά σημειώνεται βάζοντας τη λέξη disjointδίπλα στο τρίγωνο ISA • Επικαλυπτόμενη (overlapping) • Μια οντότητα επιτρέπεται να ανήκει σε περισσότερους του ενός υποτύπους μιας ιεραρχίας
Περιορισμοί Ιεραρχιών Τύπων • Περιορισμός πληρότητας: επιτρέπεται μια οντότητα ενός τύπου να μην ανήκει σε κάποιον υποτύπο? • πλήρης εξειδίκευση(total specialization): πρέπει υποχρεωτικά η οντότητα να ανήκει σε κάποιον υποτύπο • μερική εξειδίκευση(partial specialization): η οντότητα μπορεί και να μην ανήκει σε κάποιον υποτύπο
Τυπικοί Ορισμοί • Πλήρης εξειδίκευση, με C υπερτύπο και Si τους υποτύπους του: • i(Si)=C • Μη επικαλυπτόμενη εξειδίκευση: • SiSj=, i,j,ij
Για το σπίτι • Σε σχέση με τις εισαγωγές και διαγραφές οντοτήτων, τι περιορισμούς έχω και τι πράξεις πρέπει να εφαρμοσθούν κατά την εισαγωγή/διαγραφή/ανανέωση μιας οντότητας σε μια κλάση? • Λάβετε υπόψη τα πρωτεύοντα κλειδιά, το αν οι ιεραρχίες είναι ολικές, επικαλυπτόμενες, βάση κατηγορήματος,...
Περιεχόμενα • Επανάληψη • Εξειδίκευση και Γενίκευση • Συνάθροιση • Από EER σε Σχεσιακή Μοντελοποίηση • Παράρτημα
Συνάθροιση (aggregation) • Ένας υπάλληλος δουλεύει σε ένα κλάδο της εταιρείας, για τον οποίο και κάνει μια δουλειά • Μπορεί να δουλεύει και σε άλλους κλάδους με άλλες δουλειές • Ένας manager επιβλέπει το συνδυασμό employee, job, branch
Συνάθροιση (aggregation) • Ένας manager επιβλέπει το συνδυασμό employee, job, branch • Εμείς, όμως, έχουμε μια συσχέτιση μεταξύ του managerκαι κάθε μιας από τις οντότητες αυτές • Αφενός είναι λάθος μοντελοποίηση • Κι αφετέρου είναι πλεονασμός…
Συνάθροιση (aggregation) • Οι τύποι συσχετίσεων works-onκαιmanagesαναπαριστούν επικαλυπτόμενη, πλεονάζουσα πληροφορία • Κάθε συσχέτιση που ανήκει στην managesαντιστοιχεί σε μια συσχέτιση που ανήκει στηνworks-on • Όμως, μερικές συσχετίσεις της works-onμπορεί να μην αντιστοιχούν σε κάποιες συσχετίσειςmanages (ήτοι, οι εργασίες αυτές γίνονται χωρίς επίβλεψη) • Κατά συνέπεια, δεν μπορούμε να διώξουμε κανένα από τους δύο τύπους συσχετίσεων
Συνάθροιση • Ένας υπάλληλος δουλεύει σε ένα κλάδο της εταιρείας, για τον οποίο και κάνει μια δουλειά • Ένας manager επιβλέπει το συνδυασμόemployee, job, branch
Συνάθροιση (aggregation) • Για να ξεφύγουμε από το αδιέξοδο, ορίζουμε τη συνάθροιση (aggregation) • Την μία εκ των δύο συσχετίσεων, την αντιμετωπίζουμε ως οντότητα ? • Επιτρέπεται να ορίσουμε συσχετίσεις μεταξύ των συσχετίσεων ? • Αυτό που κατά βάση, όμως, κάνουμε είναι ότι αντιμετωπίζουμε το σύνολο των οντοτήτων της συνάθροισης ως μία οντότητα
Τυπικοί Ορισμοί • works-on employee X job X branch • works-on(employee-id, branch-name, title) • WO_agg agg works-on • WO_agg(employee-id, branch-name, title) • manages manager X WO_agg • manages(employee-id, branch-name, title, manager-name) • Προσοχή: καταχρηστικά, ενώ ορίζω τις συσχετίσεις στο πεδίο Entity1 X … X Entityn, μετά ορίζω το σχήμα τους ως R(Attribute1, …, Attributen). Δεν είναι σωστό, είναι όμως βολικό...
Περιεχόμενα • Επανάληψη • Εξειδίκευση και Γενίκευση • Συνάθροιση • Από EER σε Σχεσιακή Μοντελοποίηση • Παράρτημα
Από EER σεΣχεσιακή Μοντελοποίηση • Η βάση της αναγωγής είναι τα πρωτεύοντα κλειδιά, που επιτρέπουν σε οντότητες και συσχετίσεις να γίνουν σχέσεις της ΒΔ. • Για κάθε τύπο οντότητας και κάθε τύπο συσχέτισης, εισάγουμε μία σχέση με το όνομα του τύπου οντότητας ή συσχέτισης • Τα γνωρίσματα της σχέσης αντιστοιχούν λίγο-πολύ στα γνωρίσματα του αντίστοιχου τύπου
Ισχυροί Τύποι Οντοτήτων • Ένας ισχυρός τύπος οντοτήτων ανάγεται σε μία σχέση με τα αντίστοιχα γνωρίσματα
Σύνθετα Γνωρίσματα • Τα σύνθετα αντικείμενα «ανοίγουν», αγνοώντας τα και εισάγοντας σαν γνωρίσματα του πίνακα τα συστατικά τους. • Π.χ., αν έχω ένα σύνθετο γνώρισμα nameθα εισάγω αντί γι’ αυτό τα συστατικά του first-nameκαιlast-nameστον σχεσιακό πίνακα που προκύπτει.
Πλειότιμα γνωρίσματα • Ένα πλειότιμο γνώρισμα Mμιας οντότητας Eαντιστοιχίζεται σε μια σχέση EM, η οποία έχει τα γνωρίσματα του πρωτεύοντος κλειδιού της Ε (έστω Α1,…,Αn) και ένα γνώρισμα για το Μ (με πρωτεύον κλειδί(Α1,…,Αn,M) • Π.χ., childrenτουemployeeαναπαριστάται απόemployee-children(employee-id,childname)
Ασθενείς Οντότητες • Ένας ασθενής τύπος οντοτήτων γίνεται μια σχέση που περιλαμβάνει και μια κολώνα για το πρωτεύον κλειδί της ιδιοκτήτριας οντότητας
Τύποι Συσχετίσεων • Οι τύποι συσχετίσεων ανάγονται σε πίνακες με ένα γνώρισμα, για κάθε γνώρισμα του πρωτεύοντος κλειδιού των εμπλεκομένων οντοτήτων στη συσχέτιση, καθώς και τα κατάλληλα γνωρίσματα για όποια επιπλέον γνωρίσματα έχει η συσχέτιση per se
Γνωρίσματα αντί για πίνακες • Ν:1 και 1:Ν συσχετίσειςμε καθολική συμμετοχή στην πλευρά του Ν, μπορούν να αναπαρασταθούν με ένα επιπλέον γνώρισμα στον πίνακα του Ν (ως εξωτερικό κλειδί στον άλλο πίνακα) • Π.χ., αντί για πίνακαaccount-branch, να βάζαμε ένα γνώρισμαbranch-nameστον πίνακαaccount 1 Ν
Γνωρίσματα αντί για πίνακες • Αν η συμμετοχή είναι μερική στην πλευρά Ν, το επιπλέον γνώρισμα θα έχει και τιμές null (τις οποίες θα αποφεύγαμε αν είχαμε τον αρχικό πίνακα, πληρώνοντας βέβαια, τον επιπλέον χώρο για το πρωτεύον κλειδί της πλευράς Ν) • Για 1:1 συσχετίσεις μπορούμε να διαλέξουμε όποια πλευρά θέλουμε ως πλευρά Ν, για να προσθέσουμε το εξωτερικό κλειδί • Ο πίνακας που αντιστοιχεί στη συσχέτιση που συνδέει μια ασθενή, με την ιδιοκτήτριά της οντότητα, είναι περιττός (μετά από τα παραπάνω)
Αναπαράσταση της εξειδίκευσης στο σχεσιακό μοντέλο (1η μέθοδος) • Μια σχέση για τον υπερτύπο • Μια σχέση για τον υποτύπο, με το πρωτεύον κλειδί του υπερτύπου και τα δικά της γνωρίσματα (μόνο) • Πρέπει να κάνουμε join για να ανασυνθέσουμε τον υποτύπο
Αναπαράσταση της εξειδίκευσης στο σχεσιακό μοντέλο (2η μέθοδος) • Μια σχέση για τον υπερτύπο • Επανάληψη όλων των πεδίων του υπερτύπου στον υποτύπο • Έχουμε επανάληψη (με κίνδυνο ασυνέπειας) της πληροφορίας Είναι σε κανονικοποιημένη μορφή οι πίνακες?
Αναπαράσταση της εξειδίκευσης στο σχεσιακό μοντέλο (2η μέθοδος) • Αν η εξειδίκευση είναι καθολική, δεν χρειάζεται να ορίσουμε πίνακα για τον υπερτύπο • Μπορούμε να ορίσουμε μια όψη (view) γι’ αυτή τη δουλειά, με την ένωση των πινάκων των υποτύπων • Εξαίρεση: αν χρειάζεται κάποιο εξωτερικό κλειδί που να αναφέρεται στον υπερτύπο, είμαστε υποχρεωμένοι να κρατήσουμε τον αντίστοιχο πίνακα…
Συνάθροιση • Χρειαζόμαστε ένα πίνακα με • το πρωτεύον κλειδί της συναθροιζόμενης συσχέτισης, • το πρωτεύον κλειδί της εμπλεκόμενης οντότητας, και • όποια άλλα επιπλέον πεδία • Μπορούμε να εφαρμόσουμε τις τεχνικές 1:Ν με τους σχετικούς κινδύνους…