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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Σχεδιασμός μιας εφαρμογής ΒΔ: Βήματα. 1. Συλλογή και Ανάλυση Απαιτήσεων(requirement analysis)

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

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

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

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

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

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

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

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

Σχεδιασμός μιας Β : Βήματα

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

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

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

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

Βάσεις Δεδομένων. Σχεσιακό Μοντέλο Δεδομένων. Βασίλειος Βεσκούκης Ορισμός Βάσης Δεδομένων Δομή Περιορισμοί

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

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

Διάλεξη 17: O Αλγόριθμος Ταξινόμησης HeapSort

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

Αλγόριθμοι και Πολυπλοκότητα

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

Σχεσιακή Άλγεβρα. Σχεσιακή Άλγεβρα

Kεφ.2: Σχεσιακό Μοντέλο (επανάληψη) Κεφ.6.1: Σχεσιακή Άλγεβρα

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΤΜΗΜΑ ΠΟΛΙΤΙΣΜΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΣ. Επιλέγει όλες τις πλειάδες, από μια σχέση R, που ικανοποιούν τη συνθήκη επιλογής.

Τμήμα Πληροφορικής ΑΠΘ

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

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

Σχεσιακή Άλγεβρα. Εισαγωγή. Εισαγωγή. Εισαγωγή. Παράδειγμα. Εισαγωγή. Ταινία Τίτλος Έτος Διάρκεια Είδος. Παίζει Όνομα-Ηθοποιού Τίτλος Έτος.

Αλγόριθμοι Ταξινόμησης Μέρος 4

Transcript:

Εισαγωγή Σ Β Σύνολο από προγράμματα για τη διαχείριση της Β Επεξεργασία Ερωτήσεων Αρχεία ευρετηρίου Κατάλογος συστήματος Αρχεία δεδομένων ΒΑΣΗ Ε ΟΜΕΝΩΝ Σύστημα Βάσεων εδομένων (ΣΒ ) Βάσεις Δεδομένων 2007-2008 Ευαγγελία Πιτουρά 1 Βάσεις Δεδομένων 2007-2008 Ευαγγελία Πιτουρά 2 Εισαγωγή Επεξεργασία Ερωτήσεων Σ Β Μηχανή Εκτέλεσης Ερωτήσεων Θα δούμε την «πορεία» μιας SQL ερώτησης (πως εκτελείται) Επεξεργασία οσοληψιών Χειριστής Κλειδιών Μέθοδοι Προσπέλασης Αρχείων ιαχειριστής Ενδιάμεσης Μνήμης (buffer) ιαχειριστής ίσκου Ανάκαμψη από Σφάλματα ΣΒ SQL Αποτέλεσμα ΒΑΣΗ Ε ΟΜΕΝΩΝ Βάσεις Δεδομένων 2007-2008 Ευαγγελία Πιτουρά 3 Βάσεις Δεδομένων 2007-2008 Ευαγγελία Πιτουρά 4 Επεξεργασία Ερωτήσεων Επεξεργασία Ερωτήσεων SQL Συντακτική Ανάλυση & Μετάφραση Έκφραση της Σχεσιακής Άλγεβρας Τα βασικά βήματα στην επεξεργασία μιας ερώτησης είναι 1. Συντακτική Ανάλυση & Μετάφραση Μηχανή Υπολογισμού Σχέδιο Εκτέλεσης Στατιστικά Στοιχεία 2. 3. Υπολογισμός Δεδομένα Αποτέλεσμα Βάσεις Δεδομένων 2007-2008 Ευαγγελία Πιτουρά 5 Βάσεις Δεδομένων 2007-2008 Ευαγγελία Πιτουρά 6 Βάσεις Δεδομένων 2007-2008: Επεξεργασία Ερωτήσεων 1

Συντακτική Ανάλυση & Μετάφραση 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 R 2 R m )) 2. Μια SQL ερώτηση μπορεί να μεταφραστεί σε διαφορετικές (ισοδύναμες) εκφράσεις της σχεσιακής άλγεβρας select balance from account where balance < 25000 π balance (σ balance < 2500 (account)) σ balance < 2500 (π balance (account)) Με ποιο κριτήριο γίνεται η επιλογή της έκφρασης; Βάσεις Δεδομένων 2007-2008 Ευαγγελία Πιτουρά 7 Βάσεις Δεδομένων 2007-2008 Ευαγγελία Πιτουρά 8 Κάθε πράξη της σχεσιακής άλγεβρας μπορεί να υλοποιηθεί με διαφορετικούς αλγορίθμους: π.χ., για την υλοποίηση της επιλογής μπορεί είτε να σαρώσουμε (scan) όλο το αρχείο ελέγχοντας κάθε εγγραφή αν ικανοποιεί τη συνθήκη είτε αν υπάρχει π.χ., ένα Β + ευρετήριο στο γνώρισμα balance να χρησιμοποιήσουμε το ευρετήριο Άρα δεν αρκεί ο προσδιορισμός της πράξης - πρέπει να προσδιορίζεται και ο αλγόριθμος που θα χρησιμοποιηθεί για την υλοποίησή της βασικές (primitive) πράξεις: πράξη + αλγόριθμος Σχέδιο εκτέλεσης (eecution plan): μια ακολουθία από βασικές πράξεις π balance σ balance < 2500, χρησιμοποίησε το ευρετήριο 1 account Βάσεις Δεδομένων 2007-2008 Ευαγγελία Πιτουρά 9 Βάσεις Δεδομένων 2007-2008 Ευαγγελία Πιτουρά 10 Εκτέλεση Τα διαφορετικά σχέδια εκτέλεσης έχουν και διαφορικό κόστος : η διαδικασία επιλογής του σχεδίου εκτέλεσης που έχει το μικρότερο κόστος 3. Εκτέλεση Μηχανή εκτέλεσης που εκτελεί τις βασικές πράξεις Εκτίμηση του κόστους στοιχείων) (συνήθως χρήση στατιστικών Βάσεις Δεδομένων 2007-2008 Ευαγγελία Πιτουρά 11 Βάσεις Δεδομένων 2007-2008 Ευαγγελία Πιτουρά 12 Βάσεις Δεδομένων 2007-2008: Επεξεργασία Ερωτήσεων 2

Εκτέλεση Επεξεργασία Ερωτήσεων (ανακεφαλαίωση) SQL Υπάρχουν υλοποιημένοι μια σειρά από αλγόριθμοι για κάθε βασική πράξη (π.χ., που χρησιμοποιούν ή όχι ευρετήρια κλπ) Γενικά, το Σ Β με βάση κάποια στατιστικά στοιχεία κάνει μια εκτίμηση του κόστους και επιλέγει τον αλγόριθμο για κάθε πράξη με τον μικρότερο (με βάση την εκτίμηση) κόστος Συντακτική Ανάλυση & Μετάφραση Μηχανή Υπολογισμού Έκφραση της Σχεσιακής Άλγεβρας Σχέδιο Εκτέλεσης Δεδομένα Στατιστικά Στοιχεία Αποτέλεσμα Βάσεις Δεδομένων 2007-2008 Ευαγγελία Πιτουρά 13 Βάσεις Δεδομένων 2007-2008 Ευαγγελία Πιτουρά 14 Επεξεργασία Ερωτήσεων (ανακεφαλαίωση) Επεξεργασία Ερωτήσεων select A 1, A 2,, A n Μετάφραση from R 1, R 2,, R m where P π Α1, Α2,... An σ P π A1, A2,, An (σ P (R 1 R 2 R m )) Πλάνο εκτέλεσης (ποιες πράξεις και με ποιον αλγόριθμο) π Α1, Α2,... An σ P Λίγα λόγια για τη βελτιστοποίηση Πλάνο εκτέλεσης (ποιες πράξεις και με ποιον αλγόριθμο) Εκτέλεση Φύλλα: σχέσεις Εσωτερικοί κόμβοι: βασικές πράξεις της σχεσιακής άλγεβρας Επιλογή κατάλληλου αλγορίθμου για κάθε βασική πράξη της σχεσιακής άλγεβρας του πλάνου R 1 R 2 R 3 R m Βάσεις Δεδομένων 2007-2008 Ευαγγελία Πιτουρά 15 R 1 R 2 R 3 R m Βάσεις Δεδομένων 2007-2008 Ευαγγελία Πιτουρά 16 Ερωτήσεων Μερικοί ευριστικοί κανόνες Γενική ιδέα: εκτέλεση πρώτα των πράξεων με μικρή επιλεκτικότητα ώστε να περιοριστεί το μέγεθος των ενδιάμεσων αποτελεσμάτων Ερωτήσεων 4. Συνδυασμός μιας πράξης καρτεσιανού γινομένου με μια πράξη επιλογής που ακολουθεί 1. ιάσπαση των πράξεων επιλογής με συζευκτικές συνθήκες σε ακολουθίες πράξεων επιλογής 2. Μετατοπίζουμε την πράξη επιλογής όσο πιο κάτω επιτρέπεται από τα γνωρίσματα που περιλαμβάνονται στη συνθήκη 3. Επαναδιευθέτηση των φύλλων ώστε να εκτελούνται πρώτα οι σχέσεις που έχουν τις πιο περιοριστικές πράξεις επιλογής 5. ιάσπαση και μετακίνηση των λιστών προβολής όσο πιο κάτω γίνεται στο δέντρο 6. Εντοπισμός υποδέντρων με ομάδες πράξεων που μπορεί να εκτελεστούν με κοινό αλγόριθμο Βάσεις Δεδομένων 2007-2008 Ευαγγελία Πιτουρά 17 Βάσεις Δεδομένων 2007-2008 Ευαγγελία Πιτουρά 18 Βάσεις Δεδομένων 2007-2008: Επεξεργασία Ερωτήσεων 3

Επεξεργασία Ερωτήσεων Αλγόριθμους εκτέλεσης βασικών πράξεων Επιλογή Προβολή Πράξεις συνόλων Συνένωση Αλγόριθμοι Εκτέλεσης Βασικών Πράξεων Για να επιλέξουμε ποιόν αλγόριθμο θα χρησιμοποιήσουμε, διατηρούμε στατιστικά στοιχεία Για ένα αρχείο δεδομένων μιας σχέσης R: n R : αριθμός πλειάδων της σχέσης R b R : αριθμός blocks της σχέσης R s R : μέγεθος σε bytes κάθε πλειάδας της σχέσης R f R : παράγοντας ομαδοποίησης (αριθμός εγγραφών ανά block) αν μη εκτεινόμενη, f R = B / s R και b R = n R / f R Ενημέρωση στατιστικών στοιχείων; Βάσεις Δεδομένων 2007-2008 Ευαγγελία Πιτουρά 19 Βάσεις Δεδομένων 2007-2008 Ευαγγελία Πιτουρά 20 Άλλα στατιστικά στοιχεία; Π.χ., για μια πράξη επιλογής στο γνώρισμα A V(A, R): αριθμός διαφορετικών τιμών του Α π Α (R) -- αν το Α κλειδί; Αλγόριθμοι Εκτέλεσης Βασικών Πράξεων SC(A, R): μέσος αριθμός πλειάδων που ικανοποιεί μια συνθήκη (δεδομένου ότι υπάρχει μια τουλάχιστον που την ικανοποιεί) 1 αν κλειδί, αν ομοιόμορφη; Αλγόριθμοι Εκτέλεσης Βασικών Πράξεων Στατιστικά στοιχεία επίσης για το αρχείο ευρετηρίου (αν υπάρχει) f i : παράγοντας διακλάδωσης, πολυεπίπεδο f 0, Β + δέντρο ~ τάξη H i : αριθμός επιπέδων LΒ i : αριθμός block φύλλων Με βάση τα στατιστικά επιλέγεται ο αλγόριθμος με το μικρότερο κόστος Κόστος: Αριθμό blocks που μεταφέρονται Βάσεις Δεδομένων 2007-2008 Ευαγγελία Πιτουρά 21 Βάσεις Δεδομένων 2007-2008 Ευαγγελία Πιτουρά 22 Επιλογή Επιλογή Θα εξετάσουμε: Επιλογή με συνθήκη ισότητας (σ Α = α (R)) Επιλογή με συνθήκη σύγκρισης διαστήματος/περιοχής (range query) (σ Α u (R)) ή (σ Α u (R)) Επιλογή με σύζευξη (σ Θ1 AND Θ2 AND Θn (R)) Επιλογή με διάζευξη (σ Θ1 OR Θ2 OR Θn (R)) Θα δούμε ποιος είναι ο καλύτερος (με το μικρότερο κόστος σε blocks) αλγόριθμος για την εκτέλεση της πράξης Επιλογή Πιθανοί αλγόριθμοι εκτέλεσης για την επιλογή: Ε1: Σειριακή αναζήτηση Ε2: υαδική αναζήτηση Ε3: Χρήση πρωτεύοντος ευρετηρίου/κατακερματισμού Ε4: Χρήση δευτερεύοντος ευρετηρίου/κατακερματισμού Για τον Ε2 πρέπει το αρχείο να είναι ταξινομημένο Για τους Ε3 και Ε4 λέμε ότι έχουμε μονοπάτι προσπέλασης (access path) Βάσεις Δεδομένων 2007-2008 Ευαγγελία Πιτουρά 23 Βάσεις Δεδομένων 2007-2008 Ευαγγελία Πιτουρά 24 Βάσεις Δεδομένων 2007-2008: Επεξεργασία Ερωτήσεων 4

Επιλεκτικότητα επιλογής: Επιλογή (σ) το πλήθος των εγγραφών (πλειάδων) που επιλέγονται (δηλ. ικανοποιούν την συνθήκη) το πλήθος των εγγραφών (πλειάδων) του αρχείου (σχέσης) Έστω s i = σ Θi (R) επιλεκτικότητα: s i / n R Αν Θi συνθήκη ισότητας σε ένα γνώρισμα υποψήφιο κλειδί s i = 1 / n R Αν Θi συνθήκη ισότητας σε ένα γνώρισμα, ομοιόμορφη κατανομή, k διακριτές τιμές, s i = k / n R Επιλογή - συνθήκη ισότητας Ε1 Σειριακή αναζήτηση ιάβασμα (scan) όλου του αρχείου b R Επιλογή: Συνθήκη Ισότητας σ Α = α (R) b R /2 αν το Α υποψήφιο κλειδί (οπότε το αποτέλεσμα έχει μόνο μία πλειάδα, σταματάμε την αναζήτηση μόλις τη βρούμε) Μπορεί να χρησιμοποιηθεί σε οποιοδήποτε αρχείο b R : αριθμός blocks της σχέσης R Βάσεις Δεδομένων 2007-2008 Ευαγγελία Πιτουρά 25 Βάσεις Δεδομένων 2007-2008 Ευαγγελία Πιτουρά 26 Ε2 υαδική αναζήτηση Επιλογή: Συνθήκη Ισότητας Μπορεί να χρησιμοποιηθεί μόνο αν το αρχείο είναι διατεταγμένο με βάση το γνώρισμα της επιλογής + log ( b R ) SC(A, r)/f R -1 Αν το Α υποψήφιο κλειδί; b R : αριθμός blocks της σχέσης R SC(A, R): μέσος αριθμός πλειάδων που ικανοποιεί μια συνθήκη f R : παράγοντας ομαδοποίησης Εύρεση της πρώτης Εύρεση των υπόλοιπων Ε3 Χρήση πρωτεύοντος (πολυεπίπεδου) ευρετηρίου Πρωτεύον ευρετήριο σημαίνει ταξινομημένο αρχείο Επιλογή: Συνθήκη Ισότητας Μπορεί να χρησιμοποιηθεί μόνο αν υπάρχει τέτοιο ευρετήριο στο Α HT i + 1 HT i + SC(A, R)/f R b R : αριθμός blocks της σχέσης R SC(A, R): μέσος αριθμός πλειάδων που ικανοποιεί μια συνθήκη f R : παράγοντας ομαδοποίησης HT i : αριθμός επιπέδων Εύρεση και μεταφορά της πρώτης Αν το Α δεν είναι υποψήφιο κλειδί -- ευρετήριο συστάδων Εύρεση και των υπόλοιπων ΣΗΜΕΙΩΣΗ: Πρωτεύον ευρετήριο στο Α, σημαίνει ότι οι εγγραφές του αρχείου δεδομένων είναι ταξινομημένες (διατεταγμένες) ως προς Α άρα οι υπόλοιπες εγγραφές με την ίδια τιμή (αν υπάρχουν) βρίσκονται σε γειτονικά blocks του αρχείου δεδομένων Βάσεις Δεδομένων 2007-2008 Ευαγγελία Πιτουρά 27 Βάσεις Δεδομένων 2007-2008 Ευαγγελία Πιτουρά 28 Ε4 Χρήση δευτερεύοντος (πολυεπίπεδου) ευρετηρίου Επιλογή: Συνθήκη Ισότητας Μπορεί να χρησιμοποιηθεί μόνο αν υπάρχει τέτοιο ευρετήριο στο Α Αν το Α είναι υποψήφιο κλειδί HT i + 1 Αν το Α δεν είναι υποψήφιο κλειδί + κόστος για την εύρεση των υπολοίπων HT i + ενδιάμεσο επίπεδο +SC(A, R) b R : αριθμός blocks της σχέσης R SC(A, R): μέσος αριθμός πλειάδων που ικανοποιεί μια συνθήκη f R : παράγοντας ομαδοποίησης HT i : αριθμός επιπέδων Εύρεση και μεταφορά της πρώτης Εύρεση και των υπόλοιπων Στη χειρότερη περίπτωση κάθε εγγραφή που ικανοπoιεί τη συνθήκη σε διαφορετικό block Επιλογή: Συνθήκη με Σύγκριση Επιλογή - συνθήκη με σύγκριση σ Α u (R) ήσ Α u (R) Έστω ότι c πλειάδες ικανοποιούν τη συνθήκη Γενικά c = n R /2 (δηλαδή, οι μισές) Έστω min, ma (μικρότερη, μεγαλύτερη τιμή του Α), αν ομοιόμορφη κατανομή και σ Α u (R) c = 0 αν u < min n R αν u ma n R * [(u - min) / (ma - min)] Βάσεις Δεδομένων 2007-2008 Ευαγγελία Πιτουρά 29 Βάσεις Δεδομένων 2007-2008 Ευαγγελία Πιτουρά 30 Βάσεις Δεδομένων 2007-2008: Επεξεργασία Ερωτήσεων 5

Επιλογή: Συνθήκη με Σύγκριση Επιλογή: Συνθήκη με Σύγκριση Ε5 Χρήση πρωτεύοντος (πολυεπίπεδου) ευρετηρίου σ Α u (R) Θα δούμε δύο αλγορίθμους: Ε5 Χρήση πρωτεύοντος πολυ-επίπεδου ευρετηρίου Α u Πρωτεύον, σημαίνει ταξινομημένο αρχείο, έστω σε αύξουσα διάταξη 1. Χρήση ευρετηρίου για την εύρεση της πρώτης εγγραφής Α u 2. Σάρωση όλου του αρχείου ξεκινώντας από αυτήν την εγγραφή HT i + c /f R Ε6 Χρήση δευτερεύοντος πολυ-επίπεδου ευρετηρίου Α u ε χρειάζεται ευρετήριο, γιατί; c: επιλεξιμότητα (πλειάδες που ικανοποιούν την συνθήκη) f R : παράγοντας ομαδοποίησης HT i : αριθμός επιπέδων Βάσεις Δεδομένων 2007-2008 Ευαγγελία Πιτουρά 31 Βάσεις Δεδομένων 2007-2008 Ευαγγελία Πιτουρά 32 Επιλογή: Συνθήκη με Σύγκριση Ε6 Χρήση δευτερεύοντος (πολυεπίπεδου) ευρετηρίου Εύρεση του πρώτου φύλλου του ευρετηρίου Μη ταξινομημένο αρχείο Για κάθε block (φύλλο) του ευρετηρίου διάβασε το αντίστοιχο block δεδομένων (σημείωση, αν Β+ δέντρο χρησιμοποιούμε το δείκτη ανάμεσα στα φύλλα) Σάρωση των φύλλων του δέντρου Α 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 Επιλογή - συνθήκη σύζευξης σ Θ1 AND Θ2 AND Θn (R) Επιλογή: Συνθήκη Σύζευξης Επιλεκτικότητα μιας συνθήκης: το πλήθος των εγγραφών (πλειάδων) που την ικανοποιούν το πλήθος των εγγραφών (πλειάδων) του αρχείου (σχέσης) Αν οι συνθήκες είναι ανεξάρτητες, το μέγεθος του αποτελέσματος: n R * s 1 * s 2 * * s n n n R s i επιλεκτικότητα της Θi Βάσεις Δεδομένων 2007-2008 Ευαγγελία Πιτουρά 33 Βάσεις Δεδομένων 2007-2008 Ευαγγελία Πιτουρά 34 Επιλογή: Συνθήκη Σύζευξης Επιλογή: Συνθήκη Σύζευξης Ε7 Συζευκτική επιλογή με χρήση ενός απλού ευρετηρίου Υπάρχει διαδρομή προσπέλασης για ένα από τα γνωρίσματα που εμφανίζονται σε οποιαδήποτε απλή συνθήκη Επιλογή του γνωρίσματος στην απλή συνθήκη με τη μικρότερη επιλεκτικότητα (γιατί;) Ε8 Συζευκτική επιλογή με χρήση σύνθετου ευρετηρίου Αν υπάρχει ευρετήριο στο συνδυασμό δύο ή περισσοτέρων γνωρισμάτων που εμφανίζονται σε οποιαδήποτε απλές συνθήκες Χρήση μιας από τις προηγούμενες μεθόδους για την ανάκτηση των εγγραφών που ικανοποιούν αυτήν την συνθήκη και έλεγχος για κάθε επιλεγμένη εγγραφή αν ικανοποιεί και τις υπόλοιπες συνθήκες Βάσεις Δεδομένων 2007-2008 Ευαγγελία Πιτουρά 35 Βάσεις Δεδομένων 2007-2008 Ευαγγελία Πιτουρά 36 Βάσεις Δεδομένων 2007-2008: Επεξεργασία Ερωτήσεων 6

Επιλογή: Συνθήκη Σύζευξης Επιλογή: Συνθήκη ιάζευξης Ε9 Συζευκτική επιλογή με τομή δεικτών Αν υπάρχουν ευρετήρια σε περισσότερα από ένα από τα γνωρίσματα Τότε διαβάζουμε τα blocks του αρχείου δεδομένων που δίνονται από όλα τα ευρετήρια Επιλογή - συνθήκη διάζευξης σ Θ1 OR Θ2 OR Θn (R) Αν έστω και μία από τις συνθήκες δεν έχει διαδρομή προσπέλασης -> σάρωση όλου του αρχείου Βάσεις Δεδομένων 2007-2008 Ευαγγελία Πιτουρά 37 Βάσεις Δεδομένων 2007-2008 Ευαγγελία Πιτουρά 38 Επεξεργασία Ερωτήσεων Αλγόριθμους εκτέλεσης βασικών πράξεων Επιλογή Συνένωση Πράξεις συνόλων Συνένωση >< R R.A op S.B S Συνένωση Σ1 Εμφωλευμένος (εσωτερικός - εξωτερικός) βρόγχος Σ2 Χρήση μιας δομής προσπέλασης Σ3 Ταξινόμηση-Συγχώνευση Σ4 Συνένωση με κατακερματισμό Έχει σημασία πόσο χώρο μνήμης κάθε χρονική στιγμή (buffers) μπορούμε να χρησιμοποιήσουμε για τις σχέσεις δηλαδή, πόσα blocks στην μνήμη Αρχικά, ας υποθέσουμε ότι έχουμε μόνο 2 blocks Βάσεις Δεδομένων 2007-2008 Ευαγγελία Πιτουρά 39 Βάσεις Δεδομένων 2007-2008 Ευαγγελία Πιτουρά 40 Συνένωση Συνένωση (εμφωλευμένος βρόγχος) Σ1 Εμφωλευμένος (εσωτερικός-εξωτερικός) βρόγχος Επιλεκτικότητα συνένωσης μιας σχέσης: το πλήθος των εγγραφών (πλειάδων) που επιλέγονται το πλήθος των εγγραφών (πλειάδων) του αρχείου (σχέσης) Για κάθε εγγραφή t της R Για κάθε εγγραφή s της S Αν t[a] op s[b] πρόσθεσε το ts στο αποτέλεσμα Σε ορισμένες περιπτώσεις μπορεί να δημιουργηθεί ένα ευρετήριο ειδικά για τη συνένωση Αγνοώντας την εγγραφή των blocks του αποτελέσματος b r + n R * b S Βάσεις Δεδομένων 2007-2008 Ευαγγελία Πιτουρά 41 Βάσεις Δεδομένων 2007-2008 Ευαγγελία Πιτουρά 42 Βάσεις Δεδομένων 2007-2008: Επεξεργασία Ερωτήσεων 7

Για κάθε 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 R * b S Συμφέρει η τοποθέτηση της μικρότερης σχέσης στον εξωτερικό βρόγχο Για κάθε n B -1block B r της R Για κάθε block B s της S Για κάθε εγγραφή t του B r Για κάθε εγγραφή s του B s Συνένωση (εμφωλευμένος βρόγχος) Πριν θεωρήσαμε ότι έχουμε 2 block στη μνήμη (buffers) διαθέσιμους) Αν υπάρχουν n B > 2 blocks στη μνήμη που μπορεί να χρησιμοποιηθούν για τον υπολογισμό της συνένωσης συμφέρει να διαβάζουμε τα blocks τηςσχέσηςτου εξωτερικού βρόγχου ανά n B -1 Αν t[a] op s[b] πρόσθεσε το t s στο αποτέλεσμα b R + (b R / (n B -1 ) ) * b S Βάσεις Δεδομένων 2007-2008 Ευαγγελία Πιτουρά 43 Βάσεις Δεδομένων 2007-2008 Ευαγγελία Πιτουρά 44 Σ2 Χρήση μιας δομής προσπέλασης Συνένωση (χρήση ευρετηρίου) Η σχέση για την οποία υπάρχει ευρετήριο τοποθετείται στον εσωτερικό βρόγχο. Έστω ότι υπάρχει ευρετήριο για το γνώρισμα Β της σχέσης S Για κάθε block B r της R Για κάθε εγγραφή t του B r Χρησιμοποίησε το ευρετήριο στο B για να βρεις τις εγγραφές s της S τέτοιες ώστε t[a] op s[b] b R + n R * C όπου C το κόστος μιας επιλογής στο S (δηλαδή της εύρεσης της εγγραφής (εγγραφών) του S που ικανοποιούν τη συνθήκη) Συνένωση (ταξινόμηση-συγχώνευση) Σ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*) Βάσεις Δεδομένων 2007-2008 Ευαγγελία Πιτουρά 45 Βάσεις Δεδομένων 2007-2008 Ευαγγελία Πιτουρά 46 Συνένωση (ταξινόμηση-συγχώνευση) 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 στο αποτέλεσμα m:= m+ 1; i := m; j := k; Βάσεις Δεδομένων 2007-2008 Ευαγγελία Πιτουρά 47 Συνένωση (ταξινόμηση-συγχώνευση) Αν αγνοήσουμε τη ταξινόμηση για τη συγχώνευση (merge) απλή σάρωση των δύο αρχείων: b R + b S Ταξινόμηση: b R * log(b R ) + b S * log(b S ) Βάσεις Δεδομένων 2007-2008 Ευαγγελία Πιτουρά 48 Βάσεις Δεδομένων 2007-2008: Επεξεργασία Ερωτήσεων 8

(συνθήκη ισότητας) Συνένωση (με κατακερματισμό) Σ4 Συνένωση με κατακερματισμό χωρίζουμε με βάση μια συνάρτηση κατακερματισμού h τις πλειάδες της S και της R σε κάδους -- στον ίδιο κάδο αν h(t R [A]) = h(t S [B]) δηλαδή οι πλειάδες με t R [A] = t S [B] πέφτουν στον ίδιο κάδο άρα αρκεί να ελέγξουμε μεταξύ τους τις πλειάδες που πέφτουν στον ίδιο κάδο Συνένωση (με κατακερματισμό) Κατακερμάτισε τις εγγραφές της 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 Βάσεις Δεδομένων 2007-2008 Ευαγγελία Πιτουρά 49 Βάσεις Δεδομένων 2007-2008 Ευαγγελία Πιτουρά 50 Συνένωση (με κατακερματισμό) Πράξεις Συνόλων Αν δεν χωρούν όλοι οι κάδοι τροποποίηση Ταξινόμησε τις πλειάδες της R σε ένα γνώρισμα (έστω Α) Ταξινόμησε τις πλειάδες της S στο ίδιο γνώρισμα i : = 1; j := 1; while (i n R and j n S ) if (R i [A] > S j [Α]) Τομή τίποτα Ένωση γράψε το S j στο αποτέλεσμα ιαφορά τίποτα j := j + 1 Βάσεις Δεδομένων 2007-2008 Ευαγγελία Πιτουρά 51 Βάσεις Δεδομένων 2007-2008 Ευαγγελία Πιτουρά 52 else if (R i [A] < S j [Α]) Πράξεις Συνόλων Αν υπάρχουν ακόμα εγγραφές για κάποιο αρχείο: Πράξεις Συνόλων Τομή τίποτα i := i + 1 else (* R i [A] = S j [Α] *) Τομή γράψε το R i στο αποτέλεσμα i := i + 1; Ένωση γράψε το R i στο αποτέλεσμα Ένωση i := i + 1; ιαφορά γράψε το R i στο αποτέλεσμα ιαφορά i := i + 1; j := j + 1; Ένωση 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; j := j + 1; Βάσεις Δεδομένων 2007-2008 Ευαγγελία Πιτουρά 53 Βάσεις Δεδομένων 2007-2008 Ευαγγελία Πιτουρά 54 Βάσεις Δεδομένων 2007-2008: Επεξεργασία Ερωτήσεων 9

Τέλος! Βάσεις Δεδομένων 2007-2008 Ευαγγελία Πιτουρά 55 Βάσεις Δεδομένων 2007-2008: Επεξεργασία Ερωτήσεων 10