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

Slides:



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

Γραφήματα & Επίπεδα Γραφήματα
Βάσεις Δεδομένων Ευαγγελία Πιτουρά1 Εισαγωγή στην Επεξεργασία Ερωτήσεων.
Κατακερματισμός Βάσεις Δεδομένων Ευαγγελία Πιτουρά.
Βάσεις Δεδομένων Ευαγγελία Πιτουρά1 Δυναμικός Κατακερματισμός.
Δρ. Παναγιώτης Συμεωνίδης
© GfK 2012 | Title of presentation | DD. Month
-17 Προσδοκίες οικονομικής ανάπτυξης στην Ευρώπη Σεπτέμβριος 2013 Δείκτης > +20 Δείκτης 0 a +20 Δείκτης 0 a -20 Δείκτης < -20 Σύνολο στην Ευρωπαϊκή Ένωση:
+21 Προσδοκίες οικονομικής ανάπτυξης στην Ευρώπη Δεκέμβριος 2013 Δείκτης > +20 Δείκτης 0 να +20 Δείκτης 0 να -20 Δείκτης < -20 Σύνολο στην Ευρωπαϊκή Ένωση:
Εργασία Η υλοποίηση του αλγορίθμου συγχώνευσης θα πρέπει να χρησιμοποιεί την ιδέα των ροών (streams). Θα πρέπει να υπάρχουν δύο διαφορετικά είδη.
Βελτιστοποίηση και Επεξεργασία Ερωτημάτων
Κεφάλαιο 2ο Πεπερασμένα αυτόματα.
Γραφήματα & Επίπεδα Γραφήματα
Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Συναρτησιακές Εξαρτήσεις.
ΙΣΟΛΟΓΙΣΜΟΣ ΒΑΣΕΙ Δ.Λ.Π. (ΕΝΑΡΞΗΣ)
Κοντινότεροι Κοινοί Πρόγονοι α βγ θ δεζ η π ν ι κλμ ρσ τ κκπ(λ,ι)=α, κκπ(τ,σ)=ν, κκπ(λ,π)=η κκπ(π,σ)=γ, κκπ(ξ,ο)=κ ξο κκπ(ι,ξ)=β, κκπ(τ,θ)=θ, κκπ(ο,μ)=α.
Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Δεντρικά Ευρετήρια.
Αποκεντρωμένη Διοίκηση Μακεδονίας Θράκης ∆ιαχείριση έργων επίβλεψης µε σύγχρονα µέσα και επικοινωνία C2G, B2G, G2G Γενική Δ/νση Εσωτερικής Λειτουργίας.
Ευρετήρια. 2 Πρωτεύον ευρετήριο (primary index): ορισμένο στο κλειδί διάταξης του αρχείου Δευτερεύον ευρετήριο (secondary index): ορισμένο σε πεδία διαφορετικά.
Βάσεις Δεδομένων II Διαχείριση Δοσοληψιών Πάνος Βασιλειάδης Σεπτέμβρης 2002
Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Εισαγωγή στην Επεξεργασία Ερωτήσεων.
Ευρετήρια.
Δομές Αναζήτησης TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Χειριζόμαστε ένα σύνολο στοιχείων όπου το κάθε.
Ευρετήρια.
Βάσεις Δεδομένων Ευαγγελία Πιτουρά1 Ευρετήρια.
1 Α. Βαφειάδης Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Τ.Ε.Ι Θεσσαλονίκης Μάθημα Προηγμένες Αρχιτεκτονικές Υπολογιστών Κεφαλαίο Τρίτο Συστήματα.
Δομές Δεδομένων 1 Στοίβα. Δομές Δεδομένων 2 Στοίβα (stack)  Δομή τύπου LIFO: Last In - First Out (τελευταία εισαγωγή – πρώτη εξαγωγή)  Περιορισμένος.
Μεταθέσεις & Συνδυασμοί
Dr. Holbert Νικ. Α. Τσολίγκας Χρήστος Μανασής
ΙΒ – Δομές Ευρετηρίων – Φυσικός Σχεδιασμός ΒΔΣελίδα 3.58 Κεφάλαιο 7 ISAM και B-Δέντρα Φυσικός Σχεδιασμός για Βάσεις Δεδομένων.
2-1 Ανάλυση Αλγορίθμων Αλγόριθμος Πεπερασμένο σύνολο εντολών που, όταν εκτελεστούν, επιτυγχάνουν κάποιο επιθυμητό αποτέλεσμα –Δεδομένα εισόδου και εξόδου.
Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Σχεσιακός Λογισμός.
Προχωρημένα Θέματα Τεχνολογίας και Εφαρμογών Βάσεων Δεδομένων Διαχείριση Συναλλαγών Πάνος Βασιλειάδης Μάρτιος 2014
Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Σχεδιασμός Σχεσιακών Σχημάτων.
Βάσεις Δεδομένων Εργαστήριο ΙΙ Τμήμα Πληροφορικής ΑΠΘ
Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Σχεσιακό Μοντέλο.
Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Σχεσιακό Μοντέλο.
Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Ορισμοί Σχεσιακού Μοντέλου και Τροποποιήσεις Σχέσεων.
Δομές Αναζήτησης TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Θέλουμε να υποστηρίξουμε δύο βασικές λειτουργίες:
1 Βάσεις Δεδομένων ΙI Επιμέλεια: ΘΟΔΩΡΗΣ ΜΑΝΑΒΗΣ SQL (3 από 3) T Manavis.
+19 Δεκέμβριος 2014 Δείκτης > +20 Δείκτης 0 έως +20 Δείκτης 0 έως -20 Δείκτης < -20 Συνολικά της ΕΕ: +5 Δείκτης > +20 Δείκτης 0 έως +20 Δείκτης 0 έως -20.
Λεξικό, Union – Find Διδάσκοντες: Σ. Ζάχος, Δ. Φωτάκης Επιμέλεια διαφανειών: Δ. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο.
Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Εισαγωγή στην Επεξεργασία Ερωτήσεων.
Βάσεις Δεδομένων Ευαγγελία Πιτουρά1 Οργάνωση Αρχείων.
Βάσεις Δεδομένων Ευαγγελία Πιτουρά1 Σχεσιακή Άλγεβρα.
Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Επεξεργασία Ερωτήσεων.
Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Οργάνωση Αρχείων.
Βάσεις Δεδομένων Ευαγγελία Πιτουρά1 Επεξεργασία Ερωτήσεων.
Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Εισαγωγή Σχεδιασμός μιας ΒΔ ανάλυση ποιας πληροφορίας και της σχέσης ανάμεσα στα στοιχεία της περιγραφή.
Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Σχεσιακό Μοντέλο.
Βάσεις Δεδομένων Ευαγγελία Πιτουρά1 Επεξεργασία Ερωτήσεων.
Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Ευρετήρια.
Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Ευρετήρια.
Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Ευρετήρια.
Βάσεις Δεδομένων Ευαγγελία Πιτουρά1 Οργάνωση Αρχείων.
Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Ευρετήρια.
Βάσεις Δεδομένων Ευαγγελία Πιτουρά1 Επεξεργασία Ερωτήσεων.
Ευρετήρια Βάσεις Δεδομένων Ευαγγελία Πιτουρά.
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
Δυναμικός Κατακερματισμός
Δεντρικά Ευρετήρια Βάσεις Δεδομένων Ευαγγελία Πιτουρά.
Ευρετήρια Βάσεις Δεδομένων Ευαγγελία Πιτουρά.
Δεντρικά Ευρετήρια Βάσεις Δεδομένων Ευαγγελία Πιτουρά.
Εισαγωγή στην Επεξεργασία Ερωτήσεων
Αποθήκευση Δεδομένων Βάσεις Δεδομένων Ευαγγελία Πιτουρά.
Ερωτήματα Επιλογής σε ACCESS
Εισαγωγή στην Επεξεργασία Ερωτήσεων
Δυναμικός Κατακερματισμός
Μεταγράφημα παρουσίασης:

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

Βάσεις Δεδομένων Ευαγγελία Πιτουρά 2 Εισαγωγή ΒΑΣΗ ΔΕΔΟΜΕΝΩΝ Αρχεία δεδομένων Αρχεία ευρετηρίου Κατάλογος συστήματος ΣΔΒΔ Σύνολο από προγράμματα για τη διαχείριση της ΒΔ Σύστημα Βάσεων Δεδομένων (ΣΒΔ)

Βάσεις Δεδομένων Ευαγγελία Πιτουρά 3 Επεξεργασία Ερωτήσεων Αποτέλεσμα Ερώτηση SQL Ερώτηση ΣΒΔ Θα δούμε την «πορεία» μιας SQL ερώτησης (πως εκτελείται)

Βάσεις Δεδομένων Ευαγγελία Πιτουρά 4 Επεξεργασία Ερωτήσεων Βελτιστοποίηση Ερώτηση Συντακτική Ανάλυση & Μετάφραση Έκφραση της Σχεσιακής Άλγεβρας Στατιστικά Στοιχεία Σχέδιο Εκτέλεσης Μηχανή Υπολογισμού Δεδομένα Αποτέλεσμα SQL Ερώτηση

Βάσεις Δεδομένων Ευαγγελία Πιτουρά 5 Επεξεργασία Ερωτήσεων 1.Συντακτική Ανάλυση & Μετάφραση 2.Βελτιστοποίηση 3.Υπολογισμός Τα βασικά βήματα στην επεξεργασία μιας ερώτησης είναι

Βάσεις Δεδομένων Ευαγγελία Πιτουρά 6 Συντακτική Ανάλυση & Μετάφραση 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 x R 2 x … x R m ))

Βάσεις Δεδομένων Ευαγγελία Πιτουρά 7 Βελτιστοποίηση 2. Βελτιστοποίηση Μια SQL ερώτηση μπορεί να μεταφραστεί σε διαφορετικές (ισοδύναμες) εκφράσεις της σχεσιακής άλγεβρας select balance from account where balance < σ balance < 2500 (π balance (account)) π balance (σ balance < 2500 (account)) Με ποιο κριτήριο γίνεται η επιλογή της έκφρασης;  Η βελτιστοποίηση είναι το πιο «δύσκολο» βήμα

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

Βάσεις Δεδομένων Ευαγγελία Πιτουρά 9 Βελτιστοποίηση βασικές (primitive) πράξεις: πράξη + αλγόριθμος Σχέδιο εκτέλεσης (execution plan): μια ακολουθία από βασικές πράξεις π balance σ balance < 2500, χρησιμοποίησε το ευρετήριο 1 account

Βάσεις Δεδομένων Ευαγγελία Πιτουρά 10 select A 1, A 2, …, A n from R 1, R 2, …, R m where P π A1, A2, …, An (σ P (R 1 x R 2 x … x R m )) Μετάφραση R1 R2R3…RmR1 R2R3…Rm x x x σPσP π Α1, Α2,... An Πλάνο εκτέλεσης (ποιες πράξεις και με ποιον αλγόριθμο) Φύλλα: σχέσεις Εσωτερικοί κόμβοι: βασικές πράξεις της σχεσιακής άλγεβρας Βελτιστοποίηση Βελτιστοποίηση του πλάνου

Βάσεις Δεδομένων Ευαγγελία Πιτουρά 11 Βελτιστοποίηση  Τα διαφορετικά σχέδια εκτέλεσης έχουν και διαφορικό κόστος  Βελτιστοποίηση: η διαδικασία επιλογής του σχεδίου εκτέλεσης που έχει το μικρότερο κόστος  Εκτίμηση του κόστους (συνήθως χρήση στατιστικών στοιχείων)

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

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

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

Βάσεις Δεδομένων Ευαγγελία Πιτουρά 15 Εκτέλεση  Υπάρχουν υλοποιημένοι μια σειρά από αλγόριθμοι για κάθε βασική πράξη (π.χ., που χρησιμοποιούν ή όχι ευρετήρια κλπ)  Γενικά, το ΣΔΒΔ κάνει μια εκτίμηση του κόστους και επιλέγει τον αλγόριθμο για κάθε πράξη με τον μικρότερο (με βάση την εκτίμηση) κόστος  Η εκτίμηση του κόστους γίνεται με βάση στατιστικά στοιχεία που αποθηκεύονται στη βάση δεδομένων για αυτό το σκοπό

Βάσεις Δεδομένων Ευαγγελία Πιτουρά 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  Ενημέρωση στατιστικών στοιχείων;

Βάσεις Δεδομένων Ευαγγελία Πιτουρά 17 Αλγόριθμοι Εκτέλεσης Βασικών Πράξεων Άλλα στατιστικά στοιχεία;  V(A, R): πλήθος των διαφορετικών τιμών που παίρνει το γνώρισμα Α |π Α (R)| -- αν το Α κλειδί;  SC(A, R): μέσος αριθμός πλειάδων που ικανοποιεί μια συνθήκη (δεδομένου ότι υπάρχει μια τουλάχιστον που την ικανοποιεί) 1 αν κλειδί, αν ομοιόμορφη;

Βάσεις Δεδομένων Ευαγγελία Πιτουρά 18 Αλγόριθμοι Εκτέλεσης Βασικών Πράξεων Στατιστικά στοιχεία επίσης για το αρχείο ευρετηρίου (αν υπάρχει)  f i : παράγοντας διακλάδωσης,  πολυεπίπεδο f 0, Β + δέντρο ~ τάξη  H i : αριθμός επιπέδων  LΒ i : αριθμός block φύλλων Με βάση τα στατιστικά επιλέγεται ο αλγόριθμος με το μικρότερο κόστος I/O Κόστος (Αριθμό blocks που μεταφέρονται)

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

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

Βάσεις Δεδομένων Ευαγγελία Πιτουρά 21 Επιλογή Πιθανοί αλγόριθμοι εκτέλεσης για την επιλογή: Ε1: Σειριακή αναζήτηση Ε2: Δυαδική αναζήτηση (αν το αρχείο είναι ταξινομημένο) Ε3: Χρήση πρωτεύοντος ευρετηρίου/κατακερματισμού (αν υπάρχει) Ε4: Χρήση δευτερεύοντος ευρετηρίου/κατακερματισμού (αν υπάρχει) Αν υπάρχει κάποιο ευρετήριο, λέμε ότι έχουμε μονοπάτι προσπέλασης (access path)

Βάσεις Δεδομένων Ευαγγελία Πιτουρά 22 Επιλογή: Συνθήκη Ισότητας Επιλογή - συνθήκη ισότητας Ε1 Σειριακή αναζήτηση σ Α = α (R) b R /2 (μέσος όρος) αν το Α υποψήφιο κλειδί (οπότε το αποτέλεσμα έχει μόνο μία πλειάδα, σταματάμε την αναζήτηση μόλις τη βρούμε) bRbR Μπορεί να χρησιμοποιηθεί σε οποιοδήποτε αρχείο b R : αριθμός blocks της σχέσης R Διάβασμα (scan) όλου του αρχείου

Βάσεις Δεδομένων Ευαγγελία Πιτουρά 23 Επιλογή: Συνθήκη Ισότητας Ε2 Δυαδική αναζήτηση Μπορεί να χρησιμοποιηθεί μόνο αν το αρχείο είναι διατεταγμένο με βάση το Α (δηλαδή, το γνώρισμα της επιλογής)  log ( b R )  Εύρεση της πρώτης  SC(A, r)/f R  - 1 Εύρεση των υπόλοιπων + Αν το Α υποψήφιο κλειδί; b R : αριθμός blocks της σχέσης R SC(A, R): μέσος αριθμός πλειάδων που ικανοποιεί μια συνθήκη («ταιριάσματα») f R : παράγοντας ομαδοποίησης

Βάσεις Δεδομένων Ευαγγελία Πιτουρά 24 Επιλογή: Συνθήκη Ισότητας Ε3 Χρήση πρωτεύοντος δεντρικού ευρετηρίου Μπορεί να χρησιμοποιηθεί μόνο αν υπάρχει τέτοιο ευρετήριο στο Α HT i + 1 Εύρεση και μεταφορά της πρώτης HT i +  SC(A, R)/f R  Αν το Α δεν είναι υποψήφιο κλειδί -- ευρετήριο συστάδων b R : αριθμός blocks της σχέσης R SC(A, R): μέσος αριθμός πλειάδων που ικανοποιεί μια συνθήκη f R : παράγοντας ομαδοποίησης HT i : αριθμός επιπέδων (ύψος) ΣΗΜΕΙΩΣΗ: Πρωτεύον ευρετήριο στο Α, σημαίνει ότι οι εγγραφές του αρχείου δεδομένων είναι ταξινομημένες (διατεταγμένες) ως προς Α άρα οι υπόλοιπες εγγραφές με την ίδια τιμή (αν υπάρχουν) βρίσκονται σε γειτονικά blocks του αρχείου δεδομένων Εύρεση και των υπόλοιπων Πρωτεύον ευρετήριο σημαίνει ταξινομημένο αρχείο

Βάσεις Δεδομένων Ευαγγελία Πιτουρά 25 Επιλογή: Συνθήκη Ισότητας Ε4 Χρήση δευτερεύοντος δεντρικού ευρετηρίου Μπορεί να χρησιμοποιηθεί μόνο αν υπάρχει τέτοιο ευρετήριο στο Α HT i + 1 HT i + ενδιάμεσο επίπεδο +SC(A, R) Αν το Α δεν είναι υποψήφιο κλειδί + κόστος για την εύρεση των υπολοίπων Αν το Α είναι υποψήφιο κλειδί Στη χειρότερη περίπτωση κάθε εγγραφή που ικανοπoιεί τη συνθήκη σε διαφορετικό block b R : αριθμός blocks της σχέσης R SC(A, R): μέσος αριθμός πλειάδων που ικανοποιεί μια συνθήκη f R : παράγοντας ομαδοποίησης HT i : αριθμός επιπέδων Εύρεση και μεταφορά της πρώτης Εύρεση και των υπόλοιπων

Βάσεις Δεδομένων Ευαγγελία Πιτουρά 26 Επιλογή: Συνθήκη με Σύγκριση Επιλογή - συνθήκη με σύγκριση σ Α  u (R) ή σ Α  u (R)

Βάσεις Δεδομένων Ευαγγελία Πιτουρά 27 Επιλογή: Συνθήκη με Σύγκριση Επιλογή - συνθήκη με σύγκριση σ Α  u (R) Έστω αύξουσα διάταξη Από το 1 ο block του αρχείου έως την πρώτη εγγραφή με A > u Κόστος?

Βάσεις Δεδομένων Ευαγγελία Πιτουρά 28 Επιλογή: Συνθήκη με Σύγκριση Επιλογή - συνθήκη με σύγκριση σ Α  u (R) Έστω αρχείου σωρού (δεν υπάρχει διάταξη) και Β+ δέντρο Εύρεση στο Β+ δέντρο της τιμής u Χρήση εγγραφών στο φύλλο για τις υπόλοιπες τιμές Κόστος?

Βάσεις Δεδομένων Ευαγγελία Πιτουρά 29 Επιλογή: Συνθήκη Σύζευξης Συζευκτική επιλογή Υπάρχει διαδρομή προσπέλασης για ένα από τα γνωρίσματα που εμφανίζονται σε οποιαδήποτε συνθήκη Χρήση μιας από τις προηγούμενες μεθόδους για την ανάκτηση των εγγραφών που ικανοποιούν αυτήν την συνθήκη και έλεγχος για κάθε επιλεγμένη εγγραφή αν ικανοποιεί και τις υπόλοιπες συνθήκες Επιλογή του γνωρίσματος συνθήκη με τη μικρότερη επιλεκτικότητα (γιατί;) σ P1 AND … AND.. PM (R)

Βάσεις Δεδομένων Ευαγγελία Πιτουρά 30 Επιλογή: Συνθήκη Διάζευξης Επιλογή - συνθήκη διάζευξης σ P1 OR P2 … OR Pn (R) Αν έστω και μία από τις συνθήκες δεν έχει διαδρομή προσπέλασης -> σάρωση όλου του αρχείου

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

Βάσεις Δεδομένων Ευαγγελία Πιτουρά 32 Συνένωση Σ1 Εμφωλευμένος (εσωτερικός - εξωτερικός) βρόγχος Σ2 Χρήση μιας δομής προσπέλασης Σ3 Ταξινόμηση-Συγχώνευση R R.A op S.B S Έχει σημασία πόσο χώρο μνήμης κάθε χρονική στιγμή (buffers) μπορούμε να χρησιμοποιήσουμε για τις σχέσεις – δηλαδή, πόσα blocks στην μνήμη Αρχικά, ας υποθέσουμε ότι έχουμε μόνο 2 blocks

Βάσεις Δεδομένων Ευαγγελία Πιτουρά 33 Συνένωση (εμφωλευμένος βρόγχος) Σ1 Εμφωλευμένος (εσωτερικός-εξωτερικός) βρόγχος Για κάθε εγγραφή t της R Για κάθε εγγραφή s της S Αν t[A] op s[B] πρόσθεσε το t s στο αποτέλεσμα b r + n R * b S Αγνοώντας την εγγραφή των blocks του αποτελέσματος

Βάσεις Δεδομένων Ευαγγελία Πιτουρά 34 Συνένωση (εμφωλευμένος βρόγχος) Για κάθε block B r της R Για κάθε block B s της S Για κάθε εγγραφή t του B r Για κάθε εγγραφή s του B s Αν t[A] op s[B] πρόσθεσε το t s στο αποτέλεσμα b R + b R * b S Αγνοώντας την εγγραφή των blocks του αποτελέσματος Συμφέρει η τοποθέτηση της μικρότερης σχέσης στον εξωτερικό βρόγχο

Βάσεις Δεδομένων Ευαγγελία Πιτουρά 35 Συνένωση (χρήση ευρετηρίου) Σ2 Χρήση μιας δομής προσπέλασης Η σχέση για την οποία υπάρχει ευρετήριο τοποθετείται στον εσωτερικό βρόγχο. Έστω ότι υπάρχει ευρετήριο για το γνώρισμα Β της σχέσης S b R + n R * C όπου C το κόστος μιας επιλογής στο S (δηλαδή της εύρεσης της εγγραφής (εγγραφών) του S που ικανοποιούν τη συνθήκη) Για κάθε block B r της R Για κάθε εγγραφή t του B r Χρησιμοποίησε το ευρετήριο στο B για να βρεις τις εγγραφές s της S τέτοιες ώστε t[A] op s[B]

Βάσεις Δεδομένων Ευαγγελία Πιτουρά 36 Συνένωση (ταξινόμηση-συγχώνευση) Σ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*) Έστω συνθήκη ισότητας

Βάσεις Δεδομένων Ευαγγελία Πιτουρά 37 Συνένωση (ταξινόμηση-συγχώνευση) 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;

Βάσεις Δεδομένων Ευαγγελία Πιτουρά 38 Συνένωση (ταξινόμηση-συγχώνευση) Αν αγνοήσουμε τη ταξινόμηση για τη συγχώνευση (merge) απλή σάρωση των δύο αρχείων: b R + b S Ταξινόμηση: b R * log(b R ) + b S * log(b S )

Βάσεις Δεδομένων Ευαγγελία Πιτουρά 39 Συνένωση  R ∪ S (ένωση)  R ∩ S (τομή)  R – S (διαφορά) Θα δούμε έναν αλγόριθμο βασισμένο σε merge-sort (ταξινόμηση- συγχώνευση) Πράξεις συνόλου

Βάσεις Δεδομένων Ευαγγελία Πιτουρά 40 Πράξεις Συνόλων Ταξινόμησε τις πλειάδες της R σε ένα γνώρισμα (έστω Α) Ταξινόμησε τις πλειάδες της S στο ίδιο γνώρισμα i : = 1; j := 1; while (i  n R and j  n S ) if (R i [A] > S j [Α]) Τομή τίποτα Ένωση γράψε το S j στο αποτέλεσμα Διαφορά τίποτα j := j + 1

Βάσεις Δεδομένων Ευαγγελία Πιτουρά 41 Πράξεις Συνόλων else if (R i [A] < S j [Α]) Τομή τίποτα Ένωση γράψε το R i στο αποτέλεσμα Διαφορά γράψε το R i στο αποτέλεσμα i := i + 1 else (* R i [A] = S j [Α] *) Τομή γράψε το R i στο αποτέλεσμα i := i + 1; j := j + 1; Ένωση i := i + 1; Διαφορά i := i + 1; j := j + 1;

Βάσεις Δεδομένων Ευαγγελία Πιτουρά 42 Πράξεις Συνόλων Ένωση 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; Αν υπάρχουν ακόμα εγγραφές για κάποιο αρχείο:

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