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

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

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

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

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

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

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

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

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

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

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

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

Ακεραιότητα και Ασφάλεια Μέρος 1 Σχεδιασμός Βάσεων Δεδομένων

ΣΧΕΣΙΑΚΟΣ ΛΟΓΙΣΜΟΣ. Tο Σχεσιακό Μοντέλο Σελίδα 1

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

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

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

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

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

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

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

Σχεσιακό Μοντέλο. Σχεδιασμός Βάσεων Δεδομένων Μάθημα 2 ο Μαρία Χαλκίδη

QUERY-BY-EXAMPLE. Η Γλώσσα SQL Σελίδα 1

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

SQL: Συναρτήσεις Συνάθροισης

H Γλώσσα SQL Σχεδιασμός Βάσεων Δεδομένων

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

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

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

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

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

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 6/5/2006

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

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

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

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

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

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

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

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

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

Εργαστήριο Ανάπτυξης Εφαρμογών Βάσεων Δεδομένων

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

Κεφάλαιο 3. ΣΧΕΣΙΑΚΟ ΜΟΝΤΕΛΟ B Μέρος. Tο Σχεσιακό Μοντέλο Σελίδα 1

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

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

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

Πανεπιστήμιο Θεσσαλίας Τμήμα Πληροφορικής Ακαδημαϊκό Έτος Εαρινό. Μάθημα 7 Κεφάλαιο 6: Τυπικές Σχεσιακές Γλώσσες

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

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

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

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

Η Γλώσσα SQL. Μέρος α. Η Γλώσσα SQL Σελίδα 1

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

Σχεδίαση Σχεσιακών ΒΔ

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

PostgreSQL. Oracle. Εαρινό Εξάμηνο

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

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

IBM DB2, Microsoft SQL Server. Εαρινό Εξάμηνο

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

Αρχεία και Βάσεις Δεδομένων

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. ΕΠΛ342: Βάσεις Δεδομένων. Χειμερινό Εξάμηνο Φροντιστήριο 10 ΛΥΣΕΙΣ. Επερωτήσεις SQL

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

Ανάκτηση Πληροφορίας

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

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

ΗΥ360: Αρχεία και Βάσεις Δεδομένων Διδάσκων: Πλεξουσάκης Δημήτρης. Φροντιστήριο Σχεσιακή Άλγεβρα Δημητράκη Κατερίνα

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

ΗΥ360 Αρχεία και Βάσεις εδοµένων

Rule Based systems Συστήματα Βασισμένα σε κανόνες

µπιτ Λύση: Κάθε οµάδα των τεσσάρων µπιτ µεταφράζεται σε ένα δεκαεξαδικό ψηφίο 1100 C 1110 E Άρα το δεκαεξαδικό ισοδύναµο είναι CE2

Διδάσκων: Παναγιώτης Ανδρέου

Υπερπροσαρμογή (Overfitting) (1)

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

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

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

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 24/3/2007

#5. Σχεσιακό Μοντέλο

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

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

Αποκατάσταση συστήματος Βάσεις Δεδομένων

ΗΥ360 Αρχεία και Βάσεις Δεδομένων. Φροντιστήριο στην Σχεσιακή Άλγεβρα.

ΑΣΚΗΣΕΙΣ ΣΕ ΔΙΑΓΡΑΜΜΑΤΑ ΟΝΤΟΤΗΤΩΝ - ΣΥΣΧΕΤΙΣΕΩΝ

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

ΣΧΕΣΙΑΚΟ ΜΟΝΤΕΛΟ (Relational Model) Μαθ. #10

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

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

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

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

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

Query-by-Example (QBE)

Διαχείριση Πολιτισμικών Δεδομένων

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

Εισαγωγή στις Βάσεις Δεδομζνων II

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

Εξατοµίκευση Ερωτήσεων σε Βάσεις εδοµένων

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

Χρήστος Ι. Σχοινάς Αν. Καθηγητής ΔΠΘ. Συμπληρωματικές σημειώσεις για το μάθημα: «Επιχειρησιακή Έρευνα ΙΙ»

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

Transcript:

Βελτιστοποίηση ερωτημάτων Βάσεις Δεδομένων Διδάσκων: Μαρία Χαλκίδη με βάση slides από A. Silberschatz, H. Korth, S. Sudarshan, Database System Concepts, 5 th edition

Εισαγωγή (1) Εναλλακτικοί τρόποι για τον υπολογισμό ενός ερωτήματος Ισοδύναμες εκφράσεις Διαφορετικοί αλγόριθμοι για κάθε λειτουργία Η διαφορά κόστους ανάμεσα σε μία καλή και μία κακή προσέγγιση υπολογισμού ενός ερωτήματος μπορεί να είναι τεράστια. Παράδειγμα: εφαρμόζοντας r X s ακολουθούμενο από μία επιλογή r.a = s.b είναι πιο αργό από το να εκτελέσουμε ένα join πάνω στη ίδια συνθήκη Ανάγκη εκτίμησης του κόστους λειτουργιών Εξαρτάται σημαντικά από τη στατιστική πληροφορία για τις σχέσεις που πρέπει να διατηρεί η βάση δεδομένων π.χ. number of tuples, number of distinct values for join attributes, etc. Ανάγκη να εκτιμήσουμε στατιστικές για τα ενδιάμεσα αποτελέσματα για να εκτιμήσουμε το κόστος πολύπλοκων εκφράσεων Βάσεις Δεδομένων, Παν. Πειραιά 2

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

Εισαγωγή (3) Η δημιουργία των πλάνων υπολογισμού ερωτήσεων για μία έκφραση περιλαμβάνει διάφορα βήματα: 1. Δημιουργία λογικά ισοδύναμων εκφράσεων με τη δοθείσα παράσταση Χρήση ισοδύναμων κανόνων για να μετασχηματίσουμε μία έκφραση σε μία ισοδύναμη της. 2. Σημείωση των παραστάσεων που προκύπτουν για να πάρουμε εναλλακτικά πλάνα ερωτήσεων 3. Επιλογή του φθηνότερου πλάνου με βάση το κόστος Η συνολική διαδικασία καλείται βελτιστοποίηση με βάση το κόστος. Βάσεις Δεδομένων ΙΙ, Παν. Πειραιά 4

Στατιστική πληροφορία για Εκτίμηση Κόστους n r : number of tuples in a relation r. b r : number of blocks containing tuples of r. s r : size of a tuple of r. f r : blocking factor of r αριθμός εγγραφών του r που χωράνε σε ένα block. V(A, r): αριθμός διακριτών τιμών που εμφανίζονται στο r για το χαρακτηριστικό A; Ίδιο σαν το μέγεθος του A (r). SC(A, r): μέσος αριθμός εγγραφών που ικανοποιούν την ισότητα στο Α. Εάν οι εγγραφές του r αποθηκεύονται μαζί σ ένα αρχείο, τότε: b r Στατιστικές για ευρετήρια, π.χ. ύψος ευρετηρίων n f r r Βάσεις Δεδομένων ΙΙ, Παν. Πειραιά 5

Μέτρα κόστους ερώτησης Η προσπέλαση του δίσκου είναι το βασικότερο κόστος και είναι σχετικά εύκολο να εκτιμηθεί. Ο αριθμός block που μεταφέρονται από το δίσκο χρησιμοποιείται σαν μέτρο του πραγματικού κόστους υπολογισμού ερωτήματος. Υποθέτουμε ότι όλες οι μέθοδοι μεταφοράς blocks από δίσκο έχουν το ίδιο κόστος. Δεν λαμβάνουμε υπόψη το κόστος για την εγγραφή του αποτελέσματος στο δίσκο. Αναφερόμαστε στο κόστος εκτίμησης του αλγορίθμου A ως E A Βάσεις Δεδομένων, Παν. Πειραιά 6

Εκτίμηση μεγέθους επιλογής Equality selection A=v (r) SC(A, r) : αριθμός εγγραφών που ικανοποιούν την επιλογή SC(A, r)/f r αριθμός blocks που θα καταλάβουν αυτές οι εγγραφές π.χ. Κόστος δυαδικής αναζήτησης E SC( A, r ) fr log 2 ( br ) 1 a 2 Συνθήκη ισότητας στο κλειδί: SC(A,r) = 1 Βάσεις Δεδομένων ΙΙ, Παν. Πειραιά 7

Στατιστικές πληροφορίες για παραδείγματα f account = 20 (20 tuples of account fit in one block) V(branch-name, account) = 50 (50 branches) V(balance, account) = 500 (500 different balance values), ο αριθμός των διαφορετικών τιμών που εμφανίζονται στη σχέση account για το χαρακτηριστικό balance Π account = 10000 (account has 10,000 tuples) Τα ακόλουθα ευρετήρια υπάρχουν στο account: Πρωτεύον B + -tree ευρετήριο για το χαρακτηριστικό branch-name Δευτερεύον B + -tree ευρετήριο για το χαρακτηριστικό balance Βάσεις Δεδομένων ΙΙ, Παν. Πειραιά 8

Εκτίμηση μεγέθους επιλογής Επιλογές της μορφής AV (r) (ανάλογα A V (r)) Έστω c αριθμός εγγραφών που εκτιμάται ότι ικανοποιούν τη συνθήκη. Εάν min(a,r) και max(a,r) είναι διαθέσιμα στο κατάλογο C = 0 if v < min(a,r) C = n r v min( A, r). max( A, r) min( A, r) Εάν δεν υπάρχει στατιστική πληροφορία υποθέτουμε c = n r / 2. Βάσεις Δεδομένων ΙΙ, Παν. Πειραιά 9

Υλοποίηση περίπλοκων επιλογών Η επιλογή μίας συνθήκης i είναι η πιθανότητα ότι η εγγραφή στη σχέση r ικανοποιεί το i. Εάν s i είναι ο αριθμός των εγγραφών που ικανοποιούνται στην r, η επιλογή του i ορίζεται ως s i /n r. Conjunction: 1 2... n (r). Αριθμός εγγραφών που εκτιμώμαι στο αποτέλεσμα: n r s 1 s... s n Disjunction: 1 2... n (r). Αριθμός εγγραφών στο αποτέλεσμα: 2 n r n n r s 1 s2 sn 1 (1 ) (1 )... (1 ) nr nr nr Negation: (r). Εκτιμώμενος αριθμός εγγραφών : n r size( (r)) Βάσεις Δεδομένων ΙΙ, Παν. Πειραιά 10

Εκτίμηση μεγέθους Join - Παράδειγμα depositor customer Catalog information for join examples: n customer = 10,000. f customer = 25, which implies that b customer =10000/25 = 400. n depositor = 5000. f depositor = 50, which implies that b depositor = 5000/50 = 100. V(customer-name, depositor) = 2500, which implies that, on average, each customer has two accounts. assume that customer-name in depositor is a foreign key on customer. Βάσεις Δεδομένων ΙΙ, Παν. Πειραιά 11

Εκτίμηση μεγέθους των Joins (1) Καρτεσιανό γινόμενο r x s περιέχει n r n s εγγραφές Κάθε εγγραφή καταλαμβάνει s r + s s bytes. Εάν R S είναι κλειδί για το R, τότε μία εγγραφή του s θα συνδεθεί με μία το πολύ εγγραφή από το r Για αυτό το λόγο, ο αριθμός εγγραφών στο r s δεν είναι μεγαλύτερος από τον αριθμό εγγραφών στο s. Εάν R S είναι ξένο κλειδί για το S που αναφέρεται στο R, ο αριθμός των εγγραφών r s είναι ακριβώς ο ίδιος με τον αριθμό των εγγραφών στο s. Αντίστοιχα για R S ξένο κλειδί που αναφέρεται στο S. Παράδειγμα: depositor customer, customer-name in depositor is a foreign key of customer το αποτέλεσμα θα έχει n depositor εγγραφές, δηλ. 5000 Βάσεις Δεδομένων ΙΙ, Παν. Πειραιά 12

Εκτίμηση μεγέθους των Joins (2) R S = {A} δεν είναι κλειδί για R ή S. Εάν υποθέσουμε ότι κάθε εγγραφή t στο R παράγει εγγραφές στο R S, ο αριθμός των εγγραφών στο R S εκτιμάται να είναι: nr ns V( A, s) Εάν αντιστρέψουμε τους ρόλους του R και S, η εκτίμησή μας είναι: nr ns V( A, r ) Η χαμηλότερη από αυτές τις εκτιμήσεις είναι πιθανόν η πιο ακριβής. Βάσεις Δεδομένων ΙΙ, Παν. Πειραιά 13

Παράδειγμα: Εκτίμηση μεγέθους των Joins (3) Υπολογίζουμε το μέγεθος των εκτιμήσεων για το depositor customer χωρίς να χρησιμοποιούμε πληροφορία για τα ξένα κλειδία: n customer = 10,000 - n depositor = 5000. V(customer-name, depositor) = 2500, and V(customer-name, customer) = 10000 The two estimates are 5000 * 10000/2500 =20,000 and 5000 * 10000/10000 = 5000 Επιλέγουμε τη χαμηλότερη εκτίμηση Στη συγκεκριμένη περίπτωση είναι ίδια με αυτή που έχουμε εάν χρησιμοποιήσουμε ξένα κλειδιά. Βάσεις Δεδομένων ΙΙ, Παν. Πειραιά 14

Εκτίμηση μεγέθους για άλλες λειτουργίες Projection: εκτιμώμενο μέγεθος A (r) = V(A,r) Aggregation: εκτιμώμενο μέγεθος A g F (r) = V(A,r) Λειτουργίες συνόλων Ενώσεις/τομές επιλογών στην ίδια σχέση: μπορούν να ξαναγραφούν και να χρησιμοποιήσουμε υπολογισμούς εκτίμησης μεγέθους επιλογής 1 (r) 2 (r) μπορεί να γραφεί ως 1 2 (r) Για λειτουργίες σε διαφορετικές σχέσεις: estimated size of r s = size of r + size of s. estimated size of r s = minimum size of r and size of s. estimated size of r s = r. Όλες οι παραπάνω εκτιμήσεις δεν είναι ακριβείς αλλά παρέχουν ένα άνω όριο στα μεγέθη τους. Βάσεις Δεδομένων ΙΙ, Παν. Πειραιά 15

Μετασχηματισμός Σχεσιακών παραστάσεων Δύο παραστάσεις σχεσιακής άλγεβρας είναι ισοδύναμες εάν σε κάθε στιγμιότυπο της βάσης δεδομένων παράγουν το ίδιο σύνολο εγγραφών Η σειρά των εγγραφών δεν έχει σημασία Ένας κανόνας ισοδυναμίας λέει ότι παραστάσεις δύο μορφών είναι ισοδύναμες Μπορούμε να αντικαταστήσουμε έκφραση της πρώτης μορφής με τη δεύτερη ή το αντίστροφο Βάσεις Δεδομένων ΙΙ, Παν. Πειραιά 17

Κανόνες ισοδυναμία (1) 1. Λειτουργίες συνδυαστικής επιλογής μπορούν να αναλυθούν σε μία ακολουθία από μεμονωμένες επιλογές. ( ) ( ( )) 1 E E 2 1 2 2. Λειτουργίες επιλογής είναι μεταβατικές. ( ( E)) ( ( E)) 1 2 2 1 3. Μόνο η τελευταία ακολουθία από λειτουργίες προβολής απαιτείται, οι άλλες μπορούν να παραλειφθούν. t1 ( t2 ( ( tn ( E)) )) t1 ( E) 4. Επιλογές μπορούν να συνδυαστούν με Καρτεσιανά γινόμενα και theta joins. a. (E 1 X E 2 ) = E 1 E 2 b. 1 (E 1 2 E 2 ) = E 1 1 2 E 2 Βάσεις Δεδομένων ΙΙ, Παν. Πειραιά 18

Γραφική αναπαράστη κανόνων ισοδυναμίας Βάσεις Δεδομένων ΙΙ, Παν. Πειραιά 19

Κανόνες ισοδυναμίας (1) 5. Theta-join λειτουργίες (και natural joins) είναι μεταβατικές. E 1 E 2 = E 2 E 1 6. (a) Natural join λειτουργίες είναι συσχετιζόμενες: (E 1 E 2 ) E 3 = E 1 (E 2 E 3 ) (b) Theta joins είναι συσχετιζόμενες με τον ακόλουθο τρόπο: (E 1 1 E 2 ) 2 3 E 3 = E 1 1 3 (E 2 2 E 3 ) όπου 2 περιλαμβάνει χαρακτηριστικά μόνο από E 2 και E 3. Βάσεις Δεδομένων ΙΙ, Παν. Πειραιά 20

Κανόνες ισοδυναμίας (2) 7. Η λειτουργία επιλογής κατανέμει τη λειτουργία του theta join κάτω από τις ακόλουθες δύο συνθήκες: (a) Όταν όλα τα χαρακτηριστικά στο 0 περιλαμβάνουν μόνο χαρακτηριστικά των παραστάσεων (ας πούμε την E 1 ) που συμμετέχουν στο join. 0 E 1 E 2 ) = ( 0 (E 1 )) E 2 (b) Όταν 1 περιλαμβάνει μόνο χαρακτηριστικά της E 1 και 2 περιλαμβάνει μόνο χαρακτηριστικά της E 2. 1 E 1 E 2 ) = ( 1 (E 1 )) ( (E 2 )) Βάσεις Δεδομένων ΙΙ, Παν. Πειραιά 21

Κανόνες ισοδυναμίας (3) 8. Οι λειτουργίες προβολής κατανέμουν τη theta join λειτουργία ως ακολούθως: (a) Εάν περιλαμβάνει μόνο χαρακτηριστικά από L 1 L 2, όπου L 1 and L 2 σύνολα χαρακτηριστικών από E 1 και E 2, αντίστοιχα L (b) Υποθέτουμε το join E 1 E 2. ( E... E2) ( L ( E1 ))... ( L ( 2)) 1 L2 1 E 1 2 L 1 and L 2 σύνολα χαρακτηριστικών από E 1 και E 2, αντίστοιχα. L 3 χαρακτηριστικά της E 1 που περιλαμβάνονται στη join συνθήκη, αλλά δεν ανήκουν στο L 1 L 2, και L 4 είναι χαρακτηριστικά της E 2 που περιλαμβάνονται στη join συνθήκη, αλλά δεν ανήκουν στο L 1 L 2. L ( E... E2) L L (( L L ( E1 ))... ( L L ( 2))) 1L 1 E 2 1 2 1 3 2 4 Βάσεις Δεδομένων ΙΙ, Παν. Πειραιά 22

Κανόνες ισοδυναμίας (4) 9. Ένωση και τομή είναι μεταβατικές E 1 E 2 = E 2 E 1 E 1 E 2 = E 2 E 1 10. Ένωση και τομή είναι συσχετιζόμενες. (E 1 E 2 ) E 3 = E 1 (E 2 E 3 ) (E 1 E 2 ) E 3 = E 1 (E 2 E 3 ) 11. Η λειτουργία της επιλογής κατανέμει, και. (E 1 E 2 ) = (E 1 ) (E 2 ) και όμοια για και στη θέση του Επίσης: (E 1 E 2 ) = (E 1 ) E 2 παρόμοια για στη θέση, όχι για 12. Η λειτουργία της προβολής κατανέμει την ένωση L (E 1 E 2 ) = ( L (E 1 )) ( L (E 2 )) Βάσεις Δεδομένων ΙΙ, Παν. Πειραιά 23

Παράδειγμα μετασχηματιμσού Branch(branch_name, branch_city, assets) Account(account_number, branch_name, balance) Depositor(customer_name, account_number) Query: Find the names of all customers who have an account at some branch located in Brooklyn. customer-name ( branch-city = Brooklyn (branch (account depositor))) Transformation using rule 7a ( 0 E 1 E 2 ) = ( 0 (E 1 )) E 2 ) customer-name (( branch-city = Brooklyn (branch)) (account depositor)) Performing the selection as early as possible reduces the size of the relation to be joined. Βάσεις Δεδομένων ΙΙ, Παν. Πειραιά 24

Παράδειγμα μετασχηματιμσού Branch(branch_name, branch_city, assets) Account(account_number, branch_name, balance) Depositor(customer_name, account_number) Query: Find the names of all customers who have an account at some branch located in Brooklyn. customer-name ( branch-city = Brooklyn (branch (account depositor))) Transformation using rule 7a ( 0 E 1 E 2 ) = ( 0 (E 1 )) E 2 ) customer-name (( branch-city = Brooklyn (branch)) (account depositor)) Performing the selection as early as possible reduces the size of the relation to be joined. Βάσεις Δεδομένων ΙΙ, Παν. Πειραιά 25

Παράδειγμα με πολλαπλούς μετασχηματισμούς Branch(branch_name, branch_city, assets) Account(account_number, branch_name, balance) Depositor(customer_name, account_number) Query: Find the names of all customers with an account at a Brooklyn branch whose account balance is over $1000. customer-name ( branch-city = Brooklyn balance > 1000 (branch (account depositor))) Transformation using join associatively ((E 1 E 2 ) E 3 = E 1 (E 2 E 3 )): customer-name ( branch-city = Brooklyn balance > 1000 ((branch account) depositor)) Η δεύτερη μορφή δίνει τη δυνατότητα να εφαρμόσουμε το κανόνα εκτέλεση επιλογών νωρίς branch-city = Brooklyn (branch) balance > 1000 (account) Συνεπώς μία ακολουθία από μετασχηματισμούς μπορεί να αποβεί χρήσιμη Βάσεις Δεδομένων ΙΙ, Παν. Πειραιά 26

Παράδειγμα με πολλαπλούς μετασχηματισμούς (2) > > Βάσεις Δεδομένων ΙΙ, Παν. Πειραιά 27

Παράδειγμα λειτουργίας προβολής Branch(branch_name, branch_city, assets) Account(account_number, branch_name, balance) Depositor(customer_name, account_number) customer-name (( branch-city = Brooklyn (branch) account) depositor) Όταν υπολογίζουμε branch-city = Brooklyn (branch) account ) λαμβάνουμε τη σχέση της οποίας το σχήμα είναι: (branch-name, branch-city, assets, account-number, balance) Χρησιμοποιώντας του κατάλληλους κανόνες ισοδύναμίας (8a and 8b); Περιορίζουμε τα χαρακτηριστικά που δεν χρειάζονται από τα ενδιάμεσα αποτελέσματα: customer-name (( account-number ( ( branch-city = Brooklyn (branch) account )) depositor) Βάσεις Δεδομένων ΙΙ, Παν. Πειραιά 28

Παράδειγμα διάταξης συνδέσμων (1) Για όλες τις σχέσεις r 1, r 2, και r 3, (r 1 r 2 ) r 3 = r 1 (r 2 r 3 ) Εάν το αποτέλεσμα r 2 r 3 είναι αρκετά μεγάλο και r 1 r 2 μικρό, επιλέγουμε (r 1 r 2 ) r 3 έτσι ώστε να υπολογίσουμε και να αποθηκεύσουμε μία μικρή προσωρινή σχέση. Βάσεις Δεδομένων ΙΙ, Παν. Πειραιά 29

Παράδειγμα διάταξης συνδέσμων (2) Έστω η παράσταση customer-name (( branch-city = Brooklyn (branch)) account depositor) Μπορούμε να υπολογίσουμε account depositor πρώτα και να συνδέσουμε το αποτέλεσμα με branch-city = Brooklyn (branch) αλλά account depositor είναι πολύ πιθανό να είναι μια μεγάλη σχέση (μεγάλος αριθμός εγγραφών). Είναι περισσότερο πιθανό μόνο ένα μικρό ποσοστό των πελατών της τράπεζας να έχουν λογαριασμούς σε υποκαταστήματα που βρίσκονται στο Brooklyn, οπότε είναι καλύτερο να υπολογίσουμε πρώτα branch-city = Brooklyn (branch) account Βάσεις Δεδομένων ΙΙ, Παν. Πειραιά 30

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

Απαρίθμηση ισοδύναμων παραστάσεων (2) Απαιτήσεις σε χώρο περιορίζονται με το μοίρασμα κοινών υποπαραστάσεων: όταν E1 παράγεται από την E2 με βάση κάποιον κανόνα ισοδυναμίας, συνήθως μόνο το επάνω επίπεδο από τις δύο παραστάσεις διαφέρει, υποδέντρα στο κάτω επίπεδο είναι όμοια και μπορούν να μοιραστούν Οι απαιτήσεις σε χρόνο μπορούν να περιοριστούν εάν δεν παράγουμε όλες τις παραστάσεις Βάσεις Δεδομένων ΙΙ, Παν. Πειραιά 32

Πλάνο εκτέλεσης Ένα πλάνο εκτέλεσης ορίζει ακριβώς τι αλγόριθμος χρησιμοποιείται για κάθε λειτουργία και πως η εκτέλεση των λειτουργιών συντονίζεται. Βάσεις Δεδομένων ΙΙ, Παν. Πειραιά 33