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

Σχετικά έγγραφα
Το εσωτερικό ενός Σ Β

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Σχεσιακός Λογισµός. Σχεσιακός Λογισµός Πλειάδων. σχεσιακά πλήρης γλώσσα

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΒΑΣΕΙΣ Ε ΟΜΕΝΩΝ. Επίπεδα Αφαίρεσης Σ Β. Αποθήκευση Εγγραφών - Ευρετήρια. ρ. Βαγγελιώ Καβακλή ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ, Επίπεδο Όψεων.

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

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

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

Στοιχεία Αλγορίθµων και Πολυπλοκότητας

Σχεδιασµός Σχεσιακών Σχηµάτων

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

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

Transcript:

Βάσεις εδοµένων 2003-2004 Ευαγγελία Πιτουρά 1 ΜΕΡΟΣ 1 Γενική Εικόνα του Μαθήµατος Επεξεργασία Ερωτήσεων Μοντελοποίηση (Μοντέλο Ο/Σ, Σχεσιακό, Λογικός Σχεδιασµός) Προγραµµατισµός (Σχεσιακή Άλγεβρα, SQL) ηµιουργία/κατασκευή εδοµένων Με χρήση Σ Β Επεξεργασία εδοµένων ΜΕΡΟΣ 2 (Υλοποίηση Σ Β ) Αποθήκευση Ευρετήρια Εκτέλεση Ερωτήσεων Το εσωτερικό ενός Σ Β Βάσεις εδοµένων 2003-2004 Ευαγγελία Πιτουρά 2 Σ Β Σ Β Βάση εδοµένων Αρχεία ευρετηρίου Κατάλογος συστήµατος Αρχεία δεδοµένων ΒΑΣΗ Ε ΟΜΕΝΩΝ Η οµή ενός Σ Β Βάσεις εδοµένων 2003-2004 Ευαγγελία Πιτουρά 3 Βάσεις εδοµένων 2003-2004 Ευαγγελία Πιτουρά 4 Σ Β Μηχανή Εκτέλεσης Ερωτήσεων Σ Β Μηχανή Εκτέλεσης Ερωτήσεων Transaction Lock File and Access Methods Buffer Disk Space Recovery Transaction Lock File and Access Methods Buffer Disk Space Recovery ΒΑΣΗ ΒΑΣΗ Ε ΟΜΕΝΩΝ Ε ΟΜΕΝΩΝ Βάσεις εδοµένων 2003-2004 Ευαγγελία Πιτουρά 5 Βάσεις εδοµένων 2003-2004 Ευαγγελία Πιτουρά 6

Βάσεις εδοµένων 2003-2004 Ευαγγελία Πιτουρά 7 Επεξεργασία Ερωτήσεων Επεξεργασία Ερωτήσεων Ερώτηση SQL Ερώτηση Συντακτική Ανάλυση & Μετάφραση Μηχανή Υπολογισµού Έκφραση της Σχεσιακής Άλγεβρας Σχέδιο Εκτέλεσης εδοµένα Στατιστικά Στοιχεία Τα βασικά βήµατα στην επεξεργασία µιας ερώτησης είναι 1. Συντακτική Ανάλυση & Μετάφραση 2. 3. Υπολογισµός Αποτέλεσµα Βάσεις εδοµένων 2003-2004 Ευαγγελία Πιτουρά 8 Συντακτική Ανάλυση & Μετάφραση 1. Συντακτική Ανάλυση (Parsing) & Μετάφραση Η SQL ερώτηση µεταφράζεται σε µια εσωτερική µορφή αφού γίνει ο απαραίτητος συντακτικός και σηµασιολογικός έλεγχος (π.χ., τα ονόµατα που αναφέρονται είναι ονόµατα σχέσεων που υπάρχουν) 2. Μια SQL ερώτηση µπορεί να µεταφραστεί σε διαφορετικές (ισοδύναµες) εκφράσεις της σχεσιακής άλγεβρας Αντικατάσταση των όψεων από τον ορισµό τους Σε ποια εσωτερική µορφή; Έκφραση της σχεσιακής άλγεβρας select A 1, A 2,, A n from R 1, R 2,, R m π A1, A2,, An (σ P (R 1 x R 2 x x R m )) where P select balance from account where balance < 25000 σ balance < 2500 (π balance (account)) π balance (σ balance < 2500 (account)) Βάσεις εδοµένων 2003-2004 Ευαγγελία Πιτουρά 9 Βάσεις εδοµένων 2003-2004 Ευαγγελία Πιτουρά 10 π.χ., για την υλοποίηση της επιλογής µπορεί είτε να σαρώσουµε (scan) όλο το αρχείο ελέγχοντας κάθε εγγραφή αν ικανοποιεί τη συνθήκη είτε αν υπάρχει π.χ., ένα Β + ευρετήριο στο γνώρισµα balance να χρησιµοποιήσουµε το ευρετήριο Κάθε πράξη της σχεσιακής άλγεβρας µπορεί να υλοποιηθεί µε διαφορετικούς αλγορίθµους: Άρα δεν αρκεί ο προσδιορισµός της πράξης - πρέπει να προσδιορίζεται και ο αλγόριθµος που θα χρησιµοποιηθεί για την υλοποίησή της βασικές (primitive) πράξεις: πράξη + αλγόριθµος Σχέδιο εκτέλεσης (execution plan): µια ακολουθία από βασικές πράξεις π balance σ balance < 2500, χρησιµοποίησε το ευρετήριο 1 account Βάσεις εδοµένων 2003-2004 Ευαγγελία Πιτουρά 11 Βάσεις εδοµένων 2003-2004 Ευαγγελία Πιτουρά 12

Βάσεις εδοµένων 2003-2004 Ευαγγελία Πιτουρά 13 Εκτέλεση Τα διαφορετικά σχέδια εκτέλεσης έχουν και διαφορικό κόστος : η διαδικασία επιλογής του σχεδίου εκτέλεσης που έχει το µικρότερο κόστος 3. Εκτέλεση Μηχανή εκτέλεσης που εκτελεί τις βασικές πράξεις Εκτίµηση του κόστους (συνήθως χρήση στατιστικών στοιχείων) Βάσεις εδοµένων 2003-2004 Ευαγγελία Πιτουρά 14 Επεξεργασία Ερωτήσεων Αλγόριθµοι Εκτέλεσης Βασικών Πράξεων Τι θα καλύψουµε στο µάθηµα: 1. Αλγόριθµους εκτέλεσης βασικών πράξεων Επιλογή Προβολή Πράξεις συνόλων Συνένωση Εκτίµηση κόστους µερικά στατιστικά σχετικά µε το αρχείο δεδοµένων 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 V(A, R): αριθµός διαφορετικών τιµών του Α π Α (R) -- αν Α κλειδί: SC(A, R): µέσος αριθµός πλειάδων που ικανοποιεί µια συνθήκη (δεδοµένου ότι υπάρχει µια τουλάχιστον που την ικανοποιεί) 1 αν κλειδί, αν οµοιόµορφη; Βάσεις εδοµένων 2003-2004 Ευαγγελία Πιτουρά 15 Βάσεις εδοµένων 2003-2004 Ευαγγελία Πιτουρά 16 Αλγόριθµοι Εκτέλεσης Βασικών Πράξεων Επιλογή (σ) Εκτίµηση κόστους - αρχείο ευρετηρίου f i : παράγοντας διακλάδωσης, πολυεπίπεδο f 0, Β + δέντρο ~ τάξη H i : αριθµός επιπέδων LΒ i : αριθµός block φύλλων Επιλεκτικότητα επιλογής: το πλήθος των εγγραφών (πλειάδων) που επιλέγονται (δηλ. ικανοποιούν την συνθήκη) το πλήθος των εγγραφών (πλειάδων) του αρχείου (σχέσης) Έστω s i = σ Θi (R) επιλεκτικότητα: s i / n R Κόστος: Αριθµό blocks που µεταφέρονται Αν Θi συνθήκη ισότητας σε ένα γνώρισµα υποψήφιο κλειδί s i = 1 / n R Αν Θi συνθήκη ισότητας σε ένα γνώρισµα, οµοιόµορφη κατανοµή, k διακριτές τιµές, s i = k / n R Βάσεις εδοµένων 2003-2004 Ευαγγελία Πιτουρά 17 Βάσεις εδοµένων 2003-2004 Ευαγγελία Πιτουρά 18

Βάσεις εδοµένων 2003-2004 Ευαγγελία Πιτουρά 19 Επιλογή Επιλογή Επιλογή Θα εξετάσουµε: Επιλογή µε συνθήκη ισότητας (σ Α = α (R)) Επιλογή µε συνθήκη σύγκρισης διαστήµατος/περιοχής (range query) (σ Α u (R)) ή (σ Α u (R)) Επιλογή µε σύζευξη (σ Θ1 AND Θ2 AND Θn (R)) Επιλογή µε διάζευξη (σ Θ1 OR Θ2 OR Θn (R)) Πιθανοί αλγόριθµοι εκτέλεσης: Ε1 Σειριακή αναζήτηση Ε2 υαδική αναζήτηση Ε3 Χρήση πρωτεύοντος ευρετηρίου/κατακερµατισµού Ε4 Χρήση δευτερεύοντος ευρετηρίου/κατακερµατισµού Για την περίπτωση Ε3 και Ε4 λέµε ότι έχουµε µονοπάτι προσπέλασης (access path) Βάσεις εδοµένων 2003-2004 Ευαγγελία Πιτουρά 20 Επιλογή - συνθήκη ισότητας Επιλογή: Συνθήκη Ισότητας σ Α = α (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 Αν το Α υποψήφιο κλειδί; Εύρεση της πρώτης Εύρεση των υπόλοιπων Βάσεις εδοµένων 2003-2004 Ευαγγελία Πιτουρά 21 Βάσεις εδοµένων 2003-2004 Ευαγγελία Πιτουρά 22 Επιλογή: Συνθήκη Ισότητας Επιλογή: Συνθήκη Ισότητας Ε3 Χρήση πρωτεύοντος (πολυεπίπεδου) ευρετηρίου b R : αριθµός blocks της σχέσης R SC(A, R): µέσος αριθµός πλειάδων που ικανοποιεί µια συνθήκη f R : παράγοντας οµαδοποίησης HT i : αριθµός επιπέδων Ε4 Χρήση δευτερεύοντος (πολυεπίπεδου) ευρετηρίου b R : αριθµός blocks της σχέσης R SC(A, R): µέσος αριθµός πλειάδων που ικανοποιεί µια συνθήκη f R : παράγοντας οµαδοποίησης HT i : αριθµός επιπέδων Μπορεί να χρησιµοποιηθεί µόνο αν υπάρχει τέτοιο ευρετήριο στο Α HT i + 1 HT i + SC(A, R)/f R Εύρεση και µεταφορά της πρώτης Αν το Α δεν είναι υποψήφιο κλειδί -- ευρετήριο συστάδων Εύρεση και των υπόλοιπων ΣΗΜΕΙΩΣΗ: Πρωτεύον ευρετήριο στο Α, σηµαίνει ότι οι εγγραφές του αρχείου δεδοµένων είναι ταξινοµηµένες (διατεταγµένες) ως προς Α άρα οι υπόλοιπες εγγραφές µε την ίδια τιµή στα ίδια γειτονικά blocks Μπορεί να χρησιµοποιηθεί µόνο αν υπάρχει τέτοιο ευρετήριο στο Α Αν το Α είναι υποψήφιο κλειδί HT i + 1 Αν το Α δεν είναι υποψήφιο κλειδί HT i + SC(A, R) Εύρεση και µεταφορά της πρώτης Εύρεση και των υπόλοιπων Στη χειρότερη περίπτωση κάθε εγγραφή που ικανοπoιεί τη συνθήκη σε διαφορετικό block Βάσεις εδοµένων 2003-2004 Ευαγγελία Πιτουρά 23 Βάσεις εδοµένων 2003-2004 Ευαγγελία Πιτουρά 24

Βάσεις εδοµένων 2003-2004 Ευαγγελία Πιτουρά 25 Επιλογή: Συνθήκη µε Σύγκριση Επιλογή: Συνθήκη µε Σύγκριση Επιλογή - συνθήκη µε σύγκριση σ Α u (R) ή σ Α u (R) Έστω ότι c πλειάδες ικανοποιούν τη συνθήκη Γενικά c = n r /2 (δηλαδή, οι µισές) Έστω min, max (µικρότερη, µεγαλύτερη τιµή του Α), αν οµοιόµορφη κατανοµή και σ Α u (R) c = 0 αν u < min n R αν u max n R * [(u - min) / (max -min)] σ Α u (R) Ε1 Σειριακή αναζήτηση Ε2 υαδική αναζήτηση Βάσεις εδοµένων 2003-2004 Ευαγγελία Πιτουρά 26 Επιλογή: Συνθήκη µε Σύγκριση Ε5 Χρήση πρωτεύοντος (πολυεπίπεδου) ευρετηρίου Πρωτεύον, σηµαίνει ταξινοµηµένο αρχείο, Α u έστω σε αύξουσα διάταξη 1. Χρήση ευρετηρίου για την εύρεση της πρώτης εγγραφής Α u 2. Σάρωση όλου του αρχείου ξεκινώντας από αυτήν την εγγραφή Α u HT i + c /f R ε χρειάζεται ευρετήριο, γιατί; c: επιλεξιµότητα (πλειάδες που ικανοποιούν την συνθήκη) f R : παράγοντας οµαδοποίησης HT i : αριθµός επιπέδων Ε6 Χρήση δευτερεύοντος (πολυεπίπεδου) ευρετηρίου Σάρωση των φύλλων του δέντρου Α u από την αρχή έως το u Α u από το u έως το τέλος Επιλογή: Συνθήκη µε Σύγκριση Εύρεση του πρώτου φύλλου του ευρετηρίου Για κάθε block (φύλλο) του ευρετηρίου διάβασε το αντίστοιχο block δεδοµένων (σηµείωση, χρησιµοποιούµε το δείκτη ανάµεσα στα φύλλα) c: επιλεξιµότητα (πλειάδες που ικανοποιούν την συνθήκη) n R : αριθµός εγγραφών LB i : αριθµός block φύλλων HT i : αριθµός επιπέδων Αν c = n R /2, τότε (αν κάθε εγγραφή σε διαφορετικό block) HT i + LB i /2 + n R /2 Βάσεις εδοµένων 2003-2004 Ευαγγελία Πιτουρά 27 Βάσεις εδοµένων 2003-2004 Ευαγγελία Πιτουρά 28 Επιλογή: Συνθήκη Σύζευξης Επιλογή: Συνθήκη Σύζευξης Επιλογή - συνθήκη σύζευξης σ Θ1 AND Θ2 AND Θn (R) Επιλεκτικότητα µιας συνθήκης: το πλήθος των εγγραφών (πλειάδων) που την ικανοποιούν το πλήθος των εγγραφών (πλειάδων) του αρχείου (σχέσης) Αν οι συνθήκες είναι ανεξάρτητες, το µέγεθος του αποτελέσµατος: n R * s 1 * s 2 * * s n n n R s i επιλεκτικότητα της Θi Ε7 Συζευκτική επιλογή µε χρήση ενός απλού ευρετηρίου Υπάρχει διαδροµή προσπέλασης για ένα από τα γνωρίσµατα που εµφανίζονται σε οποιαδήποτε απλή συνθήκη Επιλογή του γνωρίσµατος στην απλή συνθήκη µε τη µικρότερη επιλεκτικότητα (γιατί;) Χρήση µιας από τις προηγούµενες µεθόδους για την ανάκτηση των εγγραφών που ικανοποιούν αυτήν την συνθήκη και έλεγχος για κάθε επιλεγµένη εγγραφή αν ικανοποιεί και τις υπόλοιπες συνθήκες Βάσεις εδοµένων 2003-2004 Ευαγγελία Πιτουρά 29 Βάσεις εδοµένων 2003-2004 Ευαγγελία Πιτουρά 30

Βάσεις εδοµένων 2003-2004 Ευαγγελία Πιτουρά 31 Επιλογή: Συνθήκη Σύζευξης Επιλογή: Συνθήκη Σύζευξης Ε8 Συζευκτική επιλογή µε χρήση σύνθετου ευρετηρίου Αν υπάρχει ευρετήριο στο συνδυασµό δύο ή περισσοτέρων γνωρισµάτων που εµφανίζονται σε οποιαδήποτε απλές συνθήκες Ε9 Συζευκτική επιλογή µε τοµή δεικτών Αν υπάρχουν ευρετήρια σε περισσότερα από ένα από τα γνωρίσµατα Τότε διαβάζουµε τα blocks του αρχείου δεδοµένων που δίνονται από όλα τα ευρετήρια Βάσεις εδοµένων 2003-2004 Ευαγγελία Πιτουρά 32 Επιλογή: Συνθήκη ιάζευξης Συνένωση Επιλογή - συνθήκη διάζευξης σ Θ1 OR Θ2 OR Θn (R) Αν κάποια από τις συνθήκες δεν έχει διαδροµή προσπέλασης -> σάρωση όλου του αρχείου Συνένωση >< R R.A op S.B S Σ1 Εµφωλευµένος (εσωτερικός - εξωτερικός) βρόγχος Σ2 Χρήση µιας δοµής προσπέλασης Σ3 Ταξινόµηση-Συγχώνευση Σ4 Συνένωση µε κατακερµατισµό Βάσεις εδοµένων 2003-2004 Ευαγγελία Πιτουρά 33 Βάσεις εδοµένων 2003-2004 Ευαγγελία Πιτουρά 34 Συνένωση (εµφωλευµένος βρόγχος) Συνένωση (εµφωλευµένος βρόγχος) Σ1 Εµφωλευµένος (εσωτερικός-εξωτερικός) βρόγχος Για κάθε εγγραφή t της R Για κάθε εγγραφή s της S Αν t[a] op s[b] πρόσθεσε το t s στο αποτέλεσµα Για κάθε block B r της R Για κάθε block B s της S Για κάθε εγγραφή t του B r Για κάθε εγγραφή s του B s Αν t[a] op s[b] πρόσθεσε το t s στο αποτέλεσµα Αγνοώντας την εγγραφή των blocks του αποτελέσµατος n R * b S + b R Αγνοώντας την εγγραφή των blocks του αποτελέσµατος b R * b S + b R Συµφέρει η τοποθέτηση της µικρότερης σχέσης στο εξωτερικό βρόγχο Βάσεις εδοµένων 2003-2004 Ευαγγελία Πιτουρά 35 Βάσεις εδοµένων 2003-2004 Ευαγγελία Πιτουρά 36

Βάσεις εδοµένων 2003-2004 Ευαγγελία Πιτουρά 37 Για κάθε 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 στο αποτέλεσµα Σ2 Χρήση µιας δοµής προσπέλασης Συνένωση (χρήση ευρετηρίου) Ησχέση για την οποία υπάρχει ευρετήριο τοποθετείται στον εσωτερικό βρόγχο. Έστω ότι υπάρχει ευρετήριο για το γνώρισµα Β της σχέσης S Για κάθε block B r της R Για κάθε εγγραφή t του B r Χρησιµοποίησε το ευρετήριο στο B για να βρεις τις εγγραφές s της S τέτοιες ώστε t[a] op s[b] (b R / (n B -1 ) ) * b S + b R n R * C + b R όπου C το κόστος µιας επιλογής στο S (δηλαδή της εύρεσης της εγγραφής (εγγραφών) του S που ικανοποιούν τη συνθήκη) Βάσεις εδοµένων 2003-2004 Ευαγγελία Πιτουρά 38 Συνένωση Συνένωση (ταξινόµηση-συγχώνευση) Σ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*) Βάσεις εδοµένων 2003-2004 Ευαγγελία Πιτουρά 39 Βάσεις εδοµένων 2003-2004 Ευαγγελία Πιτουρά 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; Βάσεις εδοµένων 2003-2004 Ευαγγελία Πιτουρά 41 Συνένωση (ταξινόµηση-συγχώνευση) Αν αγνοήσουµε τη ταξινόµηση για τη συγχώνευση (merge) απλή σάρωση των δύο αρχείων: b R + b S Ταξινόµηση: b R * log(b R ) + b S * log(b S ) Βάσεις εδοµένων 2003-2004 Ευαγγελία Πιτουρά 42

Βάσεις εδοµένων 2003-2004 Ευαγγελία Πιτουρά 43 Συνένωση (µε κατακερµατισµό) Συνένωση (µε κατακερµατισµό) Σ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 Βάσεις εδοµένων 2003-2004 Ευαγγελία Πιτουρά 44 Συνένωση (µε κατακερµατισµό) Πράξεις Συνόλων Αν δεν χωρούν όλοι οι κάδοι τροποποίηση Ταξινόµησε τις πλειάδες της 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 Βάσεις εδοµένων 2003-2004 Ευαγγελία Πιτουρά 45 Βάσεις εδοµένων 2003-2004 Ευαγγελία Πιτουρά 46 else if (R i [A] < S j [B]) Πράξεις Συνόλων Αν υπάρχουν ακόµα εγγραφές για κάποιο αρχείο: Πράξεις Συνόλων Τοµή τίποτα i := i + 1 else (* R i [A] = S j [B] *) Τοµή γράψε το 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; Βάσεις εδοµένων 2003-2004 Ευαγγελία Πιτουρά 47 Βάσεις εδοµένων 2003-2004 Ευαγγελία Πιτουρά 48