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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Βάσεις Δεδομένων (Databases)

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

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

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

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

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

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

Βάσεις δεδομένων. (10 ο μάθημα) Ηρακλής Βαρλάμης

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

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

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

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

Πληροφορική 2. Δομές δεδομένων και αρχείων

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

Σχεσιακή Άλγεβρα και Σχεσιακός Λογισμός. Σχεσιακή Άλγεβρα Σχεσιακός Λογισμός

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

Ονοματεπώνυμο: Αριθμός Μητρώου:

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

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

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

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

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

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

Ταξινόμηση κάδου και ταξινόμηση Ρίζας Bucket-Sort και Radix-Sort

ΜΥΥ105: Εισαγωγή στον Προγραμματισμό. Αναζήτηση και Ταξινόμηση Χειμερινό Εξάμηνο 2016

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

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

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

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

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

Αποθήκευση και Οργάνωση αρχείων. Βάσεις Δεδομένων Μάθημα 2ο Διδάσκων: Μαρία Χαλκίδη

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

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

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

Εισαγωγή στον Προγραμματισμό

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

ΜΥΥ105: Εισαγωγή στον Προγραµµατισµό. Αναζήτηση και Ταξινόµηση Χειµερινό Εξάµηνο 2014

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

Βάσεις Δεδομένων (Databases)

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

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

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

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

Βελτιστοποίηση Ερωτημάτων Κεφ. 14

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

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

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

ΘΕΜΑΤΑ. Ερώτηση 1 Κατά τη Φυσική Αποθήκευση (Physical storage) μιας ΒΔ αποθηκεύονται στον δίσκο τα:

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

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ. Εξωτερική Αναζήτηση και Β-δέντρα Κεφάλαιο 16. Ε. Μαρκάκης Επίκουρος Καθηγητής

Δομές Δεδομένων. Δημήτρης Μιχαήλ. Δέντρα Αναζήτησης. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

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

ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 4. Παραδείγματα Ανάλυσης Πολυπλοκότητας Ανάλυση Αναδρομικών Αλγόριθμων

Transcript:

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

Σε τι αφορά η επεξεργασία ερωτημάτων? Αναφέρεται στο σύνολο των δραστηριοτήτων που περιλαμβάνονται στην ανάκτηση δεδομένων από μία βάση δεδομένων Βάσεις Δεδομένων, Παν. Πειραιά

Βασικά βήματα επεξεργασίας ερωτημάτων ().Ανάλυση και μετάφραση.βελτιστοποίηση 3. Υπολογισμός Βάσεις Δεδομένων ΙΙ, Παν. Πειραιά 3

Ανάλυση και μετάφραση Μετάφραση ερωτήματος σε εσωτερική αναπαράσταση. Από γλώσσες υψηλού επιπέδου ΒΔ (π.χ. SQL) σε παραστάσεις που μπορούν να χρησιμοποιηθούν σε φυσικό επίπεδο από το σύστημα αρχείων Μετάφραση σε σχεσιακή άλγεβρα. Ο αναλυτής (prser) ελέγχει τη σύνταξη και επαληθεύει τις σχέσεις Βάσεις Δεδομένων ΙΙ, Παν. Πειραιά 4

Βελτιστοποίηση select blnce from ccount where blnce < 500 Μία έκφραση σχεσιακής άλγεβρας μπορεί να έχει πολλές ισοδύναμες εκφράσεις blnce500 ( blnce (ccount)) ισοδύναμη με blnce ( blnce500( ccount)) Βάσεις Δεδομένων ΙΙ, Παν. Πειραιά 5

Select Opertion Exmple Reltion r A B C D 7 5 7 3 3 0 A=B ^ D > 5 (r) A B C D 7 3 0 Βάσεις Δεδομένων ΙΙ, Παν. Πειραιά 6

Project Opertion Exmple A B C Reltion r: 0 0 30 40 A,C (r) A C Βάσεις Δεδομένων ΙΙ, Παν. Πειραιά 7

Crtesin-Product Opertion-Exmple Reltions r, s: A B C D E r 0 0 0 0 b b r x s: s A B C D E 0 0 0 0 0 0 0 0 b b b b Βάσεις Δεδομένων ΙΙ, Παν. Πειραιά 8

Συνδυασμός λειτουργιών Exmple: A=C (r x s) r x s A B C D E A=C (r x s) 0 0 0 0 0 0 0 0 b b b b A B C D E 0 0 0 b Βάσεις Δεδομένων ΙΙ, Παν. Πειραιά 9

Βάσεις Δεδομένων ΙΙ, Παν. Πειραιά 0 Nturl Join Opertion Exmple Reltions r, s: A B 4 C D b b B 3 3 D b b E r A B C D b E s r s r.a, r.b, r.c, r.d, s.e ( r.b = s.b r.d = s.d (r x s))

Βελτιστοποίηση Κάθε πράξη της σχεσιακής άλγεβρας μπορεί να υλοποιηθεί με διαφορετικούς αλγορίθμους: π.χ., για την υλοποίηση της επιλογής μπορεί είτε να σαρώσουμε (scn) όλο το αρχείο ελέγχοντας κάθε εγγραφή αν ικανοποιεί τη συνθήκη είτε αν υπάρχει π.χ., ένα Β + ευρετήριο στο γνώρισμα blnce να χρησιμοποιήσουμε το ευρετήριο Άρα δεν αρκεί ο προσδιορισμός της πράξης - πρέπει να προσδιορίζεται και ο αλγόριθμος που θα χρησιμοποιηθεί για την υλοποίησή της Βάσεις Δεδομένων ΙΙ, Παν. Πειραιά

Πλάνο εκτέλεσης ερωτήματος Π blnce σ blnce < 500 : χρήση ευρετηρίου ccount Μία έκφραση που καθορίζει λεπτομερώς τη στρατηγική εκτέλεσης του ερωτήματος καλείται πλάνο εκτέλεσης ερωτήματος (query evlution-pln) Παράδειγμα Μπορούμε να χρησιμοποιήσουμε ένα ευρετήριο πάνω στο blnce για να βρούμε τους λογαριασμούς με blnce < 500,ή μπορούμε να εκτελέσουμε πλήρη αναζήτηση της σχέσης και μετά να αφαιρέσουμε τους λογαριασμούς με blnce < 500 Βάσεις Δεδομένων ΙΙ, Παν. Πειραιά 8

Βασικά βήματα : Βελτιστοποίηση Βελτιστοποίηση ερωτήματος: Ανάμεσα σε όλα τα ισοδύναμα πλάνα εκτέλεσης επέλεξε εκείνο με το χαμηλότερο κόστος. Το κόστος εκτιμάται χρησιμοποιώντας στατιστική πληροφορία από το κατάλογο ΒΔ π.χ. Αριθμός εγγραφών σε κάθε σχέση, μέγεθος εγγραφών κλπ. Υπάρχουν υλοποιημένοι μια σειρά από αλγόριθμοι για κάθε βασική πράξη (π.χ., που χρησιμοποιούν ή όχι ευρετήρια κλπ) Γενικά, το ΣΔΒΔ με βάση κάποια στατιστικά στοιχεία κάνει μια εκτίμηση του κόστους και επιλέγει τον αλγόριθμο για κάθε πράξη με τον μικρότερο (με βάση την εκτίμηση) κόστος Βάσεις Δεδομένων ΙΙ, Παν. Πειραιά 9

Επεξεργασία Ερωτήσεων (ανακεφαλαίωση) select A, A,, A n from R, R,, R m where P Μετάφραση π Α, Α,... An π A, A,, An (σ P (R x R x x R m )) x x σ P x Βελτιστοποίηση Πλάνο εκτέλεσης (ποιες πράξεις και με ποιον αλγόριθμο) Εκτέλεση Επιλογή κατάλληλου αλγορίθμου για κάθε βασική πράξη της σχεσιακής άλγεβρας R R R 3 R m Βάσεις Δεδομένων ΙΙ, Παν. Πειραιά 0

Βελτιστοποίηση Ερωτήσεων Μερικοί κανόνες Γενική ιδέα: εκτέλεση πρώτα των πράξεων με μικρή επιλεκτικότητα ώστε να περιοριστεί το μέγεθος των ενδιάμεσων αποτελεσμάτων. Διάσπαση των πράξεων επιλογής με συζευκτικές συνθήκες σε ακολουθίες πράξεων επιλογής. Μετατοπίζουμε την πράξη επιλογής όσο πιο κάτω επιτρέπεται από τα γνωρίσματα που περιλαμβάνονται στη συνθήκη 3. Επαναδιευθέτηση των φύλλων ώστε να εκτελούνται πρώτα οι σχέσεις που έχουν τις πιο περιοριστικές πράξεις επιλογής Βάσεις Δεδομένων ΙΙ, Παν. Πειραιά

Βελτιστοποίηση Ερωτήσεων 4. Συνδυασμός μιας πράξης καρτεσιανού γινομένου με μια πράξη επιλογής που ακολουθεί 5. Διάσπαση και μετακίνηση των λιστών προβολής όσο πιο κάτω γίνεται στο δέντρο 6. Εντοπισμός υποδέντρων με ομάδες πράξεων που μπορεί να εκτελεστούν με κοινό αλγόριθμο Βάσεις Δεδομένων ΙΙ, Παν. Πειραιά

SELECT D.dnme, F.budget FROM Emp E, Dept D, Finnce F WHERE E.did=D.did AND D.did=F.did AND D.floor= AND E.sl 59000 AND E.hobby = tennis Βάσεις Δεδομένων ΙΙ, Παν. Πειραιά 3

Μετρήσεις Κόστους Ερωτημάτων Το κόστος γενικά μετράται σαν το συνολικό χρόνο που παρέρχεται για την απάντηση ερωτήματος Πολλοί παράγοντες συμβάλλουν στο κόστος του χρόνου Προσπελάσεις δίσκου, CPU, ή ακόμα και δικτυακή επικοινωνία Οι προσπελάσεις στο δίσκο κυριαρχούν του κόστους και είναι σχετικά εύκολο να εκτιμηθούν. Εκτίμηση με βάση Number of seeks * verge-seek-cost Number of blocks red * verge-block-red-cost Number of blocks written * verge-block-write-cost Το κόστος εγγραφής ενός block είναι μεγαλύτερο από το κόστος ανάγνωσης block Τα δεδομένα διαβάζονται μετά την εγγραφή για να βεβαιώσουμε την επιτυχή εγγραφή Βάσεις Δεδομένων ΙΙ, Παν. Πειραιά 4

Μετρήσεις Κόστους Ερωτημάτων () Για λόγους απλότητας χρησιμοποιούμε τον αριθμό blocks που μεταφέρονται από το δίσκο ως μέτρο κόστους Αγνοούμε τη διαφορά κόστους ανάμεσα σε σειριακή και τυχαία I/O για απλότητα Αγνοούμε CPU κόστος Το κόστος εξαρτάται από το μέγεθος του buffer στη κύρια μνήμη Έχοντας περισσότερη μνήμη μειώνουμε την ανάγκη για προσπελάσεις δίσκου Το σύνολο της διαθέσιμης μνήμης στο buffer εξαρτάται και από τις άλλες ταυτόχρονες διεργασίες και είναι δύσκολο να καθορίσουμε πριν την πραγματική εκτέλεση Συνήθως χρησιμοποιούμε τις χειρότερες περιπτώσεις, υποθέτοντας ελάχιστη μνήμη που απαιτείται για διαθέσιμες λειτουργίες Δεν συμπεριλαμβάνεται το κόστος εγγραφής στο δίσκο στον υπολογισμό του κόστους. Βάσεις Δεδομένων, Παν. Πειραιά 5

Λειτουργία Επιλογής (Selection Opertion) File scn αλγόριθμοι αναζήτησης που βρίσκουν και ανακτούν εγγραφές που πληρούν συνθήκες επιλογής. σ Α = α (r) Αλγόριθμος A (liner serch). Σάρωση κάθε block αρχείου και εξετάζουμε όλες τις εγγραφές για να δούμε εάν ικανοποιούν τη συνθήκη επιλογής. Κόστος = b r b r : αριθμός blocks της σχέσης R Εάν η επιλογή είναι πάνω στο κλειδί, Κόστος = (b r /) τέλος στην εύρεση εγγραφής Γραμμική αναζήτηση μπορεί να εφαρμοστεί ανεξάρτητα από Συνθήκη επιλογής ή Ταξινόμηση εγγραφών στο αρχείο, ή Διαθεσιμότητα ευρετηρίων Βάσεις Δεδομένων, Παν. Πειραιά 6

Λειτουργία Επιλογής () A (δυαδική αναζήτηση). Εφαρμόσιμη εάν η επιλογή είναι μία σύγκριση πάνω σ έναν χαρακτηριστικό με βάση το οποίο ταξινομείται το αρχείο. (σ Α u (r)) Υποθέτουμε ότι τα blocks της σχέσης αποθηκεύονται σε συνεχή σειρά Κόστος εκτίμησης (# disk blocks που σαρώνονται): log (b r ) κόστος εύρεσης του πρώτου με δυαδική αναζήτηση στα blocks + αριθμός blocks που περιέχουν εγγραφές που ικανοποιούν συνθήκες επιλογής + log ( b r ) SC(A, r)/f r - Εύρεση της πρώτης Εύρεση των υπόλοιπων b r : αριθμός blocks της σχέσης R SC(A, r): μέσος αριθμός πλειάδων που ικανοποιεί μια συνθήκη f r : παράγοντας ομαδοποίησης b r = n r / f r Βάσεις Δεδομένων, Παν. Πειραιά 7

Δυαδική αναζήτηση BinrySerch(A[0..N-], vlue) { low = 0 high = N - while (low <= high) { mid = (low + high) / if (A[mid] > vlue) high = mid - else if (A[mid] < vlue) low = mid + else return mid } return not_found } Βάσεις Δεδομένων, Παν. Πειραιά 8

Επιλογές χρησιμοποιώντας ευρετήρια Index scn αλγόριθμοι αναζήτησης που χρησιμοποιούν ευρετήριο Η συνθήκη επιλογής είναι πάνω στο κλειδί αναζήτησης του ευρετηρίου A3 (primry index on cndidte key). Ισότητα στο κλειδί Ανάκτηση εγγραφής που ικανοποιεί την αντίστοιχη συνθήκη. Αν χρησιμοποιούμε B+-δέντρο: Cost = HT i + (ύψος δέντρου + Ι/Ο για ανάκτηση της εγγραφής) A4 (primry index on nonkey). Iσότητα σε χαρακτηριστικό που δεν είναι κλειδί Ανάκτηση περισσότερων εγγραφών. Οι εγγραφές θα πρέπει να αποθηκεύονται σε συνεχόμενα blocks Cost = HT i + number of blocks contining retrieved records A5 (equlity on serch-key of secondry index). Οι επιλογές που καθορίζουν μία συνθήκη ισότητας μπορούν να χρησιμοποιήσουν ένα δευτερεύον ευρετήριο Ανάκτηση μίας εγγραφής εάν το κλειδί-αναζήτησης είναι υποψήφιο κλειδί Cost = HT i + Ανάκτηση πολλαπλών εγγραφών εάν το κλειδί-αναζήτησης δεν είναι υποψήφιο κλειδί Cost = HT i + number of records retrieved Κάθε εγγραφή μπορεί να είναι σε διαφορετικό block. Προσπέλαση ενός block για κάθε εγγραφή που ανακτούμε Βάσεις Δεδομένων, Παν. Πειραιά 9

Αναζητήσεις που περιλαμβάνουν συγκρίσεις Μπορούμε να υλοποιήσουμε επιλογές της μορφής AV (r) or A V (r) χρησιμοποιώντας Σειριακή ή δυαδική αναζήτηση, ή ευρετήρια στις ακόλουθες περιπτώσεις: A6 (primry index, comprison). (Reltion is sorted on A) Για A V (r) χρησιμοποιούμε το ευρετήριο για να βρούμε το η εγγραφή με τιμή v και σαρώνουμε το αρχείο σειριακά από εκείνο το σημείο Για AV (r) σαρώνουμε το αρχείο σειριακά μέχρι τη η εγγραφή > v; Δεν χρησιμοποιούμε ευρετήριο A7 (secondry index, comprison). Για A V (r) χρήση ευρετηρίου μέχρι να βρούμε τη πρώτη είσοδο ευρετηρίου με τιμή v και σαρώνουμε το ευρετήριο σειριακά από εκεί μέχρι να βρούμε δείκτες στις εγγραφές. Για AV (r) σαρώνουμε τις σελίδες φύλλα του ευρετηρίου βρίσκοντας δείκτες στις εγγραφές, μέχρι να βρούμε τι πρώτη είσοδο με τιμή > v Σε κάθε περίπτωση, ανάκτηση εγγραφών στις οποίες δείχνουν κάποιοι δείκτες Απαιτούν μία I/O για κάθε εγγραφή Γραμμική σάρωση μπορεί να είναι πιο φθηνή εάν μεταφέρονται πολλές εγγραφές! Βάσεις Δεδομένων ΙΙ, Παν. Πειραιά 30

Σειριακό αρχείο για τις εγγραφές του πίνακα ccount select blnce from ccount where nme_brnch > Minus Χρήση ευρετηρίου select blnce from ccount where nme_brnch < Minus Αναζήτηση κατευθείαν στο αρχείο Βάσεις Δεδομένων, Παν. Πειραιά 3

Δευτερεύον Ευρετήριο στο πεδίο blnce του πίνακα ccount select blnce from ccount where blnce > 600 select blnce from ccount where blnce < 700 Βάσεις Δεδομένων, Παν. Πειραιά 3

Λειτουργίες Σύνδεσης (Join Opertion) Πολλοί διαφορετικοί αλγόριθμοι για την υλοποίηση joins Nested-loop join Block nested-loop join Indexed nested-loop join Merge-join Hsh-join Επιλογή με βάση την εκτίμηση κόστους Τα παραδείγματα χρησιμοποιούν την ακόλουθη πληροφορία Number of records of customer: 0,000 depositor: 5000 Number of blocks of customer: 400 depositor: 00 Βάσεις Δεδομένων ΙΙ, Παν. Πειραιά 39

Nested-Loop Join () Υπολογισμός thet join r s for ech tuple t r in r do begin for ech tuple t s in s do begin test pir (t r,t s ) to see if they stisfy the join condition if they do, dd t r t s to the result. end end r ονομάζεται εξωτερική σχέση (outer reltion) και s εσωτερική σχέση (inner reltion) της σύνδεσης(join) Δεν απαιτεί ευρετήρια και μπορεί να χρησιμοποιηθεί με κάθε είδος συνθήκης join. Ακριβή καθώς εξετάζει κάθε ζεύγος εγγραφών και στις δύο σχέσεις. Αριθμός ζευγαριών των εγγραφών που θα εξεταστούν n r n s Βάσεις Δεδομένων ΙΙ, Παν. Πειραιά 40

Nested-Loop Join () Εάν υπάρχει αρκετή μνήμη για να διατηρούμε μόνο ένα block κάθε σχέσης, το κόστος είναι n r b s + b r προσπελάσεις δίσκου Εάν η μικρότερη σχέση (depositor) χωράει εξ ολοκλήρου στη μνήμη, χρησιμοποίησε αυτή σαν εσωτερική Number of records of customer: 0,000 depositor: 5000 Number of blocks of customer: 400 depositor: 00 Το κόστος μειώνεται σε b r + b s προσπελάσεις δίσκου. Κόστος υποθέτοντας τη χειρότερη περίπτωση διαθέσιμης μνήμης 5000 400 + 00 =,000,00 disk ccesses with depositor s outer reltion, nd 0000 00 + 400 =,000,400 disk ccesses with customer s the outer reltion. Εάν η μικρότερη σχέση (depositor) χωράει εξ ολοκλήρου στη μνήμη, το κόστος θα είναι 500 (=00+400) προσπελάσεις δίσκου. Block nested-loops αλγόριθμος είναι προτιμότερος. Βάσεις Δεδομένων ΙΙ, Παν. Πειραιά 4

Block Nested-Loop Join () Διαφοροποίηση του nested-loop join κάθε block της εσωτερικής σχέσης (inner reltion) συνδυάζεται με κάθε block της εξωτερικής σχέσης (outer reltion). for ech block B r of r do begin for ech block B s of s do begin for ech tuple t r in B r do begin for ech tuple t s in B s do begin Check if (t r,t s ) stisfy the join condition if they do, dd t r t s to the result. end end end end Χειρότερη περίπτωση: b r b s + b r προσπελάσεις block. Κάθε block στην εσωτερική σχέση s διαβάζεται μία φορά για κάθε block στην εξωτερική σχέση (αντί μία φορά για κάθε εγγραφή στην εξωτερική σχέση) Καλύτερη περίπτωση: b r + b s προσπελάσεις block (η εξωτερική σχέση χωράει στη μνήμη) Βάσεις Δεδομένων ΙΙ, Παν. Πειραιά 4

Block Nested-Loop Join () Βελτιώσεις στο nested loop και block nested loop αλγορίθμους: Χρησιμοποιούμε M disk blocks σαν blocking unit για εξωτερικές σχέσεις (Μ= memory size in blocks) Τα υπόλοιπα blocks για να κρατήσουμε στο buffer την εσωτερική σχέση και την έξοδο Cost = b r / (M-) b s + b r Εάν equi-join ttribute αποτελούν κλειδί στην εσωτερική σχέση, σταματάμε το εσωτερικό loop στο πρώτο ταίριασμα Χρήση ευρετηρίου στην εσωτερική σχέση Βάσεις Δεδομένων, Παν. Πειραιά 43

Indexed Nested-Loop Join Αναζητήσεις στο ευρετήριο μπορούν να αντικαταστήσουν σαρώσεις αρχείου εάν Έχουμε ένα equi-join ή nturl join και Υπάρχει διαθέσιμο ένα ευρετήριο στο χαρακτηριστικό της εσωτερικής σχέση που χρησιμοποιείται στο join Μπορούμε να κατασκευάσουμε ένα ευρετήριο απλώς για να υπολογίσουμε ένα join. Για κάθε εγγραφή t r στην εξωτερική σχέση r, χρησιμοποίησε το ευρετήριο για να αναζητήσεις τις εγγραφές του s που ικανοποιούν τη συνθήκη του join condition με την εγγραφή t r. Χειρότερη περίπτωση: ο buffer έχει χώρο για μία μόνο σελίδα του r, και για κάθε εγγραφή στο r, εκτελούμε μία αναζήτηση στο ευρετήριο πάνω στο s. Βάσεις Δεδομένων, Παν. Πειραιά 44

Κόστος Indexed Nested-Loop Join Cost of the join: b r + n r c c : κόστος διάσχισης του ευρετηρίου και μεταφοράς όλων των εγγραφών s που ταιριάζουν για μία εγγραφή για το r c μπορεί να υπολογιστεί ως κόστος μία επιλογής στο s χρησιμοποιώντας τη συνθήκη του join. Εάν ευρετήρια είναι διαθέσιμα για χαρακτηριστικά του join και για τις δύο σχέσεις r και s, επιλέγουμε τη σχέση με τις λιγότερες εγγραφές σαν εξωτερική σχέση. Βάσεις Δεδομένων, Παν. Πειραιά 45