ΣΧΕΣΙΑΚΟ ΜΟΝΤΕΛΟ Relational Model Μαθ. #9
Σχεσιακό Μοντέλο Μεταφορά E-R ιαγράµµατος σε Σχέσεις Μια οντότητα «Ε» Μεταφράζεται σε µια σχέση της οποίας το σχήµα αποτελείται από όλα τα γνωρίσµατα του «Ε» Εάν αδύνατη οντότητα µεδυνατήοντότητα «F» Πρόσθεσε το κλειδί της δυνατής οντότητας «F»
Σχεσιακό Μοντέλο Μεταφορά E-R ιαγράµµατος σε Σχέσεις Μια σχέση οντοτήτων R (E1, E2,, En) Μεταφράζεται σε µια σχέση της οποίας το σχήµα αποτελείται από όλα τα κλειδιά των οντοτήτων «Ε1, Ε2,..., Εν» Πεδία ορισµού µε τοίδιοόνοµα πρέπεινα ονοµάζονται διαφορετικά
Επιλογή κλειδιών για τις διάφορες σχέσεις Σχέσεις προερχόµενες από οντότητες Το κλειδί της οντότητας Σχέσεις προερχόµενες από µια πολλά-στα-πολλά σχέση οντοτήτων Το κλειδί είναι όλα τα κλειδιά των διάφορων σχέσεων Σχέσεις προερχόµενες από µια ένα-στο-ένα σχέση οντοτήτων Ένα κλειδί από τις δυο σχέσεις Σχέσεις προερχόµενες από µια πολλά-στο-ένα σχέση οντοτήτων από Ε1 στο Ε2 Το κλειδί είναι το κλειδί του Ε1
Βελτιστοποιήσεις Σχήµατος Θεωρία κανονικοποίησης Συναρτησιακή εξάρτηση Άτυποι κανόνες βασισµένοι στο E-R µοντέλο Συνδυασµός σχέσεων µεκοινάκλειδιά Αποτέλεσµα Μια σχέση της οποίας τα πεδία ορισµού είναι η ένωση των πεδίων ορισµού των δύο σχέσεων
UNC
Βελτιστοποιήσεις Σχήµατος S 1-1 T (S είναι ΟΛΙΚΗ) Συµπερίλαβε το κλειδί του «Τ» σαν «Ξένο Κλειδί» στο «S» Τα πεδία ορισµούτηςσχέσηςνασυµπεριληφθούν στην «S» T 1-n S????? (όλα στο S???) R (E1, E2,, En)????? (H Ένωσης???)
Συµβολισµός Σχεσιακού Μοντέλου Το σχήµα µιας σχέσης «R» βαθµού «n», R(A1, A2,, An) Μια n-πλειάδα «t» µιας σχέσης r(r), t = <V1, V2,, Vn> όπου Vi είναι η τιµήτουπεδίουαi t[ai] αναφέρεται στην τιµή Vi στο t για το πεδίο Ai Τα γράµµατα Q, R, S αναφέρονται σε Σχέσεις Τα γράµµατα q, r, s αναφέρονται σε κατάσταση σχέσης (Επέκταση µιας σχέσης)
Σχεσιακό Μοντέλο Περιορισµοί πεδίων τιµών Κλειδιά σαν περιορισµοί Σουπερκλειδί Υποψήφιο κλειδί Πρωτεύων κλειδί
Σχεσιακό Μοντέλο Ορισµός Ένα «σχεσιακό σχήµαβάσηςδεδοµένων»s είναι ένα σύνολο σχηµάτων σχέσεων S={ R1, R2,, Rn} και ένα σύνολο περιορισµών ακεραιότητας IC Μια «σχεσιακή βάση δεδοµένων» DB του S είναι ένα σύνολο σχέσεων Β = {r1, r2,, rn} έτσι ώστε ri είναι µια επέκτασης του Ri καιέτσιώστε ri ικανοποιούν τους περιορισµούς IC
Περιορισµοί Ακεραιότητας Περιορισµός ακεραιότητας οντότητας (entity integrity constraint) Κανένα Πρωτεύων κλειδί δεν µπορεί να λάβει τιµή NULL Μπορεί τότε δυο πλειάδες να έχουν τις ίδιες τιµές Αναφορικός περιορισµός ακεραιότητας (referential integrity constraint) Μια πλειάδα µιας σχέσης που αναφέρεται σε µια άλλη σχέση ΠΡΕΠΕΙ να αναφέρεται σε ΥΠΑΡΧΟΥΣΑ πλειάδα Υλοποιείται µέσο της έννοιας του Ξένου κλειδιού (Foreign Key)
Ξένο κλειδί (Foreign Key) Ένα σύνολο πεδίων ορισµού FK µιας σχέσης R1 είναι ένα Foreign Key (Ξένο Κλειδί) της σχέσης R2 εάν ικανοποιεί τους ακόλουθους 2 κανόνες 1. Τα πεδία ορισµού στο FK έχουνταίδιαπεδίατιµών όπως τα πεδία ορισµού του PK (Πρωτεύων Κλειδί) της σχέσης R2 2. Οι τιµές του FK σε µια πλειάδα t1 του R1 είναι τιµές του PK για κάποια πλειάδα t2 της R2 είτε NULL Στην πρώτη περίπτωση θα είναι t1[fk] = t2[pk] και λέµε ότι η πλειάδα t1 αναφέρεται στην πλειάδα t2 Οι περιορισµοί ακεραιότητας ορίζονται στο σχεσιακό σχήµα µε τη χρήση της γλώσσας ορισµού DDL
Πράξεις Αλλαγής εδοµένων INSERT (εισαγωγή) Αυτός ο τελεστής παρέχει µια λίστα από πεδία τιµών για µια καινούργια πλειάδα η οποία θα εισαχθεί σε µια σχέση R Μπορεί να καταπατήσει οποιοδήποτε περιορισµό ακεραιότητας Π.χ. Insert < Cecilia, F, Kolonsky, 677678989, 05-APR-50, 6357 Windy Lane, Katy, TX, F, 28000, null, 4> into EMPLOYEE
Πράξεις Αλλαγής εδοµένων DELETE (διαγραφή) Για να ορισθεί µια διαγραφή, µια συνθήκη πάνω στα πεδία ορισµού της σχέσης καθορίζει τις πλειάδες που θα διαγραφούν Μπορεί να καταπατήσει µόνο «αναφορική ακεραιότητα» Π.χ. Delete the WORKS_ON πλειάδα µε ESSN = 999887777 και PNO = 10 Αυτή η διαγραφή είναι OK! Delete the EMPLOYEE tuple with SSN = 999887777 Όχι, γιατί 2 πλειάδες στην WORKS_ON αναφέρονται σ αυτήν την πλειάδα
Πράξεις Αλλαγής εδοµένων MODIFY or UPDATE (Ενηµέρωσε Πλειάδες) Χρησιµοποιείται για την αλλαγή των τιµών ενός ή περισσοτέρου πεδίων τιµών σε µια πλειάδα κάποιας σχέσης Μπορεί να καταπατήσει οποιοδήποτε περιορισµό ακεραιότητας Προβλήµατα µόνο όταν αλλάζει η τιµή PK ή FK!!
Πράξεις Αλλαγής εδοµένων Π.χ. Modify the Salary of EMPLOYEE tuple with SSN= 999887777 to 2800 Αυτή η αλλαγή είναι OK Modify the DNO of the EMPLOYEE tuple with SSN= 999887777 to 7 OXI!!! Modify the DNO of the EMPLOYEE tuple with SSN = 999887777 to 1???