Τμήμα Μηχανικών Η/Υ και Πληροϕορικής Πολυτεχνική Σχολή, Πανεπιστήμιο Πατρών Εαρινό Εξάμηνο 2011-2012
Table of contents 1
Table of contents 1 2
Table of contents 1 2 3
Table of contents 1 2 3 4
Table of contents 1 2 3 4 5
Table of contents 1 2 3 4 5 6
1 2 3 4 5 6
Ερωτήματα Στάδια Επεξεργασίας Ερωτήματος: 1 Ανάλυση και Μετάϕραση
Ερωτήματα Στάδια Επεξεργασίας Ερωτήματος: 1 Ανάλυση και Μετάϕραση Συντακτικός Έλεγχος Έλεγχος Ιδιοτήτων...
Ερωτήματα Στάδια Επεξεργασίας Ερωτήματος: 1 Ανάλυση και Μετάϕραση Συντακτικός Έλεγχος Έλεγχος Ιδιοτήτων... 2
Ερωτήματα Στάδια Επεξεργασίας Ερωτήματος: 1 Ανάλυση και Μετάϕραση Συντακτικός Έλεγχος Έλεγχος Ιδιοτήτων... 2 Πλάνο Υπολογισμού Αναζήτηση
Ερωτήματα Στάδια Επεξεργασίας Ερωτήματος: 1 Ανάλυση και Μετάϕραση Συντακτικός Έλεγχος Έλεγχος Ιδιοτήτων... 2 Πλάνο Υπολογισμού Αναζήτηση 3 Εκτέλεση
Ερωτήματα Στάδια Επεξεργασίας Ερωτήματος: 1 Ανάλυση και Μετάϕραση Συντακτικός Έλεγχος Έλεγχος Ιδιοτήτων... 2 Πλάνο Υπολογισμού Αναζήτηση 3 Εκτέλεση Ένα πλάνο υπολογισμού περιέχει τα βήματα για την εκτέλεση ενός ερωτήματος
Πλάνο Υπολογισμού Παράδειγμα Ερωτήματος SELECT name FROM authors WHERE age > 50
Πλάνο Υπολογισμού Παράδειγμα Ερωτήματος SELECT name FROM authors WHERE age > 50 π name σ age>50 authors
Ερωτήματος Αναζήτηση και εκτέλεση του πιο αποδοτικού πλάνου
Ερωτήματος Αναζήτηση και εκτέλεση του πιο αποδοτικού πλάνου Πώς? Δημιουργία Εναλλακτικών Πλάνων
Ερωτήματος Αναζήτηση και εκτέλεση του πιο αποδοτικού πλάνου Πώς? Δημιουργία Εναλλακτικών Πλάνων Υπολογισμός για αυτά
Ερωτήματος Αναζήτηση και εκτέλεση του πιο αποδοτικού πλάνου Πώς? Δημιουργία Εναλλακτικών Πλάνων Υπολογισμός για αυτά αυτού με το μικρότερο κόστος
1 2 3 4 5 6
Για να υπολογιστεί το ακριβές κόστος ενός πλάνου θα πρέπει (συνήθως) αυτό να εκτελεστεί
Για να υπολογιστεί το ακριβές κόστος ενός πλάνου θα πρέπει (συνήθως) αυτό να εκτελεστεί Κάτι άλλο?
Για να υπολογιστεί το ακριβές κόστος ενός πλάνου θα πρέπει (συνήθως) αυτό να εκτελεστεί Κάτι άλλο? Για την εκτίμηση του κόστους χρησιμοποιούνται διάϕορες στατιστικές πληροϕορίες που είναι αποθηκευμένες στον κατάλογο του DBMS
Κατάλογοι DBMS Κατάλογοι Περιέχουν στατιστικές πληροϕορίες για τις σχέσεις στην βάση όπως: n r : αριθμός εγγραϕών στην σχέση r
Κατάλογοι DBMS Κατάλογοι Περιέχουν στατιστικές πληροϕορίες για τις σχέσεις στην βάση όπως: n r : αριθμός εγγραϕών στην σχέση r b r : αριθμός blocks που περιέχουν εγγραϕές της r
Κατάλογοι DBMS Κατάλογοι Περιέχουν στατιστικές πληροϕορίες για τις σχέσεις στην βάση όπως: n r : αριθμός εγγραϕών στην σχέση r b r : αριθμός blocks που περιέχουν εγγραϕές της r l r : μέγεθος μιας εγγραϕής της r σε bytes
Κατάλογοι DBMS Κατάλογοι Περιέχουν στατιστικές πληροϕορίες για τις σχέσεις στην βάση όπως: n r : αριθμός εγγραϕών στην σχέση r b r : αριθμός blocks που περιέχουν εγγραϕές της r l r : μέγεθος μιας εγγραϕής της r σε bytes f r : αριθμός εγγραϕών ανά block
Κατάλογοι DBMS Κατάλογοι Περιέχουν στατιστικές πληροϕορίες για τις σχέσεις στην βάση όπως: n r : αριθμός εγγραϕών στην σχέση r b r : αριθμός blocks που περιέχουν εγγραϕές της r l r : μέγεθος μιας εγγραϕής της r σε bytes f r : αριθμός εγγραϕών ανά block V(A, r): αριθμός ξεχωριστών τιμών της σχέσης r στην ιδιότητα A
Κατάλογοι DBMS Κατάλογοι Περιέχουν στατιστικές πληροϕορίες για τις σχέσεις στην βάση όπως: n r : αριθμός εγγραϕών στην σχέση r b r : αριθμός blocks που περιέχουν εγγραϕές της r l r : μέγεθος μιας εγγραϕής της r σε bytes f r : αριθμός εγγραϕών ανά block V(A, r): αριθμός ξεχωριστών τιμών της σχέσης r στην ιδιότητα A Στατιστικές Ευρετηρίων
Κατάλογοι DBMS Κατάλογοι Περιέχουν στατιστικές πληροϕορίες για τις σχέσεις στην βάση όπως: n r : αριθμός εγγραϕών στην σχέση r b r : αριθμός blocks που περιέχουν εγγραϕές της r l r : μέγεθος μιας εγγραϕής της r σε bytes f r : αριθμός εγγραϕών ανά block V(A, r): αριθμός ξεχωριστών τιμών της σχέσης r στην ιδιότητα A Στατιστικές Ευρετηρίων
Το κόστος εξαρτάται από τα μεγέθη των σχέσεων καθώς και από τους αλγορίθμους που χρησιμοποιούνται. Μεγέθους για διάϕορα ερωτήματα: σ A ν (r) n r ν min(a,r) max(a,r) min(a,r) Join r s χωρίς τα κοινά πεδία να είναι κλειδιά n r n s V(A,s) ή n r n s V(A,r)
1 2 3 4 5 6
Ισοδύναμες Εκϕράσεις Κατά τη βελτιστοποίηση, υπολογίζεται το κόστος διάϕορων πλάνων, τα οποία δίνουν το επιθυμητό αποτέλεσμα (ισοδύναμα)
- 1 σ θ1 θ 2 (E) = σ θ1 (σ θ2 (E)) σ θ1 (σ θ2 (E)) = σ θ2 (σ θ1 (E)) Π L1 (Π L2 (... Π Ln (E))... ) = Π L1 (E)
- 2 σ θ (E 1 E 2 ) = E 1 θ E 2 σ θ1 (E 1 θ2 E 2 ) = E 1 θ1 θ 2 E 2 E 1 θ E 2 = E 2 θ E 1
- 3 (E 1 E 2 ) E 3 = E 1 ( E 2 ) E 3 ) (E 1 θ1 E 2 ) θ2 θ 3 E 3 = E 1 θ1 θ 3 (E 2 θ2 E 3 ) σ θ0 (E 1 E 2 ) = (σ θ0 (E 1 )) θ E 2 σ θ1 θ 2 (E 1 θ E 2 ) = (σ θ1 (E 1 )) (σ θ2 (E 2 ))
- 4 Π L1 L 2 (E 1 θ E 2 ) = (Π L1 (E 1 )) θ (Π L2 (E 2 )) Π L1 L 2 (E 1 θ E 2 ) = Π L1 L 2 ((Π L1 L 3 (E 1 )) θ (Π L2 L 2 (E 2 )))
- 5 E 1 E 2 = E 2 E 1 E 1 E 2 = E 2 E 1 (E 1 E 2 ) E 3 = E 1 (E 2 E 3 ) (E 1 E 2 ) E 3 = E 1 (E 2 E 3 )
- 6 σ P (E 1 E 2 ) = σ P (E 1 ) σ P (E 2 ) Π L (E 1 E 2 ) = (Π L (E 1 )) (Π L (E 2 ))
Γραϕική Αναπαράσταση θ θ E1 E2 E2 E1 E3 E1 E1 E2 E2 E3 σθ σθ E2 E1 E2 E1
1 2 3 4 5 6
Μέχρι τώρα είδαμε: Πως μπορούμε να δημιουργήσουμε ισοδύναμα πλάνα Πως μπορούμε να εκτιμήσουμε το κόστος ενός πλάνου
Μέχρι τώρα είδαμε: Πως μπορούμε να δημιουργήσουμε ισοδύναμα πλάνα Πως μπορούμε να εκτιμήσουμε το κόστος ενός πλάνου Πως διαλέγουμε το πλάνο που θα εκτελεστεί?
Μέχρι τώρα είδαμε: Πως μπορούμε να δημιουργήσουμε ισοδύναμα πλάνα Πως μπορούμε να εκτιμήσουμε το κόστος ενός πλάνου Πως διαλέγουμε το πλάνο που θα εκτελεστεί? Πιθανές λύσεις Αναζήτηση όλων των πλάνων Ευρετικοί Αλγόριθμοι
Βασισμένη στο Κόστος Εύρεση του βέλτιστου πλάνου Χρονοβόρα αλλά μπορεί να βελτιωθεί με διάϕορους τρόπους Ευρετική Heuristics όπως: Διάσπαση σύνθετων επιλογών Εκτέλεση των επιλογών νωρίς Εκτέλεση προβολών νωρίς και άλλα..
Το κόστος μιας ενός τελεστή κυρίως εξαρτάται από Το μέγεθος της εισόδου Τον αλγόριθμο εκτέλεσης Ευρετήρια
Το κόστος μιας ενός τελεστή κυρίως εξαρτάται από Το μέγεθος της εισόδου Τον αλγόριθμο εκτέλεσης Ευρετήρια Η επιλογή του βέλτιστου αλγορίθμου για κάθε τελεστή ενδέχεται να μην οδηγήσει στο συνολικά βέλτιστο πλάνο!
1 2 3 4 5 6
Παράδειγμα 1 Να βρεθούν τα επίθετα των εργαζομένων που γεννήθηκαν μετά το 1957 και απασχολούνται σε ένα έργο με όνομα "Aquarious" SELECT επίθετο FROM εργαζόμενος E, απασχόληση A, έργο ΕΡ WHERE ΕΡ.ε_όνομα= 'Aquarius' AND Α.κωδ_έργου = ΕΡ.κωδικός AND Α.αρ_ταυτ = Εαρ_ταυτ AND Ε.ημ_γεν > '1957-12-31'
Παράδειγμα 2 Να βρεθούν τα επίθετα των μηχανικών που δούλεψαν στο αυτοκίνητο 'ΑΧΝ-2699' την '26/3/2011' SELECT Επίθετο FROM ΜΗΧΑΝΙΚΟΣ Μ,ΕΠΙΣΚΕΥΗ Ε, ΑΥΤΟΚΙΝΗΤΟ Α WHERE Α.Πινακίδα='ΑΧΝ-2699' AND Ε.Πιν=Α.Πινακίδα AND Ε.Μηχ=Μ.Κωδικός AND E.ημ ='26/3/2011'
Προσπελάσεις Ακολουθιακή Σάρωση b r = n r /f r μέση περίπτωση: b r /2 Αν έχουμε διάταξη κατά γνώρισμα k: Selecíon Cardinality SC SC(k, r) = n r /V(k, r) b(k, r) = log 2 (V(k, r)) + SC(k, r)/f r 1 Προσπέλαση αν το k είναι και κλειδί b(k, r) = log 2 (b r )
Προσπελάσεις Δένδρο HT = log(v(k, rel))/log(fanout) SC(k, rel) = n r /V(k, rel) b(k, r) = HT + SC(k, rel)/f r
Παράδειγμα 3 (e-id,e-name,e-address,e-aage,e-asalary) σ e name= George (employee) n employee = 20.000 f employee = 50 V(e salary, employee) = 100 V(e age, employee) = 40 V(e name, employee) = 100
Παράδειγμα Ακολουθιακή Σάρωση b employee =
Παράδειγμα Ακολουθιακή Σάρωση b employee = n employee /f employee = 400
Παράδειγμα Αραιό Ευρετήριο B-Tree fanout = 50 Πλήθος Επιπέδων:
Παράδειγμα Αραιό Ευρετήριο B-Tree fanout = 50 Πλήθος Επιπέδων: HT =
Παράδειγμα Αραιό Ευρετήριο B-Tree fanout = 50 Πλήθος Επιπέδων: HT = log(#entries)/log(fanout)
Παράδειγμα Αραιό Ευρετήριο B-Tree fanout = 50 Πλήθος Επιπέδων: HT = log(#entries)/log(fanout) = 2 επίπεδα
Παράδειγμα Αραιό Ευρετήριο B-Tree fanout = 50 Πλήθος Επιπέδων: HT = log(#entries)/log(fanout) = 2 επίπεδα Πλήθος Προσπελάσεων:
Παράδειγμα Αραιό Ευρετήριο B-Tree fanout = 50 Πλήθος Επιπέδων: HT = log(#entries)/log(fanout) = 2 επίπεδα Πλήθος Προσπελάσεων: HT + SC(e name, employee)/f employee =
Παράδειγμα Αραιό Ευρετήριο B-Tree fanout = 50 Πλήθος Επιπέδων: HT = log(#entries)/log(fanout) = 2 επίπεδα Πλήθος Προσπελάσεων: HT + SC(e name, employee)/f employee =2 + (20.000/100)/50 = 6
1 2 3 4 5 6
Abraham Silberschatz, Henry F. Korth and S. Sudarshan, Database System Concepts Fourth Edition, McGraw-Hill, 2002 Raghu Ramakrishnan and Johannes Gehkre, Database Management Systems Second Edition, McGraw Hill, 2000