Κατέβασμα παρουσίασης
Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε
ΔημοσίευσεAlida Arvanitis Τροποποιήθηκε πριν 9 χρόνια
0
ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΚΑΙ ΑΝΑΠΤΥΞΗ ΒΑΣΕΩΝ ΔΕΔΟΜΕΝΩΝ
4/8/2017 ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΚΑΙ ΑΝΑΠΤΥΞΗ ΒΑΣΕΩΝ ΔΕΔΟΜΕΝΩΝ Μέρος Β’ - Λογικός σχεδιασμός ΒΔ (το Σχεσιακό Μοντέλο)
1
Περιεχόμενα Λογικός Σχεδιασμός (Σχεσιακό Μοντέλο) Εισαγωγικά
Τυπικός ορισμός Σχεσιακού Μοντέλου Κριτήρια Σχεδιασμού «καλοί» και «κακοί» σχεδιασμοί Μετατροπή διαγράμματος E-R σε σχεσιακό σχήμα Κανονικοποίηση – κανονικές μορφές Ξεκινώντας από την «καθολική» σχέση – αποσύνθεση
2
Διαδικασία Ανάπτυξης ΒΔ: Εννοιολογικό Μοντέλο
Ανεξάρτητα του DBMS Μετά την χρήση ενός Εννοιολογικού Μοντέλου Δεδομένων, όπως το E-R, ερχόμαστε σε ένα σημείο όπου αρχίζει η εξάρτηση από το επιλεγέν DBMS και πρέπει να γίνει η ΜΕΤΑΤΡΟΠΗ τις «διαισθητικής» περιγραφής σε μια «τυπική», που να μπορεί να εκτελεστεί από το DBMS. . Μικρόκοσμος Συλλογή Απαιτήσεων και Ανάλυση Απαιτήσεις ΒΔ Εννοιολογικός Σχεδιασμός Βάσης (π.χ., με E-R Model) Εννοιολογικό Μοντέλο (Σχήμα) E-R Διάγραμμα
3
ΛΟΓΙΚΟΣ ΣΧΕΔΙΑΣΜΟΣ . Εξάρτηση από το DBMS Σε αυτό το σημείο ΕΠΙΛΕΓΟΥΜΕ
4/8/2017 ΛΟΓΙΚΟΣ ΣΧΕΔΙΑΣΜΟΣ Εξάρτηση από το DBMS . . Σε αυτό το σημείο ΕΠΙΛΕΓΟΥΜΕ το Μοντέλο Δεδομένων που Υποστηρίζεται από το DBMS. Ο βασικός υποψήφιος είναι το ΣΧΕΣΙΑΚΟ ΜΟΝΤΕΛΟ (άλλος υποψήφιος είναι το ΑΝΤΙΚΕΙΜΕΝΟ-ΣΤΡΑΦΕΣ. Παλιότερα ήταν το Ιεραρχικό και το Μοντέλο Δικτύου Σχεσιακό Μοντέλο Λογικό (Εννοιολογικό) Σχήμα και Εξωτερικές Όψεις Λογικός Σχεδιασμός Βάσης Δεδομένων Εννοιολογικό Σχήμα E-R διάγραμμα
4
Παράδειγμα: Μικρό υποσύνολο της Βάσης Δεδομένων μιας Εταιρείας
4/8/2017 Παράδειγμα: Μικρό υποσύνολο της Βάσης Δεδομένων μιας Εταιρείας . N WORKS-ON M PROJECT EMPLOYEE SSN Name Number Name Location Address HoursPerWeek Salary Στο E-R Μοντέλο: Μια N:M ολική συσχέτιση (WORKS-ON) μεταξύ των τύπων οντοτήτων EMPLOYEE και PROJECT
5
ΣΧΕΣΙΑΚΟ ΜΟΝΤΕΛΟ: Εισαγωγή (1)
4/8/2017 ΣΧΕΣΙΑΚΟ ΜΟΝΤΕΛΟ: Εισαγωγή (1) ΔΟΜΕΣ: RELATIONS (ΣΧΕΣΕΙΣ) – μία μόνο Δομή ΠΡΑΞΕΙΣ: Επεξεργασία των Σχέσεων (Πινάκων) Αντιστοιχίες με το E-R Μοντέλο Τύπος Οντοτήτων <-> Τύπος Σχέσης (Relation) Οντότητα <-> n-πλειάδα (Tuple) Γνώρισμα <-> Γνώρισμα (Attribute) Συσχέτιση <-> Τύπος Σχέσης (Relation)
6
ΣΧΕΣΙΑΚΟ ΜΟΝΤΕΛΟ: Εισαγωγή (2)
4/8/2017 ΣΧΕΣΙΑΚΟ ΜΟΝΤΕΛΟ: Εισαγωγή (2) Σχεσιακό Σχήμα PROJECT NUMBER NAME LOCATION WORKS-ON ESSN PNUMB HRSPW EMPLOYEE SSN NAME ADDRESS SALARY Ένα Σχεσιακό Σχήμα είναι ένα Σύνολο Σχέσεων ή Πινάκων (με όνομα) Τα ονόματα των στηλών είναι τα ονόματα των Γνωρισμάτων
7
ΣΧΕΣΙΑΚΟ ΜΟΝΤΕΛΟ: Εισαγωγή (3)
4/8/2017 ΣΧΕΣΙΑΚΟ ΜΟΝΤΕΛΟ: Εισαγωγή (3) Παράδειγμα ΒΔ: Σύνολο Στιγμιότυπων SSN NAME ADDRESS SALARY ESSN PNUMB HRSPW WORKS-ON PROJECT NUMBER NAME LOCATION EMPLOYEE e john athens e mary patras e jack athens p xyz crete p rty athens p hju patras p ytu crete e p e p e p e p e p e p
8
ΣΧΕΣΙΑΚΟ ΜΟΝΤΕΛΟ: Εισαγωγή (4)
4/8/2017 ΣΧΕΣΙΑΚΟ ΜΟΝΤΕΛΟ: Εισαγωγή (4) ΑΝΑΚΤΗΣΕΙΣ 3 ΒΑΣΙΚΕΣ ΠΡΑΞΕΙΣ ΕΠΙΛΟΓΗ (SELECT) π.χ. στον πίνακα PROJECT, οι εγγραφές που έχουν location = “athens” ΠΡΟΒΟΛΗ (PROJECT) π.χ. στον πίνακα PROJECT, τα πεδία name, location ΚΑΡΤΕΣΙΑΝΟ ΓΙΝΟΜΕΝΟ (PRODUCT) π.χ. μεταξύ των πινάκων EMPLOYEE και PROJECT ΜΗ ΒΑΣΙΚΗ ΑΛΛΑ ΧΡΗΣΙΜΗ ΠΡΑΞΗ ΣΥΝΔΕΣΗ (JOIN). Ουσιαστικά είναι συνδυασμός καρτεσιανού γινομένου και επιλογής π.χ. σύνδεση των πινάκων EMPLOYEE και WORKS-ON με τη συνθήκη EMPLOYEE.SSN = WORKS-ON.ESSN
9
ΣΧΕΣΙΑΚΟ ΜΟΝΤΕΛΟ: Εισαγωγή (5)
4/8/2017 ΣΧΕΣΙΑΚΟ ΜΟΝΤΕΛΟ: Εισαγωγή (5) ΕΝΗΜΕΡΩΣΕΙΣ (ΤΡΟΠΟΠΟΙΗΣΕΙΣ) INSERT: Εισαγωγή πληροφοριών για ένα νέο έργο Εισαγωγή μιας n-πλειάδας στη Σχέση PROJECT DELETE: Διαγραφή του γεγονότος ότι ο Υπάλληλος E3 εργάζεται στο έργο P4 - Διαγραφή της n-πλειάδας (e2, p4, 20) από την Σχέση WORKS-ON MODIFY: Το έργο P2 μεταφέρθηκε από την Αθήνα στην Πάτρα - Επέλεξε την n-πλειάδα (p2, rty, athens) από το PROJECT, και άλλαξε την τιμή “athens” σε “patras”
10
ΣΧΕΣΙΑΚΟ ΜΟΝΤΕΛΟ: Άτυπος Ορισμός
4/8/2017 ΣΧΕΣΙΑΚΟ ΜΟΝΤΕΛΟ: Άτυπος Ορισμός Προτάθηκε το 1970 από τον E.F. Codd (“A relational model for large shared data banks”, CACM), σαν Θεωρία για Μοντέλα Δεδομένων Σήμερα, η συντριπτική πλειοψηφία των DBMS είναι Σχεσιακά και διατίθενται σε ΟΛΕΣ τις Υπολογιστικές Πλατφόρμες. Μια Σχεσιακή Βάση Δεδομένων είναι ένα σύνολο από ΣΧΕΣΕΙΣ ΣΧΕΣΗ (RELATION): Ένας Πίνακας τιμών. Κάθε στήλη στον πίνακα έχει επικεφαλίδα (όνομα), που ονομάζεται γνώρισμα (attribute -field). Κάθε γραμμή ονομάζεται πλειάδα (Tuple) και παριστά τα χαρακτηριστικά μιας οντότητας στο μοντέλο.
11
Τυπικός Ορισμός (1) ΔΟΜΕΣ
4/8/2017 Τυπικός Ορισμός (1) ΔΟΜΕΣ Μόνο μία δομή: relations (σχέσεις) (που έχουν όνομα) Ένα Σχεσιακό Σχήμα R είναι το όνομα και τα γνωρίσματα σε μια Σχέση, μαζί με τα αντίστοιχα πεδία τιμών για τα γνωρίσματα Όταν είναι προφανές, τα πεδία τιμών παραλείπονται. Συμβολισμός: R(A1 , A2 , ... An) π.χ.., STUDENT(Name, SSN, BirthDate, Address) Ένα Σχήμα Βάσης Δεδομένων S είναι ένα σύνολο Σχέσεων. Συμβολισμός: S = {R1 , R2 , ... Rm } π.χ., COMPANY = { EMPLOYEE, PROJECT, ... }
12
4/8/2017 Τυπικός Ορισμός (2) -- Μια πλειάδα (Tuple) t μιας Σχέσης R(A1 , A2 , ... An) είναι μια (διατεταγμένη) λίστα τιμών t = <v1 , v2 , ... vn >, όπου κάθε τιμή vi είναι ένα στοιχείο του πεδίου D(Ai). -- Ένα στιγμιότυπο σχέσης (relation instance) r(R), πιο απλά, σχέση (relation), είναι ένα σύνολο πλειάδων r(R) = { t1 , t2 , ... tk } -- Η πληθικότητα (cardinality) της R είναι ο αριθμός των πλειάδων στην r(R), και συμβολίζεται με CARDR
13
Χαρακτηριστικά των Σχέσεων
4/8/2017 Χαρακτηριστικά των Σχέσεων Η ΔΙΑΤΑΞΗ των γνωρισμάτων σε μια σχέση δεν είναι σημαντική Η ΔΙΑΤΑΞΗ των πλειάδων σε μια σχέση δεν είναι σημαντική Κάθε πλειάδα αποθηκεύεται ΜΙΑ ΦΟΡΑ σε μια σχέση (σύνολο) Μια τιμή μπορεί να παρουσιάζεται ΠΟΛΛΕΣ ΦΟΡΕΣ σε μια στήλη και είναι ATOMIKH (μη διασπάσιμη) – συχνά αυτό αναφέρεται σαν First Normal Form (1-NF) σχέση Μια ειδική τιμή, ονομαζόμενη ΚΕΝΟ (NULL), χρησιμοποιείται για την να παραστήσει στη βάση μιας τιμή που είναι μη εφαρμόσιμος (non-applicable) ή άγνωστη (unknown). Π.χ, η τιμή για τον Αριθμό Τηλεφώνου κάποιου που δεν έχει τηλέφωνο, Η τιμή για την Διεύθυνση κάποιου που δεν έχει προσκομίσει διεύθυνση Συμβολισμός: τιμή γνωρίσματος για μια πλειάδα t, t[Ai] = vi
14
4/8/2017 ΔΟΜΙΚΟΙ ΠΕΡΙΟΡΙΣΜΟΙ Υπάρχουν τρία είδη περιορισμών που είναι έμφυτοι στο μοντέλο: ΚΛΕΙΔΙ (KEY), ΑΚΕΡΑΙΟΤΗΤΑ ΟΝΤΟΤΗΤΑΣ (ENTITY INTEGRITY), και ΑΝΑΦΟΡΙΚΗ ΑΚΕΡΑΙΟΤΗΤΑ (REFERENTIAL INTEGRITY.) Υπάρχουν τρία είδη ρητών περιορισμών: ΠΕΔΙΟ ΤΙΜΩΝ (DOMAIN), ΣΤΗΛΩΝ (COLUMN) και ΟΡΙΖΟΜΕΝΩΝ από τον ΧΡΗΣΤΗ (USER-DEFINED)
15
Έμφυτοι Δομικοί Περιορισμοί (1)
4/8/2017 Έμφυτοι Δομικοί Περιορισμοί (1) Περιορισμοί Κλειδιών: Τα διαφορετικά κλειδιά, όπως ορίστηκαν στο μοντέλο Ε-R, ισχύουν και στο Σχεσιακό Μοντέλο. Ένα σύνολο γνωρισμάτων SK σχήματος σχέσης R για το οποίο κάθε πλειάδα σε στιγμιότυπο r(R) πρέπει να έχει μοναδιαίά τιμή (τιμές) είναι ένα υπέρ-κλειδί (superkey.) Δηλαδή, για διαφορετικά t1 και t2, ισχύει t1[SK] ¹ t2[SK] Για παράδειγμα, SSN στο EMPLOYEE, NAME και ADDRESS στο EMPLOYEE, SSN και NAME στο EMPLOYEE, κλπ. Ένα υποψήφιο κλειδί (candidate key) K είναι ένα ελάχιστο υπέρ-κλειδί (δηλαδή, δεν υπάρχει υποσύνολο του K που να είναι και αυτό υπέρ-κλειδί). Το Κ ονομάζεται συνήθως ΚΛΕΙΔΙ (key). Για παράδειγμα, SSN είναι υποψήφιο κλειδί στο EMPLOYEE, αλλά ο συνδυασμός {SSN, NAME} ΔΕΝ είναι. Ένα κύριο κλειδί (primary key) PK είναι ένα από τα υποψήφια κλειδιά που συμφωνείται να παίξει το ρόλο του του προσδιοριστή για τις πλειάδες της σχέσης (τα κύρια κλειδιά υπογραμμίζονται) Για παράδειγμα, SSN είναι το κύριο κλειδί της σχέσης EMPLOYEE.
16
Έμφυτοι Δομικοί Περιορισμοί (2)
4/8/2017 Έμφυτοι Δομικοί Περιορισμοί (2) ΑΚΕΡΑΙΟΤΗΤΑ ΟΝΤΟΤΗΤΑΣ (ENTITY INTEGRITY): Το κύριο κλειδί PK στο σχήμα της σχέσης R δεν μπορεί να έχει ΚΕΝΕΣ (NULL) τιμές σε πλειάδες μιας σχέσης r(R). t[PK] ¹ NULL, για κάθε t στην r(R) Ο λόγος πίσω από αυτό τον περιορισμό είναι ότι το κύριο κλειδί χρησιμοποιείται για τον προσδιορισμό μιας πλειάδας σε μια Σχέση. Σημειώνεται ότι και άλλα γνωρίσματα στην R μπορεί να περιορίζονται στο να μην έχουν NULL από ΡΗΤΟΥΣ περιορισμούς.
17
Έμφυτοι Δομικοί Περιορισμοί (3)
4/8/2017 Έμφυτοι Δομικοί Περιορισμοί (3) ΑΝΑΦΟΡΙΚΗ ΑΚΕΡΑΙΟΤΗΤΑ (REFERENTIAL ΙNTEGRITY): Αυτός ο δομικός περιορισμός εμπλέκει ΔΥΟ σχέσεις και χρησιμοποιείται για να καταγράψει τη συνέπεια σε μια συσχέτιση μεταξύ πλειάδων των δυο σχέσεων. Η πλέον συνήθης μορφή είναι αυτή των εξωτερικών κλειδιών. Ένα εξωτερικό κλειδί (foreign key) FK είναι ένα σύνολο γνωρισμάτων σε μια σχέση R1 που αποτελεί κύριο κλειδί σε μια άλλη σχέση R2. Μια πλειάδα t1 στην r(R1) λέγεται ότι αναφέρεται σε μια άλλη πλειάδα t2 στην r(R2), εάν: t1[FK] = t2[FK] Για παράδειγμα, για την σχέση WORKING-ON το γνώρισμα SSN είναι foreign key (είναι το κύριο κλειδί στην σχέση EMPLOYEE).
18
4/8/2017 Ρητοί Περιορισμοί (1) Περιορισμοί Πεδίου Τιμών: Είναι οι κανόνες που ορίζονται για το πεδίο τιμών και κληρονομούνται από τις στήλες (γνωρίσματα) που παίρνουν τιμές από το πεδίο. Το πεδίο μπορεί να οριστεί μαζί με κανόνες ακεραιότητας (π.χ., το πεδίο των integers με όλους τους κανόνες για ακέραιους). Αυτοί είναι (κυρίως) οι βασικοί τύποι δεδομένων (data types.) Περιορισμοί Στηλών: Είναι επιπρόσθετοι των περιορισμών πεδίου τιμών και αναφέρονται στις τιμές για τα γνωρίσματα. Για παράδειγμα., η στήλη των small integers ή integers between 1 and 10, κλπ. είναι επιπλέον περιορισμοί των ακεραίων
19
4/8/2017 Ρητοί Περιορισμοί (2) ΠΕΡΙΟΡΙΣΜΟΙ ΟΡΙΖΟΜΕΝΟΙ από τον ΧΡΗΣΤΗ (USER-DEFINED) : Κάθε περιορισμός ακεραιότητας, πέραν αυτών που έχουν ήδη αναφερθεί, καλείται user-defined. Για την υποστήριξη επιχειρηματικών κανόνων, απαιτούνται περιορισμοί ακεραιότητας με σημαντική πολυπλοκότητα Αυτοί προσδιορίζονται είτε διαδικαστικά ή δηλωτικά (με προτίμηση) Μια σειρά μηχανισμών χρησιμοποιούνται για την υποστήριξη τέτοιων κανόνων σε ένα σχεσιακό σύστημα: stored procedures, triggers, methods (για object-oriented systems) Γενικά, τα DBMS είναι αδύνατα σε υποστήριξη περιορισμών
20
Η Βάση Δεδομένων COMPANY στο Σχεσιακό Μοντέλο - ΣΧΗΜΑ
4/8/2017 Η Βάση Δεδομένων COMPANY στο Σχεσιακό Μοντέλο - ΣΧΗΜΑ EMPLOYEE ( SSN, Name, BirthDate, Address, Sex, Salary, SupSSN, DNumber) DEPARTMENT ( DNumber, DName, MgrSSN, MgrStartDate) PROJECT ( PNumber, PName, Location, DNumber) DEPT_LOCATION ( DNumber, DLocation ) WORKS_ON ( SSN, PNumber, HoursPW) DEPENDENT ( SSN, DependName, Sex, BirthDate, Relationship)
21
Η Βάση Δεδομένων COMPANY στο Σχεσιακό Μοντέλο - ΣΤΙΓΜΙΟΤΥΠΟ
4/8/2017 Η Βάση Δεδομένων COMPANY στο Σχεσιακό Μοντέλο - ΣΤΙΓΜΙΟΤΥΠΟ EMPLOYEE . DEPT_LOCATION DEPARTMENT
22
Η Βάση Δεδομένων COMPANY στο Σχεσιακό Μοντέλο - ΣΤΙΓΜΙΟΤΥΠΟ
4/8/2017 Η Βάση Δεδομένων COMPANY στο Σχεσιακό Μοντέλο - ΣΤΙΓΜΙΟΤΥΠΟ PROJECT WORKS_ON . DEPENDENT
23
Ορισμός Σχεσιακού Μοντέλου: ΠΡΑΞΕΙΣ
4/8/2017 Ορισμός Σχεσιακού Μοντέλου: ΠΡΑΞΕΙΣ ΠΡΑΞΕΙΣ Διαχωρίζονται σε (α) ΕΝΗΜΕΡΩΣΕΙΣ, (β) ΑΝΑΚΤΗΣΕΙΣ Το σύνολο των πράξεων στο Σχεσιακό Μοντέλο είναι ΚΛΕΙΣΤΟ δηλαδή οι πράξεις ορίζονται σε Σχέσεις και έχουν αποτέλεσμα νέες Σχέσεις Ενημερώσεις (UPDATE) σε Σχέσεις Εισαγωγή (INSERT) πλειάδας Διαγραφή (DELETE) πλειάδας Τροποποίηση (MODIFY) πλειάδας Οι περιορισμοί ακεραιότητας δεν πρέπει να παραβιάζονται με την εκτέλεση μιας πράξης ενημέρωσης. Για αυτό, ενημερώσεις μπορεί είτε να απορρίπτονται ή να διορθώνουν με την εκτέλεση νέων (επιπλέον) ενημερώσεων. Π.χ., όταν μια πλειάδα του EMPLOYEE διαγράφεται, όλες οι πλειάδες στην WORKING_ON που έχουν την ίδια τιμή στο SSN διαγράφονται (ανύπαρκτοι υπάλληλοι δεν δουλεύουν σε έργα!)
24
Σχεσιακές Βάσεις – Λογικός Σχεδιασμός
4/8/2017 Σχεσιακές Βάσεις – Λογικός Σχεδιασμός Σχεδιασμός Σχέσεων: Ομαδοποίηση Γνωρισμάτων έτσι ώστε να επιτευχθούν “καλά” σχήματα Σχέσεων (Σχέσεις Βάσης) ΑΤΥΠΑ ΚΡΙΤΗΡΙΑ: Προσπάθεια για εννοιολογική καθαρότητα Προσπάθεια για αποδοτικότητα χώρου (αποφυγή πλεονασμού) Προσπάθεια για ακεραιότητα (αποφυγή ανωμαλιών ενημέρωσης) Προσπάθεια για πληρότητα (αποφυγή NULL τιμών σε πλειάδες) Προσπάθεια για γλωσσολογική αποδοτικότητα Προσπάθεια για καλές Επιδόσεις (performance)
25
Κριτήρια Σχεδιασμού (1)
4/8/2017 Κριτήρια Σχεδιασμού (1) Προσπάθεια για Εννοιολογική Καθαρότητα Ανεπίσημα (και στην ιδανική περίπτωση), κάθε πλειάδα πρέπει να παριστά ακριβώς μια οντότητα ή ένα στιγμιότυπο συσχέτισης Με άλλα λόγια, οι πλειάδες δεν πρέπει να είναι υπερφορτωμένες με εννοιολογική πληροφορία (δηλαδή, δεν πρέπει να παριστούν περισσότερα του ενός γεγονότα) Διακριτές οντότητες δεν πρέπει να αναμιγνύονται – ο μόνος τρόπος για ένδο-αναφορές μεταξύ Σχέσεων πρέπει να είναι το “ξένο κλειδί” Προσπάθεια για αποδοτικότητα χώρου (αποφυγή πλεονασμού) Πλεόνασμα χώρου (redundancy) σημαίνει Χάσιμο χώρου Το Πλεόνασμα επιφέρει ανωμαλίες (ονομάζονται, ανωμαλίες ενημέρωσης - update anomalies)
26
Κριτήρια Σχεδιασμού (2)
4/8/2017 Κριτήρια Σχεδιασμού (2) Προσπάθεια για ακεραιότητα (αποφυγή ανωμαλιών ενημέρωσης) Η ακεραιότητα της Βάσης φθείρεται όταν συμβαίνουν ανωμαλίες εισαγωγής, διαγραφής και τροποποίησης Έχουμε ανωμαλία όταν μια ενημέρωση σε ένα σημείο επιφέρει έναν μη-προσδιορίσιμο αριθμό ενημερώσεων σε άλλα σημεία της Βάσης. Προσπάθεια για πληρότητα (αποφυγή NULL τιμών σε πλειάδες) Οι τιμές Null σημαίνουν “έλλειψη γνώσης” ή “μη-εφαρμοσιμότητα” και συχνά προκαλούν λάθη σε ερωτήσεις για να γίνει σωστή η εκτέλεση των ερωτήσεων απαιτείται διαφορετική λογική από αυτή που χρησιμοποιούμε σε πρακτικά / εμπορικά συστήματα – λογική δύο τιμών αληθείας true / false)
27
Κριτήρια Σχεδιασμού (3)
4/8/2017 Κριτήρια Σχεδιασμού (3) Προσπάθεια για γλωσσολογική αποδοτικότητα (Linguistic Efficiency) Όσο πιο απλά μπορούν να εκφραστούν οι ερωτήσεις στην εφαρμογή – τόσο το καλύτερο για τον προγραμματιστή / χρήστη και (συνήθως) και για τον Βελτιστοποιητή Ερωτήσεων του συστήματος Οι Ερωτήσεις γίνονται πιο εύκολα σε Σχέσεις που έχουν πολλές πληροφορίες / γνωρίσματα (π.χ., δεν χρειάζονται πολλές συνενώσεις) Προσπάθεια για καλές Επιδόσεις (performance) Όπως και στην προηγούμενη περίπτωση, Σχέσεις με λίγα Γνωρίσματα (π.χ., δυαδικές), επιφέρουν ένα μεγάλο αριθμό συνενώσεων για την εκτέλεση ερωτήσεων. ΠΟΛΛΑ ΑΠΌ ΤΑ ΚΡΙΤΗΡΙΑ ΕΊΝΑΙ ΑΝΤΙΦΑΤΙΚΑ!
28
Σχεδιασμός Σχεσιακού Μοντέλου
1η προσέγγιση: από εννοιολογικό σχεδιασμό (π.χ. με διάγραμμα E-R) στο λογικό σχεδιασμό (π.χ. Σχεσιακό μοντέλο) Βήματα μετάβασης από το E-R σε πίνακες του σχεσιακού μοντέλου 2η προσέγγιση: από το «μηδέν» Ορισμός «καθολικής» (universal) σχέσης που τα περιέχει ΟΛΑ Αποσύνθεση σε περισσότερες σχέσεις με βάση τη Θεωρία Κανονικοποίησης Στη συνέχεια θα εξετάσουμε την 1η προσέγγιση μόνο (δεν θα συζητήσουμε θέματα κανονικοποίησης ΒΔ)
29
Μετατροπή E-R σε Σχεσιακό Μοντέλο (1)
Γενικός κανόνας: Για κάθε τύπο οντοτήτων και για κάθε τύπο συσχετίσεων δημιουργούμε ένα σχήμα σχέσης που παίρνει το όνομα του αντίστοιχου τύπου Οντότητες (ισχυροί) τύποι οντοτήτων: Για κάθε (ισχυρό) τύπο οντοτήτων Ε δημιουργούμε ένα σχήμα σχέσης R με τα ίδια γνωρίσματα - ένα για κάθε απλό γνώρισμα του Ε. Παράδειγμα: οι τύποι οντοτήτων EMPLOYEE, PROJECT EMPLOYEE SUPERVISION 1 N Dependents-of DEPENDENT WORKS-FOR WORKS-ON MANAGES M DEPARTMENT PROJECT CONTROLS supervisor supervisee
30
Μετατροπή E-R σε Σχεσιακό Μοντέλο (2)
Οντότητες (συν.) (ασθενείς) τύποι οντοτήτων: Για κάθε ασθενή τύπο οντοτήτων Α που εξαρτάται από τον ισχυρό τύπο οντοτήτων Β (προσδιορίζον ιδιοκτήτης) δημιουργούμε ένα σχήμα σχέσης R με γνωρίσματα: τα γνωρίσματα του Α, και τα γνωρίσματα του πρωτεύοντος κλειδιού του Β Παράδειγμα: ο τύπος οντοτήτων DEPENDENT EMPLOYEE SUPERVISION 1 N Dependents-of DEPENDENT WORKS-FOR WORKS-ON MANAGES M DEPARTMENT PROJECT CONTROLS supervisor supervisee ξένο κλειδί
31
Μετατροπή E-R σε Σχεσιακό Μοντέλο (3)
Συσχετίσεις Γενικά, για κάθε συσχέτιση R μεταξύ n τύπων οντοτήτων που αντιστοιχούν στις σχέσεις S1, S2, … , Sn δημιουργούμε μια νέα σχέση R με γνωρίσματα: τα γνωρίσματα του πρωτεύοντος κλειδιού κάθε συμμετέχουσας σχέσης Si τα γνωρίσματα της R (αν υπάρχουν) Παράδειγμα: ο τύπος συσχετίσεων WORKS-ON ξένα κλειδιά EMPLOYEE SUPERVISION 1 N Dependents-of DEPENDENT WORKS-FOR WORKS-ON MANAGES M DEPARTMENT PROJECT CONTROLS supervisor supervisee
32
Μετατροπή E-R σε Σχεσιακό Μοντέλο (4)
Συσχετίσεις (ειδικές περιπτώσεις) δυαδική (μη ασθενής) συσχέτιση πληθικότητας 1-1 : Για κάθε δυαδική συσχέτιση R πληθικότητας 1-1 μεταξύ δύο τύπων οντοτήτων του E-R που αντιστοιχούν στις σχέσεις Τ και S 1. επιλογή μιας εκ των Τ και S, έστω της S 2. το πρωτεύον κλειδί της S γίνεται ξένο κλειδί της Τ (Προτιμάμε τη σχέση που αντιστοιχεί σε τύπο οντοτήτων με ολική συμμετοχή) Παράδειγμα: ο τύπος συσχετίσεων MANAGES EMPLOYEE SUPERVISION 1 N Dependents-of DEPENDENT WORKS-FOR WORKS-ON MANAGES M DEPARTMENT PROJECT CONTROLS supervisor supervisee
33
Μετατροπή E-R σε Σχεσιακό Μοντέλο (5)
Συσχετίσεις (ειδικές περιπτώσεις) δυαδική συσχέτιση πληθικότητας 1-Ν : Για κάθε δυαδική συσχέτιση R πληθικότητας 1-Ν μεταξύ δύο τύπων οντοτήτων του E-R που αντιστοιχούν στις σχέσεις Τ και S 1. έστω T από την πλευρά 1 2. το πρωτεύον κλειδί της T γίνεται ξένο κλειδί της S Παράδειγμα: ο τύπος συσχετίσεων WORKS-FOR EMPLOYEE SUPERVISION 1 N Dependents-of DEPENDENT WORKS-FOR WORKS-ON MANAGES M DEPARTMENT PROJECT CONTROLS supervisor supervisee
34
Μετατροπή E-R σε Σχεσιακό Μοντέλο (6)
Γνωρίσματα Απλά: ένα γνώρισμα τύπου οντοτήτων ή συσχετίσεων στο E-R γίνεται γνώρισμα πίνακα στο σχεσιακό μοντέλο Σύνθετα: Ένα γνώρισμα για κάθε απλό γνώρισμα που απαρτίζει το σύνθετο Πλειότιμα: Για κάθε πλειότιμο γνώρισμα Α, κατασκευάζουμε μια σχέση R με γνωρίσματα: το Α (ή τα γνωρίσματα του Α αν το Α είναι σύνθετο) και τα γνωρίσματα (ξένο κλειδί) του πρωτεύοντος κλειδιού της σχέσης που παριστάνει τον τύπο οντοτήτων η συσχετίσεων του οποίου γνώρισμα είναι το Α
35
Μετατροπή E-R σε Σχεσιακό Μοντέλο (7)
Άλλες ειδικές περιπτώσεις Γενίκευση is_A : 1 τύπος οντοτήτων αποτελεί γενίκευση Ν (υπο)τύπων οντοτήτων. Διακρίνουμε 2 περιπτώσεις που έχουν διαφορετική αντιμετώπιση 1η περίπτωση: έστω η γενίκευση είναι πλήρης (complete) και χωρίς επικαλύψεις (disjoint). Δεν υπάρχει δηλαδή οντότητα που να ανήκει στη γενίκευση αλλά να μην ανήκει σε κάποια εξειδίκευση (ΠΛΗΡΗΣ) ούτε υπάρχει οντότητα που να συμμετέχει ταυτόχρονα σε περισσότερες από μία εξειδικεύσεις της ίδιας γενίκευσης (ΧΩΡΙΣ ΕΠΙΚΑΛΥΨΕΙΣ). Τότε: Προκύπτουν Ν σχέσεις, μία για κάθε υποτύπο οντοτήτων, οι οποίες «κληρονομούν» και τα γνωρίσματα της γενίκευσης
36
Μετατροπή E-R σε Σχεσιακό Μοντέλο (8)
Άλλες ειδικές περιπτώσεις (συν.) Γενίκευση is_A : Συνέχεια ... 2η περίπτωση: η γενίκευση ΔΕΝ είναι πλήρης Η έχει επικαλύψεις. Τότε: Προκύπτουν Ν+1 σχέσεις, μία για τη γενίκευση (με τα γνωρίσματά της) και μία για κάθε υποτύπο οντοτήτων (με τα γνωρίσματά του + το πρωτεύον κλειδί της σχέσης που αντιπροσωπεύει τη γενίκευση, το οποίο συνεπώς είναι «ξένο κλειδί»)
37
Μετατροπή E-R σε Σχεσιακό Μοντέλο (9)
Άλλες ειδικές περιπτώσεις Συσσώρευση : Η συσσώρευση είναι ουσιαστικά μια συσχέτιση μεταξύ ενός τύπου οντοτήτων και ενός τύπου συσχετίσεων, απλά με διαφορετική αντιμετώπιση αφού μια τέτοια συσχέτιση ΔΕΝ υποστηρίζεται απευθείας από το μοντέλο E-R Άρα ισχύει και εδώ ό,τι ισχύει για τη μετατροπή τύπων συσχετίσεων του E-R σε σχέσεις του Σχεσιακού Μοντέλου Νέα σχέση (αν η συσχέτιση είναι Μ:Ν) «Προσκόλληση» στη μία από τις δύο σχέσεις που αντιπροσωπεύουν τις δύο πλευρές της συσχέτισης (αν η συσχέτιση είναι 1:1 ή 1:Ν ή Ν:1)
38
Μετατροπή E-R σε Σχεσιακό Μοντέλο (10)
Ανακεφαλαίωση Τύπος οντοτήτων Σχέση (οντοτήτων) Τύπος συσχέτισης 1:1 ή 1:Ν Ξένο κλειδί ή Σχέση (συσχέτισης) Τύπος συσχέτισης Μ:Ν Σχέση (συσχέτισης) με 2 (γενικά, n) ξένα κλειδιά Απλό γνώρισμα Γνώρισμα Σύνθετο γνώρισμα Σύνολο από γνωρίσματα Πλειότιμο γνώρισμα Σχέση και ξένο κλειδί
39
Μετατροπή E-R σε Σχεσιακό Μοντέλο (11)
Ανακεφαλαίωση (συν.) Γενίκευση is_A (πλήρης και χωρίς επικαλύψεις) N Σχέσεις (οντοτήτων υποτύπων) που «κληρονομούν» και τα γνωρίσματα της γενίκευσης Γενίκευση is_A (αλλιώς) N+1 Σχέσεις (οντοτήτων υποτύπων + γενίκευσης), οι Ν Σχέσεις με ξένο κλειδί Συσσώρευση Ό,τι ισχύει και για τον Τύπο συσχέτισης
Παρόμοιες παρουσιάσεις
© 2024 SlidePlayer.gr Inc.
All rights reserved.