Επεξεργασία & Βελτιστοποίηση Ερωτηµάτων

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

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

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

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

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

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

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

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

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

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

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

Θέματα Υλοποίησης Σχεσιακών ΣΔΒΔ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Οργάνωση Αρχείων. Ευρετήρια. Ταξινοµηµένα ευρετήρια B + -δένδρα Ευρετήρια κατακερµατισµού. Αρχεία σωρού ιατεταγµένα αρχεία Αρχεία κατακερµατισµού

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Οργάνωση Αρχείων. Διάγραμμα Σχεσιακού σχήματος. Ευρετήρια. Ταξινομημένα ευρετήρια B + δένδρα Ευρετήρια κατακερματισμού

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

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

Θεωρία Κανονικοποίησης

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΤΜΗΜΑ ΜΑΘΗΜΑΤΙΚΩΝ

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

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

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

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

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

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

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

Εισαγωγή στις βασικές έννοιες των Βάσεων Δεδομένων

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

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

Database System Concepts and Architecture (Αρχιτεκτονική, οµές, και Μοντέλα)

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

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

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

Δυναμικός Κατακερματισμός

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

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

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

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

Βάσεις Δεδομένων. Βασίλειος Βεσκούκης Εισαγωγή στη γλώσσα SQL (Structured Query Language) Η γλώσσα SQL

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

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

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

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

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

Query-by-Example (QBE)

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

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

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

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

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ

Επεξεργασία και βελτιστοποίηση ερωτήσεων

Εισαγωγή στα Συστήµατα Βάσεων Δεδοµένων

ΤΑΞΙΝΟΜΗΣΗ ΑΠΟΤΕΛΕΣΜΑΤΩΝ ΕΡΩΤΗΜΑΤΟΣ

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

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

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

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

Αλγόριθµοι και Πολυπλοκότητα

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

Transcript:

Επεξεργασία & Βελτιστοποίηση Ερωτηµάτων Οβελτιστοποιητής ερωτηµάτων (query optimizer) Μετασχηµατισµός εκφράσεων σχεσιακής άλγεβρας Υπολογισµός µεγεθών πράξεων σχεσιακής άλγεβρας επιλογή, σύνδεση, άλλες πράξεις (προβολή κλπ.) Τρόποι εκτέλεσης (και κόστος) πράξεων σχεσιακής άλγεβρας Αποτίµηση σύνθετων εκφράσεων (materialization, pipelining) Βελτιστοποίηση σε εµπορικά Σ Β Βασική πηγή διαφανειών: Silberschatz et al., Database System Concepts, 4/e Εργαστήριο Πληροφοριακών Συστηµάτων, Παν/µιο Πειραιώς (http://isl.cs.unipi.gr/) έκδοση: Οκτώβριος 2007 ΠΑ.ΠΕΙ. Γιάννης Θεοδωρίδης Αρχιτεκτονική ενός Σ Β DBMS DATA MANAGER. Output Generator Dictionary Manager DATABASE Application USER Query I/O Processor LOG Parser Precompiler Authorization Control Transaction Manager Optimizer Recovery Manager Generation of Executable Code Data Dictionary (Schemas) Integrity Checker Update Processor Query Processor 2 ΠΑ.ΠΕΙ. Γιάννης Θεοδωρίδης 6.1

ιάγραµµα Σχεσιακού σχήµατος Βάση δεδοµένων τράπεζας (πελάτες υποκαταστήµατα καταθετικοί λογαριασµοί δάνεια) 3 ΠΑ.ΠΕΙ. Γιάννης Θεοδωρίδης Οβελτιστοποιητής ερωτηµάτων (query optimizer) Μετασχηµατισµός εκφράσεων σχεσιακής άλγεβρας Υπολογισµός µεγεθών πράξεων σχεσιακής άλγεβρας επιλογή, σύνδεση, άλλες πράξεις (προβολή κλπ.) Τρόποι εκτέλεσης (και κόστος) πράξεων σχεσιακής άλγεβρας Αποτίµηση σύνθετων εκφράσεων (materialization, pipelining) Βελτιστοποίηση σε εµπορικά Σ Β ΠΑ.ΠΕΙ. Γιάννης Θεοδωρίδης 6.2

Επεξεργασία ερωτηµάτων (1) Όταν ο client υποβάλει ένα ερώτηµα στοserver (συνήθως σε δηλωτική γλώσσα, π.χ. SQL), ο server εκτελεί τα εξής βήµατα: 1. Συντακτική ανάλυση (parsing) και µετάφραση (translation) Μετατροπή σε έκφραση σχεσιακής άλγεβρας 2. Βελτιστοποίηση (optimization) Σύνθεση εναλλακτικών πλάνων εκτέλεσης (ισοδύναµες εκφράσεις σχεσιακής άλγεβρας χρήση ή µη ευρετηρίων για τις επιλογές τρόποι υλοποίησης συνδέσεων) 3. Εκτέλεση πλάνου (query plan execution) και επιστροφή αποτελέσµατος 5 ΠΑ.ΠΕΙ. Γιάννης Θεοδωρίδης Επεξεργασία ερωτηµάτων (2) ή πιο απλά... 6 ΠΑ.ΠΕΙ. Γιάννης Θεοδωρίδης 6.3

Επεξεργασία ερωτηµάτων (3) Συντακτική ανάλυση και Μετάφραση Το ερώτηµα SQL SELECT customer-name FROM account JOIN depositor WHERE balance < 2500 ελέγχεται για συντακτικά / σηµασιολογικά σφάλµατα και στη συνέχεια µεταφράζεται στην ισοδύναµη έκφραση σχεσιακής άλγεβρας: customer-name (σ balance<2500 (account depositor)) Βελτιστοποίηση... customer-name (σ balance<2500 (account) depositor) Εκτέλεση πλάνου και επιστροφή αποτελέσµατος Η µηχανή υπολογισµού δέχεται ως είσοδο ένα σχέδιο εκτέλεσης (query execution plan - QEP), το εκτελεί και επιστρέφει τις απαντήσεις στον client. depositor 7 ΠΑ.ΠΕΙ. Γιάννης Θεοδωρίδης Βελτιστοποίηση ερωτηµάτων Μια έκφραση της σχεσιακής άλγεβρας ενδέχεται να έχει πολλές ισοδύναµες εκφράσεις Π.χ. ηέκφρασησ balance<2500 ( balance (account)) ισοδυναµεί µε τηνέκφραση balance (σ balance<2500 (account)) Κάθε πράξη της σχεσιακής άλγεβρας µπορεί να υλοποιηθεί µε χρήση κάποιου από πολλούς διαφορετικούς αλγορίθµους Άρα, δεν αρκεί µόνο ο προσδιορισµός της πράξης, αλλά χρειάζεται να προσδιοριστεί και ο αλγόριθµος που θα χρησιµοποιηθεί για την υλοποίησή της. Οκαθορισµός µιας λεπτοµερούς στρατηγικής για τον υπολογισµό µιας πράξης ονοµάζεται σχέδιο εκτέλεσης (execution plan). 8 ΠΑ.ΠΕΙ. Γιάννης Θεοδωρίδης 6.4

Αφαιρετική δοµή βελτιστοποιητή ηλωτική Βελτιστοποίηση Rewriter ιαδικαστική Βελτιστοποίηση Αλγεβρικός χώρος Ευρετήρια Planner Μοντέλο κόστους Αποτίµηση µεγέθους αποτελέσµατος Κατασκευή πιθανών πλάνων Αποτίµηση παραγόµενων πλάνων 9 ΠΑ.ΠΕΙ. Γιάννης Θεοδωρίδης 1 ο στάδιο - Rewriter Υπάρχει ένα επίπεδο «δηλωτικής» βελτιστοποίησης, ή επανεγγραφής, όπου παράγουµε λογικάισοδύναµους τρόπους να εκφράσουµε ένα ερώτηµα µέσω του rewriter Αυτό συµπεριλαµβάνει, συνήθως: Μετατροπή εκφράσεωνσε«βολική» µορφή (χρήση conjunctive normal forms CNF) Απλοποίηση εµφωλευµένων ερωτηµάτων Σηµασιολογικά έξυπνες µετατροπές Παραδείγµατα:... WHERE NOT(Attr 1 = 10 OR Attr 2 > 3) γίνεται... WHERE Attr 1 <> 10 AND Attr 2 <= 3... WHERE Attr = YEAR(`1994-09-08') γίνεται... WHERE Attr = 1994 δοθέντος: R 1.A 1 =R 2.A 2 AND R 2.A 2 =R 3.A 3 AND R 1.A 1 >5 προστίθενται... R 1.A 1 =R 3.A 3 AND R 2.A 2 >5 AND R 3.A 3 >5 10 ΠΑ.ΠΕΙ. Γιάννης Θεοδωρίδης 6.5

2 ο στάδιο Planner (1) Υπάρχει ένα επίπεδο «διαδικαστικής» βελτιστοποίησης, όπου παράγουµε (όλα;) τα διαφορετικά πλάνα εκτέλεσης µέχρι να διαλέξουµε τοπιο αποδοτικό. Η εργασία αυτή ανατίθεται στον planner. Ο planner οφείλει: Να κατασκευάσει ένα σύνολο πλάνων και Να αποτιµήσει κάθε πλάνο που παράγει, ώστε να βρει το πιο αποδοτικό Προσοχή: ηαποτίµηση είναι πάντα προσέγγιση / πρόβλεψη και όχι ακριβής υπολογισµός... 11 ΠΑ.ΠΕΙ. Γιάννης Θεοδωρίδης 2 ο στάδιο Planner (2) Κατασκευή πλάνων, µε βάση Ένα αλγεβρικό χώρο για τη σειρά εκτέλεσης των λειτουργιών (π.χ., να αποφασίσει µε ποια σειρά θα κάνει το R S T) Ένα σύνολο από µεθόδους προσπέλασης στα δεδοµένα (π.χ., fullindex scan, full table scan, ) Αποτίµηση κάθε πλάνου, µε βάση Ένα µοντέλο κόστους που προβλέπει το κόστος εκτέλεσης κάθε πλάνου (σε χρόνο, disk I/O,...) Ένα µοντέλο πρόβλεψης του µεγέθους, κυρίως των ενδιάµεσων αποτελεσµάτων Το κόστος υπολογίζεται µε χρήση στατιστικών πληροφοριών που προέρχονται από τον κατάλογο της βάσης πλήθος πλειάδων κάθε σχέσης, µέγεθος πλειάδων, κλπ. 12 ΠΑ.ΠΕΙ. Γιάννης Θεοδωρίδης 6.6

Οβελτιστοποιητής ερωτηµάτων (query optimizer) Μετασχηµατισµός εκφράσεων σχεσιακής άλγεβρας Υπολογισµός µεγεθών πράξεων σχεσιακής άλγεβρας επιλογή, σύνδεση, άλλες πράξεις (προβολή κλπ.) Τρόποι εκτέλεσης (και κόστος) πράξεων σχεσιακής άλγεβρας Αποτίµηση σύνθετων εκφράσεων (materialization, pipelining) Βελτιστοποίηση σε εµπορικά Σ Β ΠΑ.ΠΕΙ. Γιάννης Θεοδωρίδης Μετασχηµατισµός εκφράσεων ΣΑ ύο εκφράσεις σχεσιακής άλγεβρας καλούνται ισοδύναµες αν σε οποιοδήποτε έγκυρο στιγµιότυπο τηςβάσηςοιδύοεκφράσεις παράγουν το ίδιο σύνολο πλειάδων. Σηµείωση: η διάταξη των πλειάδων δεν παίζει ρόλο. Ένας κανόνας ισοδυναµίας καθορίζει αν µια έκφραση της πρώτης µορφής είναι ισοδύναµη µε µια έκφραση της δεύτερης µορφής Εκφράσεις της πρώτης µορφής µπορούν να αντικατασταθούν µε εκφράσεις της δεύτερης µορφής, και αντίστροφα. 14 ΠΑ.ΠΕΙ. Γιάννης Θεοδωρίδης 6.7

Κανόνες Ισοδυναµίας (1) 1. Οι συζευκτικές επιλογές µπορούν να αναλυθούν σε µια ακολουθία ξεχωριστών επιλογών. σ θ ( ) ( ( )) 1 θ R = σ 2 θ σ 1 θ R 2 2. Οι επιλογές είναι αντιµεταθετικές. σ θ ( σ ( )) ( ( )) 1 θ R = σ 2 θ σ R 2 θ1 3. Σε µια ακολουθία από προβολές µόνο η τελευταία προβολή χρειάζεται, οι υπόλοιπες µπορούν να παραληφθούν. Πt ( Π ( ( ( )) )) ( ) 1 t K Π 2 tn R K = Πt R 1 4. Οι επιλογές µπορούν να συνδυαστούν µε Καρτεσιανά Γινόµενα και Θ-συνδέσεις. σ θ (R X S) = R θ S σ θ1 (R θ2 S) = R θ1 θ2 S 15 ΠΑ.ΠΕΙ. Γιάννης Θεοδωρίδης Κανόνες Ισοδυναµίας (2) 5. Οι λειτουργίες Θ-σύνδεσης (και φυσικής σύνδεσης) είναι αντιµεταθετικές. R θ S = S θ R 6. (a) Οι λειτουργίες φυσικής σύνδεσης είναι µεταβατικές: (R S) T = R (S T) (b) Οι λειτουργίες Θ-σύνδεσης είναι µεταβατικές µε την ακόλουθη έννοια: (R θ1 S) θ2 θ3 T = R θ1 θ3 (S θ2 T) όπου η συνθήκη θ 2 περιλαµβάνει µόνο χαρακτηριστικά των σχέσεων S και T. 16 ΠΑ.ΠΕΙ. Γιάννης Θεοδωρίδης 6.8

Κανόνες Ισοδυναµίας (3) 7. Ηεπιλογή αντιµετατίθεται µεθ-σύνδεση κάτω από τις ακόλουθες δύο συνθήκες: (α) όταν όλα τα χαρακτηριστικά της συνθήκης θ 1 προέρχονται µόνο από τα χαρακτηριστικά µιας εκ των σχέσεων που συµµετέχουν στη σύνδεση (έστω της R). σ θ1 (R θ S) = (σ θ1 (R)) θ S (β) όταν όλα τα χαρακτηριστικά της συνθήκης θ 1 προέρχονται µόνο από ταχαρακτηριστικάτηςr ενώταχαρακτηριστικάτηςθ 2 προέρχονται µόνο απόταχαρακτηριστικάτηςs. σ θ1 θ2 (R θ S) = (σ θ1 (R)) θ (σ θ2 (S)) 17 ΠΑ.ΠΕΙ. Γιάννης Θεοδωρίδης Κανόνες Ισοδυναµίας (4) 8. Η προβολή επιµερίζεται µετηθ-σύνδεση ως εξής: (α) αν η προβολή Π περιλαµβάνει µόνο χαρακτηριστικά από το σύνολο L 1 L 2 : L ( ) ( ( )) ( ( )) 1 L R1 R2 = 2 L R1 R θ 1 θ L2 2 (β) Ας θεωρήσουµε µια σύνδεση R 1 θ R 2. Έστω L 1 και L 2 τα σύνολα των χαρακτηριστικών των σχέσεων R 1 και R 2, αντίστοιχα. Έστω L 3 το σύνολο των χαρακτηριστικών της σχέσης R 1 που συµµετέχουν στη συνθήκη θ, αλλά δεν ανήκουν στο σύνολο L 1 L 2 Έστω L 4 το σύνολο των χαρακτηριστικών της σχέσης R 2 που συµµετέχουν στη συνθήκη θ, αλλά δεν ανήκουν στο σύνολο L 1 L 2. L L ( R θ R2 ) = L L (( L L ( R1 )) θ ( L L ( R2 ))) 1 2 1 1 2 1 3 2 4 18 ΠΑ.ΠΕΙ. Γιάννης Θεοδωρίδης 6.9

Κανόνες Ισοδυναµίας (5) 9. H ένωση και η τοµή είναι αντιµεταθετικές R S = S R R S = S R Όµως: η διαφορά δεν είναι αντιµεταθετική 10. Ηένωσηκαιητοµή είναιµεταβατικές. (R S) T = R (S T) (R S) T = R (S T) 11. Ηεπιλογή επιµερίζεται µε τις λειτουργίες, και. σ θ (R S) = σ θ (R) σ θ (S) οµοίως στην περίπτωση των τελεστών και Επίσης: σ θ (R S) = σ θ (R) S, αν η συνθήκη θ αφορά µόνο σε χαρακτηριστικά της R οµοίως στην περίπτωση των τελεστών και 19 ΠΑ.ΠΕΙ. Γιάννης Θεοδωρίδης Παράδειγµα µετασχηµατισµού Ερώτηση: Βρες τα ονόµατα όλων των πελατών που έχουν κάποιο λογαριασµό σε κάποιο υποκατάστηµα που βρίσκεται στο Brooklyn. Π customer-name (σ branch-city = Brooklyn (branch (account depositor))) Μετατροπή µέσω του κανόνα 7 α : Π customer-name ((σ branch-city = Brooklyn (branch)) (account depositor)) Η όσο το δυνατόν ταχύτερη εκτέλεση της επιλογής µειώνει το µέγεθος τηςσχέσηςτηςσύνδεσης 20 ΠΑ.ΠΕΙ. Γιάννης Θεοδωρίδης 6.10

Παράδειγµα πολλαπλών µετ/µών µών Ερώτηση: Βρες τα ονόµατα των πελατών που έχουν λογαριασµό σε κάποιο υποκατάστηµα τουbrooklyn και το υπόλοιπο του λογαριασµού > 1000. Π customer-name( (σ branch-city = Brooklyn balance > 1000 (branch (account depositor))) Μετατροπή µέσω του κανόνα 6 α : Π customer-name ((σ branch-city = Brooklyn balance > 1000 (branch (account)) depositor) Μια δεύτερη µορφή προσφέρει τη δυνατότητα εκτέλεσης της επιλογής νωρίτερα, ως εξής Π customer-name ((σ branch-city = Brooklyn (branch) σ balance > 1000 (account)) depositor) 21 ΠΑ.ΠΕΙ. Γιάννης Θεοδωρίδης Οβελτιστοποιητής ερωτηµάτων (query optimizer) Μετασχηµατισµός εκφράσεων σχεσιακής άλγεβρας Υπολογισµός µεγεθών πράξεων σχεσιακής άλγεβρας επιλογή, σύνδεση, άλλες πράξεις (προβολή κλπ.) Τρόποι εκτέλεσης (και κόστος) πράξεων σχεσιακής άλγεβρας Αποτίµηση σύνθετων εκφράσεων (materialization, pipelining) Βελτιστοποίηση σε εµπορικά Σ Β ΠΑ.ΠΕΙ. Γιάννης Θεοδωρίδης 6.11

Μέτρηση κόστους ερωτηµάτων (1) Το κόστος ενός ερωτήµατος ισούται µε τοσυνολικόχρόνοπου απαιτείται για την απάντησή του Πολλοί παράγοντες επηρεάζουν το κόστος: οι προσπελάσεις στο δίσκο, ηισχύςτηςcpu, ακόµα και ο φόρτος του δικτύου Οι προσπελάσεις στο δίσκο που αποτελούν το βασικό κόστος υπολογισµού ενός ερωτήµατος είναι εύκολο να υπολογιστούν. Η µέτρηση γίνεται λαµβάνοντας υπόψη: Το πλήθος των αναζητήσεων Το πλήθος των αναγνώσεων σελίδων του δίσκου Το πλήθος των εγγραφών σελίδων στο δίσκο Το κόστος εγγραφής στο δίσκο είναι ελαφρώς µεγαλύτερο από τοκόστος ανάγνωσης από τοδίσκο 23 ΠΑ.ΠΕΙ. Γιάννης Θεοδωρίδης Μέτρηση κόστους ερωτηµάτων (2) Για απλότητα χρησιµοποιούµε ως µέτρο του κόστους ενός ερωτήµατος το πλήθος των σελίδων (blocks) που µεταφέρονται από το δίσκο (κόστος ανάγνωσης δεδοµένων) Για λόγους απλότητας δεν λαµβάνουµε υπόψητοκόστοςτηςcpu Ούτε λαµβάνουµε υπόψη το κόστος εγγραφής των δεδοµένων στο δίσκο Το κόστος εξαρτάται από τοµέγεθος του buffer της κύριας µνήµης (της τάξης κάποιων Mb) Ηύπαρξη επιπλέον µνήµης µειώνει την ανάγκη για προσπελάσεις στο δίσκο Το ποσοστό της κύριας µνήµης που διατίθεται στον buffer εξαρτάται από τις άλλες διαδικασίες του λειτουργικού συστήµατος που τρέχουν ταυτόχρονα και είναι δύσκολο να υπολογιστεί εκ των προτέρων 24 ΠΑ.ΠΕΙ. Γιάννης Θεοδωρίδης 6.12

Παραδοχές (από από Οργάνωση Αρχείων & Ευρετήρια) Η µονάδα µεταφοράς µεταξύδίσκουκαιµνήµης είναι ένα block δίσκου (µε µέγεθος b bytes) Κάθε αρχείο έχει εγγραφές ενός τύπου µόνο Το µέγεθος των εγγραφών είναι σταθερό (µε µέγεθος r bytes) Οι εγγραφές δεν επιτρέπεται να διασχίζουν τα όρια ενός block Παράγοντας σελιδοποίησης (blocking factor): bfr = (b / r) Αριθµός blocks για την αποθήκευση ενός αρχείου n εγγραφών: B= (n / bfr) 25 ΠΑ.ΠΕΙ. Γιάννης Θεοδωρίδης Εκτίµηση µεγέθους Ιστογράµµατα (1) Για να δουλέψουν οι συναρτήσεις κόστους, πρέπει να µπορούµε να αποτιµήσουµε τοµέγεθος των ενδιάµεσων αποτελεσµάτων Η πιο καλή τεχνική που έχουµε είναιταιστογράµµατα Σ ένα ιστόγραµµα, διαιρούµε τοεύροςτωντιµών ενός πεδίου σε κάδους (buckets) Για κάθε τιµή που παίρνει το πεδίο, µετράµε τον αριθµό εµφανίσεων # εµφανίσεων (πραγµατικές τιµές) # εµφανίσεων (προσεγγίσεις σε διαστήµατα τιµών) 2000 4000 6000 8000 balance 2000 4000 6000 8000 balance 26 ΠΑ.ΠΕΙ. Γιάννης Θεοδωρίδης 6.13

Εκτίµηση µεγέθους Ιστογράµµατα (2) Παραλλαγές: Ιστογράµµατα ίσου πλάτους: κάθε κάδος καλύπτει το ίσο διάστηµα τιµών Ιστογράµµατα ίσου ύψος: κάθε κάδος καλύπτει ίσο αριθµό (ή συχνότητα) εµφανίσεων (Λανθασµένες) Υποθέσεις εργασίας: οι τιµές των πεδίων είναι ισοπίθανα µοιρασµένες τα πεδία είναι ανεξάρτητα µεταξύ τους Ανάγκη περιοδικής ενηµέρωσης των ιστογραµµάτων συχν. εµφανίσεων 22% 33% 28% 17% συχν. εµφανίσεων 25% 2000 2500 4000 3750 5250 6000 8000 8000 balance balance 27 ΠΑ.ΠΕΙ. Γιάννης Θεοδωρίδης Οβελτιστοποιητής ερωτηµάτων (query optimizer) Μετασχηµατισµός εκφράσεων σχεσιακής άλγεβρας Υπολογισµός µεγεθών πράξεων σχεσιακής άλγεβρας επιλογή, σύνδεση, άλλες πράξεις (προβολή κλπ.) Τρόποι εκτέλεσης (και κόστος) πράξεων σχεσιακής άλγεβρας Αποτίµηση σύνθετων εκφράσεων (materialization, pipelining) Βελτιστοποίηση σε εµπορικά Σ Β ΠΑ.ΠΕΙ. Γιάννης Θεοδωρίδης 6.14

Τρόποι εκτέλεσης πράξεων ΣΑ Επιλογή (µε / χωρίς χρήση ευρετηρίου) Σύνδεση Nested-loop join και οι παραλλαγές: Block-nested-loop join, Index-nested-loop join Sort-Merge join Hash join Άλλες πράξεις (προβολή, συνάθροιση) Σύνθετες εκφράσεις 29 ΠΑ.ΠΕΙ. Γιάννης Θεοδωρίδης Η πράξη Επιλογή Χωρίς χρήση ευρετηρίου Γραµµική αναζήτηση (linear search). Σάρωση όλων των σελίδων του αρχείου και για κάθε εγγραφή µιας σελίδας έλεγχος αν ικανοποιεί τη συνθήκη της επιλογής. υαδική αναζήτηση (binary search). Μπορεί να εφαρµοστεί µόνο αν το αρχείο είναι διατεταγµένο µε βάση το χαρακτηριστικό της συνθήκης της επιλογής. Με χρήση ευρετηρίου Σάρωση ευρετηρίου (Index scan) αλγόριθµοι αναζήτησης που χρησιµοποιούν κάποιο ευρετήριο 30 ΠΑ.ΠΕΙ. Γιάννης Θεοδωρίδης 6.15

Επιλογή - Γραµµική αναζήτηση Σάρωση όλων των σελίδων του αρχείου και για κάθε εγγραφή µιας σελίδας έλεγχος αν ικανοποιεί τη συνθήκη της επιλογής. Κόστος (# σελίδων δίσκου που σαρώνονται) = B R Αν η συνθήκη της επιλογής αναφέρεται σε κάποιο χαρακτηριστικό - κλειδί, τότε (µέσο) κόστος = B R /2 η αναζήτηση σταµατά όταν βρεθεί η εγγραφή 31 ΠΑ.ΠΕΙ. Γιάννης Θεοδωρίδης Επιλογή - υαδική αναζήτηση Μπορεί να εφαρµοστεί µόνο σε διατεταγµένα αρχεία. Έστω όλες οι σελίδες µιαςσχέσηςαποθηκεύονται συνεχόµενες. Το κόστος (# σελίδων που σαρώνονται) ισούται µε: log 2 ( B R ) το κόστος εντοπισµού της πρώτης πλειάδας µέσω δυαδικής αναζήτησης στις σελίδες. + το πλήθος των σελίδων που περιέχουν εγγραφές που ικανοποιούν τη συνθήκη της επιλογής. 32 ΠΑ.ΠΕΙ. Γιάννης Θεοδωρίδης 6.16

Επιλογή: Σάρωση ευρετηρίου (1) Η συνθήκη της επιλογής πρέπει να είναι πάνω στο κλειδί διάταξης του ευρετηρίου. C το κόστος εντοπισµού του κλειδιού διάταξης στο ευρετήριο (εντοπισµός µε δυαδική αναζήτηση) Πρωτεύον ευρετήριο σε κλειδί, συνθήκη ισότητας. Ανάκτηση µιας εγγραφής που ικανοποιεί τη συνθήκη ισότητας. Κόστος = C + 1 Πρωτεύον ευρετήριο σε απλό χαρακτηριστικό (όχι κλειδί), συνθήκη ισότητας. Ανάκτηση πολλαπλών εγγραφών που όµως βρίσκονται σε συνεχόµενες σελίδες Κόστος = C + πλήθος σελίδων που περιέχουν τις εγγραφές που ικανοποιούν τη συνθήκη ισότητας 33 ΠΑ.ΠΕΙ. Γιάννης Θεοδωρίδης Επιλογή: Σάρωση ευρετηρίου (2) ευτερεύον ευρετήριο σε απλό χαρακτηριστικό (όχι κλειδί), συνθήκη ισότητας. Ανάκτηση πολλαπλών εγγραφών Κόστος = C + το πλήθος των εγγραφών που ικανοποιούν τη συνθήκη αναζήτησης (µπορεί να είναι πολύ ακριβό!) Κάθε εγγραφή µπορεί να βρίσκεται σε διαφορετική σελίδα Για κάθε εγγραφή που ανακτάται απαιτείται µία πρόσβαση σε σελίδα 34 ΠΑ.ΠΕΙ. Γιάννης Θεοδωρίδης 6.17

Επιλογή: συνθήκη µε σύγκριση (1) Οι συνθήκες είναι της µορφής: σ A V (r) ή σ A V (r) και υλοποιούνται χρησιµοποιώντας: γραµµική ή δυαδική αναζήτηση στο αρχείο, ήσάρωσηευρετηρίου µε τους ακόλουθους τρόπους: Πρωτεύον ευρετήριο, σύγκριση. (το αρχείο είναι διατεταγµένο ως προς το χαρακτηριστικό A) Για την επιλογή σ A V (r) χρήση του ευρετηρίου για την εύρεση της πρώτης εγγραφής µε Α v σάρωση του αρχείου σειριακά ξεκινώντας από τοσηµείο αυτό Για την επιλογή σ A V (r) Σάρωση του αρχείου σειριακά µέχρι να βρεθεί η πρώτη εγγραφή µε Α > v. εν χρειάζεται να χρησιµοποιηθεί ευρετήριο. 35 ΠΑ.ΠΕΙ. Γιάννης Θεοδωρίδης Επιλογή: συνθήκη µε σύγκριση (2) ευτερεύον ευρετήριο, σύγκριση. Για την επιλογή σ A V (r) χρήση του ευρετηρίου για την εύρεση της πρώτης εγγραφής (του ευρετηρίου) µε Α v σάρωση του ευρετηρίου σειριακά ξεκινώντας από τοσηµείο αυτό για να βρεθούν οι δείκτες στις εγγραφές Για την επιλογή σ A V (r) Σάρωση του ευρετηρίου σειριακά (ξεκινώντας από τηναρχή µέχρι να βρεθεί η πρώτη εγγραφή του ευρετηρίου µε Α > v) για να βρεθούν οι δείκτες στις εγγραφές 36 ΠΑ.ΠΕΙ. Γιάννης Θεοδωρίδης 6.18

Υλοποίηση σύνθετων επιλογών (1) Σύζευξη (Conjunction): σ θ1 θ2... θn (r) Συζευκτική επιλογή µε χρήσηαπλού ευρετηρίου. Επιλογή µιαςδιάταξηςτωνθ i και ενός από τουςπροηγούµενους αλγορίθµους που επιφέρει το µικρότερο κόστος για την επιλογή σ θi (r). Για κάθε µία από τις εγγραφές του προηγούµενου βήµατος, έλεγχος εάν ισχύουν οι υπόλοιπες συνθήκες. Συζευκτική επιλογή µε χρήση σύνθετου ευρετηρίου. Χρήση κατάλληλου σύνθετου ευρετηρίου, αν υπάρχει (συνδυασµός δύο ή περισσότερων χαρακτηριστικών). 37 ΠΑ.ΠΕΙ. Γιάννης Θεοδωρίδης Υλοποίηση σύνθετων επιλογών (2) Συζευκτική επιλογή µε τοµή δεικτών. Απαιτείται η ύπαρξη ευρετηρίων µε δείκτες. Για κάθε συνθήκη, χρήση του αντίστοιχου ευρετηρίου. Κατόπιν, εύρεση της τοµής των συνόλων των εγγραφών δεικτών. Στη συνέχεια, ανάκτηση των εγγραφών από τοαρχείο. Αν κάποιες συνθήκες δεν έχουν κατάλληλα ευρετήρια, εκ των υστέρων έλεγχος στη µνήµη. 38 ΠΑ.ΠΕΙ. Γιάννης Θεοδωρίδης 6.19

Η λειτουργία της σύνδεσης Υπάρχουν πολλοί διαφορετικοί αλγόριθµοι για την υλοποίηση της λειτουργίας της σύνδεσης 1. Σύνδεση µε εµφώλευση βρόχων (Nested-loop join). Παραλλαγές: a. Σύνδεση µε εµφώλευση βρόχων κατά block (Block-nestedloop join) b. Σύνδεση µε εµφώλευση βρόχων µέσω ευρετηρίου (Indexnested-loop join) 2. Σύνδεση µε ταξινόµηση και συγχώνευση (Sort-Merge join) 3. Σύνδεση µεκατακερµατισµό (Hash join) 39 ΠΑ.ΠΕΙ. Γιάννης Θεοδωρίδης Nested-Loop Join (1) Ψευδοκώδικας για τον υπολογισµό τηςθ-σύνδεσης r θ s: για κάθε πλειάδα t r της r { για κάθε πλειάδα t s της s { εξέτασε αν ο συνδυασµός (t r,t s ) ικανοποιεί τη συνθήκη Θ αν ναι, πρόσθεσε το t r t s στο αποτέλεσµα } } Η r ονοµάζεται εξωτερική σχέση (outer relation) και η s εσωτερική σχέση (inner relation) της συνένωσης. εν απαιτείται η ύπαρξη ευρετηρίου. Μπορεί να χρησιµοποιηθεί για οποιαδήποτε συνθήκη Θ. Κοστίζει αρκετά, αφού εξετάζει όλα τα ζεύγη πλειάδων µεταξύ των δύο σχέσεων. 40 ΠΑ.ΠΕΙ. Γιάννης Θεοδωρίδης 6.20

Nested-Loop Join (2) Στη χειρότερη περίπτωση, όταν η διαθέσιµη µνήµη αρκεί µόνο για ένα block από κάθεσχέση, το κόστος ισούται µε: N R B S + B R προσβάσεις στο δίσκο Αν η µικρότερη σχέση χωράει εξ ολοκλήρου στη µνήµη, θα πρέπει να χρησιµοποιείται αυτή ως εσωτερική σχέση. Σε τέτοια περίπτωση το κόστος µειώνεται σε: B R + B S προσβάσεις στο δίσκο. Ο block nested-loop αλγόριθµος (βλ. επόµενη διαφάνεια) είναι προτιµότερος από τονnested-loop join αλγόριθµο. 41 ΠΑ.ΠΕΙ. Γιάννης Θεοδωρίδης Block-Nested Nested-Loop Join (1) Παραλλαγή του nested-loop join όπου κάθε block της εσωτερικής σχέσης συνδυάζεται µε όλαταblocks τηςεξωτερικήςσχέσης. Ψευδοκώδικας: Για κάθε block B R της R { Για κάθε block B S της S { Για κάθε πλειάδα t R του B R { Για κάθε πλειάδα t S του B S { εξέτασε αν το ζεύγος (t R, t S ) ικανοποιεί τη συνθήκη Θ αν ναι, πρόσθεσε το t R t S στο αποτέλεσµα } } } } 42 ΠΑ.ΠΕΙ. Γιάννης Θεοδωρίδης 6.21

Block-Nested Nested-Loop Join (2) Κόστος χειρότερης περίπτωσης: B R B S + B R προσβάσεις στο δίσκο. Κάθε block της εσωτερικής σχέσης διαβάζεται από µία φορά για κάθε block της εξωτερικής σχέσης (αντί να διαβάζεται από µια φορά για κάθε πλειάδα της εξωτερικής σχέσης όπως στον nested-loop join αλγόριθµο) Κόστος καλύτερης περίπτωσης: B R + B S προσβάσεις στο δίσκο. 43 ΠΑ.ΠΕΙ. Γιάννης Θεοδωρίδης Index-Nested Nested-Loop Join (1) Αντί να κάνουµε αναζήτηση στο αρχείο µπορούµε να κάνουµε αναζήτηση στο ευρετήριο αν Η σύνδεση είναι ισοσύνδεση (equi-join) ήφυσικήσύνδεση(natural join) Υπάρχει ευρετήριο στο χαρακτηριστικό σύνδεσης της εσωτερικής σχέσης Για κάθε πλειάδα t R τηςεξωτερικήςσχέσηςr, χρησιµοποιούµε το ευρετήριο (που είναι χτισµένο πάνω στην εσωτερική σχέση S) για να βρούµε τιςπλειάδες της S που ικανοποιούν τη συνθήκη της σύνδεσης. 44 ΠΑ.ΠΕΙ. Γιάννης Θεοδωρίδης 6.22

Index-Nested Nested-Loop Join (2) Κόστος σύνδεσης: B R + N R C προσβάσεις στο δίσκο C: το κόστος για την αναζήτηση στο ευρετήριο και την προσκόµιση όλων των πλειάδων της εσωτερικής σχέσης S που ικανοποιούν τη συνθήκη. Το C µπορεί να υπολογιστεί ως το κόστος µιας απλής πράξης επιλογής στη σχέση S, όπου η επιλογή χρησιµοποιεί ως συνθήκη τη συνθήκη της σύνδεσης. Αν υπάρχουν ευρετήρια πάνω στη συνθήκη της σύνδεσης και για τις δύο σχέσεις R, S, ως εξωτερική σχέση χρησιµοποιούµε τη σχέση µε τις λιγότερες πλειάδες. (γιατί;) 45 ΠΑ.ΠΕΙ. Γιάννης Θεοδωρίδης Sort-Merge Join (1) 1. Ταξινοµούµε και τις δύο σχέσεις ως προς το χαρακτηριστικό της σύνδεσης (αν δεν είναι ήδη ταξινοµηµένες ως προς αυτό). 2. Συγχωνεύουµε τιςταξινοµηµένες σχέσεις Το βήµα της συγχώνευσης µοιάζει µε τοβήµα της συγχώνευσης του αλγορίθµου sort-merge. Ηκύριαδιαφοράέγκειταιστον διαφορετικό τρόπο αντιµετώπισης των διπλότυπων τιµών που εµφανίζονται στο χαρακτηριστικό της σύνδεσης πρέπει να ταιριάξει κάθε ζεύγος που έχει την ίδια τιµή στο χαρακτηριστικό της σύνδεσης 46 ΠΑ.ΠΕΙ. Γιάννης Θεοδωρίδης 6.23

Sort-Merge Join (2) Μπορεί να χρησιµοποιηθεί µόνο στην περίπτωση της ισοσύνδεσης ή της φυσικής σύνδεσης. Κάθε σελίδα χρειάζεται να διαβαστεί µία µόνο φορά (αν υποθέσουµε πως όλες οι πλειάδες για µια δοθείσα τιµή των χαρακτηριστικών της σύνδεσης χωράνε στη µνήµη) Έτσι το πλήθος των προσβάσεων στο δίσκο για τον αλγόριθµο merge-join είναι: B R + B S + το κόστος ταξινόµησης των σχέσεων (ο τελευταίος παράγοντας προκύπτει µόνοανοισχέσειςδενείναι ήδη ταξινοµηµένες). 47 ΠΑ.ΠΕΙ. Γιάννης Θεοδωρίδης Hash Join (1) Εφαρµόζεται µόνο στην περίπτωση ισοσύνδεσης ή φυσικής σύνδεσης. Μια συνάρτηση κατακερµατισµού h χρησιµοποιείται για το διαµερισµό των πλειάδων των δύο σχέσεων σε τµήµατα (partitions). 48 ΠΑ.ΠΕΙ. Γιάννης Θεοδωρίδης 6.24

Hash Join (2) Οι r πλειάδες του τµήµατος R i της σχέσης R χρειάζεται να συγκριθούν µόνο µε τιςs πλειάδες του τµήµατος S i της σχέσης S. εν χρειάζεται να γίνει σύγκριση µε τιςπλειάδες κάποιου άλλου τµήµατος της σχέσης S επειδή: Μια πλειάδα της σχέσης R και µια πλειάδα της σχέσης S που ικανοποιούν τη συνθήκη της σύνδεσης θα έχουν την ίδια τιµή γιατα χαρακτηριστικά της σύνδεσης. Αν η τιµή αυτή κατακερµατίζεται σε κάποια τιµή i, η πλειάδα της σχέσης R θα πρέπει να ανήκει στο τµήµα R i και η πλειάδα της σχέσης S θα πρέπει να ανήκει στο τµήµα S i. 49 ΠΑ.ΠΕΙ. Γιάννης Θεοδωρίδης Ο αλγόριθµος Hash Join (1) ΗσχέσηS ονοµάζεται είσοδος κατασκευής των τµηµάτων (build input) ενώ η σχέση R ονοµάζεται είσοδος διερεύνησης της σύνδεσης (probe input). Ησύνδεση µέσω κατακερµατισµού των σχέσεων R και S υλοποιείται ως εξής: 1. ιαµοίρασε τη σχέση S χρησιµοποιώντας τη συνάρτηση κατακερµατισµού h. Κατά τη διαµοίραση, µια σελίδα της µνήµης διατίθεται ως buffer εξόδου για κάθε τµήµα της σχέσης S. 2. Κάνε το ίδιο και για τη σχέση R. 3.... 50 ΠΑ.ΠΕΙ. Γιάννης Θεοδωρίδης 6.25

Ο αλγόριθµος Hash Join (2)... 3. Για κάθε i: (α) Φόρτωσε το S i στη µνήµη και χτίσε ένα ευρετήριο κατακερµατισµού στη µνήµη χρησιµοποιώντας το χαρακτηριστικό της σύνδεσης. Η συνάρτηση κατακερµατισµού για το ευρετήριο κατακερµατισµού στη µνήµη είναι διαφορετική από την συνάρτηση κατακερµατισµού h που αναφέραµε παραπάνω. (β) ιάβασε από το δίσκο τις πλειάδες του τµήµατος R i µία προς µία. Για κάθε πλειάδα t R του τµήµατος R i βρες όλες τις ταιριαστές πλειάδες t S της σχέσης S i χρησιµοποιώντας το ευρετήριο κατακερµατισµού της µνήµης. Η σύνδεση των χαρακτηριστικών τους αποτελεί την έξοδο. 51 ΠΑ.ΠΕΙ. Γιάννης Θεοδωρίδης Το κόστος του αλγορίθµου Hash Join Το κόστος του hash-join είναι: 3(B R + B S ) +2 n h Το πλήθος των τµηµάτων της σχέσης R ισούται µε τοπλήθος των τµηµάτων της σχέσης S; Το ίδιο ισχύει και για τον αριθµό των περασµάτων που απαιτούνται για τη διαµοίραση των σχέσεων R και S. Συνεπώς είναι προτιµότερο να επιλέγεται η µικρότερη σχέση για τη φάση κατασκευής των τµηµάτων (build relation). Το συνολικό κόστος είναι: 2(B R + B S log M 1 (B S ) 1 + B R + B S Αν χωράει στη µνήµη ολόκληρη η build relation, ο αλγόριθµος δεν χρειάζεται να τη διαµοιράσει σε προσωρινά αρχεία. Οπότε το κόστος µειώνεται σε B R + B S. 52 ΠΑ.ΠΕΙ. Γιάννης Θεοδωρίδης 6.26

Άλλες λειτουργίες: Προβολή, Συνάθροιση Η προβολή υλοποιείται εφαρµόζοντας προβολή σε κάθε πλειάδα και απαλείφοντας στη συνέχεια τις διπλότυπες. Η απαλοιφή των διπλότυπων τιµών µπορεί να γίνει είτε µέσω κατακερµατισµού είτε µέσω ταξινόµησης. Στην περίπτωση της ταξινόµησης οι διπλότυπες εγγραφές γειτνιάζουν, και έτσι µπορούν να σβηστούν όλες πλην µίας. Η περίπτωση του κατακερµατισµού είναι παρόµοια οι διπλότυπες εγγραφές θα µπουν στο ίδιο τµήµα. Η συνάθροιση µπορεί να υλοποιηθεί µε τρόπο παρόµοιο µε αυτόν της απαλοιφής των διπλότυπων πλειάδων. 53 ΠΑ.ΠΕΙ. Γιάννης Θεοδωρίδης Οβελτιστοποιητής ερωτηµάτων (query optimizer) Μετασχηµατισµός εκφράσεων σχεσιακής άλγεβρας Υπολογισµός µεγεθών πράξεων σχεσιακής άλγεβρας επιλογή, σύνδεση, άλλες πράξεις (προβολή κλπ.) Τρόποι εκτέλεσης (και κόστος) πράξεων σχεσιακής άλγεβρας Αποτίµηση σύνθετων εκφράσεων (materialization, pipelining) Βελτιστοποίηση σε εµπορικά Σ Β ΠΑ.ΠΕΙ. Γιάννης Θεοδωρίδης 6.27

Αποτίµηση σύνθετων εκφράσεων Μέχρι τώρα είδαµε αλγορίθµους για την αποτίµηση απλών λειτουργιών Για την αποτίµηση ενός ολόκληρου δέντρου εκφράσεων (expression tree) υπάρχουν δύο εναλλακτικές µέθοδοι: Materialization: Παραγωγή των αποτελεσµάτων µιας έκφρασης της οποίας οι είσοδοι είναι είτε απλές σχέσεις είτε έχουν ήδη υπολογιστεί και αποθηκευτεί (materialize) στο δίσκο. Pipelining: Μεταφορά των πλειάδων στις λειτουργίες ανώτερων επιπέδων (parent operations). 55 ΠΑ.ΠΕΙ. Γιάννης Θεοδωρίδης Materialization Υπολογισµός µίας λειτουργίας τη φορά, ξεκινώντας από τοχαµηλότερο επίπεδο. Χρήση των ενδιάµεσων αποτελεσµάτων (που είναι αποθηκευµένα σε προσωρινές σχέσεις) για τον υπολογισµό των λειτουργιών του επόµενου επιπέδου. Π.χ., υπολογισµός και αποθήκευση της λειτουργίας σ ( account balance<2500 ) στη συνέχεια υπολογισµός και αποθήκευση της σύνδεσής της µε τη σχέση depositor, τέλος υπολογισµός της προβολής της ως προς το χαρακτηριστικό customer-name. depositor 56 ΠΑ.ΠΕΙ. Γιάννης Θεοδωρίδης 6.28

Pipelining Υπολογισµός πολλών λειτουργιών ταυτόχρονα, περνώντας τα αποτελέσµατα της µιας λειτουργίας στην επόµενη. Π.χ. στο προηγούµενο παράδειγµα δεναποθηκεύουµε τοαποτέλεσµα του σ ( account balance<2500 ) Αντ αυτού, περνάµε τιςπλειάδες της έκφρασης κατευθείαν στην πράξη της σύνδεσης. Οµοίως, δεν αποθηκεύουµε τα αποτελέσµατα της σύνδεσης, αλλά περνάµε τιςπλειάδες του αποτελέσµατος κατευθείαν στην πράξη της προβολής. Πολύ φθηνότερο από το materialization. Ενδέχεται να µην είναι πάντα εφικτό π.χ., ταξινόµηση, hash-join. depositor 57 ΠΑ.ΠΕΙ. Γιάννης Θεοδωρίδης Οβελτιστοποιητής ερωτηµάτων (query optimizer) Μετασχηµατισµός εκφράσεων σχεσιακής άλγεβρας Υπολογισµός µεγεθών πράξεων σχεσιακής άλγεβρας επιλογή, σύνδεση, άλλες πράξεις (προβολή κλπ.) Τρόποι εκτέλεσης (και κόστος) πράξεων σχεσιακής άλγεβρας Αποτίµηση σύνθετων εκφράσεων (materialization, pipelining) Βελτιστοποίηση σε εµπορικά Σ Β ΠΑ.ΠΕΙ. Γιάννης Θεοδωρίδης 6.29

Σχέδιο εκτέλεσης Ένα σχέδιο εκτέλεσης ερωτήµατος (query execution plan QEP) καθορίζει: (α) ποιος αλγόριθµος θα χρησιµοποιηθεί για κάθε επιµέρους λειτουργία και (β) πώς θα συντονιστεί η εκτέλεση των λειτουργιών. 59 ΠΑ.ΠΕΙ. Γιάννης Θεοδωρίδης Επιλογή σχεδίου εκτέλεσης Όταν επιλέγουµε ένα σχέδιο εκτέλεσης πρέπει να λαµβάνουµε υπόψη και την αλληλεπίδραση των επιµέρους λειτουργιών π.χ. Ο αλγόριθµος Sort-Merge join µπορεί να είναι πιο ακριβός από τον αλγόριθµο Hash join, ωστόσοηέξοδοςτουείναιταξινοµηµένη, γεγονός που µειώνει το κόστος µιας συνάθροισης σε επόµενη φάση. Στην πράξη οι βελτιστοποιητές ερωτηµάτων ενσωµατώνουν στοιχεία των δύο ακόλουθων γενικών προσεγγίσεων: 1. Βελτιστοποίηση βάσει κόστους (cost-based optimization): Αναζήτηση όλων των σχεδίων εκτέλεσης και επιλογή του βέλτιστου µε βάση το κόστος. 2. Ευρετική βελτιστοποίηση (heuristic optimization): Χρήση ευρετικών αλγορίθµων για την επιλογή ενός σχεδίου εκτέλεσης. 60 ΠΑ.ΠΕΙ. Γιάννης Θεοδωρίδης 6.30

Βελτιστοποίηση βάσει κόστους (1) Οι βελτιστοποιητές ερωτηµάτων (query optimizers) χρησιµοποιούν συστηµατικά τους κανόνες ισοδυναµίας προκειµένου να παράγουν τις ισοδύναµες εκφράσεις µιας δοθείσας έκφρασης. ιαισθητικά, παράγουν όλες τις ισοδύναµες εκφράσεις εκτελώντας επαναληπτικά το ακόλουθο βήµα µέχρι να µη µπορούν να βρεθούν άλλες τέτοιες εκφράσεις: Για κάθε νέα έκφραση που εντοπίζεται, χρησιµοποιούνται όλοι οι δυνατοί κανόνες ισοδυναµίας και εντοπίζεται ένα σύνολο εκφράσεων το οποίο και προστίθεται στο αρχικό σύνολο εκφράσεων. Η παραπάνω προσέγγιση είναι πολύ ακριβή τόσο ως προς το χώρο και ως προς το χρόνο Οι απαιτήσεις χρόνου µπορούν να µειωθούν αν δεν δηµιουργηθούν όλες οι εκφράσεις. 61 ΠΑ.ΠΕΙ. Γιάννης Θεοδωρίδης Βελτιστοποίηση βάσει κόστους (2) Έστω ότι θέλουµε να βρούµε τη βέλτιστη διάταξη για την έκφραση R 1 R 2... R n. Υπάρχουν ( 2( n 1) )! διαφορετικές διατάξεις συνδέσεων. ( n 1)! Για n = 7 665280, για n = 10 176 δισεκατοµµύρια! εν χρειάζεται να δηµιουργήσουµε όλες τις διατάξεις. Με δυναµικό προγραµµατισµό, υπολογίζεται µόνο µία φορά η πιο συµφέρουσα διάταξη για κάθε υποσύνολο των {R 1, R 2,, R n } και αποθηκεύεται για µελλοντική χρήση. 62 ΠΑ.ΠΕΙ. Γιάννης Θεοδωρίδης 6.31

Η βελτιστοποίηση στα εµπορικά Σ Β (1) Γενικά, τα εµπορικά Σ Β δεν αποκαλύπτουν τις λεπτοµέρειες κατασκευής του βελτιστοποιητή ερωτηµάτων που έχουν υλοποιήσει. Πάντως: Όλα χρησιµοποιούν ιστογράµµατα για την εκτίµηση του µεγέθους του αποτελέσµατος Όλα ευνοούν τη χρήση ευρετηρίων σε πλάνα εκτέλεσης Όλα αναζητούν δέντρα αριστερού βάθους χρησιµοποιώντας δυναµικό προγραµµατισµό Η ανάπτυξη ενός τέτοιου λογισµικού αντιστοιχεί σε εργασία δεκάδων ανθρωποετών. 63 ΠΑ.ΠΕΙ. Γιάννης Θεοδωρίδης Η βελτιστοποίηση στα εµπορικά Σ Β (2) IBM DB2 MS SQL Server Oracle Τεχνικές Βελτιστοποίησης Query Graph Model (QGM) Rewriter: transformation of queries into joins, pushing GROUP BY operations below joins, etc. Optimizer: cost-based; three levels of complexity (from dynamic programming to a greedy heuristic) Histograms: heightand area-balanced Managing search space explosion: heuristic generation of candidates (a time threshold to find the best plan) Rewriter: view merging, subquery flattening, etc. Histograms: heightbalanced / frequency Managing search space explosion: alternative join orders to find the best 64 ΠΑ.ΠΕΙ. Γιάννης Θεοδωρίδης 6.32

Εργασία Επιλέξτε ένα από τα εµπορικά Σ Β MySQL, MS SQL Server, Oracle, IBM DB2, Με κατάλληλη αναζήτηση στο web, συγκεντρώστε σχετικό υλικό και καταγράψτε τα εξής (σε 2-3 σελίδες): Ποιες τεχνικές οργάνωσης αρχείων υποστηρίζονται; Ποια είδη ευρετηρίων υποστηρίζονται; Ποιες τεχνικές join υποστηρίζονται; Ποιες τεχνικές βελτιστοποίησης υποστηρίζονται; Παράδοση: σε 3 εβδοµάδες από σήµερα 65 ΠΑ.ΠΕΙ. Γιάννης Θεοδωρίδης 6.33