Κατέβασμα παρουσίασης
Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε
ΔημοσίευσεΩκεανός Ζάππας Τροποποιήθηκε πριν 8 χρόνια
1
ΕΣΔ 232: Οργάνωση Δεδομένων στη Κοινωνία της Πληροφορίας © 2012 Nicolas Tsapatsoulis Το σχεσιακό μοντέλο βάσεων δεδομένων ΕΣΔ232 – Οργάνωση Δεδομένων στη Κοινωνία της Πληροφορίας
2
ΕΣΔ 232: Οργάνωση Δεδομένων στη Κοινωνία της Πληροφορίας © 2012 Nicolas Tsapatsoulis Εισαγωγή στο σχεσιακό μοντέλο Σχεσιακές γλώσσες ερωτημάτων Περιορισμοί ακεραιότητας Μετατροπή ER διαγράμματος σε σχεσιακό σχήμα Όψεις Περιεχόμενα Εισαγωγή στο σχεσιακό μοντέλο Σχεσιακές γλώσσες ερωτημάτων Περιορισμοί ακεραιότητας Μετατροπή ER διαγράμματος σε σχεσιακό σχήμα Όψεις Βιβλιογραφία [Ramakrishnan 2002a]: Chapter 3 [Seyed 2007]: Chapters 4 & 5 [Forta 2005]: Chapter 15 [Taylor 2000]: Chapter 7 [Teorey 2005]: Chapter 5 Αθ. Μάργαρης, Πανεπιστήμιο Μακεδονίας: Σχεσιακό Μοντέλο Περιεχόμενα - Βιβλιογραφία Ενότητας
3
ΕΣΔ 232: Οργάνωση Δεδομένων στη Κοινωνία της Πληροφορίας © 2012 Nicolas Tsapatsoulis Εισαγωγή στο σχεσιακό μοντέλο Το σχεσιακό μοντέλο δεδομένων είναι μια αναπαράσταση των οντοτήτων και των σχέσεων τους με χρήση δυσδιάσταστων πινάκων Είναι το πλέον διαδεδομένο μοντέλο βάσεων δεδομένων και χρησιμοποιείται σε πάρα πολλά DBMS (συστήματα διαχείρισης βάσεων δεδομένων): IBM, Informix, Microsoft SQL Server, Oracle, Sybase, MySQL. Τα παλαιότερα μοντέλα όπως το ιεραρχικό χρησιμοποιούνται σε πολύ μικρότερο βαθμό π.χ. IBM’s IMS Νέος ανταγωνιστής: αντικειμενοστραφές μοντέλο ObjectStore, Versant, Ontos Συνδυασμός σχεσιακού και αντικειμενοστραφούς: αντικειμενο-σχεσιακό μοντέλο (Informix Universal Server, UniSQL, O2, Oracle, DB2) Εισαγωγή στο σχεσιακό μοντέλο Σχεσιακές γλώσσες ερωτημάτων Περιορισμοί ακεραιότητας Μετατροπή ER διαγράμματος σε σχεσιακό σχήμα Όψεις
4
ΕΣΔ 232: Οργάνωση Δεδομένων στη Κοινωνία της Πληροφορίας © 2012 Nicolas Tsapatsoulis Σχεσιακή βάση δεδομένων: Μια βάση δεδομένων στην οποία τα δεδομένων είναι αποθηκευμένα σε δυσδιάστατους (οι πίνακες αυτοί σε πολλές περιπτώσεις ονομάζονται σχέσεις –relations-) Ένας πίνακας αποτελείται από δύο τμήματα: Στιγμιότυπο ή υπόδειγμα (Instance): Ένας πίνακας με γραμμές και στήλες Ο αριθμός των γραμμών ονομάζεται πληθυσμός (cardinality) πίνακα, ο αριθμός των στηλών (fields) ονομάζεται βαθμός ή τάξη (degree / arity). Σχήμα πληροφορίας: καθορίζει το όνομα του πίνακα καθώς και το όνομα και τύπο κάθε στηλής. Students (sid: string, name: string, login: string, age: integer, gpa: real). Πρέπει να σκεφτόμαστε τους πίνακες ως σύνολα εγγραφών στα οποία δεν υπάρχουν δύο όμοιες εγγραφές (γραμμές) Ορισμοί για σχεσιακές βάσεις δεδομένων Εισαγωγή στο σχεσιακό μοντέλο Σχεσιακές γλώσσες ερωτημάτων Περιορισμοί ακεραιότητας Μετατροπή ER διαγράμματος σε σχεσιακό σχήμα Όψεις
5
ΕΣΔ 232: Οργάνωση Δεδομένων στη Κοινωνία της Πληροφορίας © 2012 Nicolas Tsapatsoulis Πολλαπλότητα (Cardinality) = 3, τάξη (degree) = 5, όλες οι εγγραφές είναι διακριτές Χρειάζεται όλες οι στήλες σε ένα πίνακα να έχουν διακριτές τιμές για κάθε εγγραφή; Παράδειγμα ενός υποδείγματος (instance) του πίνακα Students Εισαγωγή στο σχεσιακό μοντέλο Σχεσιακές γλώσσες ερωτημάτων Περιορισμοί ακεραιότητας Μετατροπή ER διαγράμματος σε σχεσιακό σχήμα Όψεις
6
ΕΣΔ 232: Οργάνωση Δεδομένων στη Κοινωνία της Πληροφορίας © 2012 Nicolas Tsapatsoulis Σχεσιακές γλώσσες ερωτημάτων Ένα πολύ ισχυρό πλεονέκτημα του σχεσιακού μοντέλου βάσεων δεδομένων είναι ότι υποστηρίζει απλά ως προς τη σύνταξη αλλά ισχυρά ως προς το αποτέλεσμα ερωτήματα προς τα δεδομένα. Η σύνταξη των ερωτημάτων γίνεται με τη βοήθεια των σχεσιακών γλωσσών ερωτημάτων Τα ερωτήματα μπορούν να γραφούν με διαισθητικό (δηλαδή με τρόπο παρόμοιο με τη λογική του ανθρώπου) και το εκάστοτε σύστημα DBMS είναι υπεύθυνο για την αποτελεσματική εκτέλεση τους. Το βασικό πλεονέκτημα είναι ότι τα ερωτήματα με σημασιολογική αξία (δηλαδή διατύπωση με τρόπο που να εκφράζει το επιθυμητό αποτέλεσμα) Εισαγωγή στο σχεσιακό μοντέλο Σχεσιακές γλώσσες ερωτημάτων Περιορισμοί ακεραιότητας Μετατροπή ER διαγράμματος σε σχεσιακό σχήμα Όψεις
7
ΕΣΔ 232: Οργάνωση Δεδομένων στη Κοινωνία της Πληροφορίας © 2012 Nicolas Tsapatsoulis Αναπτύχθηκε από την IBM (system R) στις αρχές της δεκαετίας 1970s Υπήρχε ανάγκη προτυποποίησης διότι χρησιμοποιούταν από πολλούς προμηθευτές συστημάτων DBMS Πρότυπα: SQL-86 SQL-89 (μικρή αναθεώρηση) SQL-92 (μεγάλη αναθεώρηση, υφιστάμενο πρότυπο) SQL-99 (σημαντικές προσθήκες, χρησιμοποιείται από ορισμένους προμηθευτές αλλά δεν έχει προτυποποιηθεί ακόμη) Στο παράδειγμα του προηγούμενου πίνακα Students για να βρούμε και να εμφανίσουμε όλα τα στοιχεία για τους φοιτητές ηλικίας 18 χρονών θα μπορούσαμε να χρησιμοποιήσουμε τις εντολές: SELECT * FROM Students S WHERE S.age=18 Για να βρούμε μόνο τα ονόματα και τα logins θα χρησιμοποιούσαμε: SELECT S.name, S.login FROM Students S WHERE S.age=18 Η γλώσσα SQL Εισαγωγή στο σχεσιακό μοντέλο Σχεσιακές γλώσσες ερωτημάτων Περιορισμοί ακεραιότητας Μετατροπή ER διαγράμματος σε σχεσιακό σχήμα Όψεις
8
ΕΣΔ 232: Οργάνωση Δεδομένων στη Κοινωνία της Πληροφορίας © 2012 Nicolas Tsapatsoulis Με δεδομένους τους πίνακες Students και Enrolled βρείτε τι υπολογίζει το πιο κάτω ερώτημα. SELECT S.name, E.cid FROM Students S, Enrolled E WHERE S.sid=E.sid AND E.grade= “ A ” (Είναι δυνατό να έχουμε το στιγμιότυπο του πίνακα Enrolled που φαίνεται δίπλα αν το σύστημα DBMS κάνει έλεγχο ακεραιότητας αναφοράς;) Το αποτέλεσμα του ερωτήματος είναι: Ερωτήματα σε πολλαπλούς πίνακες Εισαγωγή στο σχεσιακό μοντέλο Σχεσιακές γλώσσες ερωτημάτων Περιορισμοί ακεραιότητας Μετατροπή ER διαγράμματος σε σχεσιακό σχήμα Όψεις
9
ΕΣΔ 232: Οργάνωση Δεδομένων στη Κοινωνία της Πληροφορίας © 2012 Nicolas Tsapatsoulis Στο πιο κάτω παράδειγμα δίνονται οι εντολές για τη δημιουργία του πίνακα Students. Η σχετική εντολή είναι η CREATE TABLE. Παρατηρήστε ότι ο τύπος δεδομένων κάθε στήλης ορίζεται σαφώς. Κάθε φορά που εισάγονται καινούργια δεδομένα στον πίνακα το σύστημα DBMS ελέγχεται η συμβατότητα των δεδομένων με τους ορισθέντες τύπους. CREATE TABLE Students (sid CHAR(20), name CHAR(20), login CHAR(10), age INTEGER, gpa REAL) Ο πιο κάτω πίνακας Enrolled περιέχει πληροφορίες σχετικά με τα μαθήματα στα οποία έχουν εγγραφεί οι φοιτητές. CREATE TABLE Enrolled (sid CHAR(20), cid CHAR(20), grade CHAR(2)) Δημιουργία πινάκων στην SQL Εισαγωγή στο σχεσιακό μοντέλο Σχεσιακές γλώσσες ερωτημάτων Περιορισμοί ακεραιότητας Μετατροπή ER διαγράμματος σε σχεσιακό σχήμα Όψεις
10
ΕΣΔ 232: Οργάνωση Δεδομένων στη Κοινωνία της Πληροφορίας © 2012 Nicolas Tsapatsoulis Για τη διαγραφή ενός πίνακα (τόσο του στιγμιότυπου όσο και του σχήματος) χρησιμοποιείται η εντολή DROP TABLE. DROP TABLE Students Η τροποποίηση του σχήματος ενός πίνακα επιτυγχάνεται με την εντολή ALTER TABLE. ALTER TABLE Students ADD COLUMN firstYear: integer Κάθε υφιστάμενη εγγραφή παίρνει την τιμή NULL για κάθε νέο πεδίο που εισάγεται. Όταν διαγραφεί κάποιο πεδίο οι αντίστοιχες τιμές όλων των εγγραφών διαγράφονται. Τροποποίηση και διαγραφή πινάκων Εισαγωγή στο σχεσιακό μοντέλο Σχεσιακές γλώσσες ερωτημάτων Περιορισμοί ακεραιότητας Μετατροπή ER διαγράμματος σε σχεσιακό σχήμα Όψεις
11
ΕΣΔ 232: Οργάνωση Δεδομένων στη Κοινωνία της Πληροφορίας © 2012 Nicolas Tsapatsoulis Η εισαγωγή εγγραφών σε ένα πίνακα πραγματοποιείται με την εντολή INSERT INTO: INSERT INTO Students (sid, name, login, age, gpa) VALUES (53688, ‘ Smith ’, ‘ smith@eec.org ’, 18, 3.2) Η διαγραφή εγγραφών πραγματοποιείται με την εντολή DELETE. Στο πιο κάτω παράδειγμα έχουμε διαγραφή όλων των εγγραφών που ικανοποιούν συγκεκριμένη συνθήκη (name = Smith): DELETE FROM Students S WHERE S.name = ‘ Smith ’ Υπάρχουν πολλές παραλλαγές των εντολών INSERT INTO και DELETE τις οποίες θα δούμε σε επόμενα μαθήματα. Προσθήκη και διαγραφή εγγραφών Εισαγωγή στο σχεσιακό μοντέλο Σχεσιακές γλώσσες ερωτημάτων Περιορισμοί ακεραιότητας Μετατροπή ER διαγράμματος σε σχεσιακό σχήμα Όψεις
12
ΕΣΔ 232: Οργάνωση Δεδομένων στη Κοινωνία της Πληροφορίας © 2012 Nicolas Tsapatsoulis Περιορισμοί ακεραιότητας Περιορισμοί ακεραιότητας (IC - Integrity Constraints) ονομάζονται οι συνθήκες οι οποίες πρέπει να πληρούνται σε κάθε στιγμιότυπο οποιουδήποτε πίνακα υπάρχει στη βάση. Οι περιορισμοί ακεραιότητας: ονομάζονται και περιορισμοί πεδίου (domain constraints), τίθενται όταν ορίζεται το σχήμα ενός πίνακα, ελέγχονται κάθε φορά που τα περιεχόμενα των πινάκων τροποποιούνται Έγκυρο θεωρείται το στιγμιότυπο ενός πίνακα όταν ικανοποιεί όλους τους περιορισμούς ακεραιότητας που έχουν τεθεί. Τα DBMS δεν πρέπει να επιτρέπουν μη έγκυρα στιγμιότυπα πινάκων. Όταν το σύστημα DBMS ελέγχει τους περιορισμούς ακεραιότητας τότε τα αποθηκευμένα δεδομένα ανταποκρίνονται περισσότερα πιστά στο σύστημα του πραγματικού κόσμου (π.χ. επιχείρηση) το οποίο μοντελοποιεί η βάση. Αποφεύγονται επίσης και αντικανονικές εισαγωγές δεδομένων στη βάση Εισαγωγή στο σχεσιακό μοντέλο Σχεσιακές γλώσσες ερωτημάτων Περιορισμοί ακεραιότητας Μετατροπή ER διαγράμματος σε σχεσιακό σχήμα Όψεις
13
ΕΣΔ 232: Οργάνωση Δεδομένων στη Κοινωνία της Πληροφορίας © 2012 Nicolas Tsapatsoulis Περιορισμοί πρωτεύοντος κλειδιού Οι σημαντικότεροι περιορισμοί ακεραιότητας είναι: Περιορισμοί πρωτεύοντος κλειδιού Περιορισμοί υποψήφιου κλειδιού Περιορισμοί ξένου κλειδιού (ή περιορισμοί ακεραιότητας αναφοράς) Ένα σύνολο πεδίων συνιστά κλειδί για ένα πίνακα αν: 1.Καμία εγγραφή δεν έχει τις ίδιες τιμές για όλες τις συνιστώσες του κλειδιού, και 2.Το (1) δεν ισχύει για κάθε μεμονωμένη συνιστώσα (πεδίου) του κλειδιού Αν το (2) δεν ισχύει τότε το συγκεκριμένο κλειδί ονομάζεται υπερκλειδί (superkey). Αν υπάρχουν περισσότερα του ενός κλειδιά τότε ένα εξ’ αυτών ορίζεται ως πρωτεύον κλειδί. Παράδειγμα: Το πεδίο sid είναι κλειδί για το πίνακα Students. (Το πεδίο name είναι;) Ο συνδυασμός {sid, gpa} είναι ένα υπερκλειδί. Εισαγωγή στο σχεσιακό μοντέλο Σχεσιακές γλώσσες ερωτημάτων Περιορισμοί ακεραιότητας Μετατροπή ER διαγράμματος σε σχεσιακό σχήμα Όψεις
14
ΕΣΔ 232: Οργάνωση Δεδομένων στη Κοινωνία της Πληροφορίας © 2012 Nicolas Tsapatsoulis Πρωτεύοντα και υποψήφια κλειδιά Υποψήφια κλειδιά ορίζονται ως UNIQUE, ένα από τα υποψήφια κλειδιά ορίζεται ως πρωτεύον κλειδί: CREATE TABLE Enrolled (sid CHAR(20), cid CHAR(20), grade CHAR(2), PRIMARY KEY (sid, cid)) Ο παραπάνω ορισμός μεταφράζεται ως: “ Για κάθε ζεύγος φοιτητή – μαθήματος υπάρχει ένας μοναδικός βαθμός ” Αντίθετα ο παρακάτω ορισμός επιτρέπει σε κάθε ένα φοιτητή να παίρνει μόνο ένα μάθημα και σε κανένα φοιτητή να μην έχει ίδιο βαθμό με οποιοδήποτε άλλο στο ίδιο μάθημα CREATE TABLE Enrolled (sid CHAR(20), cid CHAR(20), grade CHAR(2), PRIMARY KEY (sid), UNIQUE (cid, grade)) Περιορισμοί ακεραιότητας που αφορούν πρωτεύοντα κλειδιά (που προκύπτουν ως συνδυασμός πεδίων) πρέπει να ορίζονται προσεκτικά ώστε να μη δημιουργούνται προβλήματα στην εισαγωγή δεδομένων Εισαγωγή στο σχεσιακό μοντέλο Σχεσιακές γλώσσες ερωτημάτων Περιορισμοί ακεραιότητας Μετατροπή ER διαγράμματος σε σχεσιακό σχήμα Όψεις
15
ΕΣΔ 232: Οργάνωση Δεδομένων στη Κοινωνία της Πληροφορίας © 2012 Nicolas Tsapatsoulis Ξένα κλειδιά και ακεραιότητας αναφοράς Ξένο κλειδί: Είναι ένα σύνολο πεδίων σε ένα πίνακα το οποίο χρησιμοποιείται για ‘αναφορά’ σε κάποια εγγραφή άλλου πίνακα. Το ξένο κλειδί πρέπει να είναι πρωτεύον κλειδί σε κάποιο άλλο πίνακα. Παράδειγμα: Το πεδίο sid στο πίνακα Enrolled είναι ένα ξένο κλειδί το οποίο αναφέρεται σε εγγραφές του πίνακα Students: Enrolled(sid: string, cid: string, grade: string) Αν όλοι οι περιορισμοί ξένου κλειδιού τηρούνται τότε επιτυγχάνεται ακεραιότητα αναφοράς. Δηλαδή δεν υπάρχουν τυφλές αναφορές. Εισαγωγή στο σχεσιακό μοντέλο Σχεσιακές γλώσσες ερωτημάτων Περιορισμοί ακεραιότητας Μετατροπή ER διαγράμματος σε σχεσιακό σχήμα Όψεις
16
ΕΣΔ 232: Οργάνωση Δεδομένων στη Κοινωνία της Πληροφορίας © 2012 Nicolas Tsapatsoulis Ξένα κλειδιά στην SQL Μόνο οι φοιτητές που υπάρχουν στον πίνακα Students επιτρέπεται να εγγραφούν σε μαθήματα (επομένως το πεδίο sid του πίνακα Enrolled θα πρέπει να οριστεί ως ξένο κλειδί με αναφορά στο πίνακα Students. CREATE TABLE Enrolled (sid CHAR(20), cid CHAR(20), grade CHAR(2), PRIMARY KEY (sid,cid), FOREIGN KEY (sid) REFERENCES Students ) Εισαγωγή στο σχεσιακό μοντέλο Σχεσιακές γλώσσες ερωτημάτων Περιορισμοί ακεραιότητας Μετατροπή ER διαγράμματος σε σχεσιακό σχήμα Όψεις
17
ΕΣΔ 232: Οργάνωση Δεδομένων στη Κοινωνία της Πληροφορίας © 2012 Nicolas Tsapatsoulis Επιβολή ακεραιότητας αναφοράς Θεωρήστε το παράδειγμα των πινάκων Students και Enrolled. Το πεδίο sid στο πίνακα Enrolled είναι ένα ξένο κλειδί το οποίο αναφέρεται σε εγγραφές του πίνακα Students. Τι πρέπει να γίνει αν εισαχθεί μια εγγραφή στο πίνακα Enrolled η οποία έχει στο πεδίο sid τιμή η οποία δεν υπάρχει τον πίνακα Students; Απ.: Η εισαγωγή της εγγραφής πρέπει να απορριφθεί! Τι θα πρέπει να γίνει αν μια εγγραφή του πίνακα Students διαγραφεί; 1.Διαγραφή όλων των εγγραφών στο πίνακα Enrolled οι οποίες κάνουν αναφορά στην εγγραφή αυτή, ή 2.Να μην επιτρέπεται η διαγραφή εγγραφών του πίνακα Students για τις οποίες υπάρχει αναφορά στο πίνακα Enrolled. 3.Να τεθεί το sid στο πίνακα Enrolled σε κάποια προεπιλεγμένη τιμή (η οποία προφανώς δεν αντιστοιχεί σε κάποια υφιστάμενη τιμή sid) 4.Στην SQL, υπάρχει η δυνατότητα να θέσουμε την τιμή sid στο πίνακα Enrolled σε τιμή NULL (που πρακτικά σημαίνει ‘άγνωστο’ ή ‘μη εφαρμόσιμο’) Παρόμοιος χειρισμός συμβαίνει όταν έχουμε τροποποίηση της τιμής sid στον πίνακα Students Εισαγωγή στο σχεσιακό μοντέλο Σχεσιακές γλώσσες ερωτημάτων Περιορισμοί ακεραιότητας Μετατροπή ER διαγράμματος σε σχεσιακό σχήμα Όψεις
18
ΕΣΔ 232: Οργάνωση Δεδομένων στη Κοινωνία της Πληροφορίας © 2012 Nicolas Tsapatsoulis Ακεραιότητα αναφοράς στην SQL Στην SQL υποστηρίζονται 4 επιλογές σε περίπτωση διαγραφής / ενημέρωσης: Default is NO ACTION (η διαγραφή / ενημέρωση απορρίπτεται) CASCADE (διαγραφή /ενημέρωση όλων των εγγραφών οι οποίες κάνουν αναφορά στην εγγραφή που έχει διαγραφεί / ενημερωθεί) SET NULL / SET DEFAULT (η τιμή του ξένου κλειδιού τίθεται σε κάποια τιμή αναφοράς, εκ των προτέρων καθορισμένη) CREATE TABLE Enrolled (sid CHAR(20), cid CHAR(20), grade CHAR(2), PRIMARY KEY (sid,cid), FOREIGN KEY (sid), REFERENCES Students ON DELETE CASCADE ON UPDATE SET DEFAULT ) Εισαγωγή στο σχεσιακό μοντέλο Σχεσιακές γλώσσες ερωτημάτων Περιορισμοί ακεραιότητας Μετατροπή ER διαγράμματος σε σχεσιακό σχήμα Όψεις
19
ΕΣΔ 232: Οργάνωση Δεδομένων στη Κοινωνία της Πληροφορίας © 2012 Nicolas Tsapatsoulis Από που προέρχονται οι περιορισμοί ακεραιότητας Οι περιορισμοί ακεραιότητας τίθενται με στόχο τα δεδομένα μας να απεικονίζουν όσο το δυνατό πιστότερο τον πραγματικό κόσμο. Μπορούμε να ελέγξουμε ένα στιγμιότυπο ενός πίνακα για να δούμε αν κάποιος περιορισμός παραβιάζεται αλλά το αντίθετο δεν είναι αληθές: Το γεγονός ότι σε ένα στιγμιότυπο δεν παραβιάζεται κάποιος περιορισμός δε σημαίνει ότι ο περιορισμός είναι αληθής και δεν μπορεί να παραβιαστεί ποτέ. Ένας περιορισμός ακεραιότητας αφορά όλες τις πιθανές εγγραφές ενός πίνακα. Για παράδειγμα στο πίνακα Students το πεδίο name δεν είναι κλειδί όπως εύκολα μπορούμε να διαπιστώσουμε. Από την άλλη πλευρά μπορούμε να δούμε ότι το πεδίο sid με βάση τις συγκεκριμένες εγγραφές αποτελεί κλειδί αλλά κατά πόσο είναι τέτοιο πρέπει να μας το εγγυηθεί κάποιος τρίτος (ή ο τρόπος δημιουργίας των τιμών του). Τα κλειδιά και ξένα κλειδιά είναι οι πιο διαδεδομένες μορφές περιορισμών. Εισαγωγή στο σχεσιακό μοντέλο Σχεσιακές γλώσσες ερωτημάτων Περιορισμοί ακεραιότητας Μετατροπή ER διαγράμματος σε σχεσιακό σχήμα Όψεις
20
ΕΣΔ 232: Οργάνωση Δεδομένων στη Κοινωνία της Πληροφορίας © 2012 Nicolas Tsapatsoulis Μετατροπή ER διαγράμματος σε σχεσιακό σχήμα Μετασχηματισμός οντότητας σε πίνακα CREATE TABLE Employees (ssn CHAR(11), name CHAR(20), lot INTEGER, PRIMARY KEY (ssn)) Κατά το μετασχηματισμό μιας συσχέτισης σε πίνακα τα χαρακτηριστικά / ιδιότητες της οντότητας πρέπει να περιλαμβάνουν: Κλειδιά και ξένα κλειδιά Όλα τα απαιτούμενα χαρακτηριστικά / ιδιότητες. CREATE TABLE Works_In(ssn CHAR(1), did INTEGER, since DATE, PRIMARY KEY (ssn, did), FOREIGN KEY (ssn) REFERENCES Employees, FOREIGN KEY (did) REFERENCES Departments) Εισαγωγή στο σχεσιακό μοντέλο Σχεσιακές γλώσσες ερωτημάτων Περιορισμοί ακεραιότητας Μετατροπή ER διαγράμματος σε σχεσιακό σχήμα Όψεις
21
ΕΣΔ 232: Οργάνωση Δεδομένων στη Κοινωνία της Πληροφορίας © 2012 Nicolas Tsapatsoulis Περιορισμοί κλειδιού Κάθε τμήμα έχει το πολύ ένα διευθυντή (σύμφωνα με τον περιορισμό κλειδιού της συσχέτισης manages) Πως θα μετατρέψω τη συσχέτιση manages στο σχεσιακό μοντέλο. Απ.: Δημιουργώντας νέο πίνακα στον οποίο πρέπει να περιλαμβάνονται και τα δεδομένα διασταύρωσης (since). Εισαγωγή στο σχεσιακό μοντέλο Σχεσιακές γλώσσες ερωτημάτων Περιορισμοί ακεραιότητας Μετατροπή ER διαγράμματος σε σχεσιακό σχήμα Όψεις
22
ΕΣΔ 232: Οργάνωση Δεδομένων στη Κοινωνία της Πληροφορίας © 2012 Nicolas Tsapatsoulis ER διαγράμματα με περιορισμούς κλειδιού Κάθε συσχέτιση: πολλά προς πολλά, μετατρέπεται σε πίνακα. Στα πεδία του πίνακα περιλαμβάνονται: 1.Τα δεδομένα διασταύρωσης 2.Ως ξένα κλειδιά τα πρωτεύοντα κλειδιά των οντοτήτων που συσχετίζονται 3.Το (2) είναι απαραίτητο για συσχετίσεις πολλά προς πολλά. Σε διαφορετική περίπτωση περιλαμβάνουμε ως ξένο κλειδί μόνο το πρωτεύον κλειδί της οντότητας που βρίσκεται στην πλευρά του 1 στη συσχέτιση. CREATE TABLE Manages (ssn CHAR(11), did INTEGER, since DATE, PRIMARY KEY (did), FOREIGN KEY (ssn) REFERENCES Employees, FOREIGN KEY (did) REFERENCES Departments) Κάθε department έχει ένα μοναδικό manager. Επομένως χρειαζόμαστε μόνο το πρωτεύον κλειδί από τον πίνακα Employees. CREATE TABLE Dept_Mgr(did INTEGER, dname CHAR(20), budget REAL, ssn CHAR(11), since DATE, PRIMARY KEY (did), FOREIGN KEY (ssn) REFERENCES Employees) Εισαγωγή στο σχεσιακό μοντέλο Σχεσιακές γλώσσες ερωτημάτων Περιορισμοί ακεραιότητας Μετατροπή ER διαγράμματος σε σχεσιακό σχήμα Όψεις
23
ΕΣΔ 232: Οργάνωση Δεδομένων στη Κοινωνία της Πληροφορίας © 2012 Nicolas Tsapatsoulis Περιορισμοί συμμετοχής Στο προηγούμενο παράδειγμα το ερώτημα που τίθεται είναι: Έχουν όλα τα τμήματα (departments) διευθυντή; Αν ναι τότε έχουμε μια περίπτωση περιορισμού συμμετοχής και λέμε ότι στη συσχέτιση Manages η οντότητα Department συμμετέχει ολικά. Κάθε τιμή did στον πίνακα Departments πρέπει να εμφανίζεται σε κάποια εγγραφή του πίνακα Manages (έχοντας μη NULL ssn τιμή) Εισαγωγή στο σχεσιακό μοντέλο Σχεσιακές γλώσσες ερωτημάτων Περιορισμοί ακεραιότητας Μετατροπή ER διαγράμματος σε σχεσιακό σχήμα Όψεις
24
ΕΣΔ 232: Οργάνωση Δεδομένων στη Κοινωνία της Πληροφορίας © 2012 Nicolas Tsapatsoulis Περιορισμοί συμμετοχής (2) Οι περιορισμοί συμμετοχής μπορούν να ελεγχθούν σε δύο επίπεδα Ορισμός του ξένου κλειδιού ως μη μηδενική τιμή Με ορισμό ενός trigger το οποίο θα ελέγχει με CHECK ότι οι τιμές ssn υπάρχουν στον πίνακα Students CREATE TABLE Dept_Mgr (did INTEGER, dname CHAR(20), budget REAL, ssn CHAR(11) NOT NULL, since DATE, PRIMARY KEY (did), FOREIGN KEY (ssn) REFERENCES Employees, ON DELETE NO ACTION) Εισαγωγή στο σχεσιακό μοντέλο Σχεσιακές γλώσσες ερωτημάτων Περιορισμοί ακεραιότητας Μετατροπή ER διαγράμματος σε σχεσιακό σχήμα Όψεις
25
ΕΣΔ 232: Οργάνωση Δεδομένων στη Κοινωνία της Πληροφορίας © 2012 Nicolas Tsapatsoulis Αδύναμες Οντότητες Αδύναμη ονομάζεται μια οντότητα όταν μπορεί να αναγνωριστεί μοναδικά μόνο με τη βοήθεια μιας άλλης οντότητας (η οντότητα αυτή ονομάζεται ιδιοκτήτης –owner). Η οντότητα ιδιοκτήτης και η αδύναμη οντότητα πρέπει να συμμετέχουν σε μια συσχέτιση 1 προς πολλά (1 ιδιοκτήτης, πολλές αδύναμες οντότητες). Η αδύναμη οντότητα έχει ολική συμμετοχή στη συσχέτιση. Εισαγωγή στο σχεσιακό μοντέλο Σχεσιακές γλώσσες ερωτημάτων Περιορισμοί ακεραιότητας Μετατροπή ER διαγράμματος σε σχεσιακό σχήμα Όψεις
26
ΕΣΔ 232: Οργάνωση Δεδομένων στη Κοινωνία της Πληροφορίας © 2012 Nicolas Tsapatsoulis Αδύναμες Οντότητες (2) Η αδύναμη οντότητα και η συσχέτιση της με την οντότητα ιδιοκτήτη μετατρέπονται σε ένα μόνο πίνακα. Όταν η οντότητα ιδιοκτήτης διαγραφεί θα πρέπει να διαγράφονται και όλες οι αδύναμες οντότητες. CREATE TABLE Dep_Policy (pname CHAR(20), age INTEGER, cost REAL, ssn CHAR(11) NOT NULL, PRIMARY KEY (pname, ssn), FOREIGN KEY (ssn) REFERENCES Employees, ON DELETE CASCADE) Εισαγωγή στο σχεσιακό μοντέλο Σχεσιακές γλώσσες ερωτημάτων Περιορισμοί ακεραιότητας Μετατροπή ER διαγράμματος σε σχεσιακό σχήμα Όψεις
27
ΕΣΔ 232: Οργάνωση Δεδομένων στη Κοινωνία της Πληροφορίας © 2012 Nicolas Tsapatsoulis Όψεις Όψη είναι ένας πίνακας στον οποίο αποθηκεύουμε έναν ορισμό (σε SQL) αντί για εγγραφές: CREATE VIEW YoungActiveStudents (name, grade) AS SELECT S.name, E.grade FROM Students S, Enrolled E WHERE S.sid = E.sid and S.age<21 Μπορούμε να διαγράψουμε Όψεις χρησιμοποιώντας την SQL εντολή DROP VIEW. Τι γίνεται όταν διαγράψουμε ένα πίνακα με την εντολή DROP TABLE και ο πίνακας αυτός χρησιμοποιείται στον ορισμό μιας όψης; Η εντολή DROP TABLE έχει επιλογές που επιτρέπουν στο χρήστη να χειριστεί αυτό το θέμα. Εισαγωγή στο σχεσιακό μοντέλο Σχεσιακές γλώσσες ερωτημάτων Περιορισμοί ακεραιότητας Μετατροπή ER διαγράμματος σε σχεσιακό σχήμα Όψεις
28
ΕΣΔ 232: Οργάνωση Δεδομένων στη Κοινωνία της Πληροφορίας © 2012 Nicolas Tsapatsoulis Σύνοψη Το σχεσιακό μοντέλο δεδομένων είναι μια αναπαράσταση των οντοτήτων και των σχέσεων τους με χρήση δυσδιάσταστων πινάκων Είναι η πιο διαδεδομένη μορφή αναπαράστασης δεδομένων. Βασικό χαρακτηριστικό του σχεσιακού μοντέλου είναι οι περιορισμοί (constraints). Οι περιορισμοί τίθενται στη σχεδίαση και υλοποίηση της βάσης από το σχεδιαστή της βάσης και ελέγχονται από το σύστημα διαχείρισης βάσεων δεδομένων (DBMS). Υπάρχουν δύο βασικές κατηγορίες περιορισμών τα πρωτεύοντα (primary) και τα ξένα (foreign) κλειδιά. Επιπλέον των ανωτέρω υπάρχουν και οι περιορισμοί του πεδίου εφαρμογής (π.χ. οι κανόνες μιας επιχείρησης) Για το σχεσιακό μοντέλο έχουν αναπτυχθεί γλώσσες προγραμματισμού και διαχείρισης της βάσης. Οι γλώσσες αυτές μας επιτρέπουν την υποβολή ερωτημάτων στη βάση και για αυτό ονομάζονται Δομημένες Γλώσσες Ερωτημάτων (SQL) H πλέον διαδεδομένη γλώσσα είναι η SQL-92 ή απλά SQL Εισαγωγή στο σχεσιακό μοντέλο Σχεσιακές γλώσσες ερωτημάτων Περιορισμοί ακεραιότητας Μετατροπή ER διαγράμματος σε σχεσιακό σχήμα Όψεις
29
ΕΣΔ 232: Οργάνωση Δεδομένων στη Κοινωνία της Πληροφορίας © 2012 Nicolas Tsapatsoulis Παραδείγματα Να λύσετε τις ασκήσεις: 1.3.8 2.3.9 3.3.13 4.3.16 από το βιβλίο σας [Ramakrishnan 2002a] Εισαγωγή στο σχεσιακό μοντέλο Σχεσιακές γλώσσες ερωτημάτων Περιορισμοί ακεραιότητας Μετατροπή ER διαγράμματος σε σχεσιακό σχήμα Όψεις
Παρόμοιες παρουσιάσεις
© 2024 SlidePlayer.gr Inc.
All rights reserved.