22Γ901 Βάσεις Δεδομένων και Γνώσεων 9ο Εξάμηνο Κύκλου Σπουδών ΗΥ και Μεταπτυχιακός Κύκλος Σπουδών Διδάσκων: Ν. Αβούρης Β μέρος Διαφανειών μαθήματος (2005-2006) Ν. Αβούρης- Βάσεις Δεδομένων και Γνώσεων 1 #5. Σχεσιακό Μοντέλο Codd (1970) Βάση δεδομένων= συλλογή από σχέσεις Κάθε σχέση R(A1,A2, An) αποτελείται από το όνομα της σχέσης R και μία λίστα από γνωρίσματα Α i Κάθε γνώρισμα έχει ένα πεδίο ορισμού dom(a i ), ένα σύνολο από ατομικές τιμές Σε κάθε πεδίο ορισμού δίδεται ένα όνομα, τύπος δεδομένων και μια μορφοποίηση Ένα στιγμιότυπο r(r) είναι ένα σύνολο από n- πλειάδες {t1, t2, tm}. Κάθε n-πλειάδα είναι μια διατεταγμένη λίστα από n τιμές t=<v1,v2,..vn> όπου κάθε v i είναι μια τιμή του dom(a i ) ή τιμή null Ν. Αβούρης- Βάσεις Δεδομένων και Γνώσεων 2 1
Σχέση (Relation)- Πίνακας dom(αμ) dom(όνομα) dom(έτος) dom(τομέας) ΦΟΙΤΗΤΗΣ ΑΜ Όνομα Ετος Τομέας 4040 Γεωργίου Γ. 4 ΗΥ 4041 Ανδρέου Α. 4 ΤΤΠ 4042 Παπαδόπουλος Β. 4 ΣΑΕ Attributes (γνωρίσματα) 4043 Σωτηρίου Α. 4 ΤΤΠ 4044 Βασιλείου Β. 4 ΣΑΕ 4061 Παναγιώτου Π. 5 ΤΤΠ 4062 Ράλης Ι. 5 ΣΑΕ 4063 Ξένος Μ. 5 ΤΤΠ 4064 Ράπτη Μ. 5 ΣΑΕ degree (βαθμός) cardinality (πληθάριθμος) Πλειάδα (tuple) Ν. Αβούρης- Βάσεις Δεδομένων και Γνώσεων 3 R ( A 1, A 2, A 3,.. A n ) Σχέσεις - ορισμοί r(r) (dom(a 1 ) X dom(a 2 )...X dom(a n ) ) από θεωρία συνόλων: όχι διπλές πλειάδες οι πλειάδες δεν είναι διατεταγμένες τα γνωρίσματα δεν είναι διατεταγμένα οι τιμές των γνωρισμάτων είναι ατομικές (όχισύνολατιμών) Ν. Αβούρης- Βάσεις Δεδομένων και Γνώσεων 4 2
Πεδία ορισμού : dom (A) Όνομα Τύπος δεδομένων Μορφοποίηση δεδομένων Επιπλέον πληροφορίες: μονάδες μέτρησης πχ ΑΡ_ΤΗΛΕΦΩΝΟΥ οι ελληνικοί_αριθμοί_τηλεφώνου ορίζονται ως συμβολοσειρές (τύπος string) με μορφή: dddd ddddddd, όπου τα αρχικά ψηφία αναπαριστούν έναν αποδεκτό κωδικό περιοχής που αρχίζει με «2» και έχει 2 έως 5 ψηφία και οι αριθμοί είναι 5ψήφιοι έως 7ψηφιοι Ν. Αβούρης- Βάσεις Δεδομένων και Γνώσεων 5 Ητιμή null Η σημασιολογία της δεν είναι μονοσήμαντη: «άγνωστη τιμή» «το γνώρισμα δεν υφίσταται για την πλειάδα αυτή» «η πλειάδα αυτή δεν έχει τιμή για το γνώρισμα αυτό» Ν. Αβούρης- Βάσεις Δεδομένων και Γνώσεων 6 3
Γνωρίσματα-κλειδιά Ένα υποσύνολο γνωρισμάτων SK για το οποίο έχουμε για κάθε δύο διαφορετικές πλειάδες ενός στιγμιότυπου ότι : t 1 [SK] t 2 [SK] ονομάζεται Superkey (υπερκλειδί) Κλειδί (K) ονομάζεται κάθε υπερκλειδί για το οποίο αν αφαιρεθεί ένα οποιοδήποτε γνώρισμα παύει να είναι υπερκλειδί. Η τιμή του χρησιμεύει για μονοσήμαντο ορισμό της πλειάδας Υποψήφια κλειδιά, όλα τα κλειδιά μιας σχέσης Πρωτεύον κλειδί (PK): το υποψήφιο κλειδί που χρησιμεύει για τον προδιορισμό της πλειάδας Ξένο κλειδί (FK) : γνώρισμα με το ίδιο πεδίο ορισμού με το πρωτεύον κλειδί μιας άλλης σχέσης Ν. Αβούρης- Βάσεις Δεδομένων και Γνώσεων 7 Περιορισμοί σχέσεων Περιορισμοί πεδίου ορισμού: η τιμή κάθε γνωρίσματος Αi πρέπει να είναι ατομική από το dom(ai) Περιορισμοί κλειδιού : μοναδικότητα τιμών πρωτεύοντος κλειδιού Περιορισμός ακεραιότητας οντοτήτων : πρωτεύον κλειδί null Περιορισμός αναφορικής ακεραιότητας μεταξύ δύο σχέσεων: αναφορά σε υπαρκτή πλειάδα Περιορισμοί σημασιολογικής ακεραιότητας (κανόνες μικρόκοσμου) Ν. Αβούρης- Βάσεις Δεδομένων και Γνώσεων 8 4
ΗΒΔ «Εταιρεία» Ε Α Τ ΤΟΠ ΕΞ ΕΡ Ν. Αβούρης- Βάσεις Δεδομένων και Γνώσεων 9 Άσκηση περιορισμών Στο σχήμα της ΒΔ «Εταιρεία» να ελεγχθεί αν παραβιάζονται οι περιορισμοί από τις παρακάτω πράξεις: INSERT < Nikos,, Avouris, null, 05-10-60,,,,,> INTO ERGAZOMENOS INSERT < Nikos,, Avouris, 677678989, 05-10-60,,,,,> INTO ERGAZOMENOS DELETE tuple AR_TAYT= 999887777 FROM ERGAZOMENOS MODIFY tuple AR_TAYT= 999887777 to ARITH_T=1 IN ERGAZOMENOS MODIFY tuple AR_TAYT= 999887777 to ARITH_T=7 IN ERGAZOMENOS Ν. Αβούρης- Βάσεις Δεδομένων και Γνώσεων 10 5
Πράξεις ενημέρωσης σχέσεων Εισαγωγή (insert) insert <... > into ERGAZOMENOS διαγραφή (delete) delete <συνθήκη> from ERGAZOMENOS τροποποίηση (modify) modify <πεδίο = τιμή > in ERGAZOMENOS Ορισμός σχέσεων declare schema ETAIREIA declare domain ONOMA type FIXED_CHAR (9) declare relation ERGAZOMENOS for Schema... attributes... X domain DOMX,...,..., constraints primary key (..), foreign key (..) Ν. Αβούρης- Βάσεις Δεδομένων και Γνώσεων 11 Σχεσιακή άλγεβρα Σύνολο πράξεων για το χειρισμό σχέσεων. Οι πράξεις αυτές χρησιμοποιούνται για το μετασχηματισμό μιας ή περισσότερων σχέσεων σε νέες σχέσεις δύο κατηγορίες πράξεων: πράξεις ειδικά σχεσιακών βάσεων δεδομένων: Μοναδιαίοι τελεστές: ΕΠΙΛΟΓΗ (SELECT), ΠΡΟΒΟΛΗ (PROJECT), Δυαδικοί τελεστές: ΣΥΝΕΝΩΣΗ (JOIN) ΔΙΑΙΡΕΣΗ (DIVISION) πράξεις από τη θεωρία συνόλων (εφαρμόζονται επειδή κάθε σχέση ορίζεται ως σύνολο πλειάδων) : UNION, INTERSECTION, DIFFERENCE, PRODUCT, DIVISION Ν. Αβούρης- Βάσεις Δεδομένων και Γνώσεων 12 6
Πράξη επιλογής (selection): τελεστής σ σ <συνθήκη επιλογής> (<όνομα σχέσης>) σ ΩΡΕΣ>30 (ΑΠΑΣΧΟΛΗΣΗ) Ν. Αβούρης- Βάσεις Δεδομένων και Γνώσεων 13 Eπιλογή σ Αντιμεταθετικότητα επιλογής : σ <συνθ1> (σ <συνθ2> R) = σ <συνθ2> (σ <συνθ1> R) Σύζευξη επιλογών : σ <συνθ1> (σ <συνθ2> R) = σ <συνθ1> AND <συνθ2> (R) Ν. Αβούρης- Βάσεις Δεδομένων και Γνώσεων 14 7
Προβολή (project): τελεστής π π <λίστα γνωρισμάτων> (<όνομα σχέσης>) π Ε_ΑΡΤΑΥΤ, ΩΡΕΣ (ΑΠΑΣΧΟΛΗΣΗ) Ν. Αβούρης- Βάσεις Δεδομένων και Γνώσεων 15 Προβολή π π <λίστα γνωρισμάτων> (<όνομα σχέσης>) Ισχύει η Αντιμεταθετικότητα ; π <λίστα1> (π <λίστα2> R) π <λίστα2> (π <λίστα1> R) : ΟΧΙ Πότε ισχύει η : π < λίστα1 > (π < λίστα2> R) = π < λίστα1 > (R) Ν. Αβούρης- Βάσεις Δεδομένων και Γνώσεων 16 8
Άσκηση Να ανακτήσετε το όνομα, επίθετο και μισθό των εργαζομένων που δουλεύουν στο Τμήμα 5. Ν. Αβούρης- Βάσεις Δεδομένων και Γνώσεων 17 #6 Συνολοθεωρητικές πράξεις Ένωση (UNION) R S Τομή (INTERSECTION) R S ιαφορά (DIFFERENCE) R-S Καρτεσιανό γινόμενο R X S ιαίρεση R S Ν. Αβούρης- Βάσεις Δεδομένων και Γνώσεων 18 9
R S Πράξεις συνόλων R S R - S R R R S S S R a b c S x y R X S a a b b c c x y x y x y R a a a b c x y z x y S x z a R S Ν. Αβούρης- Βάσεις Δεδομένων και Γνώσεων 19 Η πράξη της Συνένωσης (Join) J S <συνθήκη συνένωσης> R συνθήκη συνένωσης: Αi θ Bj όπου θ τελεστής σύγκρισης Αν S(A1,A2,.. An) και R(B1, B2,.. Bm) τότε το αποτέλεσμα είναι μια σχέση: J(A1,A2,.. An, B1, B2,.. Bm) για όλες τις πλειάδες που ικανοποιούν τη συνθήκη συνένωσης Ν. Αβούρης- Βάσεις Δεδομένων και Γνώσεων 20 10
Φυσική συνένωση Ησυνένωση ισότητας με απαλοιφή του δεύτερου γνωρίσματος λέγεται φυσική συνένωση: J S * [<λίστα1, λίστα2>] R Όπου λίστα1, λίστα2 λίστες γνωρισμάτων των S, R για τις οποίες σχηματίζονται συνθήκες σύγκρισης ισότητας Ν. Αβούρης- Βάσεις Δεδομένων και Γνώσεων 21 Φυσική Συνένωση (Natural Join) R S R * S Α Β Β C A B C a1 b1 b1 c1 a1 b1 c1 a2 b1 b2 c2 a2 b1 c1 a3 b2 b3 c3 a3 b2 c2 Πεδίo συνένωσης (σχέση συνένωσης θ ) όπου θ αναπαριστά ισότητα = και απαλοιφή κοινών γνωρισμάτων) Ν. Αβούρης- Βάσεις Δεδομένων και Γνώσεων 22 11
Παράδειγμα Να βρείτε τα ονόματα των διευθυντών των τμημάτων ΔΙΕΥΘ_ΤΜΗΜ ΤΜΗΜΑ ΔΙΕΥΘΥΝΤΗΣ=ΑΡ_ΤΑΥΤ ΕΡΓΑΖΟΜΕΝΟΣ ΑΠΟΤΕΛΕΣΜΑ π Τ_ΟΝΟΜΑ, ΟΝΟΜΑ, ΕΠΙΘΕΤΟ ΔΙΕΥΘ_ΤΜΗΜ Ν. Αβούρης- Βάσεις Δεδομένων και Γνώσεων 23 Πλήρες Σύνολο πράξεων Οι πράξεις σ, π, U x σχηματίζουν ένα πλήρες σύνολο πράξεων (δηλαδή κάθε άλλη πράξη μπορεί να προκύψει από αυτές) πχ: S συνθήκη R => σ συνθήκη (SxR) Ν. Αβούρης- Βάσεις Δεδομένων και Γνώσεων 24 12
Συναθροιστικές συναρτήσεις (aggregate functions) R ΕΡΓΟ ΜΕΣΗ_ΑΠΑΣΧ 1 26,25 2 12,50 AVERAGE 3 25,00 10 18,50 20 12,50 30 18,33 R (ΕΡΓΟ, ΜΕΣΗ_ΑΠΑΣΧ) K_ΕΡΓΟ F AVERAGE ΩΡΕΣ (ΑΠΑΣΧΟΛΗΣΗ) Ν. Αβούρης- Βάσεις Δεδομένων και Γνώσεων 25 Συναθροιστικές συναρτήσεις R <ΑΑ> F <AF Α> (R) Όπου ΑΑ: γνώρισμα ομαδοποίησης με βάση το οποίο δημιουργούνται οι ομάδες στις οποίες εφαρμόζεται η συνάρτηση ομαδοποίησης AF συνάρτηση ομαδοποίησης (SUM, AVERAGE, MAX, MIN, COUNT) A: γνώρισμα της σχέσης R Π.χ. S (TOTQTY) F SUM QTY (S) Ν. Αβούρης- Βάσεις Δεδομένων και Γνώσεων 26 13
Μια βάση δεδομένων: Προμηθευτές-Προϊόντα S S# SNAME STATUS CITY S1 Smith 20 London S2 Jones 10 Paris S3 Blake 30 Paris S4 Clark 20 London S5 Adams 30 Athens P P# PNAME COLOR WEIGHT CITY P1 Nut Red 12 London P2 Bolt Green 17 Paris P3 Screw Blue 17 Rome P4 Screw Red 14 London P5 Cam Blue 12 Paris P6 Cog Red 19 London SP S# P# QTY S1 P1 300 S1 P2 200 S1 P3 400 S1 P4 200 S1 P5 100 S1 P6 100 S2 P1 300 S2 P2 400 S3 P2 200 S4 P2 200 S4 P4 300 S4 P5 400 Προμηθευτές (Suppliers) Κωδικός, Όνομα, Κατάσταση, Πόλη Προϊόντα (Products), Κωδικός, Όνομα προϊόντος, χρώμα βάρος- πόλη Αποστολές (κωδικός προμηθευτή, κωδικός προϊόντος, ποσότητα προϊόντος) Ν. Αβούρης- Βάσεις Δεδομένων και Γνώσεων 27 Ερωτήσεις 1/2 (σχεσιακή άλγεβρα) Τα ονόματα των πόλεων των προμηθευτών Το χρώμα και την πόλη παραγωγής προιόντων τους κωδικούς των προμηθευτών του Παρισιού τα προιόντα με βάρος < 14 ποιό το αποτέλεσμα της πράξης S*P Ποιό το αποτέλεσμα της πράξης (σχολιάστε) : S1 S(S#, SNAME, STATUS, SCITY) P1 P(P#, PNAME, COLOR, WEIGHT, PCITY) S2 S1 SCITY > PCITY P1 Ν. Αβούρης- Βάσεις Δεδομένων και Γνώσεων 28 14
Ερωτήσεις 2/2 Βρες τα ονόματα των εργαζομένων που απασχολούνται σε όλα τα έργα που ελέγχονται από το τμήμα με κωδικό 5 Δώσε μια λίστα κωδικών έργων που εμπλέκονται είτε ως απασχολούμενοι, είτε ως διευθυντές των τμημάτων που τα ελέγχουν, εργαζόμενοι με επίθετο Smith Βρες τα ονόματα των διευθυντών που έχουν τουλάχιστον ένα εξαρτώμενο Ν. Αβούρης- Βάσεις Δεδομένων και Γνώσεων 29 Φροντιστηριακή άσκηση #5 Βιβλίο Elmasri-Navathe (4η έκδοση): Άσκηση 6.16 (Παράδοση σε 1 βδομάδα από σήμερα ανεξαρτήτως καταλήψεων- βροχώνκαταποντισμών- υγείας του eclass) Ν. Αβούρης- Βάσεις Δεδομένων και Γνώσεων 30 15