Επαναληπτική άσκηση για την ενότητα «Επεξεργασία & Βελτιστοποίηση Ερωτημάτων»

Σχετικά έγγραφα
Επεξεργασία Ερωτήσεων

Εισαγωγή στην Επεξεργασία Ερωτήσεων. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Ευρετήρια. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Εισαγωγή στην Επεξεργασία Ερωτήσεων. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Εισαγωγή στην. Εισαγωγή Σ Β. Αρχεία ευρετηρίου Κατάλογος. συστήματος. Αρχεία δεδομένων

Επεξεργασία Ερωτήσεων

Ευρετήρια. Ευρετήρια. Βάσεις Δεδομένων : Ευρετήρια 1

Ευρετήρια. Ευρετήρια. Βάσεις Δεδομένων : Ευρετήρια 1

Τα δεδοµένα συνήθως αποθηκεύονται σε αρχεία στο δίσκο Για να επεξεργαστούµε τα δεδοµένα θα πρέπει αυτά να βρίσκονται στη

Επεξεργασία Ερωτήσεων

Επεξεργασία Ερωτήσεων

Δεντρικά Ευρετήρια. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΛΥΣΗ ΣΤΗΝ ΕΥΤΕΡΗ ΑΣΚΗΣΗ

Το εσωτερικό ενός Σ Β

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΑΣΚΗΣΗ ΔΕΥΤΕΡΗ

Copyright 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση, Δίαβλος, Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 14-1

Επεξεργασία Ερωτήσεων

Δεντρικά Ευρετήρια. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Δεντρικά Ευρετήρια. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Δεντρικά Ευρετήρια. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Κεφάλαιο 14. Δομές Ευρετηρίων για Αρχεία. Copyright 2007 Ramez Elmasri and Shamkant B. Navathe Ελληνική Έκδοση,

Φροντιστήριο Αποθήκευση σε δίσκο, βασικές οργανώσεις αρχείων κατακερματισμός και δομές ευρετηρίων για αρχεία

Ο βελτιστοποιητής ερωτημάτων (query optimizer) Μετασχηματισμός εκφράσεων σχεσιακής άλγεβρας Υπολογισμός μεγεθών πράξεων σχεσιακής άλγεβρας

Τα δεδομένα (περιεχόμενο) μιας βάσης δεδομένων αποθηκεύεται στο δίσκο

Κεφάλαιο 14. οµές Ευρετηρίων για Αρχεία. ιαφάνεια 14-1

Κεφ.11: Ευρετήρια και Κατακερματισμός

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ

Βάσεις Δεδομένων. Αποθήκευση σε δίσκο, βασικές οργανώσεις αρχείων, κατακερματισμός και δομές ευρετηρίων για αρχεία. Φροντιστήριο 7 o

Ευρετήρια. Πρωτεύον ευρετήριο (primary index): ορισμένο στο κλειδί διάταξης του αρχείου. Ευρετήρια. Ευρετήρια. Ευρετήρια

Ευρετήρια. Πρωτεύον ευρετήριο (primary index): ορισμένο στο κλειδί διάταξης του αρχείου. Ευρετήρια. Ευρετήρια. Ευρετήρια

Οι πράξεις της συνένωσης. Μ.Χατζόπουλος 1

Οργάνωση Βάσεων Βιοϊατρικών Δεδομένων Εξόρυξη Γνώσης Βιοϊατρικών Δεδομένων. Σεμινάριο 6: Δομές ευρετηρίων για αρχεία

ΗΥ460 Συστήµατα Διαχείρισης Βάσεων Δεδοµένων Χειµερινό Εξάµηνο 2016 Διδάσκοντες: Βασίλης Χριστοφίδης

Εισαγωγή στην Επεξεργασία Ερωτήσεων. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Οργάνωση αρχείων: πως είναι τοποθετηµένες οι εγγραφές ενός αρχείου όταν αποθηκεύονται στο δίσκο

Οργάνωση Βάσεων Βιοϊατρικών Δεδομένων Εξόρυξη Γνώσης Βιοϊατρικών Δεδομένων. Σεμινάριο 7: Αλγόριθμοι για επεξεργασία ερωτήσεων και βελτιστοποίηση

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Σχεσιακή Άλγεβρα και Σχεσιακός Λογισμός. Σχεσιακή Άλγεβρα Σχεσιακός Λογισμός

Βάσεις Δεδομένων ΙΙ Ενότητα 5

Κατακερματισμός. 4/3/2009 Μ.Χατζόπουλος 1

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ

ΗΥ460 Συστήματα Διαχείρισης Βάσεων Δεδομένων Χειμερινό Εξάμηνο 2018 Project

Εργαστήριο «Τεχνολογία Πολιτισμικού Λογισμικού» Ενότητα. Επεξεργασία πινάκων

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

5. Απλή Ταξινόμηση. ομές εδομένων. Χρήστος ουλκερίδης. Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων

Δομές Δεδομένων και Αλγόριθμοι

Ευρετήρια. Το ευρετήριο αρχείου είναι ένα διατεταγµένο αρχείο µε σταθερού µήκους εγγραφές

Οργάνωση Βάσεων Βιοϊατρικών Δεδομένων Εξόρυξη Γνώσης Βιοϊατρικών Δεδομένων. Σεμινάριο 7: Αλγόριθμοι για επεξεργασία ερωτήσεων και βελτιστοποίηση

Ενότητα 6: Κατακερματισμός Ασκήσεις και Λύσεις

Εισαγωγή στην επιστήμη των υπολογιστών. Λογισμικό Υπολογιστών Κεφάλαιο 8ο Αλγόριθμοι

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ. Πανεπιστήμιο Πειραιώς Τμήμα Ψηφιακών Συστημάτων Μανουσόπουλος Χρήστος

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

BΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΕΞΕΤΑΣΗ ΦΕΒΡΟΥΑΡΙΟΥ 2005

Άσκηση 1 (15 μονάδες) (Επεκτατός Κατακερματισμός)

Λίγα λόγια από το συγγραφέα Κεφάλαιο 1: Microsoft Excel Κεφάλαιο 2: Η δομή ενός φύλλου εργασίας... 26

Η SQL αποτελείται από δύο υποσύνολα, τη DDL και τη DML.

Τεχνολογία Πολιτισμικού Λογισμικού

Ευρετήρια. Βάσεις Δεδομένων : Ευρετήρα 1. Πρωτεύον ευρετήριο (primary index): ορισμένο στο κλειδί διάταξης του αρχείου. Ευρετήρια.

Εργαστηριακός Οδηγός. Βάσεις Δεδομένων της Γ' Τάξης ΕΠΑΛ

Εισαγωγή. Γενική Εικόνα του Μαθήµατος. Το εσωτερικό ενός Σ Β. Εισαγωγή. Εισαγωγή Σ Β Σ Β. Αρχεία ευρετηρίου Κατάλογος συστήµατος Αρχεία δεδοµένων

ΗΥ-460 Συστήµατα ιαχείρισης Βάσεων εδοµένων ηµήτρης Πλεξουσάκης Βασίλης Χριστοφίδης

Κατακερµατισµός. Οργάνωση Αρχείων (σύνοψη) Οργάνωση αρχείων: πως είναι τοποθετημένες οι εγγραφές ενός αρχείου όταν αποθηκεύονται στο δίσκο

Αναζήτηση. 1. Σειριακή αναζήτηση 2. Δυαδική Αναζήτηση. Εισαγωγή στην Ανάλυση Αλγορίθμων Μάγια Σατρατζέμη

ΑΣΥΜΠΤΩΤΙΚΗ ΑΝΑΛΥΣΗ & ΠΡΟΣΘΕΣΗ

Δομές Δεδομένων & Αλγόριθμοι

Διαχείριση Πολιτισμικών Δεδομένων

Ευρετήρια. Ευρετήρια. Βάσεις εδοµένων :ευρετήρια 1

Βάσεις Δεδομένων 2. Φροντιστήριο Αλγόριθμοι Επεξεργασίας και Βελτιστοποίησης Επερωτήσεων. Ημερ: 27/5/2008 Ακ.Έτος

ΛΥΣΗ ΤΗΣ ΔΕΥΤΕΡΗΣ ΑΣΚΗΣΗΣ Όλγα Γκουντούνα

Εαρινό Εξάμηνο

Βάσεις Περιβαλλοντικών Δεδομένων

Δεντρικά Ευρετήρια. Δέντρα Αναζήτησης

Σχεσιακή Άλγεβρα Σχεδιασμός Βάσεων Δεδομένων

Λίγα λόγια από το συγγραφέα...7

Επεξεργασία ερωτημάτων

ΗΥ460 Συστήματα Διαχείρισης Βάσεων Δεδομένων Χειμερινό Εξάμηνο 2016 Διδάσκοντες: Βασίλης Χριστοφίδης, Δημήτρης Πλεξουσάκης, Χαρίδημος Κονδυλάκης

Βελτιστοποίηση ερωτημάτων Βάσεις Δεδομένων Διδάσκων: Μαρία Χαλκίδη

A ΕΠΑ.Λ ΕΦΑΡΜΟΓΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 5 η ΕΝΟΤΗΤΑ: ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ. Εκπαιδευτικοί: ΓΑΛΑΝΟΣ ΓΕΩΡΓΙΟΣ ΜΠΟΥΣΟΥΝΗΣ ΚΩΝΣΤΑΝΤΙΝΟΣ

Διάλεξη 04: Παραδείγματα Ανάλυσης

εντρικά Ευρετήρια έντρα Αναζήτησης

Πανεπιστήµιο Κρήτης Τµήµα Επιστήµης Υπολογιστών. ΗΥ-460 Συστήµατα ιαχείρισης Βάσεων εδοµένων ηµήτρης Πλεξουσάκης Βασίλης Χριστοφίδης

Διάλεξη 04: Παραδείγματα Ανάλυσης Πολυπλοκότητας/Ανάλυση Αναδρομικών Αλγόριθμων

Δομές Δεδομένων & Αλγόριθμοι

µπιτ Λύση: Κάθε οµάδα των τεσσάρων µπιτ µεταφράζεται σε ένα δεκαεξαδικό ψηφίο 1100 C 1110 E Άρα το δεκαεξαδικό ισοδύναµο είναι CE2

ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 4. Παραδείγματα Ανάλυσης Πολυπλοκότητας Ανάλυση Αναδρομικών Αλγόριθμων

Δυναμικός Κατακερματισμός

ΟΝΟΜΑΤΕΠΩΝΥΜΟ : Αντικείμενα: Βάσεις δεδομένων, σχέσεις μεταξύ πινάκων, ερωτήματα, φόρμες και αναφορές.

Kεφάλαιο 11 Λίστες και Ανάλυση Δεδομένων Kεφάλαιο 12 Εργαλεία ανάλυσης πιθανοτήτων Kεφάλαιο 13 Ανάλυση δεδομένων...

Διαδικασιακός Προγραμματισμός

ΑΛΛΑΓΕΣ ΠΟΥ ΕΓΙΝΑΝ ΣΤΗΝ ΕΚΔΟΣΗ 3.3

Υλοποίηση των Σχεσιακών Τελεστών. 6/16/2009 Μ.Χατζόπουλος 1

Άσκηση 3 (ανακοινώθηκε στις 14 Μαΐου 2018, προθεσμία παράδοσης: 8 Ιουνίου 2018, 12 τα μεσάνυχτα).

1η Σειρά Γραπτών Ασκήσεων

Βάσεις εδοµένων Ευαγγελία Πιτουρά 2

Ενότητα. Επεξεργασία πινάκων

Τεχνολογία Πολιτισμικού Λογισμικού

Δυναμικά Πολυεπίπεδα Ευρετήρια (Β-δένδρα) Μ.Χατζόπουλος 1

Αλγόριθμοι και Δομές Δεδομένων (Ι) (εισαγωγικές έννοιες)

Transcript:

Επαναληπτική άσκηση για την ενότητα «Επεξεργασία & Βελτιστοποίηση Ερωτημάτων» Έστω οι πίνακες (A, B, C, D) και S (E, A, F), οι οποίοι έχουν οριστεί με τις ακόλουθες εντολές SQL: CEATE TABLE ( A CHA(6) PIMAY KEY, B CHA(6) UNIQUE, C CHA(8), D CHA(20), INDEX indexa ON (A) USING HASH, INDEX indexb ON (B) USING BTEE, ) CEATE TABLE S ( E CHA(4) PIMAY KEY, A CHA(6) FOEIGN KEY EFEENCES ON.A, F CHA(10), INDEX indexe ON (E) USING BTEE, ) δηλ. ο πίνακας S συνδέεται με τον πίνακα μέσω του ξένου κλειδιού S.A. Ως προς τη φυσική οργάνωση των αρχείων: Ο πίνακας είναι οργανωμένος ως αρχείο σωρού και διαθέτει ευρετήριο τύπου HASH πάνω στη στήλη.a και ευρετήριο τύπου BTEE πάνω στη στήλη.b. Υποθέτουμε ότι στο τρέχον στιγμιότυπό του έχει πλήθος εγγραφών = 10.000, μέγεθος αρχείου B = 400 σελίδες, μέγεθος ευρετηρίου B indexa = 99 σελίδες και μέγεθος ευρετηρίου B indexb = 1+99 = 100 σελίδες (δηλ. ύψος Β+δέντρου = 2). Ο πίνακας S είναι οργανωμένος και αυτός ως αρχείο σωρού και διαθέτει ευρετήριο τύπου BTEE πάνω στη στήλη S.E. Υποθέτουμε ότι στο τρέχον στιγμιότυπό του έχει πλήθος εγγραφών S = 100.000, μέγεθος αρχείου B S = 1961 σελίδες, μέγεθος ευρετηρίου B indexe = 1+8+800 = 809 σελίδες (δηλ. ύψος Β+δέντρου = 3). Γενικές παραδοχές: μέγεθος σελίδας b = 1Kb, μέγιστη χρησιμοποίηση χώρου σε κάθε σελίδα. Με βάση τα παραπάνω, περιγράψτε αναλυτικά τη διαδικασία του optimizer από τη λήψη της εντολής SQL μέχρι την απόφαση για το ποιο πλάνο θα εκτελεστεί, για τις παρακάτω εντολές SQL, θεωρώντας ότι για την πράξη της σύνδεσης μπορούμε να επιλέξουμε μεταξύ των 4 τεχνικών που έχουμε μάθει (BNLJ, INLJ, SMJ, HJ), για την πράξη της προβολής η μόνη διαθέσιμη τεχνική είναι η προβολή με ταξινόμηση, ενώ δεν εφαρμόζουμε διαδικασία pipelining (δηλ. ένα βήμα εκτελείται πλήρως και το αποτέλεσμά του δίνεται ως είσοδος στο επόμενο βήμα χωρίς όμως να υπολογίζουμε επιπλέον κόστος εγγραφής των ενδιάμεσων αποτελεσμάτων στο δίσκο): (1) SELECT * FOM WHEE.A = abcdef AND.D LIKE a% ; (2) SELECT * FOM, S WHEE.A = S.A AND S.E = xyzw ; (3) SELECT.A, S.E FOM, S WHEE.A = S.A; (4) SELECT.A FOM, S WHEE.A = S.A AND S.E = xyzw ;

Απαντήσεις: (SQL1) SELECT * FOM WHEE.A = abcdef AND.D LIKE a% ; ΣΑ1: σ θ1 Ù θ2 (), όπου θ1: [.A = abcdef ], θ2: [.D LIKE a% ] ΣΑ2: σ θ2(σ θ1()) // λόγω κανόνα 1 πάνω στη ΣΑ1 ΣΑ3: σ θ1(σ θ2()) // λόγω κανόνα 2 πάνω στη ΣΑ2 κόστος ΣΑ1: 2 // Η περίπτωση της σύνθετης επιλογής. Μεταξύ των εναλλακτικών (γραμμική αναζήτηση, αναζήτηση μέσω του HASH ευρετηρίου indexa), επιλέγουμε το δεύτερο με κόστος = 1+1 = 2 (βλ. διαφάνειες «αναζήτηση μέσω ευρετηρίου (2)» και «υλοποίηση σύνθετων επιλογών (2)») κόστος ΣΑ2: 3 (= 2 + 1) // 1 ο βήμα: αναζήτηση μέσω του HASH ευρετηρίου indexa με κόστος = 2 (βλ. διαφάνεια «αναζήτηση μέσω ευρετηρίου (2)»). Μέγεθος αποτελέσματος B = 1 σελίδα (επειδή 1 εγγραφή). // 2 ο βήμα: γραμμική αναζήτηση πάνω στο αποτέλεσμα του 1 ου βήματος με κόστος = B = 1. κόστος ΣΑ3: 408 (= 400 + 8) // 1 ο βήμα: γραμμική αναζήτηση με κόστος = Β = 400. Μέγεθος αποτελέσματος = 400/26 = 15 σελίδες (με 10.000/26 = 385 εγγραφές) με την παραδοχή ίσης πιθανότητας εμφάνισης των 26 χαρακτήρων a..z ως ο 1 ος χαρακτήρας του πεδίου.d. // 2 ο βήμα: γραμμική αναζήτηση πάνω στο αποτέλεσμα του 1 ου βήματος με κόστος = B/2 = 8. Άρα, τελική επιλογή: ΣΑ1 (εκτιμώμενο κόστος: 2) και προτεινόμενο πλάνο εκτέλεσης: σ θ1 AND θ2 (indexα) (SQL2) SELECT * FOM, S WHEE.A = S.A AND S.E = xyzw ; ΣΑ1: σ θ1 Ù θ2 ( Χ S), όπου θ1: [.A = S.A ], θ2: [ S.E = xyzw ] ΣΑ2: θ1 Ù θ2 S // λόγω κανόνα 3α πάνω στη ΣΑ1 ΣΑ3: σ θ2 ( θ1 S) // λόγω κανόνα 3β πάνω στη ΣΑ2

ΣΑ4: S θ1 Ù θ2 // λόγω κανόνα 4 πάνω στη ΣΑ2 ΣΑ5: θ1 (σ θ2(s)) // λόγω κανόνα 6α πάνω στη ΣΑ2 ΣΑ6: σ θ2 (S θ1 ) // λόγω κανόνα 4 πάνω στη ΣΑ3 ΣΑ7: (σ θ2(s)) θ1 // λόγω κανόνα 6α πάνω στη ΣΑ4 κόστος ΣΑ1: --- // το καρτεσιανό γινόμενο δεν κοστολογείται εφόσον υπάρχουν άλλες εναλλακτικές κόστος ΣΑ2: 784401 // Επιλέγουμε BNLJ με κόστος 400 X 1961 + 1 = 784401, καθώς οι υπόλοιπες τεχνικές σύνδεσης δεν εφαρμόζονται εδώ. κόστος ΣΑ3: 6283 + 2778 = 9061 Κόστη εναλλακτικών τεχνικών σύνδεσης: BNLJ = 784401, INLJ δεν εφαρμόζεται, SMJ = 2 X 400 X log400 + 2 X 1961 X log1961 + 400 + 1961 = 50342, HJ = 0 + 2 X 1961 + 400 + 1961 = 6283. Άρα επιλέγουμε HJ με κόστος 6283. Μέγεθος αποτελέσματος: θ1 S = 100.000 εγγραφές μήκους r = 54 bytes (λόγω φυσικής σύνδεσης), άρα bfr = 1024 / 54 = 18 εγγραφές/σελίδα, άρα B = 100.000 / 18 = 5556 σελίδες. Εφόσον επιλέξαμε HJ, θεωρούμε ότι το ενδιάμεσο αποτέλεσμα έχει την οργάνωση αρχείου κατακερματισμού πάνω στο πεδίο A. // 2 ο βήμα (επιλογή): Επιλέγουμε γραμμική αναζήτηση με κόστος Β/2 = 2778, καθώς οι υπόλοιπες τεχνικές επιλογής δεν εφαρμόζονται εδώ. Σημείωση: η επιλογή είναι ερώτηση ταυτότητας πάνω στο πεδίο E που είναι υποψήφιο κλειδί (unique) στο ενδιάμεσο αποτέλεσμα (γιατί;) κόστος ΣΑ4: 784401 // (βλ. ΣΑ2) κόστος ΣΑ5: 4 + 401 = 405 // 1 ο βήμα (επιλογή): Κόστη εναλλακτικών τεχνικών επιλογής: γραμμική αναζήτηση = 1961 / 2 = 981, δυαδική αναζήτηση δεν εφαρμόζεται, αναζήτηση μέσω ευρετηρίου = 3+1 = 4, απευθείας αναζήτηση δεν εφαρμόζεται. Άρα επιλέγουμε αναζήτηση μέσω ευρετηρίου = 3+1 = 4. Μέγεθος αποτελέσματος: σ θ2 () = 1 εγγραφή, άρα B = 1 σελίδα. // 2 ο βήμα (σύνδεση): Κόστη εναλλακτικών τεχνικών σύνδεσης: BNLJ = 400 Χ 1 + 1 = 401, INLJ δεν εφαρμόζεται, SMJ = 2 X 400 X log400 + 0 + 400 + 1 = 7601 (σημείωση: η δεξιά

θ1 (INLJ) πλευρά της σύνδεσης μπορεί να θεωρηθεί ήδη ταξινομημένη αφού αποτελείται από 1 σελίδα μόνο), HJ = 2 X 400 + 0 + 400 + 1 = 1201 (σημείωση: η δεξιά πλευρά της σύνδεσης μπορεί να θεωρηθεί ήδη κατακερματισμένη αφού αποτελείται από 1 σελίδα μόνο). Άρα επιλέγουμε BNLJ με κόστος 401. κόστος ΣΑ6: 7083 + 2778 = 9861 Κόστη εναλλακτικών τεχνικών σύνδεσης: BNLJ = 784401, INLJ = 1961 + 100000 Χ (1+1) = 201961, SMJ = 50342, HJ = 7083. Άρα επιλέγουμε HJ με κόστος 7083. Μέγεθος αποτελέσματος: S θ1 = 100.000 εγγραφές, B = 5556 σελίδες (βλ. ΣΑ3). Εφόσον επιλέξαμε HJ, θεωρούμε ότι το ενδιάμεσο αποτέλεσμα έχει την οργάνωση αρχείου κατακερματισμού πάνω στο πεδίο A. // 2 ο βήμα (επιλογή): Επιλέγουμε γραμμική αναζήτηση με κόστος Β/2 = 2778 (βλ. ΣΑ3). κόστος ΣΑ7: 4 + 3 = 7 // 1 ο βήμα (επιλογή): Επιλέγουμε αναζήτηση μέσω ευρετηρίου με κόστος 4 (βλ. ΣΑ5). Μέγεθος αποτελέσματος: σ θ2 () = 1 εγγραφή, άρα B = 1 σελίδα. // 2 ο βήμα (σύνδεση): Κόστη εναλλακτικών τεχνικών σύνδεσης: BNLJ = 1 Χ 400 + 1 = 401, INLJ = 1 + 1 Χ (1+1) = 3, SMJ = 7601 (βλ. ΣΑ5), HJ = 1201 (βλ. ΣΑ5). Άρα επιλέγουμε INLJ με κόστος 3. Άρα, τελική επιλογή: ΣΑ7 (εκτιμώμενο κόστος: 7) και προτεινόμενο πλάνο εκτέλεσης: σ θ2 (index-search) S (SQL3) SELECT.A, S.E FOM, S WHEE.A = S.A; ΣΑ1: π L (σ θ ( Χ S)), όπου θ: [.A = S.A ], L = {.A, S.E} ΣΑ2: π L ( θ S) // λόγω κανόνα 3α πάνω στη ΣΑ1 ΣΑ3: π L (S θ ) // λόγω κανόνα 4 πάνω στη ΣΑ2

π L (no duplicates) θ (HJ) κόστος ΣΑ1: --- // το καρτεσιανό γινόμενο δεν κοστολογείται εφόσον υπάρχουν άλλες εναλλακτικές κόστος ΣΑ2: 7083 + 5556 = 12639 Επιλέγουμε HJ με κόστος 7083 (βλ. SQL2 > ΣΑ3) Μέγεθος αποτελέσματος: θ S = 100.000 εγγραφές, B = 5556 σελίδες (βλ. SQL2 > ΣΑ3). Εφόσον επιλέξαμε HJ, θεωρούμε ότι το ενδιάμεσο αποτέλεσμα έχει την οργάνωση αρχείου κατακερματισμού πάνω στο πεδίο A. // 2 ο βήμα (προβολή): Το πεδίο E είναι υποψήφιο κλειδί (unique) στο ενδιάμεσο αποτέλεσμα (βλ. SQL2 > ΣΑ3), άρα η λίστα χαρακτηριστικών L δεν έχει διπλότυπα. Άρα δεν απαιτείται κόστος απαλοιφής διπλοτύπων (με ταξινόμηση ή κατακερματισμό). Άρα κόστος = Β = 5556. κόστος ΣΑ3: 7083 + 5556 = 12639 Επιλέγουμε HJ με κόστος 7083 (βλ. SQL2 > ΣΑ6) Μέγεθος αποτελέσματος: θ S = 100.000 εγγραφές, B = 5556 σελίδες (όπως πριν). // 2 ο βήμα (προβολή): Δεν απαιτείται κόστος απαλοιφής διπλοτύπων, άρα κόστος = 5556 (όπως πριν). Άρα, τελική επιλογή: ΣΑ2 ή ΣΑ3 (εκτιμώμενο κόστος: 12639) και προτεινόμενο πλάνο εκτέλεσης: S (SQL4) SELECT.A FOM, S WHEE.A = S.A AND S.E = xyzw ;

π L (no duplicates) θ1 (INLJ) ΣΑ1: π L (σ θ1 Ù θ2 ( Χ S)), όπου θ1: [.A = S.A ], θ2: [ S.E = xyzw ], L = {.A, S.E} Παρατηρούμε ότι είναι ακριβώς η περίπτωση της SQL2 με τη μόνη διαφορά ότι ακολουθεί ως τελική πράξη μια προβολή. Άρα ισχύουν οι SQL2 > ΣΑ2,, ΣΑ7 (κόστη, μεγέθη αποτελέσματος) και κατόπιν θα ακολουθήσει η πράξη της προβολής, δηλ. ΣΑ2: π L ( θ1 Ù θ2 S) // λόγω κανόνα 3α πάνω στη ΣΑ1 ΣΑ3: π L (σ θ2 ( θ1 S)) // λόγω κανόνα 3β πάνω στη ΣΑ2 ΣΑ4: π L (S θ1 Ù θ2 ) // λόγω κανόνα 4 πάνω στη ΣΑ2 ΣΑ5: π L ( θ1 (σ θ2(s))) // λόγω κανόνα 6α πάνω στη ΣΑ2 ΣΑ6: π L (σ θ2 (S θ1 )) // λόγω κανόνα 4 πάνω στη ΣΑ3 ΣΑ7: π L ((σ θ2(s)) θ1 ) // λόγω κανόνα 6α πάνω στη ΣΑ4 Η συνθήκη θ2 είναι ερώτηση ταυτότητας πάνω στο πεδίο E που είναι υποψήφιο κλειδί (unique) στο ενδιάμεσο αποτέλεσμα πριν την πράξη της προβολής. Άρα μέγεθος αποτελέσματος πριν την πράξη της προβολής = 1 εγγραφή, άρα B = 1 σελίδα. Άρα για την πράξη της προβολής που ακολουθεί δεν απαιτείται κόστος απαλοιφής διπλοτύπων (με ταξινόμηση ή κατακερματισμό). Άρα κόστος προβολής = Β = 1. Αυτό αθροίζεται στο εκάστοτε κόστος των εναλλακτικών που παρουσιάστηκαν στην SQL2. Άρα: κόστος ΣΑ1: --- κόστος ΣΑ2: 784401 + 1 = 784402 κόστος ΣΑ3: 9861 + 1 = 9862 κόστος ΣΑ4: 784401 + 1 = 784402 κόστος ΣΑ5: 405 + 1 = 406 κόστος ΣΑ6: 9861 + 1 = 9862 κόστος ΣΑ7: 7 + 1 = 8 Άρα, τελική επιλογή: ΣΑ7 (εκτιμώμενο κόστος: 8) και προτεινόμενο πλάνο εκτέλεσης: σ θ2 (index-search) S