Βάσεις Δεδομένων ΙΙ Βελτιστοποίηση επερωτημάτων Πανεπιστήμιο Πατρών Τμήμα Μηχανικών Η/Υ & Πληροφορικής Βάσεις Δεδομένων ΙΙ Α. Κομνηνός
Βελτιστοποίηση Ερωτημάτων Διαδικασία επιλογής του πιο αποτελεσματικού πλάνου υπολογισμού ενός ερωτήματος, μεταξύ των διαφόρων στρατηγικών. Επίπεδο σχεσιακής άλγεβρας Επίπεδο επιλογής αλγορίθμου για την εκτέλεση μιας λειτουργίας Επιλογή συγκεκριμένου ευρετηρίου
Συμβολισμός Δέντρων Επερωτήσεων Δέντρο επερωτήσεων : μία δεντρική δομή που αντιστοιχεί σε μία έκφραση της σχεσιακής άλγεβρας Σχέσεις εισόδου κόμβοι φύλλα Πράξεις σχεσιακής άλγεβρας εσωτερικοί κόμβοι Εκτέλεση του δέντρου επερώτησης: Εκτέλεση των πράξεων κάθε εσωτερικού κόμβου όταν οι σχέσεις εισόδου του είναι διαθέσιμες και... Αντικατάσταση του εσωτερικού κόμβου από την σχέση που προκύπτει από την εκτέλεση της πράξης Τερματισμός: Εκτέλεση της πράξης στον κόμβο ρίζα Δείχνει την σειρά εκτέλεσης Πολλά ισοδύναμα δέντρα
Κανόνες Ισοδυναμίας (1/5) 1. Οι συζευκτικές επιλογές μπορούν να αναλυθούν σε μια ακολουθία Ξεχωριστών επιλογών 2. Οι επιλογές είναι αντιμεταθετικές 3. Σε μια ακολουθία από προβολές μόνο η τελευταία προβολή χρειάζεται, οι υπόλοιπες μπορούν να παραληφθούν 4. Οι επιλογές μπορούν να συνδυαστούν με Καρτεσιανά γινόμενα και θήτα συνενώσεις α. σ θ (E 1 X E 2 ) = E 1 θ E 2 β. σ θ1 (E 1 θ2 E 2 ) = E 1 θ1 θ2 E 2
Κανόνες Ισοδυναμίας (2/5) 5. Οι λειτουργίες Θ- συνένωσης (και φυσικής σύνδεσης) είναι αντιμεταθετικές E 1 θ E 2 = E 2 θ E 1 6. a) Οι λειτουργίες φυσικής σύνδεσης είναι προσεταιριστικές : (E 1 E 2 ) E 3 = E 1 (E 2 E 3 ) (b) Οι λειτουργίες Θ- συνένωσης είναι προσεταιριστικές, με την ακόλουθη έννοια : (E 1 θ1 E 2 ) θ2 θ3 E 3 = E 1 θ1 θ3 (E 2 θ2 E 3) όπου η θ 2 περιλαμβάνει χαρακτηριστικά μόνο των E 2 και E 3
Κανόνες Ισοδυναμίας (3/5) 7. Η επιλογή αντιμετατίθεται με Θ - συνένωση κάτω από τις ακόλουθες δύο συνθήκες: (a) Όταν όλα τα χαρακτηριστικά της συνθήκης θ 0 προέρχονται μόνο από τα χαρακτηριστικά μιας εκ των σχέσεων που συμμετέχουν στη σύνδεση (π.χ. E 1 ) σ θ0 (E 1 θ E 2 ) = (σ θ0 (E 1 )) θ E 2 (b ) Όταν όλα τα χαρακτηριστικά της συνθήκης θ 1 προέρχονται (περιλαμβάνουν) μόνο από χαρακτηριστικά της E 1 ενώ τα χαρακτηριστικά της θ 2 προέρχονται μόνο από χαρακτηριστικά της E 2 σ θ1 θ2 (E 1 θ E 2 ) = (σ θ1 (E 1 )) θ (σ θ2 (E 2 ))
Κανόνες Ισοδυναμίας (4/5) 8. Η προβολή επιμερίζεται με τη Θ- συνένωση ως εξής: (a) Αν η προβολή Π περιλαμβάνει χαρακτηριστικά μόνο από το σύνολο L 1 L 2 : L ( E θ E 2 ) = ( L ( E 1 )) θ ( L ( 2 )) 1 L 2 1 E 1 2 (b) Ας θεωρήσουμε τη συνένωση E 1 θ E 2 Έστω L 1 και L 2 είναι σύνολα χαρακτηριστικών από E 1 και E 2, αντίστοιχα Έστω L 3 τα χαρακτηριστικά της E 1 που συμμετέχουν στη συνθήκη θ, αλλά δεν ανήκουν στο L 1 L 2, και έστω L 4 τα χαρακτηριστικά της E 2 που συμμετέχουν στη συνθήκη θ αλλά δεν ανήκουν στο L 1 L 2 ( E θ E ) = 2 L (( L L L ( E 1 )) ( θ L L ( 2 ))) 1 L 1 E 2 1 2 1 3 2 4 L
Κανόνες Ισοδυναμίας (5/5) 9. H ένωση και η τομή είναι αντιμεταθετικές E 1 E 2 = E 2 E 1 E 1 E 2 = E 2 E 1 Σημείωση: η διαφορά δεν είναι αντιμεταθετική 10. Η ένωση και η τομή είναι προσεταιριστικές (E 1 E 2 ) E 3 = E 1 (E 2 E 3 ) (E 1 E 2 ) E 3 = E 1 (E 2 E 3 ) 11. Η λειτουργία της επιλογής επιμερίζεται με τις λειτουργίες, και σ θ (E 1 E 2 ) = σ θ (E 1 ) σ θ (E 2 ) Όμοια με τους τελεστές και Επιπλέον: σ θ (E 1 E 2 ) = σ θ (E 1 ) E 2 αν η θ αφορά μόνο χαρακτηριστικά της E 2 Όμοια με τον τελεστές αλλά δεν ισχύει με το 12. Η λειτουργία της προβολής κατανέμεται στη λειτουργία της ένωσης Π L (E 1 E 2 ) = (Π L (E 1 )) (Π L (E 2 ))
Γραφική Αναπαράσταση Ισοδυναμιών
Γενικά Μεταθέτουμε τις επιλογές στους πίνακες που ταιριάζουν έτσι ώστε να μειώσουμε τις πλειάδες που επιστρέφουν (περιορισμός) Μεταθέτουμε τις σχέσεις έτσι ώστε οι πιο περιοριστικές πράξεις να γίνονται πρώτα Αντικαθιστούμε τα γινόμενα / επιλογές με συνενώσεις 10
Άσκηση 1 - Παράδειγμα βελτιστοποίησης Ερώτημα: Να βρεθούν τα επίθετα των εργαζομένων που γεννήθηκαν μετά το 1957 και απασχολούνται σε ένα έργο με όνομα Aquarious SQL: SELECT ΕΠΙΘΕΤΟ FROM ΕΡΓΑΖΟΜΕΝΟΣ, ΑΠΑΣΧΟΛΗΣΗ,ΕΡΓΟ WHERE Ε_ΟΝΟΜΑ= Aquarius AND ΚΩΔ_ΕΡΓΟΥ=Κ_ΕΡΓΟ AND Ε_ΑΡΤΑΥΤ_ΑΡ_ΤΑΥΤ AND ΗΜ_ΓΕΝ> 1957-12- 31
Παράδειγμα βελτιστοποίησης Δέντρο επερώτησης Αρχικό Πρώτα πράξεις επιλογής π ΕΠΙΘΕΤΟ π ΕΠΙΘΕΤΟ σ Ε_ΟΝΟΜΑ= Aquarius AND ΚΩΔ_ΕΡΓΟΥ=Κ_ΕΡΓΟ AND Ε_ΑΡΤΑΥΤ=ΑΡ_ΤΑΥΤ AND ΗΜ_ΓΕΝ> 1957-12- 31 x x ΕΡΓΟ σ ΚΩΔ_ΕΡΓΟΥ=Κ_ΕΡΓΟ x σ σ Ε_ΑΡΤΑΥΤ=ΑΡ_ΤΑΥΤ Ε_ΟΝΟΜΑ= Aquarius ΕΡΓΑΖΟΜΕΝΟΣ ΑΠΑΣΧΟΛΗΣΗ x ΕΡΓΟ σ ΗΜ_ΓΕΝ> 1957-12- 31 ΑΠΑΣΧΟΛΗΣΗ ΕΡΓΑΖΟΜΕΝΟΣ
Παράδειγμα βελτιστοποίησης Δέντρο επερώτησης Αντιμετάθεση σχέσεων (Πιο περιοριστικές πρώτα, δηλ. αυτές που παράγουν τις λιγότερες πλειάδες ή με το μικρότερο μέγεθος) π ΕΠΙΘΕΤΟ Αντικατάσταση καρτεσιανού γινομένου & επιλογής με συνένωση π ΕΠΙΘΕΤΟ σ Ε_ΑΡΤΑΥΤ=ΑΡ_ΤΑΥΤ x Ε_ΑΡΤΑΥΤ=ΑΡ_ΤΑΥΤ σ ΚΩΔ_ΕΡΓΟΥ=Κ_ΕΡΓΟ σ ΗΜ_ΓΕΝ> 1957-12- 31 ΚΩΔ_ΕΡΓΟΥ=Κ_ΕΡΓΟ σ ΗΜ_ΓΕΝ> 1957-12- 31 x ΕΡΓΑΖΟΜΕΝΟΣ σ Ε_ΟΝΟΜΑ= Aquarius ΑΠΑΣΧΟΛΗΣΗ ΕΡΓΑΖΟΜΕΝΟΣ σ Ε_ΟΝΟΜΑ= Aquarius ΑΠΑΣΧΟΛΗΣΗ ΕΡΓΟ ΕΡΓΟ
Παράδειγμα βελτιστοποίησης Δέντρο επερώτησης Μετακίνηση των πράξεων προβολής προς τα κάτω, στο δέντρο επερώτησης π ΕΠΙΘΕΤΟ Ε_ΑΡΤΑΥΤ=_ΑΡ_ΤΑΥΤ π Ε_ΑΡΤΑΥΤ π ΑΡ_ΤΑΥΤ,ΕΠΙΘΕΤΟ ΚΩΔ_ΕΡΓΟΥ=Κ_ΕΡΓΟ σ ΗΜ_ΓΕΝ> 1957-12- 31 π ΚΩΔ_ΕΡΓΟΥ π Ε_ΑΡΤΑΥΤ,Κ_ΕΡΓΟ ΕΡΓΑΖΟΜΕΝΟΣ σ Ε_ΟΝΟΜΑ= Aquarius ΑΠΑΣΧΟΛΗΣΗ ΕΡΓΟ
Άσκηση Ερώτημα: Να βρεθούν τα επίθετα των μηχανικών που δούλεψαν στο αυτοκίνητο ΑΧΝ- 2699 την 26/3/2011 SQL: SELECT Επίθετο FROM ΜΗΧΑΝΙΚΟΣ Μ, ΕΠΙΣΚΕΥΗ Ε, ΑΥΤΟΚΙΝΗΤΟ Α WHERE Α.Πινακίδα= ΑΧΝ- 2699 AND Ε.Πιν=Α.Πινακίδα AND Ε.Μηχ=Μ.Κωδικός AND E.ημ = 26/3/2011 π Επίθετο σ Α,Πινακίδα= ΑΧΝ- 2699 AND Ε.Πιν = Α.Πινακίδα AND Ε.Μηχ=Μ.Κωδικός AND Ε.ημ=26/3/2011 x x Αυτοκίνητο Μηχανικός Επισκευή 15
Υπολογισμός προσπελάσεων Ακολουθιακή Σάρωση b(rel) = n(rel) / f(rel) Στη μέση περίπτωση: b(rel) / 2 Προσπέλαση αν έχουμε διάταξη κατά γνώρισμα k: Selec on Cardinality SC» SC(k, rel)= n(rel) / V(k, rel) b(k, rel) = log2(v(k, rel))+ SC(k, rel)/f(rel) - 1 Προσπέλαση αν το k είναι και κλειδί b(k, rel) = log2(b(rel)) 16
Υπολογισμός προσπελάσεων Σε περίπτωση δένδρου Ύψος δένδρου ΗΤ= log(v(k, rel)) / log(fanout) Προσπελάσεις SC(k, rel)= n(rel) / V(k, rel) b(k, rel) = HT+ SC(k, rel) / f(rel) 17
Άσκηση 2 Έστω η πράξη επιλογής: σ e- name= George (employee), όπου employee(e- id, e- name, e- address, e- age, e- salary). Για τον υπολογισμό της επιλεκτικότητας (selec on cardinality) θεωρείστε ότι έχουμε ομοιόμορφη κατανομή των τιμών. Θεωρείστε: n employee =20.000 εγγραφές, f employee =50 εγγραφές ανά μπλοκ, V(e- salary, employee) = 100 διακριτές εγγραφές, V(e- age, employee) = 40 διακριτές εγγραφές, V(e- name, employee) = 100 διακριτές εγγραφές, 1) Βρείτε το πλήθος των προσπελάσεων σε αριθμό μπλοκς μιας ακολουθιακής σάρωσης 2) Αν χρησιμοποιήσουμε ένα αραιό ευρετήριο τύπου B- tree ως δομή δεικτοδότησης, για το δευτερεύον κλειδί e- name με fan- out=50: a) Βρείτε το πλήθος των επιπέδων του ευρετηρίου b) Βρείτε το πλήθος των προσπελάσεων σε αριθμό μπλοκς.
Λύση 1) b employee = n employee /f employee =400 disk accesses 2) a) HT=log(#entries)/log(fanout)= =log(100)/log(50)=2 επίπεδα 2) b) ΗΤ ι + SC(ename,employee)/ f employee = =2+200/50=6 προσπελάσεις SC(ename,employee)= n employee / V(e- name, employee) =200
Άσκηση Έστω η πράξη επιλογής: σ εκδότης= Κάκτος (βιβλία), όπου βιβλία (ISBN, τιτλος, τιμή, εκδότης, συγγραφέας, περιγραφή). Για τον υπολογισμό της επιλεκτικότητας (selec on cardinality) θεωρείστε ότι έχουμε ομοιόμορφη κατανομή των τιμών. Θεωρείστε: n βιβλία =30.000 εγγραφές, f βιβλία =60 εγγραφές ανά μπλοκ, V(τιμή, βιβλία) = 20 διακριτές εγγραφές, V(συγγραφέας, βιβλία) = 100 διακριτές εγγραφές, V(εκδότης, βιβλία) = 30 διακριτές εγγραφές, 1) Βρείτε το πλήθος των προσπελάσεων σε αριθμό μπλοκς μιας ακολουθιακής σάρωσης Μιας ακολουθιακής σάρωσης στη μέση περίπτωση Όταν πρόκειται γίνει αναζήτηση και έχουμε ταξινόμηση κατά το κλειδί ISBN 2) Αν χρησιμοποιήσουμε ένα αραιό ευρετήριο τύπου B- tree ως δομή δεικτοδότησης, για το δευτερεύον κλειδί εκδότης με fan- out=40: a) Βρείτε το πλήθος των επιπέδων του ευρετηρίου b) Βρείτε το πλήθος των προσπελάσεων σε αριθμό μπλοκς. 20