Σχεσιακή Άλγεβρα Κεφάλαιο 4 Database Management Systems, R. Ramakrishnan and J. Gehrke 1
Γλώσσες Σχεσιακών Αιτηµάτων v Γλώσσες Αιτηµάτων: Ε ιτρέ ουν τη ιαχείριση και την Ανάκτηση εδοµένων α ό µια Β. v Το Σχεσιακό Μοντέλο υ οστηρίζει α λές και ισχυρές ΓΑ: Τυ ικός ορισµός βασισµένος στη Λογική. ιευκολύνει τη διαδικασία βελτιστο οίησης. v Γλώσσες Αιτηµάτων!= Γλώσσες Προγραµµατισµού! 2
Τυ ικές Γλώσσες Σχεσιακών Αιτηµάτων v ύο µαθηµατικές Γλώσσες Αιτηµάτων δίνουν τις βασικές γνώσεις για την κατανόηση της SQL: Σχεσιακή Άλγεβρα: Πιο λειτουργική, ολύ χρήσιµη για σχέδια ε εξεργασίας. (Με αυτή θα ασχοληθούµε) Σχεσιακός Λογισµός: Περιγράφουµε τι θέλουµε και όχι ώς θα το υ ολογίσουµε. (Μη λειτουργικός, δηλωτικός) Η κατανόηση Άλγεβρας & Λογισµού είναι α αραίτητη για την κατανόηση ε εξεργασίας ερωτηµάτων µε SQL 3
Εισαγωγικές Έννοιες v Ένα αίτηµα α ευθύνεται σε στιγµιότυ α σχέσεων, και το α οτέλεσµα είναι ε ίσης στιγµιότυ ο σχέσης. Τα Σχήµατα των Σχέσεων ενός αιτήµατος είναι αµετάβλητα (το αίτηµα εκτελείται ανεξαρτήτως στιγµιοτύ ου) Το Σχήµα του α οτελέσµατος ενός αιτήµατος είναι ε ίσης αµετάβλητο! Συµβολισµός Αριθµηµένης Θέσης και Ονοµασίας Πεδίου: Ο συµβολισµός θέσης διευκολύνει τους τυ ικούς ορισµούς, ο συµβολισµός ονοµασίας εδίου είναι ευανάγνωστος. Και οι δύο χρησιµο οιούνται στην SQL 4
Παραδείγµατα στιγµιοτύ ων v Sailors και Reserves σχέσεις για τα αραδείγµατα. v Θα χρησιµο οιήσουµε συµβολισµό θέσης ή ονοµασίας εδίου, υ οθέτουµε ότι οι ονοµασίες των εδίων στα α οτελέσµατα των αιτηµάτων ροκύ τουν α ό τις ονοµασίες των εδίων των σχέσεων ου συµµετέχουν στο αίτηµα. S1 S2 R1 sid bid day 22 101 10/10/96 58 103 11/12/96 sid sname rating age 22 dustin 7 45.0 31 lubber 8 55.5 58 rusty 10 35.0 sid sname rating age 28 yuppy 9 35.0 31 lubber 8 55.5 44 guppy 5 35.0 58 rusty 10 35.0 5
Σχεσιακή Άλγεβρα v Βασικοί Τελεστές: σ π Ε ιλογή ( ) Ε ιλέγει υ οσύνολα γραµµών σχέσεων. Προβολή ( ) ιαγράφει ανε ιθύµητες στήλες σχέσεων. Καρτεσιανό Γινόµενο ( ) Συνδυάζει 2 σχέσεις. ιαφορά ( ) Πλειάδες ου υ άρχουν στη σχέση 1 µόνο. Ένωση ( ) Πλειάδες ου υ άρχουν στις σχέσεις 1 & 2. v Ε ι ρόσθετες ρέξεις: Τοµή, σύζευξη, διαίρεση, µετονοµασία: Όχι α αραίτητες, αλλά ολύ χρήσιµες. v Κάθε τελεστής ε ιστρέφει µια σχέση, ο ότε οι τελεστές µ ορούν να συνδυαστούν. 6
Προβολή v ιαγράφει τα γνωρίσµατα εκτός λίστας ροβολής. v Το Σχήµα του α οτελέσµατος εριέχει µόνο τα εδία της λίστας ροβολής, µε ονοµασίες αυτές ου έχουν στη µοναδική σχέση εισόδου. v Ο τελεστής ροβολής διαγράφει τα δι λότυ α! Σε ραγµατικά συστήµατα συνήθως δε διαγράφονται τα δι λότυ α εκτός κι αν το ζητήσει ο χρήστης. sname yuppy 9 lubber 8 guppy 5 rusty 10 rating π ( S2) snamerating, age 35.0 55.5 π age ( S2) 7
Ε ιλογή v Ε ιλέγει γραµµές ου ικανο οιούν τη συνθήκη ε ιλογής. v εν υ άρχουν δι λότυ ες εγγραφές! v Το Σχήµα του α οτελέσµατος ίδιο µε της µοναδικής Σχέσης. v Το α οτέλεσµα µ ορεί να είναι είσοδος για νέο σχεσιακό τελεστή! (Συνδυασµός τελεστών.) sid sname rating age 28 yuppy 9 35.0 58 rusty 10 35.0 π σ S rating >8 ( 2) sname rating yuppy 9 rusty 10 σ ( ( S )) sname, rating rating>8 2 8
Ένωση, Τοµή, ιαφορά v Όλοι οι τελεστές έχουν ως είσοδο δύο Σχέσεις ου ρέ ει να είναι συµβατές ως ρος την ένωση: Ίδιο λήθος εδίων. Αντίστοιχοι τύ οι εδίων. v Το Σχήµα του α οτελέσµατος; sid sname rating age 22 dustin 7 45.0 S1 S2 sid sname rating age 22 dustin 7 45.0 31 lubber 8 55.5 58 rusty 10 35.0 44 guppy 5 35.0 28 yuppy 9 35.0 S1 S2 sid sname rating age 31 lubber 8 55.5 58 rusty 10 35.0 S1 S2 9
Καρτεσιανό Γινόµενο v Οι γραµµές του S1 συνδυάζονται µε αυτές του R1. v Το Σχήµα του α οτελέσµατος έχει ένα εδίο µε όνοµα ου κληρονοµείται για κάθε εδίο των S1 & R1. Πρόβληµα: Κοινό εδίο sid. (sid) sname rating age (sid) bid day 22 dustin 7 45.0 22 101 10/10/96 22 dustin 7 45.0 58 103 11/12/96 31 lubber 8 55.5 22 101 10/10/96 31 lubber 8 55.5 58 103 11/12/96 58 rusty 10 35.0 22 101 10/10/96 58 rusty 10 35.0 58 103 11/12/96 v Τελεστής µετονοµασίας: ρ( C( 1 sid15, sid2), S1 R1) 10
Συζεύξεις v Συνθήκη Σύζευξης: R >< c S = σ c ( R S) (sid) sname rating age (sid) bid day 22 dustin 7 45.0 58 103 11/12/96 31 lubber 8 55.5 58 103 11/12/96 S1 R1 >< S1. sid < R1. sid v Σχήµα α οτελέσµατος καρτεσιανού γινοµένου v Λιγότερες λειάδες, ευκολότερος ο υ ολογισµός 11
Συζεύξεις v Σύζευξη ισότητας: Ειδική ερί τωση συνθήκης σύζευξης. Η συνθήκη c εριέχει µόνοισότητες. sid sname rating age bid day 22 dustin 7 45.0 101 10/10/96 58 rusty 10 35.0 103 11/12/96 S1>< R1 sid v Σχήµα α οτελέσµατος: όµοιο µε καρτεσιανού γινοµένου µε µοναδικό αντίγραφο του εδίου ισότητας. v Φυσική σύζευξη: Σύζευξη ισότητας όλων των κοινών εδίων. Συµβολίζεται α λά ως: S 1> < R1 12
ιαίρεση v εν είναι ρωτογενής τελεστής, είναι χρήσιµος για αιτήµατα της µορφής: Εντο ίστε τους ναύτες µε κράτηση σεόλες τις βάρκες. v Έστω A Σχέση µε 2 εδία, x και y. B µόνο το εδίο y: A/B { = x x, y A y B}.χ., A/B εριέχει όλες τις λειάδες x (ναύτες) για τις ο οίες για κάθε λειάδα y (βάρκα) του B, η υ άρχει µία λειάδα xy στον A. v Γενικότερα, x και y µ ορεί να είναι λίστες εδίων. y είναι λίστα εδίων του B, και xy είναι λίστα εδίων του A. 13
14 Παραδείγµατα ιαίρεσης A/B sno pno s1 p1 s1 p2 s1 p3 s1 p4 s2 p1 s2 p2 s3 p2 s4 p2 s4 p4 pno p2 pno p2 p4 pno p1 p2 p4 sno s1 s2 s3 s4 sno s1 s4 sno s1 A B1 B2 B3 A/B1 A/B2 A/B3
Έκφραση του A/B µε Βασικούς Τελεστές v Η ιαίρεση δεν είναι ρωτογενής τελεστής. (Το ίδιο ισχύει και για τις συζεύξεις, αλλά οι συζεύξεις είναι τόσο συχνές ου υλο οιούνται µε ειδικό τρό ο.) v Ιδέα: Για A/B, υ ολογίζουµε όλες τις τιµές x ου δεν α οκλείονται α ό κά οια τιµή του y στο B. Η τιµή x α οκλείεται αν όταν συνενωθεί µε κά οια τιµή y του B, ροκύ τει συνδυασµός xy εκτός του A. Α οκλειόµενες λειάδες x: A/B: πx (( πx ( A) B) A) π x ( A) Όλες οι α οκλειόµενες λειάδες 15
Να βρεθούν τα ονόµατα των ναυτών µε κράτηση στη βάρκα #103 v Λύση 1: π (( σ Re serves) >< Sailors) sname bid=103 v Λύση 2: ρ( Temp1, σ Re serves) bid =103 ρ( Temp2, Temp1>< Sailors) π sname ( Temp2) v Λύση 3: πsname( σ (Re serves>< Sailors)) bid=103 16
Να βρεθούν τα ονόµατα των ναυτών µε κρατήσεις σε κόκκινη βάρκα v Η ληροφορία για τα χρώµατα υ άρχει µόνο τον Boats. Έτσι, χρειάζεται ε ι λέον σύζευξη: πsname (( σ color red Boats ) >< Re serves>< Sailors) = ' ' vμια ιο α οδοτική λύση πsname ( π π σ sid (( bid color red Boats ) >< Re ' ' s ) >< Sailors ) = vο βελτιστο οιητής καταλήγει µόνος στη δεύτερη 17
Να βρεθούν τα ονόµατα των ναυτών µε κρατήσεις σε κόκκινη ή ράσινη βάρκα v Ε ιλογή όλων των κόκκινων ή ράσινων, και φυσικές συζεύξεις για τα ονόµατα: ρ ( Tempboats,( σ )) color= ' red' color= ' green' Boats π sname ( Tempboats>< Re serves>< Sailors) v Ο Tempboats ορίζεται και µε ένωση! (Πώς;) 18
Να βρεθούν τα ονόµατα των ναυτών µε κρατήσεις σε κόκκινη και ράσινη βάρκα v Η ροηγούµενη ροσέγγιση δε λειτουργεί! Νέα ροσέγγιση: ναύτες µε κράτηση σε κόκκινη, ναύτες µε κράτηση σε ράσινη, υ ολογισµός της τοµής (το sid είναι κλειδί του Sailors): ρ ( Tempred, π (( σ ) Re )) sid color ' red' Boats >< = serves ρ( Tempgreen, π (( σ ) Re )) sid color ' green' Boats >< = serves π sname (( Tempred Tempgreen) >< Sailors) 19
Να βρεθούν οι ναύτες µε κρατήσεις σε όλες τις βάρκες v Χρήση διαίρεσης. Τα Σχήµατα των Σχέσεων εισόδου ρέ ει να ε ιλεγούν ροσεκτικά: ρ ( Tempsids,( π Re serves)/( π )) sid, bid bid Boats π sname ( Tempsids>< Sailors) v Εύρεση ναυτών µε κρατήσεις στις βάρκες Interlake :... / π ( σ ) bid bname= ' Interlake' Boats 20
Περίληψη v Το σχεσιακό µοντέλο διαθέτει α λές και ισχυρές γλώσσες αιτηµάτων. v Η Σχεσιακή Άλγεβρα είναι ιο λειτουργική. Είναι χρήσιµη για την ανα αράσταση σχεδίων εκτέλεσης αιτηµάτων. v ιάφοροι τρό οι έκφρασης ενός αιτήµατος. Ένας βελτιστο οιητής αιτηµάτων ε ιλέγει τον ιο α οδοτικό. 21