Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Λογικός σχεδιασμός ΒΔ και το Σχεσιακό Μοντέλο0 ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΚΑΙ ΑΝΑΠΤΥΞΗ ΒΑΣΕΩΝ ΔΕΔΟΜΕΝΩΝ Μέρος Β’ - Λογικός σχεδιασμός ΒΔ (το Σχεσιακό Μοντέλο)

Παρόμοιες παρουσιάσεις


Παρουσίαση με θέμα: "Λογικός σχεδιασμός ΒΔ και το Σχεσιακό Μοντέλο0 ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΚΑΙ ΑΝΑΠΤΥΞΗ ΒΑΣΕΩΝ ΔΕΔΟΜΕΝΩΝ Μέρος Β’ - Λογικός σχεδιασμός ΒΔ (το Σχεσιακό Μοντέλο)"— Μεταγράφημα παρουσίασης:

1 Λογικός σχεδιασμός ΒΔ και το Σχεσιακό Μοντέλο0 ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΚΑΙ ΑΝΑΠΤΥΞΗ ΒΑΣΕΩΝ ΔΕΔΟΜΕΝΩΝ Μέρος Β’ - Λογικός σχεδιασμός ΒΔ (το Σχεσιακό Μοντέλο)

2 Λογικός σχεδιασμός ΒΔ και το Σχεσιακό Μοντέλο1 Περιεχόμενα n Λογικός Σχεδιασμός (Σχεσιακό Μοντέλο) –Εισαγωγικά –Τυπικός ορισμός Σχεσιακού Μοντέλου –Κριτήρια Σχεδιασμού »«καλοί» και «κακοί» σχεδιασμοί »Μετατροπή διαγράμματος E-R σε σχεσιακό σχήμα »Κανονικοποίηση – κανονικές μορφές »Ξεκινώντας από την «καθολική» σχέση – αποσύνθεση

3 Λογικός σχεδιασμός ΒΔ και το Σχεσιακό Μοντέλο2 Διαδικασία Ανάπτυξης ΒΔ: Εννοιολογικό Μοντέλο. Μικρόκοσμος Συλλογή Απαιτήσεων και Ανάλυση Εννοιολογικός Σχεδιασμός Βάσης (π.χ., με E-R Model) Απαιτήσεις ΒΔ Εννοιολογικό Μοντέλο (Σχήμα) E-R Διάγραμμα Ανεξάρτητα του DBMS -Μετά την χρήση ενός Εννοιολογικού Μοντέλου Δεδομένων, όπως το E-R, ερχόμαστε σε ένα σημείο όπου αρχίζει η εξάρτηση από το επιλεγέν DBMS και πρέπει να γίνει η ΜΕΤΑΤΡΟΠΗ τις «διαισθητικής» περιγραφής σε μια «τυπική», που να μπορεί να εκτελεστεί από το DBMS.

4 Λογικός σχεδιασμός ΒΔ και το Σχεσιακό Μοντέλο3 ΛΟΓΙΚΟΣ ΣΧΕΔΙΑΣΜΟΣ.. Εννοιολογικό Σχήμα E-R διάγραμμα Λογικός Σχεδιασμός Βάσης Δεδομένων Σχεσιακό Μοντέλο Εξάρτηση από το DBMS Λογικό (Εννοιολογικό) Σχήμα και Εξωτερικές Όψεις Σε αυτό το σημείο ΕΠΙΛΕΓΟΥΜΕ το Μοντέλο Δεδομένων που Υποστηρίζεται από το DBMS. Ο βασικός υποψήφιος είναι το ΣΧΕΣΙΑΚΟ ΜΟΝΤΕΛΟ (άλλος υποψήφιος είναι το ΑΝΤΙΚΕΙΜΕΝΟ- ΣΤΡΑΦΕΣ. Παλιότερα ήταν το Ιεραρχικό και το Μοντέλο Δικτύου

5 Λογικός σχεδιασμός ΒΔ και το Σχεσιακό Μοντέλο4 Παράδειγμα: Μικρό υποσύνολο της Βάσης Δεδομένων μιας Εταιρείας. EMPLOYEE WORKS-ON PROJECT NM SSN Name Address Salary Number Name Location HoursPerWeek Στο E-R Μοντέλο: Μια N:M ολική συσχέτιση (WORKS-ON) μεταξύ των τύπων οντοτήτων EMPLOYEE και PROJECT

6 Λογικός σχεδιασμός ΒΔ και το Σχεσιακό Μοντέλο5 ΣΧΕΣΙΑΚΟ ΜΟΝΤΕΛΟ: Εισαγωγή (1) n ΔΟΜΕΣ: RELATIONS (ΣΧΕΣΕΙΣ) – μία μόνο Δομή n ΠΡΑΞΕΙΣ: Επεξεργασία των Σχέσεων (Πινάκων) n Αντιστοιχίες με το E-R Μοντέλο Τύπος Οντοτήτων Τύπος Σχέσης (Relation) Οντότητα n-πλειάδα (Tuple) Γνώρισμα Γνώρισμα (Attribute) Συσχέτιση Τύπος Σχέσης (Relation)

7 Λογικός σχεδιασμός ΒΔ και το Σχεσιακό Μοντέλο6 ΣΧΕΣΙΑΚΟ ΜΟΝΤΕΛΟ: Εισαγωγή (2) n Σχεσιακό Σχήμα PROJECT NUMBER NAME LOCATION WORKS-ON ESSN PNUMB HRSPW EMPLOYEE SSN NAME ADDRESS SALARY Ένα Σχεσιακό Σχήμα είναι ένα Σύνολο Σχέσεων ή Πινάκων (με όνομα) Τα ονόματα των στηλών είναι τα ονόματα των Γνωρισμάτων

8 Λογικός σχεδιασμός ΒΔ και το Σχεσιακό Μοντέλο7 ΣΧΕΣΙΑΚΟ ΜΟΝΤΕΛΟ: Εισαγωγή (3) n Παράδειγμα ΒΔ: Σύνολο Στιγμιότυπων SSN NAME ADDRESS SALARY ESSN PNUMB HRSPW WORKS-ON PROJECT NUMBER NAME LOCATION EMPLOYEE e1 john athens e3 mary patras e4 jack athens p1 xyz crete p2 rty athens p4 hju patras p5 ytu crete e1 p1 10 e1 p2 15 e1 p5 30 e3 p4 20 e4 p4 40 e3 p2 25

9 Λογικός σχεδιασμός ΒΔ και το Σχεσιακό Μοντέλο8 ΣΧΕΣΙΑΚΟ ΜΟΝΤΕΛΟ: Εισαγωγή (4) n ΑΝΑΚΤΗΣΕΙΣ 3 ΒΑΣΙΚΕΣ ΠΡΑΞΕΙΣ –ΕΠΙΛΟΓΗ (SELECT) π.χ. στον πίνακα PROJECT, οι εγγραφές που έχουν location = “athens” –ΠΡΟΒΟΛΗ (PROJECT) π.χ. στον πίνακα PROJECT, τα πεδία name, location –ΚΑΡΤΕΣΙΑΝΟ ΓΙΝΟΜΕΝΟ (PRODUCT) π.χ. μεταξύ των πινάκων EMPLOYEE και PROJECT ΜΗ ΒΑΣΙΚΗ ΑΛΛΑ ΧΡΗΣΙΜΗ ΠΡΑΞΗ –ΣΥΝΔΕΣΗ (JOIN). Ουσιαστικά είναι συνδυασμός καρτεσιανού γινομένου και επιλογής π.χ. σύνδεση των πινάκων EMPLOYEE και WORKS-ON με τη συνθήκη EMPLOYEE.SSN = WORKS-ON.ESSN

10 Λογικός σχεδιασμός ΒΔ και το Σχεσιακό Μοντέλο9 ΣΧΕΣΙΑΚΟ ΜΟΝΤΕΛΟ: Εισαγωγή (5) n ΕΝΗΜΕΡΩΣΕΙΣ (ΤΡΟΠΟΠΟΙΗΣΕΙΣ) INSERT: Εισαγωγή πληροφοριών για ένα νέο έργο - Εισαγωγή μιας n-πλειάδας στη Σχέση PROJECT DELETE: Διαγραφή του γεγονότος ότι ο Υπάλληλος E3 εργάζεται στο έργο P4 - Διαγραφή της n-πλειάδας (e2, p4, 20) από την Σχέση WORKS-ON MODIFY: Το έργο P2 μεταφέρθηκε από την Αθήνα στην Πάτρα - Επέλεξε την n-πλειάδα (p2, rty, athens) από το PROJECT, και άλλαξε την τιμή “athens” σε “patras”

11 Λογικός σχεδιασμός ΒΔ και το Σχεσιακό Μοντέλο10 ΣΧΕΣΙΑΚΟ ΜΟΝΤΕΛΟ: Άτυπος Ορισμός n Προτάθηκε το 1970 από τον E.F. Codd (“A relational model for large shared data banks”, CACM), σαν Θεωρία για Μοντέλα Δεδομένων n Σήμερα, η συντριπτική πλειοψηφία των DBMS είναι Σχεσιακά και διατίθενται σε ΟΛΕΣ τις Υπολογιστικές Πλατφόρμες. n Μια Σχεσιακή Βάση Δεδομένων είναι ένα σύνολο από ΣΧΕΣΕΙΣ n ΣΧΕΣΗ (RELATION): Ένας Πίνακας τιμών. –Κάθε στήλη στον πίνακα έχει επικεφαλίδα (όνομα), που ονομάζεται γνώρισμα (attribute -field). –Κάθε γραμμή ονομάζεται πλειάδα (Tuple) και παριστά τα χαρακτηριστικά μιας οντότητας στο μοντέλο.

12 Λογικός σχεδιασμός ΒΔ και το Σχεσιακό Μοντέλο11 Τυπικός Ορισμός (1) n ΔΟΜΕΣ –Μόνο μία δομή: relations (σχέσεις) (που έχουν όνομα) n Ένα Σχεσιακό Σχήμα R είναι το όνομα και τα γνωρίσματα σε μια Σχέση, μαζί με τα αντίστοιχα πεδία τιμών για τα γνωρίσματα. Όταν είναι προφανές, τα πεδία τιμών παραλείπονται. Συμβολισμός: R(A 1, A 2,... A n ) π.χ.., STUDENT(Name, SSN, BirthDate, Address) n Ένα Σχήμα Βάσης Δεδομένων S είναι ένα σύνολο Σχέσεων. Συμβολισμός: S = {R 1, R 2,... R m } π.χ., COMPANY = { EMPLOYEE, PROJECT,... }

13 Λογικός σχεδιασμός ΒΔ και το Σχεσιακό Μοντέλο12 Τυπικός Ορισμός (2) -- Μια πλειάδα (Tuple) t μιας Σχέσης R(A 1, A 2,... A n ) είναι μια (διατεταγμένη) λίστα τιμών t =, όπου κάθε τιμή v i είναι ένα στοιχείο του πεδίου D(A i ). -- Ένα στιγμιότυπο σχέσης (relation instance) r(R), πιο απλά, σχέση (relation), είναι ένα σύνολο πλειάδων r(R) = { t 1, t 2,... t k } -- Η πληθικότητα (cardinality) της R είναι ο αριθμός των πλειάδων στην r(R), και συμβολίζεται με CARD R

14 Λογικός σχεδιασμός ΒΔ και το Σχεσιακό Μοντέλο13 Χαρακτηριστικά των Σχέσεων n Η ΔΙΑΤΑΞΗ των γνωρισμάτων σε μια σχέση δεν είναι σημαντική n Η ΔΙΑΤΑΞΗ των πλειάδων σε μια σχέση δεν είναι σημαντική n Κάθε πλειάδα αποθηκεύεται ΜΙΑ ΦΟΡΑ σε μια σχέση (σύνολο) n Μια τιμή μπορεί να παρουσιάζεται ΠΟΛΛΕΣ ΦΟΡΕΣ σε μια στήλη και είναι ATOMIKH (μη διασπάσιμη) – συχνά αυτό αναφέρεται σαν First Normal Form (1-NF) σχέση n Μια ειδική τιμή, ονομαζόμενη ΚΕΝΟ (NULL), χρησιμοποιείται για την να παραστήσει στη βάση μιας τιμή που είναι μη εφαρμόσιμος (non-applicable) ή άγνωστη (unknown). Π.χ, η τιμή για τον Αριθμό Τηλεφώνου κάποιου που δεν έχει τηλέφωνο, Η τιμή για την Διεύθυνση κάποιου που δεν έχει προσκομίσει διεύθυνση n Συμβολισμός: τιμή γνωρίσματος για μια πλειάδα t, t[A i ] = v i

15 Λογικός σχεδιασμός ΒΔ και το Σχεσιακό Μοντέλο14 ΔΟΜΙΚΟΙ ΠΕΡΙΟΡΙΣΜΟΙ n Υπάρχουν τρία είδη περιορισμών που είναι έμφυτοι στο μοντέλο: –ΚΛΕΙΔΙ (KEY), –ΑΚΕΡΑΙΟΤΗΤΑ ΟΝΤΟΤΗΤΑΣ (ENTITY INTEGRITY), και –ΑΝΑΦΟΡΙΚΗ ΑΚΕΡΑΙΟΤΗΤΑ (REFERENTIAL INTEGRITY.) n Υπάρχουν τρία είδη ρητών περιορισμών: –ΠΕΔΙΟ ΤΙΜΩΝ (DOMAIN), –ΣΤΗΛΩΝ (COLUMN) και –ΟΡΙΖΟΜΕΝΩΝ από τον ΧΡΗΣΤΗ (USER-DEFINED)

16 Λογικός σχεδιασμός ΒΔ και το Σχεσιακό Μοντέλο15 Έμφυτοι Δομικοί Περιορισμοί (1) n Περιορισμοί Κλειδιών: Τα διαφορετικά κλειδιά, όπως ορίστηκαν στο μοντέλο Ε-R, ισχύουν και στο Σχεσιακό Μοντέλο. –Ένα σύνολο γνωρισμάτων SK σχήματος σχέσης R για το οποίο κάθε πλειάδα σε στιγμιότυπο r(R) πρέπει να έχει μοναδιαίά τιμή (τιμές) είναι ένα υπέρ-κλειδί (superkey.) Δηλαδή, για διαφορετικά t 1 και t 2, ισχύει t 1 [SK]  t 2 [SK] Για παράδειγμα, SSN στο EMPLOYEE, NAME και ADDRESS στο EMPLOYEE, SSN και NAME στο EMPLOYEE, κλπ. –Ένα υποψήφιο κλειδί (candidate key) K είναι ένα ελάχιστο υπέρ-κλειδί (δηλαδή, δεν υπάρχει υποσύνολο του K που να είναι και αυτό υπέρ-κλειδί). Το Κ ονομάζεται συνήθως ΚΛΕΙΔΙ (key). Για παράδειγμα, SSN είναι υποψήφιο κλειδί στο EMPLOYEE, αλλά ο συνδυασμός {SSN, NAME} ΔΕΝ είναι. –Ένα κύριο κλειδί (primary key) PK είναι ένα από τα υποψήφια κλειδιά που συμφωνείται να παίξει το ρόλο του του προσδιοριστή για τις πλειάδες της σχέσης (τα κύρια κλειδιά υπογραμμίζονται) Για παράδειγμα, SSN είναι το κύριο κλειδί της σχέσης EMPLOYEE.

17 Λογικός σχεδιασμός ΒΔ και το Σχεσιακό Μοντέλο16 Έμφυτοι Δομικοί Περιορισμοί (2) n ΑΚΕΡΑΙΟΤΗΤΑ ΟΝΤΟΤΗΤΑΣ (ENTITY INTEGRITY): Το κύριο κλειδί PK στο σχήμα της σχέσης R δεν μπορεί να έχει ΚΕΝΕΣ (NULL) τιμές σε πλειάδες μιας σχέσης r(R). t[PK]  NULL, για κάθε t στην r(R) –Ο λόγος πίσω από αυτό τον περιορισμό είναι ότι το κύριο κλειδί χρησιμοποιείται για τον προσδιορισμό μιας πλειάδας σε μια Σχέση. –Σημειώνεται ότι και άλλα γνωρίσματα στην R μπορεί να περιορίζονται στο να μην έχουν NULL από ΡΗΤΟΥΣ περιορισμούς.

18 Λογικός σχεδιασμός ΒΔ και το Σχεσιακό Μοντέλο17 Έμφυτοι Δομικοί Περιορισμοί (3) n ΑΝΑΦΟΡΙΚΗ ΑΚΕΡΑΙΟΤΗΤΑ (REFERENTIAL ΙNTEGRITY): Αυτός ο δομικός περιορισμός εμπλέκει ΔΥΟ σχέσεις και χρησιμοποιείται για να καταγράψει τη συνέπεια σε μια συσχέτιση μεταξύ πλειάδων των δυο σχέσεων. n Η πλέον συνήθης μορφή είναι αυτή των εξωτερικών κλειδιών. –Ένα εξωτερικό κλειδί (foreign key) FK είναι ένα σύνολο γνωρισμάτων σε μια σχέση R1 που αποτελεί κύριο κλειδί σε μια άλλη σχέση R2. Μια πλειάδα t 1 στην r(R 1 ) λέγεται ότι αναφέρεται σε μια άλλη πλειάδα t 2 στην r(R 2 ), εάν: t 1 [FK] = t 2 [FK] Για παράδειγμα, για την σχέση WORKING-ON το γνώρισμα SSN είναι foreign key (είναι το κύριο κλειδί στην σχέση EMPLOYEE).

19 Λογικός σχεδιασμός ΒΔ και το Σχεσιακό Μοντέλο18 Ρητοί Περιορισμοί (1) n Περιορισμοί Πεδίου Τιμών: Είναι οι κανόνες που ορίζονται για το πεδίο τιμών και κληρονομούνται από τις στήλες (γνωρίσματα) που παίρνουν τιμές από το πεδίο. –Το πεδίο μπορεί να οριστεί μαζί με κανόνες ακεραιότητας (π.χ., το πεδίο των integers με όλους τους κανόνες για ακέραιους). Αυτοί είναι (κυρίως) οι βασικοί τύποι δεδομένων (data types.) n Περιορισμοί Στηλών: Είναι επιπρόσθετοι των περιορισμών πεδίου τιμών και αναφέρονται στις τιμές για τα γνωρίσματα. –Για παράδειγμα., η στήλη των small integers ή integers between 1 and 10, κλπ. είναι επιπλέον περιορισμοί των ακεραίων

20 Λογικός σχεδιασμός ΒΔ και το Σχεσιακό Μοντέλο19 Ρητοί Περιορισμοί (2) n ΠΕΡΙΟΡΙΣΜΟΙ ΟΡΙΖΟΜΕΝΟΙ από τον ΧΡΗΣΤΗ (USER- DEFINED) : Κάθε περιορισμός ακεραιότητας, πέραν αυτών που έχουν ήδη αναφερθεί, καλείται user-defined. –Για την υποστήριξη επιχειρηματικών κανόνων, απαιτούνται περιορισμοί ακεραιότητας με σημαντική πολυπλοκότητα –Αυτοί προσδιορίζονται είτε διαδικαστικά ή δηλωτικά (με προτίμηση) –Μια σειρά μηχανισμών χρησιμοποιούνται για την υποστήριξη τέτοιων κανόνων σε ένα σχεσιακό σύστημα: »stored procedures, triggers, methods (για object-oriented systems) n Γενικά, τα DBMS είναι αδύνατα σε υποστήριξη περιορισμών

21 Λογικός σχεδιασμός ΒΔ και το Σχεσιακό Μοντέλο20 Η Βάση Δεδομένων 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)

22 Λογικός σχεδιασμός ΒΔ και το Σχεσιακό Μοντέλο21 Η Βάση Δεδομένων COMPANY στο Σχεσιακό Μοντέλο - ΣΤΙΓΜΙΟΤΥΠΟ. DEPARTMENT EMPLOYEE DEPT_LOCATION

23 Λογικός σχεδιασμός ΒΔ και το Σχεσιακό Μοντέλο22 Η Βάση Δεδομένων COMPANY στο Σχεσιακό Μοντέλο - ΣΤΙΓΜΙΟΤΥΠΟ. WORKS_ON PROJECT DEPENDENT

24 Λογικός σχεδιασμός ΒΔ και το Σχεσιακό Μοντέλο23 Ορισμός Σχεσιακού Μοντέλου: ΠΡΑΞΕΙΣ n ΠΡΑΞΕΙΣ –Διαχωρίζονται σε (α) ΕΝΗΜΕΡΩΣΕΙΣ, (β) ΑΝΑΚΤΗΣΕΙΣ n Το σύνολο των πράξεων στο Σχεσιακό Μοντέλο είναι ΚΛΕΙΣΤΟ δηλαδή οι πράξεις ορίζονται σε Σχέσεις και έχουν αποτέλεσμα νέες Σχέσεις n Ενημερώσεις (UPDATE) σε Σχέσεις –Εισαγωγή (INSERT) πλειάδας –Διαγραφή (DELETE) πλειάδας –Τροποποίηση (MODIFY) πλειάδας n Οι περιορισμοί ακεραιότητας δεν πρέπει να παραβιάζονται με την εκτέλεση μιας πράξης ενημέρωσης. Για αυτό, ενημερώσεις μπορεί είτε να απορρίπτονται ή να διορθώνουν με την εκτέλεση νέων (επιπλέον) ενημερώσεων. –Π.χ., όταν μια πλειάδα του EMPLOYEE διαγράφεται, όλες οι πλειάδες στην WORKING_ON που έχουν την ίδια τιμή στο SSN διαγράφονται (ανύπαρκτοι υπάλληλοι δεν δουλεύουν σε έργα!)

25 Λογικός σχεδιασμός ΒΔ και το Σχεσιακό Μοντέλο24 Σχεσιακές Βάσεις – Λογικός Σχεδιασμός n Σχεδιασμός Σχέσεων : Ομαδοποίηση Γνωρισμάτων έτσι ώστε να επιτευχθούν “καλά” σχήματα Σχέσεων (Σχέσεις Βάσης) n ΑΤΥΠΑ ΚΡΙΤΗΡΙΑ: –Προσπάθεια για εννοιολογική καθαρότητα –Προσπάθεια για αποδοτικότητα χώρου (αποφυγή πλεονασμού) –Προσπάθεια για ακεραιότητα (αποφυγή ανωμαλιών ενημέρωσης) –Προσπάθεια για πληρότητα (αποφυγή NULL τιμών σε πλειάδες) –Προσπάθεια για γλωσσολογική αποδοτικότητα –Προσπάθεια για καλές Επιδόσεις (performance)

26 Λογικός σχεδιασμός ΒΔ και το Σχεσιακό Μοντέλο25 Κριτήρια Σχεδιασμού (1) Προσπάθεια για Εννοιολογική Καθαρότητα Ανεπίσημα (και στην ιδανική περίπτωση), κάθε πλειάδα πρέπει να παριστά ακριβώς μια οντότητα ή ένα στιγμιότυπο συσχέτισης –Με άλλα λόγια, οι πλειάδες δεν πρέπει να είναι υπερφορτωμένες με εννοιολογική πληροφορία (δηλαδή, δεν πρέπει να παριστούν περισσότερα του ενός γεγονότα) –Διακριτές οντότητες δεν πρέπει να αναμιγνύονται – ο μόνος τρόπος για ένδο-αναφορές μεταξύ Σχέσεων πρέπει να είναι το “ξένο κλειδί” n Προσπάθεια για αποδοτικότητα χώρου (αποφυγή πλεονασμού) –Πλεόνασμα χώρου (redundancy) σημαίνει Χάσιμο χώρου –Το Πλεόνασμα επιφέρει ανωμαλίες (ονομάζονται, ανωμαλίες ενημέρωσης - update anomalies)

27 Λογικός σχεδιασμός ΒΔ και το Σχεσιακό Μοντέλο26 Κριτήρια Σχεδιασμού (2) n Προσπάθεια για ακεραιότητα (αποφυγή ανωμαλιών ενημέρωσης) –Η ακεραιότητα της Βάσης φθείρεται όταν συμβαίνουν ανωμαλίες εισαγωγής, διαγραφής και τροποποίησης –Έχουμε ανωμαλία όταν μια ενημέρωση σε ένα σημείο επιφέρει έναν μη-προσδιορίσιμο αριθμό ενημερώσεων σε άλλα σημεία της Βάσης. n Προσπάθεια για πληρότητα (αποφυγή NULL τιμών σε πλειάδες) –Οι τιμές Null σημαίνουν “έλλειψη γνώσης” ή “μη-εφαρμοσιμότητα” και συχνά προκαλούν λάθη σε ερωτήσεις –για να γίνει σωστή η εκτέλεση των ερωτήσεων απαιτείται διαφορετική λογική από αυτή που χρησιμοποιούμε σε πρακτικά / εμπορικά συστήματα – λογική δύο τιμών αληθείας true / false)

28 Λογικός σχεδιασμός ΒΔ και το Σχεσιακό Μοντέλο27 Κριτήρια Σχεδιασμού (3) n Προσπάθεια για γλωσσολογική αποδοτικότητα (Linguistic Efficiency) –Όσο πιο απλά μπορούν να εκφραστούν οι ερωτήσεις στην εφαρμογή – τόσο το καλύτερο για τον προγραμματιστή / χρήστη και (συνήθως) και για τον Βελτιστοποιητή Ερωτήσεων του συστήματος –Οι Ερωτήσεις γίνονται πιο εύκολα σε Σχέσεις που έχουν πολλές πληροφορίες / γνωρίσματα (π.χ., δεν χρειάζονται πολλές συνενώσεις) n Προσπάθεια για καλές Επιδόσεις (performance) –Όπως και στην προηγούμενη περίπτωση, Σχέσεις με λίγα Γνωρίσματα (π.χ., δυαδικές), επιφέρουν ένα μεγάλο αριθμό συνενώσεων για την εκτέλεση ερωτήσεων. n ΠΟΛΛΑ ΑΠΌ ΤΑ ΚΡΙΤΗΡΙΑ ΕΊΝΑΙ ΑΝΤΙΦΑΤΙΚΑ!

29 Λογικός σχεδιασμός ΒΔ και το Σχεσιακό Μοντέλο28 Σχεδιασμός Σχεσιακού Μοντέλου n 1η προσέγγιση: από εννοιολογικό σχεδιασμό (π.χ. με διάγραμμα E-R) στο λογικό σχεδιασμό (π.χ. Σχεσιακό μοντέλο) –Βήματα μετάβασης από το E-R σε πίνακες του σχεσιακού μοντέλου n 2η προσέγγιση: από το «μηδέν» –Ορισμός «καθολικής» (universal) σχέσης που τα περιέχει ΟΛΑ –Αποσύνθεση σε περισσότερες σχέσεις με βάση τη Θεωρία Κανονικοποίησης n Στη συνέχεια θα εξετάσουμε την 1η προσέγγιση μόνο (δεν θα συζητήσουμε θέματα κανονικοποίησης ΒΔ)

30 Λογικός σχεδιασμός ΒΔ και το Σχεσιακό Μοντέλο29 Μετατροπή E-R σε Σχεσιακό Μοντέλο (1) n Γενικός κανόνας: Για κάθε τύπο οντοτήτων και για κάθε τύπο συσχετίσεων δημιουργούμε ένα σχήμα σχέσης που παίρνει το όνομα του αντίστοιχου τύπου EMPLOYEE SUPERVISION 1 N Dependents-of DEPENDENT 1 N WORKS-FOR WORKS-ON MANAGES N M N DEPARTMENT PROJECT CONTROLS 1 N supervisor supervisee n Οντότητες –(ισχυροί) τύποι οντοτήτων: Για κάθε (ισχυρό) τύπο οντοτήτων Ε δημιουργούμε ένα σχήμα σχέσης R με τα ίδια γνωρίσματα - ένα για κάθε απλό γνώρισμα του Ε. Παράδειγμα: οι τύποι οντοτήτων EMPLOYEE, PROJECT

31 Λογικός σχεδιασμός ΒΔ και το Σχεσιακό Μοντέλο30 Μετατροπή E-R σε Σχεσιακό Μοντέλο (2) n Οντότητες (συν.) –(ασθενείς) τύποι οντοτήτων: Για κάθε ασθενή τύπο οντοτήτων Α που εξαρτάται από τον ισχυρό τύπο οντοτήτων Β (προσδιορίζον ιδιοκτήτης) δημιουργούμε ένα σχήμα σχέσης R με γνωρίσματα: ξένο κλειδί EMPLOYEE SUPERVISION 1 N Dependents-of DEPENDENT 1 N WORKS-FOR WORKS-ON MANAGES N M N DEPARTMENT PROJECT CONTROLS 1 N supervisor supervisee 1.τα γνωρίσματα του Α, και 2.τα γνωρίσματα του πρωτεύοντος κλειδιού του Β Παράδειγμα: ο τύπος οντοτήτων DEPENDENT

32 Λογικός σχεδιασμός ΒΔ και το Σχεσιακό Μοντέλο31 Μετατροπή E-R σε Σχεσιακό Μοντέλο (3) n Συσχετίσεις Γενικά, για κάθε συσχέτιση R μεταξύ n τύπων οντοτήτων που αντιστοιχούν στις σχέσεις S 1, S 2, …, S n δημιουργούμε μια νέα σχέση R με γνωρίσματα: EMPLOYEE SUPERVISION 1 N Dependents-of DEPENDENT 1 N WORKS-FOR WORKS-ON MANAGES N M N DEPARTMENT PROJECT CONTROLS 1 N supervisor supervisee n τα γνωρίσματα του πρωτεύοντος κλειδιού κάθε συμμετέχουσας σχέσης S i n τα γνωρίσματα της R (αν υπάρχουν) Παράδειγμα: ο τύπος συσχετίσεων WORKS-ON ξένα κλειδιά

33 Λογικός σχεδιασμός ΒΔ και το Σχεσιακό Μοντέλο32 Μετατροπή E-R σε Σχεσιακό Μοντέλο (4) n Συσχετίσεις (ειδικές περιπτώσεις) δυαδική (μη ασθενής) συσχέτιση πληθικότητας 1-1 : Για κάθε δυαδική συσχέτιση R πληθικότητας 1-1 μεταξύ δύο τύπων οντοτήτων του E-R που αντιστοιχούν στις σχέσεις Τ και S EMPLOYEE SUPERVISION 1 N Dependents-of DEPENDENT 1 N WORKS-FOR WORKS-ON MANAGES N M N DEPARTMENT PROJECT CONTROLS 1 N supervisor supervisee 1. επιλογή μιας εκ των Τ και S, έστω της S 2. το πρωτεύον κλειδί της S γίνεται ξένο κλειδί της Τ (Προτιμάμε τη σχέση που αντιστοιχεί σε τύπο οντοτήτων με ολική συμμετοχή) Παράδειγμα: ο τύπος συσχετίσεων MANAGES

34 Λογικός σχεδιασμός ΒΔ και το Σχεσιακό Μοντέλο33 Μετατροπή E-R σε Σχεσιακό Μοντέλο (5) n Συσχετίσεις (ειδικές περιπτώσεις) δυαδική συσχέτιση πληθικότητας 1-Ν : Για κάθε δυαδική συσχέτιση R πληθικότητας 1-Ν μεταξύ δύο τύπων οντοτήτων του E-R που αντιστοιχούν στις σχέσεις Τ και S EMPLOYEE SUPERVISION 1 N Dependents-of DEPENDENT 1 N WORKS-FOR WORKS-ON MANAGES N M N DEPARTMENT PROJECT CONTROLS 1 N supervisor supervisee 1. έστω T από την πλευρά 1 2. το πρωτεύον κλειδί της T γίνεται ξένο κλειδί της S Παράδειγμα: ο τύπος συσχετίσεων WORKS-FOR

35 Λογικός σχεδιασμός ΒΔ και το Σχεσιακό Μοντέλο34 Μετατροπή E-R σε Σχεσιακό Μοντέλο (6) n Γνωρίσματα Απλά: ένα γνώρισμα τύπου οντοτήτων ή συσχετίσεων στο E- R γίνεται γνώρισμα πίνακα στο σχεσιακό μοντέλο Σύνθετα: Ένα γνώρισμα για κάθε απλό γνώρισμα που απαρτίζει το σύνθετο Πλειότιμα: Για κάθε πλειότιμο γνώρισμα Α, κατασκευάζουμε μια σχέση R με γνωρίσματα: το Α (ή τα γνωρίσματα του Α αν το Α είναι σύνθετο) και τα γνωρίσματα (ξένο κλειδί) του πρωτεύοντος κλειδιού της σχέσης που παριστάνει τον τύπο οντοτήτων η συσχετίσεων του οποίου γνώρισμα είναι το Α

36 Λογικός σχεδιασμός ΒΔ και το Σχεσιακό Μοντέλο35 Μετατροπή E-R σε Σχεσιακό Μοντέλο (7) n Άλλες ειδικές περιπτώσεις Γενίκευση is_A : 1 τύπος οντοτήτων αποτελεί γενίκευση Ν (υπο)τύπων οντοτήτων. Διακρίνουμε 2 περιπτώσεις που έχουν διαφορετική αντιμετώπιση 1η περίπτωση: έστω η γενίκευση είναι πλήρης (complete) και χωρίς επικαλύψεις (disjoint). Δεν υπάρχει δηλαδή οντότητα που να ανήκει στη γενίκευση αλλά να μην ανήκει σε κάποια εξειδίκευση (ΠΛΗΡΗΣ) ούτε υπάρχει οντότητα που να συμμετέχει ταυτόχρονα σε περισσότερες από μία εξειδικεύσεις της ίδιας γενίκευσης (ΧΩΡΙΣ ΕΠΙΚΑΛΥΨΕΙΣ). Τότε: Προκύπτουν Ν σχέσεις, μία για κάθε υποτύπο οντοτήτων, οι οποίες «κληρονομούν» και τα γνωρίσματα της γενίκευσης

37 Λογικός σχεδιασμός ΒΔ και το Σχεσιακό Μοντέλο36 Μετατροπή E-R σε Σχεσιακό Μοντέλο (8) n Άλλες ειδικές περιπτώσεις (συν.) Γενίκευση is_A : Συνέχεια... 2η περίπτωση: η γενίκευση ΔΕΝ είναι πλήρης Η έχει επικαλύψεις. Τότε: Προκύπτουν Ν+1 σχέσεις, μία για τη γενίκευση (με τα γνωρίσματά της) και μία για κάθε υποτύπο οντοτήτων (με τα γνωρίσματά του + το πρωτεύον κλειδί της σχέσης που αντιπροσωπεύει τη γενίκευση, το οποίο συνεπώς είναι «ξένο κλειδί»)

38 Λογικός σχεδιασμός ΒΔ και το Σχεσιακό Μοντέλο37 Μετατροπή E-R σε Σχεσιακό Μοντέλο (9) n Άλλες ειδικές περιπτώσεις Συσσώρευση : Η συσσώρευση είναι ουσιαστικά μια συσχέτιση μεταξύ ενός τύπου οντοτήτων και ενός τύπου συσχετίσεων, απλά με διαφορετική αντιμετώπιση αφού μια τέτοια συσχέτιση ΔΕΝ υποστηρίζεται απευθείας από το μοντέλο E-R Άρα ισχύει και εδώ ό,τι ισχύει για τη μετατροπή τύπων συσχετίσεων του E-R σε σχέσεις του Σχεσιακού Μοντέλου Νέα σχέση (αν η συσχέτιση είναι Μ:Ν) «Προσκόλληση» στη μία από τις δύο σχέσεις που αντιπροσωπεύουν τις δύο πλευρές της συσχέτισης (αν η συσχέτιση είναι 1:1 ή 1:Ν ή Ν:1)

39 Λογικός σχεδιασμός ΒΔ και το Σχεσιακό Μοντέλο38 Μετατροπή E-R σε Σχεσιακό Μοντέλο (10) n Ανακεφαλαίωση Τύπος οντοτήτωνΣχέση (οντοτήτων) Τύπος συσχέτισης 1:1 ή 1:ΝΞένο κλειδί ή Σχέση (συσχέτισης) Τύπος συσχέτισης Μ:ΝΣχέση (συσχέτισης) με 2 (γενικά, n) ξένα κλειδιά Απλό γνώρισμαΓνώρισμα Σύνθετο γνώρισμαΣύνολο από γνωρίσματα Πλειότιμο γνώρισμαΣχέση και ξένο κλειδί

40 Λογικός σχεδιασμός ΒΔ και το Σχεσιακό Μοντέλο39 Μετατροπή E-R σε Σχεσιακό Μοντέλο (11) n Ανακεφαλαίωση (συν.) Γενίκευση is_A (πλήρης και χωρίς επικαλύψεις) N Σχέσεις (οντοτήτων υποτύπων) που «κληρονομούν» και τα γνωρίσματα της γενίκευσης Γενίκευση is_A (αλλιώς)N+1 Σχέσεις (οντοτήτων υποτύπων + γενίκευσης), οι Ν Σχέσεις με ξένο κλειδί ΣυσσώρευσηΌ,τι ισχύει και για τον Τύπο συσχέτισης


Κατέβασμα ppt "Λογικός σχεδιασμός ΒΔ και το Σχεσιακό Μοντέλο0 ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΚΑΙ ΑΝΑΠΤΥΞΗ ΒΑΣΕΩΝ ΔΕΔΟΜΕΝΩΝ Μέρος Β’ - Λογικός σχεδιασμός ΒΔ (το Σχεσιακό Μοντέλο)"

Παρόμοιες παρουσιάσεις


Διαφημίσεις Google