Σχεσιακό Μοντέλο Σχεδιασμός Βάσεων Δεδομένων Μάθημα 2 ο Μαρία Χαλκίδη
Εισαγωγή Το σχεσιακό μοντέλο δεδομένων (relational data model) προτάθηκε από τον E. F. Codd το 1970 Aποτελεί ένα μέσο λογικής δόμησης και χειρισμού των δεδομένων ενός οργανισμού κατά ομοιόμορφο τρόπο.
Κύριες συνιστώσες Σχεσιακού μοντέλου Δόμηση δεδομένων (data structuring) τρόπο αναπαράστασης των δεδομένων στο εξωτερικό επίπεδο του χρήστη και στον ορισμό των ιδιοτήτων που διέπουν τις σχεσιακές βάσεις δεδομένων. Χειρισμός δεδομένων (data manipulation) ορισμό των σχεσιακών γλωσσών που αφορούν στην ενημέρωση των σχεσιακών βάσεων δεδομένων και στην ανάκτηση των δεδομένων. Ακεραιότητα δεδομένων (data integrity) ορισμό των κανόνων που απαιτούνται για τη διατήρηση της πληροφοριακής αξίας μιας σχεσιακής βάσης δεδομένων.
Τύποι χαρακτηριστικών - σχέσεων Τύπος (Σχήμα) σχέσης (relation type ή relation scheme) R ένα πεπερασμένο σύνολο {A1, A2,, An} από τύπους χαρακτηριστικών (attribute types) ή, απλώς, χαρακτηριστικά. Βαθμός σχέσης: πλήθος χαρακτηριστικών Τύπος σχέσης R επί των χαρακτηριστικών {A 1, A 2,, A n } συμβολίζεται και ως R[A 1 A 2 A n ].
Πεδία ορισμού Σε κάθε τύπο χαρακτηριστικού A i αντιστοιχεί ένα πεδίο ορισμού (σύνολο D i ή dom(a i ), 1 i n), Πεδίο ορισμού (σύνολο D i ή dom(a i ), 1 i n): το σύνολο των τιμών που μπορεί να πάρει το χαρακτηριστικό A i. Τα πεδία ορισμού των χαρακτηριστικών A i είναι μη κενά, πεπερασμένα ή αριθμήσιμα σύνολα τα οποία δεν είναι κατ ανάγκη ξένα μεταξύ τους. (παράδειγμα: ακέραιοι, συμβολοσειρές, πίνακες, λίστες)
Σχέση ( Relation) -1 Έστω το πεδίο ορισμού D = D 1 D 2 D 3 D n. Μία σχέση (relation) r επί του τύπου σχέσης R είναι ένα πεπερασμένο σύνολο απεικονίσεων {t 1, t 2,..., t p }, p n, R D με τον περιορισμό ότι για κάθε απεικόνιση t της σχέσης r, κάθε τιμή α i = t(a i ) του χαρακτηριστικού A i ανήκει στο πεδίο ορισμού D i, 1 i n. Οι απεικονίσεις αυτές ονομάζονται πλειάδες (tuples) Τα α i ονομάζονται πραγματοποιήσεις ή τιμές των χαρακτηριστικών A i (attribute occurrences ή attribute values). Μία σχέση r επί του τύπου(σχήματος) σχέσης R συμβολίζεται και ως r(r) ή r(a 1 A 2 A n ).
Σχέση (2) Ένας απλός τρόπος αναπαράστασης δεδομένων: ένας δισδιάστατος πίνακας που λέγεται σχέση χαρακτηριστικά SCODE SNAME SSURN SADDRESS 04208 04112 04305 04232 04274 Γεώργιος Παύλος Μαρία Παύλος Νίκη Μακρής Παπάς Αλεξάνδρου Μαθές Μακρή Μία σχέση επί του τύπου της σχέσης STUDENT Βυζαντίου 15, Αθήνα Κολοκοτρώνη 100, Πειραιάς Υψηλάντου 412, Πειραιάς Καποδιστρίου 12, Αθήνα Ανδρούτσου 97, Αθήνα πλειάδες Μία σχέση είναι ένα σύνολο από πλειάδες.
ΠΑΡΑΔΕΙΓΜΑ STUDENT (SCODE, SNAME, SSURN, SADDRESS) α) Τύπος της σχέσης STUDENT STUDENT χαρακτηριστικά SCODE SNAME SSURN SADDRESS 04208 04112 04305 04232 04274 Γεώργιος Παύλος Μαρία Παύλος Νίκη Μακρής Παπάς Αλεξάνδρου Μαθές Μακρή β) Μία σχέση επί του τύπου της σχέσης STUDENT Βυζαντίου 15, Αθήνα Κολοκοτρώνη 100, Πειραιάς Υψηλάντου 412, Πειραιάς Καποδιστρίου 12, Αθήνα Ανδρούτσου 97, Αθήνα πλειάδες dom (SCODE) = το σύνολο των κωδικών των φοιτητών dom (SNAME) = το σύνολο των ονομάτων των φοιτητών dom (SSURN) = το σύνολο των επωνύμων των φοιτητών dom (SADDRESS) = το σύνολο των διευθύνσεων των φοιτητών Η σχέση STUDENT έχει πέντε πλειάδες. Μία από αυτές είναι η t που ορίζεται ως t(scode) = 04274, t(sname) = Νίκη, t(ssurn) = Μακρή και t(saddress) = Ανδρούτσου 97, Αθήνα.
Βασικές ιδιότητες των σχέσεων (1) Οι τιμές κάθε χαρακτηριστικού σε μια πλειάδα μιας σχέσης είναι ατομικές. ORDERS ORD-NO ORD-DATE BOOK-NO 11800 20/7/2004 22/7/2004 30/9/2004 B5011,, B3211, B6088 B0911 Χαρακτηριστικό με πολλαπλές τιμές Διάσπαση Πίνακα ORD_DATE ORDERS_MOD1 ORD-NO DATE BOOK-NO 11800 20/7/2004 20/7/2004 22/7/2004 22/7/2004 22/7/2004 30/9/2004 ORDERS_MOD2 B5011 B3211 B6088 B0911 ORD-NO DATE BOOK-NO-1 BOOK-NO-2 BOOK-NO-3 11800 20/7/2004 22/7/2004 30/9/2004 B5011 B0911 Κάθετη ανάπτυξη Οριζόντια ανάπτυξη B3211 - - B6088 - ORD-NO 11800 ORD_BOOK ORD-NO 11800 DATE 20/7/2004 22/7/2004 30/9/2004 BOOK-NO B5011 B3211 B6088 B0911
Βασικές ιδιότητες των σχέσεων (2) Οι τιμές κάθε χαρακτηριστικού μιας σχέσης είναι του ίδιου τύπου. Κάθε πλειάδα μιας σχέσης είναι μοναδική. Η σειρά εμφάνισης των χαρακτηριστικών μιας σχέσης έχει σημασία. Η σειρά εμφάνισης των πλειάδων μιας σχέσης δεν έχει σημασία. Κάθε χαρακτηριστικό μιας σχέσης έχει μοναδικό όνομα. ORD-NO 11800 ORD_DATE DATE 20/7/2004 22/7/2004 30/9/2004 ORD_BOOK ORD-NO 11800 BOOK-NO B5011 B3211 B6088 B0911
Βάση Δεδομένων Η βάση δεδομένων αποτελείται από πολλαπλές σχέσεις Σχήμα μιας σχεσιακής βάσης δεδομένων είναι ένα σύνολο από σχήματα σχέσεων Η πληροφορία για έναν οργανισμό σπάει σε επιμέρους κομμάτια, με κάθε σχέση να αποθηκεύει ένα μέρος πληροφορίας Παράδειγμα:Σχήμα ΒΔ branch(branch-name, branch-city, assets) account(account-number, branch-name, balance) customer(customer-name, account-number) Αποθήκευση όλης της πληροφορίας σε μία απλή σχέση όπως bank(account-number, balance, customer-name,..) οδηγεί σε Επανάληψη πληροφορίας (π.χ. Δύο πελάτες έχουν έναν λογαριασμό) Ανάγκη για κενές τιμές (π.χ. Αναπαράσταση πελάτη που δεν έχει λογαριασμό) Η θεωρία κανονικοποίησης ασχολείται με πως να σχεδιάζουμε σχεσιακά σχήματα
Σχεσιακό Σχήμα Ένα σχεσιακό σχήμα βάσης δεδομένων είναι ένα σύνολο από σχήματα σχέσεων Σ = {R 1, R 2,, R n } ένα σύνολο από περιορισμούς ακεραιότητας. Ένα στιγμιότυπο μιας σχεσιακής βάσης δεδομένων ΒΔ του Σ είναι ένα σύνολο από στιγμιότυπα σχέσεων (σχέσεις) ΒΔ = {r 1, r 2,, r n } τέτοια ώστε κάθε r i είναι ένα στιγμιότυπο του R i που ικανοποιούν τους περιορισμούς ορθότητας (πεδίου ορισμού, κλειδιού, ακεραιότητας οντοτήτων, και αναφορικής ακεραιότητας)
Κλειδιά Έστω ο τύπος σχέσης R = {A 1, A 2, A n } και η σχέση r(r) επί του τύπου σχέσης R. Κλειδί (key) της σχέσης r(r) ονομάζεται ένα υποσύνολο K = {A 1, A 2, A m }, m n, των χαρακτηριστικών του τύπου σχέσης R με την ακόλουθη ιδιότητα: Για κάθε δύο διακριτές πλειάδες t i και t j (i j) της σχέσης r υπάρχει ένα τουλάχιστον χαρακτηριστικό A του υποσυνόλου K (Α K) για το οποίο οι πλειάδες t i και t j έχουν διαφορετική τιμή (δηλαδή, t i (A) t j (A)). Δηλαδή, δεν υπάρχουν πλειάδες της σχέσης r που έχουν ίδιες τιμές για όλα τα χαρακτηριστικά του υποσυνόλου K. Κάθε υποσύνολο K με την παραπάνω ιδιότητα ονομάζεται και υποψήφιο κλειδί (candidate key).
Κλειδιά Ένα υποσύνολο K R ονομάζεται υπερκλειδί (superkey) της σχέσης r(r) αν περιέχει ένα κλειδί Υποψήφιο κλειδί Κ: υπερκλειδί με την ιδιότητα ότι αν αφαιρεθεί ένα οποιοδήποτε γνώρισμα Α από το Κ, το Κ που προκύπτει δεν είναι υπερκλειδί Εάν το υποσύνολο K είναι μονοσύνολο K είναι απλό (single) κλειδί. Διαφορετικά το Κ ονομάζεται σύνθετο (composite) κλειδί. Απλό κλειδί ORD-NO Σύνθετο κλειδί {ORD-NO, DATE} ORD_BOOK ORD_DATE ORD-NO BOOK-NO ORD-NO 11800 DATE 20/7/2004 22/7/2004 30/9/2004 11800 B5011 B3211 B6088 B0911
Κλειδιά (2) Ένα υποσύνολο K των χαρακτηριστικών ενός σχεσιακού πίνακα ονομάζεται προσδιοριστής (identifier) ή πρωτεύον κλειδί (primary key) του πίνακα αν ισχύουν τα ακόλουθα: Το K παίρνει μοναδικές τιμές για κάθε γραμμή οποιασδήποτε πραγματοποίησης του πίνακα. Το K περιέχει τον ελάχιστο αριθμό χαρακτηριστικών που από κοινού προσδιορίζουν μοναδικά τις γραμμές του πίνακα. Κανένα από τα χαρακτηριστικά που συνιστούν το K δεν παίρνει κενές τιμές σε οποιαδήποτε πραγματοποίηση του πίνακα. ORD_DATE ORD-NO 11800 DATE 20/7/2004 22/7/2004 30/9/2004 ORD-NO 11800 ORD_BOOK BOOK-NO B5011 B3211 B6088 B0911 Ποιο είναι το πρωτεύον κλειδί των πινάκων ORD_DATE, ORD_BOOK?
Περιορισμοί (σύνοψη) Περιορισμός Πεδίου Ορισμού Η τιμή κάθε χαρακτηριστικού A πρέπει να είναι μία ατομική τιμή από το πεδίο ορισμού αυτού του γνωρίσματος dom(a) Περιορισμός Κλειδιού Περιορισμός Ακεραιότητας Οντοτήτων Περιορισμός Αναφορικής Ακεραιότητας Περιορισμός Σημασιολογικής Ακεραιότητας
Περιορισμός Κλειδιού Μια σχέση ορίζεται ως ένα σύνολο πλειάδων όλες οι πλειάδες πρέπει να είναι διαφορετικές. Υποσύνολο γνωρισμάτων SK του σχήματος σχέσης R τέτοια ώστε σε κάθε στιγμιότυπο r(r) κανένα ζευγάρι πλειάδων δε μπορεί να έχει τον ίδιο συνδυασμό τιμών για τα γνωρίσματα αυτά, δηλαδή για δυο διαφορετικές πλειάδες t 1 και t 2, t 1 [SK] t 2 [SΚ]
Περιορισμός Ακεραιότητας Οντοτήτων Δε μπορεί η τιμή του πρωτεύοντος κλειδιού να είναι null.
Περιορισμός Αναφορικής Ακεραιότητας Ορίζεται μεταξύ δύο σχημάτων σχέσεων όταν μια πλειάδα μιας σχέσης αναφέρεται σε μια άλλη, τότε αυτή η άλλη πρέπει να υπάρχει Ταινία Τίτλος Έτος Διάρκεια Είδος Παίζει Όνομα-Ηθοποιού Τίτλος Έτος
Περιορισμός Αναφορικής Ακεραιότητας Ένα σύνολο από γνωρίσματα FK ενός σχήματος σχέσης R 1 είναι ένα ξένο κλειδί του R 1 αν τα γνωρίσματα του FK έχουν το ίδιο πεδίο με το πρωτεύον κλειδί PK ενός άλλου σχήματος R 2 μια τιμή του FK σε μια πλειάδα t 1 της R 1 είτε εμφανίζεται ως τιμή του PK σε μια πλειάδα t 2 της R 2, δηλαδή t 1 [FK] = t 2 [PK] είτε είναι null Ταινία Τίτλος Έτος Διάρκεια Είδος Παίζει Όνομα-Ηθοποιού Τίτλος Έτος
Περιορισμός Αναφορικής Ακεραιότητας Συνήθως προκύπτουν από συσχετίσεις μεταξύ οντοτήτων Το ξένο κλειδί μπορεί να αναφέρεται στη δική του σχέση Ηθοποιός Όνομα Διεύθυνση Έτος-Γέννησης Σύζυγος-Ηθοποιού
Περιορισμός Σημασιολογικής Ακεραιότητας Παραδείγματα: ο μισθός ενός εργαζομένου δεν μπορεί να υπερβαίνει το μισθό του προϊσταμένου του ο μέγιστος αριθμός ωρών που ένας εργαζόμενος μπορεί να απασχοληθεί σε όλα τα έργα ανά εβδομάδα είναι 56.