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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Έστω ένας πίνακας με όνομα Α δέκα θέσεων : 1 η 2 η 3 η 4 η 5 η 6 η 7 η 8 η 9 η 10 η

Transcript:

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

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

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

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

Ε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 του αρχείου δεδομένων Βάσεις Δεδομένων 2006-2007 Ευαγγελία Πιτουρά 25 Βάσεις Δεδομένων 2006-2007 Ευαγγελία Πιτουρά 26 Ε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)] Βάσεις Δεδομένων 2006-2007 Ευαγγελία Πιτουρά 27 Βάσεις Δεδομένων 2006-2007 Ευαγγελία Πιτουρά 28 : Συνθήκη με Σύγκριση : Συνθήκη με Σύγκριση Ε5 Χρήση πρωτεύοντος (πολυεπίπεδου) ευρετηρίου σ Α u (R) Θα δούνε δύο αλγορίθμους: Ε5 Χρήση πρωτεύοντος πολυ-επίπεδου ευρετηρίου Ε6 Χρήση δευτερεύοντος πολυ-επίπεδου ευρετηρίου Πρωτεύον, σημαίνει ταξινομημένο αρχείο, Α u έστω σε αύξουσα διάταξη 1. Χρήση ευρετηρίου για την εύρεση της πρώτης εγγραφής Α u 2. Σάρωση όλου του αρχείου ξεκινώντας από αυτήν την εγγραφή Α u HT i + c /f R ε χρειάζεται ευρετήριο, γιατί; c: επιλεξιμότητα (πλειάδες που ικανοποιούν την συνθήκη) f R : παράγοντας ομαδοποίησης HT i : αριθμός επιπέδων Βάσεις Δεδομένων 2006-2007 Ευαγγελία Πιτουρά 29 Βάσεις Δεδομένων 2006-2007 Ευαγγελία Πιτουρά 30 5

: Συνθήκη με Σύγκριση Ε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 Βάσεις Δεδομένων 2006-2007 Ευαγγελία Πιτουρά 31 Βάσεις Δεδομένων 2006-2007 Ευαγγελία Πιτουρά 32 : Συνθήκη Σύζευξης : Συνθήκη Σύζευξης Ε7 Συζευκτική επιλογή με χρήση ενός απλού ευρετηρίου Υπάρχει διαδρομή προσπέλασης για ένα από τα γνωρίσματα που εμφανίζονται σε οποιαδήποτε απλή συνθήκη του γνωρίσματος στην απλή συνθήκη με τη μικρότερη επιλεκτικότητα (γιατί;) Ε8 Συζευκτική επιλογή με χρήση σύνθετου ευρετηρίου Αν υπάρχει ευρετήριο στο συνδυασμό δύο ή περισσοτέρων γνωρισμάτων που εμφανίζονται σε οποιαδήποτε απλές συνθήκες Χρήση μιας από τις προηγούμενες μεθόδους για την ανάκτηση των εγγραφών που ικανοποιούν αυτήν την συνθήκη και έλεγχος για κάθε επιλεγμένη εγγραφή αν ικανοποιεί και τις υπόλοιπες συνθήκες Βάσεις Δεδομένων 2006-2007 Ευαγγελία Πιτουρά 33 Βάσεις Δεδομένων 2006-2007 Ευαγγελία Πιτουρά 34 : Συνθήκη Σύζευξης : Συνθήκη ιάζευξης Ε9 Συζευκτική επιλογή με τομή δεικτών Αν υπάρχουν ευρετήρια σε περισσότερα από ένα από τα γνωρίσματα Τότε διαβάζουμε τα blocks του αρχείου δεδομένων που δίνονται από όλα τα ευρετήρια - συνθήκη διάζευξης σ Θ1 OR Θ2 OR Θn (R) Αν έστω και μία από τις συνθήκες δεν έχει διαδρομή προσπέλασης -> σάρωση όλου του αρχείου Βάσεις Δεδομένων 2006-2007 Ευαγγελία Πιτουρά 35 Βάσεις Δεδομένων 2006-2007 Ευαγγελία Πιτουρά 36 6

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

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