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

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

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

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

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

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

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

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

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

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

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

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

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

Επεξεργασία Ερωτήσεων: Επανάληψη και Ασκήσεις

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

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

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

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

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

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

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

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

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

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

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

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

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

Οργάνωση Αρχείων. Βάσεις Δεδομένων : Οργάνωση Αρχείων 1. Blobs

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

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

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

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

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

Οργάνωση Αρχείων. Βάσεις Δεδομένων : Οργάνωση Αρχείων 1. Blobs

Βελτιστοποίηση επερωτημάτων

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

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

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

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

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

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

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

Τα δεδομένα συνήθως αποθηκεύονται σε αρχεία στο δίσκο

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

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

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

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

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

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

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

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

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

Αντικείµενο: Θεµελιώδες πρόβληµα της επιστήµης µας εδοµένα

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

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

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

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

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

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

Copyright 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση, Δίαυλος Διαφάνεια 15-1

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

Αποθήκευση εδομένων. Μαγνητικοί ίσκοι. Μαγνητικές ταινίες για. Εισαγωγή

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

Αποθήκευση εδοµένων. Μαγνητικοί ίσκοι. Μαγνητικές ταινίες για. Εισαγωγή

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

Αποθήκευση εδομένων. Μαγνητικές ταινίες για. Εισαγωγή. Μέχρι σήμερα, είδαμε το σχεδιασμό και υλοποίηση μιας βάσης δεδομένων χρησιμοποιώντας ένα Σ Β

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

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

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

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

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

Σχεδιασµός µιας Β. Ένας απλός τρόπος αναπαράστασης δεδοµένων: ένας διδιάστατος πίνακας που λέγεται σχέση Γνωρίσµατα

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

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Δοµές Δεδοµένων

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

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ - ΤΜΗΥΠ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΙI

Ευρετήρια και Κατακερµατισµός

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

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

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

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

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

Copyright 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση Διαφάνεια 16-1

Ταξινόμηση με συγχώνευση Merge Sort

Μάθημα Βάσεις Δεδομένων ΙΙ - Ασκήσεις Επανάληψης. 01 Εκφώνηση

Σχεσιακό Μοντέλο. Εισαγωγή. Βάσεις εδοµένων : Σχεσιακό Μοντέλο 1

Σχεδίαση Αλγορίθμων -Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 4ο

Ένας απλός τρόπος αναπαράστασης δεδομένων: ένας διδιάστατος πίνακας που λέγεται σχέση Γνωρίσματα

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

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

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

Λεξικό, Union Find. ιδάσκοντες: Σ. Ζάχος,. Φωτάκης Επιμέλεια διαφανειών:. Φωτάκης. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

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

Ένας απλός τρόπος αναπαράστασης δεδομένων: ένας διδιάστατος πίνακας που λέγεται σχέση Γνωρίσματα

ιµελής Σχέση ιατεταγµένο ζεύγος (α, β): ύο αντικείµενα (όχι κατ ανάγκη διαφορετικά) σε καθορισµένη σειρά. Γενίκευση: διατεταγµένη τριάδα (α, β, γ), δι

Σχέσεις. ιδάσκοντες:. Φωτάκης,. Σούλιου Επιμέλεια διαφανειών:. Φωτάκης. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

Βάσεις Δεδομένων Ευαγγελία Πιτουρά 2. Εννοιολογικός Σχεδιασμός Βάσεων εδομένων (με χρήση του Μοντέλου Οντοτήτων/Συσχετίσεων)

Εισαγωγή στους Αλγόριθµους. Αλγόριθµοι. Ιστορικά Στοιχεία. Ο πρώτος Αλγόριθµος. Παραδείγµατα Αλγορίθµων. Τι είναι Αλγόριθµος

Διδάσκοντες: Δ. Φωτάκης, Δ. Σούλιου Επιμέλεια διαφανειών: Δ. Φωτάκης. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

Transcript:

Επεξεργασία Ερωτήσεων 1 Εισαγωγή ΜΕΡΟΣ 1 Γενική Εικόνα του Μαθήµατος Μοντελοποίηση (Μοντέλο Ο/Σ, Σχεσιακό, Λογικός Σχεδιασµός) Προγραµµατισµός (Σχεσιακή Άλγεβρα, SQL) ηµιουργία/κατασκευή Εισαγωγή εδοµένων Με χρήση Σ Β Επεξεργασία εδοµένων ΜΕΡΟΣ 2 (Υλοποίηση Σ Β ) Αποθήκευση Ευρετήρια Εκτέλεση Ερωτήσεων Το εσωτερικό ενός Σ Β 2

Εισαγωγή Σ Β Βάση εδοµένων Η οµή ενός Σ Β 3 Εισαγωγή Σ Β Αρχεία ευρετηρίου Κατάλογος Αρχεία δεδοµένων συστήµατος ΒΑΣΗ Ε ΟΜΕΝΩΝ 4

Εισαγωγή Σ Β Μηχανή Εκτέλεσης Ερωτήσεων Transaction Manager Lock Manager File and Access Methods Buffer Manager Disk Space Manager Recovery Manager ΒΑΣΗ Ε ΟΜΕΝΩΝ 5 Εισαγωγή Σ Β Μηχανή Εκτέλεσης Ερωτήσεων Transaction Manager Lock Manager File and Access Methods Buffer Manager Disk Space Manager Recovery Manager ΒΑΣΗ Ε ΟΜΕΝΩΝ 6

Επεξεργασία Ερωτήσεων Ερώτηση SQL Ερώτηση Συντακτική Ανάλυση & Μετάφραση Έκφραση της Σχεσιακής Άλγεβρας Βελτιστοποίηση Σχέδιο Εκτέλεσης Μηχανή Υπολογισµού Στατιστικά Στοιχεία εδοµένα Αποτέλεσµα 7 Επεξεργασία Ερωτήσεων Τα βασικά βήµατα στην επεξεργασία µιας ερώτησης είναι 1. Συντακτική Ανάλυση & Μετάφραση 2. Βελτιστοποίηση 3. Υπολογισµός 8

Συντακτική Ανάλυση & Μετάφραση 1. Συντακτική Ανάλυση (Parsing) & Μετάφραση Η SQL ερώτηση µεταφράζεται σε µια εσωτερική µορφή αφού γίνει ο απαραίτητος συντακτικός και σηµασιολογικός έλεγχος (π.χ., τα ονόµατα που αναφέρονται είναι ονόµατα σχέσεων που υπάρχουν) Αντικατάσταση των όψεων από τον ορισµό τους Σε ποια εσωτερική µορφή; Έκφραση της σχεσιακής άλγεβρας select A 1, A 2,, A n from R 1, R 2,, R m where P π A1, A2,, An (σ P (R 1 x R 2 x x R m )) 9 Βελτιστοποίηση 2. Βελτιστοποίηση Μια SQL ερώτηση µπορεί να µεταφραστεί σε διαφορετικές (ισοδύναµες) εκφράσεις της σχεσιακής άλγεβρας select balance from account where balance < 25000 σ balance < 2500 (π balance (account)) π balance (σ balance < 2500 (account)) 10

Βελτιστοποίηση Κάθε πράξη της σχεσιακής άλγεβρας µπορεί να υλοποιηθεί µε διαφορετικούς αλγορίθµους: π.χ., για την υλοποίηση της επιλογής µπορεί είτε να σαρώσουµε (scan) όλο το αρχείο ελέγχοντας κάθε εγγραφή αν ικανοποιεί τη συνθήκη είτε αν υπάρχει π.χ., ένα Β + ευρετήριο στο γνώρισµα balance να χρησιµοποιήσουµε το ευρετήριο Άρα δεν αρκεί ο προσδιορισµός της πράξης - πρέπει να προσδιορίζεται και ο αλγόριθµος που θα χρησιµοποιηθεί για την υλοποίησή της 11 Βελτιστοποίηση βασικές (primitive) πράξεις: πράξη + αλγόριθµος Σχέδιο εκτέλεσης (execution plan): µια ακολουθία από βασικές πράξεις π balance σ balance < 2500, χρησιµοποίησε το ευρετήριο 1 account 12

Βελτιστοποίηση Τα διαφορετικά σχέδια εκτέλεσης έχουν και διαφορικό κόστος Βελτιστοποίηση: η διαδικασία επιλογής του σχεδίου εκτέλεσης που έχει το µικρότερο κόστος Εκτίµηση του κόστους (συνήθως χρήση στατιστικών στοιχείων) 13 Εκτέλεση 3. Εκτέλεση Μηχανή εκτέλεσης που εκτελεί τις βασικές πράξεις 14

Επεξεργασία Ερωτήσεων Τι θα καλύψουµε στο µάθηµα: 1. Αλγόριθµους εκτέλεσης βασικών πράξεων Επιλογή Προβολή Πράξεις συνόλων Συνένωση 2. Ισοδυναµία σχεσιακών εκφράσεων - ευριστική επιλογή 15 Αλγόριθµοι Εκτέλεσης Βασικών Πράξεων Εκτίµηση κόστους µερικά στατιστικά σχετικά µε το αρχείο δεδοµένων n R : αριθµός πλειάδων της σχέσης R b R : αριθµός blocks της σχέσης R s R : µέγεθος σε bytes κάθε πλειάδας της σχέσης R f R : παράγοντας οµαδοποίησης αν µη εκτεινόµενη, f R = B / s R και b R = n R / f R V(A, R): αριθµός διαφορετικών τιµών του Α π Α (R) -- αν Α κλειδί: SC(A, R): µέσος αριθµός πλειάδων που ικανοποιεί µια συνθήκη (δεδοµένου ότι υπάρχει µια τουλάχιστον που την ικανοποιεί) 1 αν κλειδί, αν οµοιόµορφη; 16

Αλγόριθµοι Εκτέλεσης Βασικών Πράξεων Εκτίµηση κόστους - αρχείο ευρετηρίου f i : παράγοντας διακλάδωσης, πολυεπίπεδο f 0, Β + δέντρο ~ τάξη H i : αριθµός επιπέδων LΒ i : αριθµός block φύλλων Κόστος: Αριθµό blocks που µεταφέρονται 17 Επιλογή (σ) Επιλεκτικότητα επιλογής: το πλήθος των εγγραφών (πλειάδων) που επιλέγονται (δηλ. ικανοποιούν την συνθήκη) το πλήθος των εγγραφών (πλειάδων) του αρχείου (σχέσης) Έστω s i = σ Θi (R) επιλεκτικότητα: s i / n R Αν Θi συνθήκη ισότητας σε ένα γνώρισµα υποψήφιο κλειδί s i = 1 / n R Αν Θi συνθήκη ισότητας σε ένα γνώρισµα, οµοιόµορφη κατανοµή, k διακριτές τιµές, s i = k / n R 18

Επιλογή Επιλογή Θα εξετάσουµε: Επιλογή µε συνθήκη ισότητας (σ Α = α (R)) Επιλογή µε συνθήκη σύγκρισης διαστήµατος (range query) (σ Α u (R)) ή (σ Α u (R)) Επιλογή µε σύζευξη (σ Θ1 AND Θ2 AND Θn (R)) Επιλογή µε διάζευξη (σ Θ1 AND Θ2 AND Θn (R)) 19 Επιλογή Πιθανοί αλγόριθµοι εκτέλεσης: Ε1 Σειριακή αναζήτηση Ε2 υαδική αναζήτηση Ε3 Χρήση πρωτεύοντος ευρετηρίου/κατακερµατισµού Ε4 Χρήση δευτερεύοντος ευρετηρίου/κατακερµατισµού Μονοπάτι προσπέλασης 20

Επιλογή: Συνθήκη Ισότητας Επιλογή - συνθήκη ισότητας σ Α = α (R) Ε1 Σειριακή αναζήτηση b R : αριθµός blocks της σχέσης R b R b R / 2 αν το Α υποψήφιο κλειδί (οπότε το αποτέλεσµα έχει µόνο µία πλειάδα, σταµατάµε την αναζήτηση µόλις τη βρούµε) Μπορεί να χρησιµοποιηθεί σε οποιοδήποτε αρχείο 21 Επιλογή: Συνθήκη Ισότητας Ε2 υαδική αναζήτηση b R : αριθµός blocks της σχέσης R SC(A, R): µέσος αριθµός πλειάδων που ικανοποιεί µια συνθήκη f R : παράγοντας οµαδοποίησης Μπορεί να χρησιµοποιηθεί µόνο αν το αρχείο είναι διατεταγµένο µε βάση το γνώρισµα της επιλογής + log ( b R ) SC(A, r) / f R -1 Εύρεση της πρώτης Εύρεση των υπόλοιπων Αν το Α υποψήφιο κλειδί; 22

Επιλογή: Συνθήκη Ισότητας Ε3 Χρήση πρωτεύοντος ευρετηρίου b R : αριθµός blocks της σχέσης R SC(A, R): µέσος αριθµός πλειάδων που ικανοποιεί µια συνθήκη f R : παράγοντας οµαδοποίησης HT i : αριθµός επιπέδων Μπορεί να χρησιµοποιηθεί µόνο αν υπάρχει πρωτεύον ευρετήριο στο Α HT i + 1 Εύρεση και µεταφορά της πρώτης Αν το Α δεν είναι υποψήφιο κλειδί -- ευρετήριο συστάδων HT i + SC(A, R) / f R Πρωτεύον ευρετήριο στο Α, σηµαίνει ότι οι εγγραφές του αρχείου δεδοµένων είναι ταξινοµηµένες (διατεταγµένες) ως προς Α 23 Επιλογή: Συνθήκη Ισότητας Ε4 Χρήση δευτερεύοντος ευρετηρίου Μπορεί να χρησιµοποιηθεί µόνο αν υπάρχει δευτερεύον ευρετήριο στο Α Αν το Α είναι υποψήφιο κλειδί HT i + 1 Αν το Α δεν είναι υποψήφιο κλειδί HT i + SC(A, R) b R : αριθµός blocks της σχέσης R SC(A, R): µέσος αριθµός πλειάδων που ικανοποιεί µια συνθήκη f R : παράγοντας οµαδοποίησης HT i : αριθµός επιπέδων Στη χειρότερη περίπτωση κάθε εγγραφή που ικανοπoιεί τη συνθήκη σε διαφορετικό block 24

Επιλογή: Συνθήκη µε Σύγκριση Επιλογή - συνθήκη µε σύγκριση σ Α u (R) ή σ Α u (R) Έστω ότι c πλειάδες ικανοποιούν τη συνθήκη Γενικά c = n r / 2 Έστω min, max, οµοιόµορφη κατανοµή και σ Α u (R) 0 αν u < min c = n R αν u max n R * [(u - min) / (max -min)] 25 Επιλογή: Συνθήκη µε Σύγκριση σ Α u (R) Ε1 Σειριακή αναζήτηση Ε2 υαδική αναζήτηση 26

Επιλογή: Συνθήκη µε Σύγκριση Ε5 Χρήση πρωτεύοντος ευρετηρίου Α u 1. Χρήση ευρετηρίου για την εύρεση της πρώτης εγγραφής Α u 2. Σάρωση όλου του αρχείου ξεκινώντας από αυτήν την εγγραφή Α u HT i + c / f R ε χρειάζεται ευρετήριο, γιατί; c: επιλεξιµότητα (πλειάδες που ικανοποιούν την συνθήκη) f R : παράγοντας οµαδοποίησης HT i : αριθµός επιπέδων 27 Επιλογή: Συνθήκη µε Σύγκριση Ε6 Χρήση δευτερεύοντος ευρετηρίου Σάρωση των φύλλων του δέντρου Α u από την αρχή έως το u Α u από το u έως το τέλος c: επιλεξιµότητα (πλειάδες που ικανοποιούν την συνθήκη) n R : αριθµός εγγραφών LB i : αριθµός block φύλλων HT i : αριθµός επιπέδων Αν c = n R / 2, τότε (αν κάθε εγγραφή σε διαφορετικό block) HT i + LB i / 2 + n R / 2 28

Επιλογή: Συνθήκη Σύζευξης Επιλογή - συνθήκη σύζευξης σ Θ1 AND Θ2 AND Θn (R) Επιλεκτικότητα µιας συνθήκης: το πλήθος των εγγραφών (πλειάδων) που την ικανοποιούν το πλήθος των εγγραφών (πλειάδων) του αρχείου (σχέσης) Αν οι συνθήκες είναι ανεξάρτητες, το µέγεθος του αποτελέσµατος: n R * s 1 * s 2 * * s n n R n s i επιλεκτικότητα της Θi 29 Επιλογή: Συνθήκη Σύζευξης Ε7 Συζευκτική επιλογή µε χρήση ενός απλού ευρετηρίου Υπάρχει διαδροµή προσπέλασης για ένα από τα γνωρίσµατα που εµφανίζονται σε οποιαδήποτε απλή συνθήκη Επιλογή του γνωρίσµατος στην απλή συνθήκη µε τη µικρότερη επιλεκτικότητα Χρήση µιας από τις προηγούµενες µεθόδους για την ανάκτηση των εγγραφών που ικανοποιούν αυτήν την συνθήκη και έλεγχος για κάθε επιλεγµένη εγγραφή αν ικανοποιεί και τις υπόλοιπες συνθήκες 30

Επιλογή: Συνθήκη Σύζευξης Ε8 Συζευκτική επιλογή µε χρήση σύνθετου ευρετηρίου Αν υπάρχει ευρετήριο στο συνδυασµό δύο ή περισσοτέρων γνωρισµάτων που εµφανίζονται σε οποιαδήποτε απλές συνθήκες 31 Επιλογή: Συνθήκη Σύζευξης Ε9 Συζευκτική επιλογή µε τοµή δεικτών Αν υπάρχουν ευρετήρια σε περισσότερα από ένα από τα γνωρίσµατα 32

Επιλογή: Συνθήκη ιάζευξης Επιλογή - συνθήκη διάζευξης σ Θ1 OR Θ2 OR Θn (R) Αν κάποια από τις συνθήκες δεν έχει διαδροµή προσπέλασης -> σάρωση όλου του αρχείου 33 Συνένωση Συνένωση >< R R.A op S.B S Σ1 Εµφωλευµένος (εσωτερικός - εξωτερικός) βρόγχος Σ2 Χρήση µιας δοµής προσπέλασης Σ3 Ταξινόµηση-Συγχώνευση Σ4 Συνένωση µε κατακερµατισµό 34

Συνένωση (εµφωλευµένος βρόγχος) Σ1 Εµφωλευµένος (εσωτερικός - εξωτερικός) βρόγχος Για κάθε εγγραφή t της R Για κάθε εγγραφή s της S Αν t[a] op s[b] πρόσθεσε το t s στο αποτέλεσµα Αγνοώντας την εγγραφή των blocks του αποτελέσµατος n R * b S + b R 35 Συνένωση (εµφωλευµένος βρόγχος) Για κάθε block B r της R Για κάθε block B s της S Για κάθε εγγραφή t του B r Για κάθε εγγραφή s του B s Αν t[a] op s[b] πρόσθεσε το t s στο αποτέλεσµα Αγνοώντας την εγγραφή των blocks του b R * b S + b R αποτελέσµατος Συµφέρει η τοποθέτηση της µικρότερης σχέσης στο εξωτερικό βρόγχο 36

Συνένωση (εµφωλευµένος βρόγχος) Αν υπάρχουν n B > 2 blocks στη µνήµη που µπορεί να χρησιµοποιηθούν για τον υπολογισµό της συνένωσης συµφέρει να διαβάζουµε τα blocks της σχέσης του εξωτερικού βρόγχου ανά n B -1 Για κάθε n B -1block B r της R Για κάθε block B s της S Για κάθε εγγραφή t του B r Για κάθε εγγραφή s του B s Αν t[a] op s[b] πρόσθεσε το t s στο αποτέλεσµα (b R / (n B -1 ) ) * b S + b R 37 Συνένωση (χρήση ευρετηρίου) Σ2 Χρήση µιας δοµής προσπέλασης Ησχέση για την οποία υπάρχει ευρετήριο τοποθετείται στο εσωτερικό βρόγχο. Έστω ότι υπάρχει ευρετήριο για το γνώρισµα Β της σχέσης S Για κάθε block B r της R Για κάθε εγγραφή t του B r Χρησιµοποιείσαι το ευρετήριο στο B για να βρεις τις εγγραφές s της S τέτοιες ώστε t[a] op s[b] n R * C + b R όπου C το κόστος µιας επιλογής στο S 38

Συνένωση Επιλεκτικότητα συνένωσης µιας σχέσης: το πλήθος των εγγραφών (πλειάδων) που επιλέγονται το πλήθος των εγγραφών (πλειάδων) του αρχείου (σχέσης) Σε ορισµένες περιπτώσεις µπορεί να δηµιουργηθεί ένα ευρετήριο ειδικά για τη συνένωση 39 Συνένωση (ταξινόµηση-συγχώνευση) Σ3 Ταξινόµηση - Συγχώνευση Ταξινόµησε τις πλειάδες της R στο γνώρισµα Α Ταξινόµησε τις πλειάδες της S στο γνώρισµα Β i : = 1; j := 1; while (i n R and j n S ) if (R i [A] < S j [B]) i := i + 1; (*προχώρησε το δείκτη στην R *) if (R i [A] > S j [B]) j := j + 1; (* προχώρησε το δείκτη στην S*) 40

Συνένωση (ταξινόµηση-συγχώνευση) else (* R i [A] = S j [B] *) πρόσθεσε το R i. S j στο αποτέλεσµα k := j + 1; (* γράψε και τις άλλες πλειάδες της S που ταιριάζουν, αν υπάρχουν *) while ((k n S ) and (R i [A] = S k [B])) πρόσθεσε το R i. S k στο αποτέλεσµα k := k + 1; m := i + 1; (* γράψεκαιτιςάλλεςπλειάδεςτης R που ταιριάζουν, αν υπάρχουν *) while ((m n R ) and (R m [A] = S j [B])) πρόσθεσε το R m. S j στο αποτέλεσµα k := k + 1; i := m; j := k; 41 Συνένωση (ταξινόµηση-συγχώνευση) Αν αγνοήσουµε τη ταξινόµηση για τη συγχώνευση (merge) απλή σάρωση των δύο αρχείων: b R + b S Ταξινόµηση: b R * log(b R ) + b S * log(b S ) 42

Συνένωση (µε κατακερµατισµό) Σ4 Συνένωση µε κατακερµατισµό χωρίζουµε µε βάση µια συνάρτηση κατακερµατισµού h τις πλειάδες της S και της R σε κάδους -- στον ίδιο κάδο αν h(t R [A]) = h(t S [B]) δηλαδή οι πλειάδες µε t R [A] = t S [B] πέφτουν στον ίδιο κάδο άρα αρκεί να ελέγξουµε µεταξύ τους τις πλειάδες που πέφτουν στον ίδιο κάδο 43 Συνένωση (µε κατακερµατισµό) Κατακερµάτισε τις εγγραφές της R χρησιµοποιώντας την h(t R [A]) Για κάθε εγγραφή t S της S k := h(t S [B]) σύγκρινε το t S [B] µε t Ri [A] για όλες τις εγγραφές t Ri της R στον κάδο k Χρησιµοποιούµε την µικρότερη σχέση για το πρώτο πέρασµα. Αν όλοι οι κάδοι που προκύπτουν χωράνε στη µνήµη, κόστος b R + b S 44

Συνένωση (µε κατακερµατισµό) Έστω ότι δε χωρούν όλοι οι κάδοι. Έστω M καταχωρητές, N κάδοι, και η συνάρτηση h(k) = k mod N (* Κατακερµάτισε τις εγγραφές της R χρησιµοποιώντας την h(t R [A]) - στη µνήµη όλα τα blocks του πρώτου κάδου και ένα block για τους υπόλοιπους *) Για κάθε t R της R k := h(t R [A]) if (k > 1 και το block του k-οστού κάδου είναι γεµάτο) µετέφερε το block στo δίσκο 45 Συνένωση (µε κατακερµατισµό) (* στη µνήµη όλα τα blocks του 1ου κάδου - γράψε τα blocks των άλλων κάδων στο δίσκο *) Για κάθε εγγραφή t S της S k := h(t S [B]) αν k = 1 σύγκρινε το t S [B] µε όλες τις εγγραφές t Ri στον κάδο 1 αν k > 1, γράψε την εγγραφή στο δίσκο 46

Συνένωση (µε κατακερµατισµό) (* µετά το πρώτο βήµα - έχει γίνει συνένωση όλων των εγγραφών του πρώτου κάδου και στο δίσκο υπάρχουν N - 1 κάδοι της R και Ν -1 κάδοι της S *) i := 2; j := 1; while (i N) φέρε στη µνήµη όλα τα blocks του i-οστού κάδου while (j #blocks του i-οστού κάδου του αρχείου S) φέρε στη µνήµη το j-οστό block B j του i-οστού κάδου του αρχείου S Για κάθε εγγραφή t S του B j σύγκρινε το t S [B] µε όλες τις εγγραφές t Ri στον κάδο i 47 Πράξεις Συνόλων Ταξινόµησε τις πλειάδες της R σε ένα γνώρισµα Α Ταξινόµησε τις πλειάδες της S στο ίδιο γνώρισµα i : = 1; j := 1; while (i n R and j n S ) if (R i [A] > S j [B]) Τοµή τίποτα Ένωση γράψε το S j στο αποτέλεσµα ιαφορά τίποτα j := j + 1 48

Πράξεις Συνόλων else if (R i [A] < S j [B]) Τοµή τίποτα i := i + 1 else (* R i [A] = S j [B] *) Τοµή γράψε το R i στο αποτέλεσµα i: = i + 1; j := j + 1; Ένωση γράψε το R i στο αποτέλεσµα Ένωση i: = i + 1; ιαφορά γράψε το R i στο αποτέλεσµα ιαφορά i: = i + 1; j := j + 1; 49 Πράξεις Συνόλων Αν υπάρχουν ακόµα εγγραφές για κάποιο αρχείο: Ένωση while (i n R ) γράψε το R i στο αποτέλεσµα i: = i + 1; while (j n S ) γράψε το S j στο αποτέλεσµα j: = j + 1; ιαφορά while (i n R ) γράψε το R i στο αποτέλεσµα i: = i + 1; 50

Βελτιστοποίηση Ερωτήσεων select A 1, A 2,, A n from R 1, R 2,, R m where P π A1, A2,, An (σ P (R 1 x R 2 x x R m )) 51 Βελτιστοποίηση Ερωτήσεων έντρο ερώτησης Φύλλα: σχέσεις εισόδου Εσωτερικοί κόµβοι: πράξεις της σχεσιακής άλγεβρας Εκτέλεση δέντρου ερώτησης 52

Βελτιστοποίηση Ερωτήσεων 1. ιάσπαση των πράξεων επιλογής µε συζευκτικές συνθήκες σε ακολουθίες πράξεων επιλογής 2. Μετατοπίζουµε την πράξη επιλογής όσο πιο κάτω επιτρέπεται από τα γνωρίσµατα που περιλαµβάνονται στη συνθήκη 3. Επαναδιευθέτηση των φύλλων ώστε να εκτελούνται πρώτα οι σχέσεις που έχουν τις πιο περιοριστικές πράξεις επιλογής 53 Βελτιστοποίηση Ερωτήσεων 4. Συνδυασµός µιας πράξης καρτεσιανού γινοµένου µε µια πράξη επιλογής που ακολουθεί 5. ιάσπαση και µετακίνηση των λιστών προβολής όσο πιο κάτω γίνεται στο δέντρο 6. Εντοπισµός υποδέντρων µε οµάδες πράξεων που µπορεί να εκτελεστούν µε κοινό αλγόριθµο 54