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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ορισμοί Σχεσιακού Μοντέλου και Τροποποιήσεις Σχέσεων σε SQL

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Τι είναι αλγόριθμος; Υποπρογράμματα (υποαλγόριθμοι) Βασικές αλγοριθμικές δομές

ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ ΣΥΝΟΛΟ ΣΕΛΙΔΩΝ: ΕΞΙ (6)

Ορισμοί Σχεσιακού Μοντέλου και Τροποποιήσεις Σχέσεων σε SQL

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

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

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ

FORTRAN και Αντικειμενοστραφής Προγραμματισμός

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

Transcript:

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

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

Εκτέλεση Τα διαφορετικά σχέδια εκτέλεσης έχουν και διαφορικό κόστος : η διαδικασία επιλογής του σχεδίου εκτέλεσης που έχει το μικρότερο κόστος 3. Εκτέλεση Μηχανή εκτέλεσης που εκτελεί τις βασικές πράξεις Εκτίμηση του κόστους (συνήθως χρήση στατιστικών στοιχείων) Βάσεις Δεδομένων 2005-2006 Ευαγγελία Πιτουρά 13 Βάσεις Δεδομένων 2005-2006 Ευαγγελία Πιτουρά 14 Αλγόριθμοι Εκτέλεσης Βασικών Πράξεων Τι θα καλύψουμε στο μάθημα: 1. Αλγόριθμους εκτέλεσης βασικών πράξεων Προβολή Πράξεις συνόλων 2. Βασικές Ιδέες για Υπάρχουν υλοποιημένοι μια σειρά από αλγόριθμοι για κάθε βασική πράξη (π.χ., που χρησιμοποιούν ή όχι ευρετήρια κλπ) Γενικά, το Σ Β με βάση κάποια στατιστικά στοιχεία κάνει μια εκτίμηση του κόστους και επιλέγει τον αλγόριθμο με τον μικρότερο (με βάση την εκτίμηση) κόστος Βάσεις Δεδομένων 2005-2006 Ευαγγελία Πιτουρά 15 Βάσεις Δεδομένων 2005-2006 Ευαγγελία Πιτουρά 16 Αλγόριθμοι Εκτέλεσης Βασικών Πράξεων Τι είδους στατιστικά στοιχεία; Για ένα αρχείο δεδομένων μιας σχέσης 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 Ενημέρωση στατιστικών στοιχείων; Άλλα στατιστικά στοιχεία; Π.χ., για μια πράξη επιλογής στο γνώρισμα A V(A, R): αριθμός διαφορετικών τιμών του Α π Α (R) -- αν το Α κλειδί; Αλγόριθμοι Εκτέλεσης Βασικών Πράξεων SC(A, R): μέσος αριθμός πλειάδων που ικανοποιεί μια συνθήκη (δεδομένου ότι υπάρχει μια τουλάχιστον που την ικανοποιεί) 1 αν κλειδί, αν ομοιόμορφη; Βάσεις Δεδομένων 2005-2006 Ευαγγελία Πιτουρά 17 Βάσεις Δεδομένων 2005-2006 Ευαγγελία Πιτουρά 18 3

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

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

- συνθήκη σύζευξης σ Θ1 AND Θ2 AND Θn (R) : Συνθήκη Σύζευξης Επιλεκτικότητα μιας συνθήκης: το πλήθος των εγγραφών (πλειάδων) που την ικανοποιούν το πλήθος των εγγραφών (πλειάδων) του αρχείου (σχέσης) Αν οι συνθήκες είναι ανεξάρτητες, το μέγεθος του αποτελέσματος: n R * s 1 * s 2 * * s n n n R s i επιλεκτικότητα της Θi : Συνθήκη Σύζευξης Ε7 Συζευκτική επιλογή με χρήση ενός απλού ευρετηρίου Υπάρχει διαδρομή προσπέλασης για ένα από τα γνωρίσματα που εμφανίζονται σε οποιαδήποτε απλή συνθήκη του γνωρίσματος στην απλή συνθήκη με τη μικρότερη επιλεκτικότητα (γιατί;) Χρήση μιας από τις προηγούμενες μεθόδους για την ανάκτηση των εγγραφών που ικανοποιούν αυτήν την συνθήκη και έλεγχος για κάθε επιλεγμένη εγγραφή αν ικανοποιεί και τις υπόλοιπες συνθήκες Βάσεις Δεδομένων 2005-2006 Ευαγγελία Πιτουρά 31 Βάσεις Δεδομένων 2005-2006 Ευαγγελία Πιτουρά 32 : Συνθήκη Σύζευξης : Συνθήκη Σύζευξης Ε8 Συζευκτική επιλογή με χρήση σύνθετου ευρετηρίου Αν υπάρχει ευρετήριο στο συνδυασμό δύο ή περισσοτέρων γνωρισμάτων που εμφανίζονται σε οποιαδήποτε απλές συνθήκες Ε9 Συζευκτική επιλογή με τομή δεικτών Αν υπάρχουν ευρετήρια σε περισσότερα από ένα από τα γνωρίσματα Τότε διαβάζουμε τα blocks του αρχείου δεδομένων που δίνονται από όλα τα ευρετήρια Βάσεις Δεδομένων 2005-2006 Ευαγγελία Πιτουρά 33 Βάσεις Δεδομένων 2005-2006 Ευαγγελία Πιτουρά 34 : Συνθήκη ιάζευξης (επανάληψη) - συνθήκη διάζευξης SQL σ Θ1 OR Θ2 OR Θn (R) Συντακτική Ανάλυση & Μετάφραση Έκφραση της Σχεσιακής Άλγεβρας Αν κάποια από τις συνθήκες δεν έχει διαδρομή προσπέλασης -> σάρωση όλου του αρχείου Μηχανή Υπολογισμού Σχέδιο Εκτέλεσης Στατιστικά Στοιχεία Δεδομένα Αποτέλεσμα Βάσεις Δεδομένων 2005-2006 Ευαγγελία Πιτουρά 35 Βάσεις Δεδομένων 2005-2006 Ευαγγελία Πιτουρά 36 6

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

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

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

SQL 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 )) Πλάνο εκτέλεσης (ποιες πράξεις και με ποιον αλγόριθμο) Φύλλα: σχέσεις Εσωτερικοί κόμβοι: βασικές πράξεις της σχεσιακής άλγεβρας Αποτέλεσμα R 1 R 2 R 3 R m του πλάνου Βάσεις Δεδομένων 2005-2006 Ευαγγελία Πιτουρά 55 Βάσεις Δεδομένων 2005-2006 Ευαγγελία Πιτουρά 56 έντρο ερώτησης Ερωτήσεων Φύλλα: σχέσεις εισόδου Εσωτερικοί κόμβοι: πράξεις της σχεσιακής άλγεβρας Εκτέλεση δέντρου ερώτησης χρήση των αλγορίθμων που περιγράψαμε Μερικοί ευριστικοί κανόνες Ερωτήσεων Γενική ιδέα: εκτέλεση πρώτα των πράξεων με μικρή επιλεκτικότητα ώστε να περιοριστεί το μέγεθος των ενδιάμεσων αποτελεσμάτων 1. ιάσπαση των πράξεων επιλογής με συζευκτικές συνθήκες σε ακολουθίες πράξεων επιλογής 2. Μετατοπίζουμε την πράξη επιλογής όσο πιο κάτω επιτρέπεται από τα γνωρίσματα που περιλαμβάνονται στη συνθήκη 3. Επαναδιευθέτηση των φύλλων ώστε να εκτελούνται πρώτα οι σχέσεις που έχουν τις πιο περιοριστικές πράξεις επιλογής Βάσεις Δεδομένων 2005-2006 Ευαγγελία Πιτουρά 57 Βάσεις Δεδομένων 2005-2006 Ευαγγελία Πιτουρά 58 Ερωτήσεων 4. Συνδυασμός μιας πράξης καρτεσιανού γινομένου με μια πράξη επιλογής που ακολουθεί Τέλος! 5. ιάσπαση και μετακίνηση των λιστών προβολής όσο πιο κάτω γίνεται στο δέντρο 6. Εντοπισμός υποδέντρων με ομάδες πράξεων που μπορεί να εκτελεστούν με κοινό αλγόριθμο Βάσεις Δεδομένων 2005-2006 Ευαγγελία Πιτουρά 59 Βάσεις Δεδομένων 2005-2006 Ευαγγελία Πιτουρά 60 10