ΣΧΕΣΙΑΚΟ ΜΟΝΤΕΛΟ (Relational Model) Μαθ. #10
Πράξεις Αλλαγής εδοµένων 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 αναφέρονται σ αυτήν την πλειάδα
DECLARE RELATION EMPLOYEE FOR SCHEMA COMPANY ATTRIBUTES FNAME DOMAIN PERSON_NAME MINIT DOMAIN PERSON_INTIALS LNAME DOMAIN PERSON_NAME SSN DOMAIN PERSON_SSN BDATE DOMAIN DATES ADDRESS DOMAIN ADDRESS SEX DOMAIN PERSON_SEX SALARY DOMAIN PERSON_SALARIES SUPERSSN DOMAIN PERSON_SSSN DNO DOMAIN DEPT_NUMBER CONSTRAINTS PRIMARY KEY(SSN) FOREIGN_KEY(SUPERSSN) REFERENCES EMPLOYEE FOREIGN_KEY(DNO) REFERENCES DEPARTMENT
DECLARE RELATION DEPARTMENT FOR SCHEMA COMPANY ATTRIBUTES DNAME DOMAIN DEPT_NAME DNUMBER DOMAIN DEPT_NUMBER MGRSSN DOMAIN PERSON_SSN MGRSTARTDATE DOMAIN DATES CONSTRAINTS PRIMARY_KEY(DNUMBER), KEY (DNAME), FOREINGN KEY(MGRSSN) REFERENCES EMPLOYEE
Σχεσιακό Μοντέλο Σχεσιακή Άλγεβρα Η κεντρική ιδέα είναι Μια λογική παράσταση (έκφραση) δέχεται σαν δεδοµένα σχέσεις και παράγει σαν αποτέλεσµα σχέση f : R1 x R2 x x Rn R Εποµένως, εµφώλευση είναι δυνατή f1(f2(f3( ))) Στησχεσιακήάλγεβραµέσο σχεσιακών τελεστών Στη SQL µέσο εµφωλευτικής where όρο (clause)
Ο Codd όρισε δυο σύνολα από υψηλού επιπέδου τελεστές Παραδοσιακό σύνολο Ένωση (union) Ελάχιστο σύνολο Τοµή (intersection) ιαφορά (difference) Καρτεσιανό Γινόµενο (Cartesian product) Ελαφρώς αλλαγµένο για να λαµβάνει υπόψη το γεγονός ότι ο τελεστής (όρος) είναι σχέση και όχι ένα τυχών σύνολο
Ο Codd όρισε δυο σύνολα από υψηλού επιπέδου τελεστές Ειδικούς σχεσιακούς τελεστές Select Project Natural join Divide (quotient) Join Semi-join Ελάχιστο σύνολο
Σχεσιακό Μοντέλο Union (U) Κτίζει µια σχέση η οποία αποτελείται από όλες τις πλειάδες που εµφανίζονται σε µια ή και τις δυο καθορισµένες σχέσεις t R U S εάν t R ή t S R και S πρέπει να είναι συµβατά Ιδίου βαθµού Τα αντίστοιχα πεδία τιµών να είναι τα ίδια Γενικά η συµβατότητα του R και S µπορεί να αποφασιστεί απλά από το σχήµατους
Σχεσιακό Μοντέλο Union (U)
Σχεσιακό Μοντέλο ιαφορά ( - ) ηµιουργεί µια σχέση που αποτελείται από όλες τις πλειάδες που εµφανίζονται στην πρώτη και όχι στην δεύτερη από δυο ορισµένες σχέσεις t R - S εάν t R και t S R και S πρέπει να είναι συµβατά
Σχεσιακό Μοντέλο Τοµή ( ) ηµιουργεί µια σχέση που αποτελείται από όλες τις πλειάδες που εµφανίζονται και στις δυο σχέσεις t R S εάν t R και t S R και S πρέπει να είναι συµβατά R S = R (R S)
Σχεσιακό Μοντέλο Καρτεσιανό Γινόµενο (Χ) ηµιουργεί µια σχέση από δυο ορισµένες σχέσεις που αποτελείται από όλους τους δυνατούς συνδυασµούς πλειάδων, µια από κάθε σχέση t R Χ S εάν Τα πρώτα Κ1 στοιχεία του t αποτελούν µια πλειάδα στο R Τα υπόλοιπα Κ2 στοιχεία του t αποτελούν µια πλειάδα στο S Όπου Κ1 είναι ο βαθµός του R και Κ2 είναι ο βαθµός του Σ
Σχεσιακό Μοντέλο Καρτεσιανό Γινόµενο (Χ)
Σχεσιακό Μοντέλο Selection (σ) Επιλέγει ειδικές πλειάδες από µια σχέση. ηλαδή περιορίζει τη σχέση σε αυτές τις πλειάδες που ικανοποιούν µια συνθήκη F t σ F (R) εάν t R και F(t) Όπου F είναι µια λογική παράσταση αποτελούµενη από Τελεστές, σταθερές, ονόµατα στηλών, σειρά όρου Αριθµητικοί τελεστές συγκρίσεως =<> Λογικοί τελεστές v ^
Παράδειγµα επιλογής
Θεωρείστε τη σχέση Παραδείγµατα SUPPLIES (SNAME, INAME, PRICE) Query 1 Βρες όλους τους suppliers που προµηθεύουν φασολάκι Π SNAME ( σ INAME= φασολάκι (SUPPLIES) Query 2 Βρεςόλαταπροϊόνταπουοπροµηθευτής «Ψαθάς» πωλεί για λιγότερο από $4.5 Π ΙΝΑΜΕ, PRICE ( σ SNAME= Ψαθάς ^ PRICE < $4.5 (SUPPLIES))
Σχεσιακό Μοντέλο Βελτιστοποιήσεις & Υλοποιήσεις Ένωση, ιαφορά (συγχώνευση, merging) Οι σχέσεις πρέπει να τοποθετηθούν σε σειρά (sorted) Καρτεσιανό Γινόµενο Ένα είναι δυνατό να αποφευχθεί (οι πλειάδες) Αντικατάστασης µε JOINs όπου SORT/MERGE µπορεί να χρησιµοποιηθεί Βελτιστοποίησης της σειράς υπολογισµού της λογικής παράστασης
Σχεσιακό Μοντέλο Βελτιστοποιήσεις & Υλοποιήσεις Projection Βελτιστοποίησης µετηµετακίνηση ιδίων πλειάδων µεχρήσηsorting Selection Βελτιστοποίησης της σειράς υπολογισµού της λογικής παράστασης Χρήση «µονοπατιών πρόσβασης» (indexing)
Σχεσιακό Μοντέλο Περιορισµοί της Σχεσιακής Άλγεβρας Κάποιου είδους ερωτήσεις δεν µπορούν να απαντηθούν: Είναι βασισµένη στη λογική πρώτης τάξης, εποµένως Ανεπαρκές για αναδροµικές ερωτήσεις Βρες όλους τους υπαλλήλους που διευθύνονται από τη «Σοφία» Ποσοδεικτικές ερωτήσεις Πόσες πλειάδες υπάρχουν στη σχέση R Λύσεις: Host Γλώσσες (π.χ. C, Fortran) Ειδικές κατασκευές (π.χ. Count(*)) Καινούργιες πιο ισχυρές γλώσσες υπερωτήσεων
Σχεσιακό Μοντέλο Περιορισµοί της Σχεσιακής Άλγεβρας Πεπερασµένες σχέσεις µόνο Άπειρα φαινόµενα δεν µπορούν να αντιπροσωπευθούν (deductions) Λύση: αναγωγικοί κανόνες (Prolog, KDBMS) Πεδία τιµών µε βασικά στοιχεία Ανεπαρκείς για µησυµβατές εφαρµογές Λύση: εµφωλευτηκές σχέσεις (NON-1NF) Πολύπλοκα αντικείµενα (Complex Objects: OODBMS)
Fig 6.8
Fig 6.11
Fig 6.17
Fig 6.18
Fig 6.19
Fig 6.21
Fig 6.22
Table 6.1
Table 6.2
Fig 6.3