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

Σχετικά έγγραφα

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

Κεφάλαιο 8. ΣΧΕ ΙΑΣΜΟΣ ΒΑΣΕΩΝ Ε ΟΜΕΝΩΝ ΚΑΙ ΚΑΝΟΝΙΚΟΠΟΙΗΣΗ (Normalization) Ι.Β Σχεδιασµός Σχεσιακών Β και Κανονικοποίηση Σελίδα 4.1

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

ΣΧΕΔΙΑΣΜΟΣ ΒΑΣΕΩΝ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΚΑΝΟΝΙΚΟΠΟΙΗΣΗ. Σχεδιασμός Σχεσιακών ΒΔ και Κανονικοποίηση 1

S Q Q L L -- SQL (Structured Query Language) select insert update delete 2.47

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

ΣΧΕ ΙΑΣΜΟΣ ΒΑΣΕΩΝ Ε ΟΜΕΝΩΝ ΚΑΙ ΚΑΝΟΝΙΚΟΠΟΙΗΣΗ

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

Κεφάλαιο 4. Η Γλώσσα SQL και Σχεσιακός Λογισµός. Ι.Β. Σχεσιακός Λογισµός και η Γλώσσα SQL Σελίδα 2.46

ΣΧΕΣΙΑΚΟ ΜΟΝΤΕΛΟ Relational Model. SQL Μαθ. #11

Βάσεις Δεδομένων Συναρτησιακές Εξαρτήσεις (Functional Dependencies) Σχεδιασμός Βάσεων Δεδομένων και Κανονικοποίηση

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

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

Κλειδιά (keys) Λογικά, σκεφτόµαστε για «κλειδιά» σαν τα δεδοµένα (τα πεδία) εκείνα τα οποία µας επιτρέπουν να ξεχωρίσουµε τις διάφορες εγγραφές

Lecture 23: Functional Dependencies and Normalization

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

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

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

Συναρτησιακές Εξαρτήσεις 7ο Φροντιστήριο. Βάρσος Κωνσταντίνος

Κανονικοποίηση. Σημασιολογία Γνωρισμάτων. Άτυπες Οδηγίες. Παράδειγμα. Αξιολόγηση Σχεσιακών Σχημάτων ΒΔ. Περιττές Τιμές και Ανωμαλίες Ενημέρωσης

ΗΥ-360 Αρχεία και Βάσεις Δεδομένων Διδάσκων: Δ. Πλεξουσάκης. Φροντιστήριο SQL Examples Ξένου Ρουμπίνη

BΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΕΞΕΤΑΣΗ (Σεπτεμβρίου)

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

Βάσεις εδοµένων. Συναρτησιακές Εξαρτήσεις (Functional Dependencies) Σχεδιασµός Βάσεων εδοµένων και. Κανονικοποίηση.

Κανονικές Μορφές. Βάσεις Δεδομένων : Κανονικές Μορφές. ηλαδή, i = 1,.., n R i R. Σύντομη επανάληψη αποσύνθεσης.

Συναρτησιακές Εξαρτήσεις 7ο Φροντιστήριο. Βάρσος Κωνσταντίνος

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

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

Κανονικοποίηση. Παύλος Εφραιμίδης. Βάσεις Δεδομένων Κανονικοποίηση 1

Βάσεις Δεδομένων Προχωρημένα Ερωτήματα SQL

Το σχεσιακό μοντέλο βάσεων δεδομένων

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

Βάσεις Δεδομένων Σύνθετα SQL queries. Ψευδώνυμα (Aliases) (2) Ψευδώνυμα (Aliases) (1) Ασάφεια και Πλήρη Ονόματα. Ερώτημα χωρίς τον όρο WHERE (1)

Περιεχόμενα. Βάσεις Δεδομένων Προχωρημένα Ερωτήματα SQL. Συνένωση Σχέσεων στην SQL2 (3) Συνένωση Σχέσεων στην SQL2. (Join Relations Feature in SQL)

Κανονικοποίηση. Άτυπες Οδηγίες. Παράδειγµα. Αξιολόγηση Σχεσιακών Σχηµάτων Β. Περιττές Τιµές και Ανωµαλίες Ενηµέρωσης

2η ΔΙΑΛΕΞΗ Συναρτησιακές εξαρτήσεις

Σχεδίαση Β.Δ. (Database Design)

Βάσεις Δεδομένων Σύνθετα SQL queries

Copyright 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley, ΕλληνικήΈκδοση, ίαυλος

Lecture 14: SQL DML I

Βάσεις Δεδομένων ΗγλώσσαSQL (Structured Query Language)

καλών σχεσιακών σχημάτων

Lecture 22: Functional Dependencies and Normalization

Διάλεξη 13: Γλώσσα Επεξεργασίας Δεδομένων/ Data Manipulation Language (SQL DML) I. Διδάσκων: Παναγιώτης Ανδρέου

ΗΥ-360 Αρχεία και Βάσεις Δεδομένων Διδάσκων: Δ. Πλεξουσάκης. Φροντιστήριο SQL Examples ΙΙ Ξένου Ρουμπίνη

2. Να τροποποιηθεί κατάλληλα η παραπάνω παράσταση ώστε στο αποτέλεσµα να προκύπτουν τα ονοµατα των προµηθευτών και όχι οι κωδικοί τους (Μονάδες 1,0)

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

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

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

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

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

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

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

ΗΥ360 Αρχεία και Βάσεις εδοµένων ιδάσκων:. Πλεξουσάκης

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

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

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

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

Κανονικές Μορφές. Αποσύνθεση (decomposition)

Διάλεξη 04: Εννοιολογική Σχεδίαση Βάσης Δεδομένων II (Entity Relationship Modelling) Διδάσκων: Παναγιώτης Ανδρέου

Βάσεις Δεδομένων Η γλώσσα SQL (Structured Query Language) Εισαγωγή στην SQL (2) Ιστορικά Στοιχεία. SQL - Structured Query Language (1)

Σχεσιακό Μοντέλο Τα πρώτα συστήµατα Βάσεων δεδοµένων ήταν βασισµένα στο ιεραρχικό ή στο δικτυακό µοντέλο δεδοµένων. Το σχεσιακό µοντέλο πρωτοπαρουσιάσ

καλών σχεσιακών σχημάτων

Κανονικές Μορφές Σχεδιασµός Σχεσιακών Σχηµάτων

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

Κεφάλαιο 3 Σχεσιακό Μοντέλο

Διάλεξη 14: Γλώσσα Επεξεργασίας Δεδομένων/ Data Manipulation Language (SQL DML) II. Διδάσκων: Παναγιώτης Ανδρέου

Διάλεξη 08: Αντιστοίχηση Εννοιολογικού σε Σχεσιακό Μοντέλο (ER/EER to Relational) Διδάσκων: Παναγιώτης Ανδρέου

Βάσεις Δεδομένων 1 Δημήτριος Τσουμάκος

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

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

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

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

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

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

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

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

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

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

Διάλεξη 15: Γλώσσα Επεξεργασίας Δεδομένων/ Data Manipulation Language (SQL DML) III. Διδάσκων: Παναγιώτης Ανδρέου

Lecture 24: Functional Dependencies and Normalization IV

ΘΕΜΑΤΑ. Θέμα 1 ο Σύμφωνα με τους παραπάνω πίνακες και τη θέση που έχουν τα ξένα κλειδιά βρείτε τους

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

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

Εξεταστική Περίοδος Ιουνίου 2004

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

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

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


Lecture 21: Functional Dependencies and Normalization

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


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

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

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

Διάλεξη 07: Σχεσιακό Μοντέλο II (Relational Data Model) Διδάσκων: Παναγιώτης Ανδρέου


Κανονικές Μορφές. Συνενώσεις Άνευ Απωλειών. Προσοχή με τις τιμές null στην αποσύνθεση

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

Transcript:

Ασκήσεις -Επανάληψη Βάσεις Δεδομένων 2016-2017

Ε-R μοντέλα -Flashback. ENTITY SET WEAK ENTITY SET is_a GENERALIZATION RELATIONSHIP SET ATTRIBUTE DERIVED Attribute E2 Total PARTICIPATION of E1 in R1 E2 R 1 N R E1 E1 PRIMARY KEY Cardinality ratio 1:N for E2:E1 in R1

E-R Μοντέλα Μια εταιρεία μεταφορών, ονομαζόμενη ΚΟΥΒΑΛΑ, μεταφέρει αγαθά για μια μεγάλη αλυσίδα supermarkets, που ονομάζεται ΠΑΡΕΚΟΣΜΕ. Τα φορτηγάτης ΚΟΥΒΑΛΑ παραλαμβάνουν αγαθά από αποθήκεςκαι τα παραδίνουν σε συγκεκριμένα καταστήματα(supermarkets). Ένα φορτηγό είναι δυνατόν να μεταφέρει περισσότερες από μια αποστολές (σύνολο αγαθών) σε ένα απλό ταξίδι(ο αριθμός ταξιδιού προσδιορίζει μονοσήμαντα το ταξίδι) και παραδίδει αυτές τις αποστολές σε μια σειρά από καταστήματα. Κάθε αποστολή αναγνωρίζεται από ένα ΑριθμοΑποστολήςκαι έχει άλλες πληροφορίες, όπως όγκο αποστολής, βάρος, προορισμός, κλπ. Τα φορτηγά έχουν διαφορετικές δυναμικότητες και όσον αφορά τον όγκο αγαθών που χωρούν, αλλά και το βάρος που μπορούν να μεταφέρουν. Μια βάση δεδομένων είναι υπό σχεδιασμό για να κρατάει στοιχεία σχετικά με την χρήση των φορτηγών καθώς και τις αποστολές που γίνονται.

Οντότητες (1) Αρ.Φορτηγού Αρ.Ταξιδιού Ημερομηνία maxβάρος Φορτηγό maxόγκος Ταξίδι ΌνομαΑπ Τοποθεσία Αποθήκη

Οντότητες (1) ΌνομαΚατ Διεύθυνση Κατάστημα Αρ.Αποστολής Βάρος Όγκος Αποστολή

Συσχετίσεις Φορτηγό 1 Κάνει Ν ταξίδι Ταξίδι Ταξίδι Ν Παραλαβή από Μ Αποθήκη Ταξίδι 1 Ν Περιλαμβάνει Αποστολή Αποστολή Ν Κάνει στάση Μ Κατάστημα

Τελικά Παραλαβή από Μ Αποθήκη Φορτηγό 1 Κάνει Ν ταξίδι Ν Ταξίδι 1 Περιλαμβάνει Ν Κατάστημα Ν Κάνει στάση Μ Αποστολή

Σχεσιακό μοντέλο ΦΟΡΤΗΓΟ (Αρ.Φορτηγού, MaxΒάρος, MaxΌγκος, ) ΑΠΟΘΗΚΗ ( ΟνομαΑπ, Τοποθεσία,...) ΤΑΞΙΔΙ (Αρ.Ταξιδιού, Ημερομηνία,, ΑριθμόςΦορτηγού) ΑΠΟΣΤΟΛΗ (Αρ.Αποστολής, Βάρος, Ογκος,..., Αρ.Ταξιδιού) ΚΑΤΑΣΤΗΜΑ (ΟνομαΚατ, Διεύθυνση,...) ΠΑΡΑΛΑΒΗ_ΑΠΟ(Αρ.Ταξιδιού, ΟνομαΑπ) ΚΑΝΕΙ_ΣΤΑΣΗ(Αρ.Αποστολής,ΟνομαΚατ)

Σχεσιακή Άλγεβρα -Flashback Select σ c (R) Project p L (R) Union R S set difference R - S Cartesian product R ΧS Rename ρ x (E) Intersection R S natural join R S theta join R c S Division R / S >< ><

Σχεσιακή Άλγεβρα EMPLOYEE( SSN, Name, BirthDate, Address, Sex, Salary, SupSSN, DNumber) DEPARTMENT( DNumber, DName, MgrSSN, MgrStartDate) PROJECT( PNumber, PName, Location, DNumber) DEPT_LOCATION( DNumber, DLocation) WORKS_ON( SSN, Pnumber, HoursPW) Βρες τα ονόματα των υπαλλήλων που δουλεύουν σε όλα τα έργα Υπάλληλοι σε Εργα= π PΝumber,SSN (WORKS_ON) Ολατα Εργα= π PΝumber (PROJECT) Υπάλλ. σε ολατα εργα= π PΝumber,SSN (WORKS_ON) π PΝumber (PROJECT) Τελικό query = >< π Name (EMPLOYEE) SSN=SSN (π Pnumber,SSN (WORKS_ON) π Pnumber (PROJECT))

Σχεσιακή Άλγεβρα EMPLOYEE( SSN, Name, BirthDate, Address, Sex, Salary, SupSSN, DNumber) DEPARTMENT( DNumber, DName, MgrSSN, MgrStartDate) PROJECT( PNumber, PName, Location, DNumber) DEPT_LOCATION( DNumber, DLocation) WORKS_ON( SSN, Pnumber, HoursPW) Βρες τα ονόματα των υπαλλήλων που δε δουλεύουν σε κανένα έργο Ολοιοι υπάλληλοι = π SSN (EMPLOYEES) Ολοιοι υπάλληλοι που εργάζονται = π SSN (WORKS_ON) Τελικό query = >< π Name (EMPLOYEE) SSN=SSN (π SSN (EMPLOYEES) -π SSN (WORKS_ON))

SQL EMPLOYEE( SSN, Name, BirthDate, Address, Sex, Salary, SupSSN, DNumber) DEPARTMENT( DNumber, DName, MgrSSN, MgrStartDate) PROJECT( PNumber, PName, Location, DNumber) DEPT_LOCATION( DNumber, DLocation) WORKS_ON( SSN, Pnumber, HoursPW) Για κάθε Τμήμα, βρες το όνομα του Τμήματος και το συνολικό κόστος σε μισθούς για τους εργαζομένους στο Τμήμα select Dname, sum(salary) from EMPLOYEE, DEPARTMENT where EMPLOYEE.DNumber = DEPARTMENT.DNumber group by DName

EMPLOYEE( SSN, Name, BirthDate, Address, Sex, Salary, SupSSN, DNumber) DEPARTMENT( DNumber, DName, MgrSSN, MgrStartDate) PROJECT( PNumber, PName, PLocation, DNumber) DEPT_LOCATION( DNumber, DLocation ) WORKS_ON ( SSN, Pnumber, HoursPW) Βρες ονόματα υπαλλήλων που δουλεύουν τουλάχιστον σε ένα έργοστα Πατήσια, για το οποίο το τμήμα που το ελέγχει δε βρίσκεται στα Πατήσια select Name, Address from EMPLOYEE where exists (select * from WORKS_ON, PROJECT where WORKS_ON.Pnumber = PROJECT.PNumber and EMPLOYEE.SSN = WORKS_ON.SSN and PLocation = patisia ) and not exists (select * from DEPT_LOCATION, WORKS_ON, PROJECT where WORKS_ON.Pnumber = PROJECT.PNumber and EMPLOYEE.SSN = WORKS_ON.SSN and DEPT_LOCATION.Dnumber=PROJECT.DNumberand DLocation = patisia )

Κανονικοποίηση R(A, B, C, D, E, G, H) F = { AB C, AC B, AD E, B D, BC A, E G } Σύνολο εξαρτήσεων και ελάχιστη κανονική κάλυψη Έλεγχος BCNF Αν όχι, αποσύνθεση {Α, Β, C } {A, B, C, E, G} {A, C, E, H }

Ελάχιστη κανονική κάλυψη Διαισθητικά μια κανονική κάλυψη του F είναι ένα ελάχιστο σύνολο από συναρτησιακές εξαρτήσεις ισοδύναμο με το F, που δεν έχει πλεονάζουσες εξαρτήσεις ή πλεονάζοντα μέρη εξαρτήσεων. Ένα σύνολοfαπό FD είναιελάχιστη κάλυψη αν ικανοποιεί τα παρακάτω: (1) Κάθε εξάρτηση στο F είναι της µορφής: X A, όπου A είναι ένα απλό γνώρισµα (2) εν µπορούµε να αποσύρουµε µια FDαπό το F και να εξακολουθούµε να έχουµε ένα σύνολο ισοδύναµο του F (3) εν µπορούµε να αντικαταστήσουµε µια FD X Aαπό το F µε µια FD Y A,όπου Y Xκαι να εξακολουθούµε να έχουµε ένα σύνολο ισοδύναµο του F

Λύση AB C AC B AD E B D BC A E G {Α, Β, C } AB C AC B BC A Κανένα γνώρισμα δεν είναι εξωτερικό (extraneous) Άρα ελάχιστη κάλυψη

Λύση AB C AC B AD E B D BC A E G {A, B, C, E, G} AB C AC B BC A E G Κανένα γνώρισμα δεν είναι εξωτερικό (extraneous) Άρα ελάχιστη κάλυψη

Λύση AB C AC B AD E B D BC A E G {A, C, E, H } Δεν υπάρχουν εξαρτήσεις ελάχιστη κάλυψη

BCNF -Flashback Eάνκαι μόνο εάν για κάθε Χ Υ που ισχύει τότε ένα εκ των δύο συμβαίνει: Χ Υ είναι τετριμμένη λειτουργική εξάρτηση Το Χ είναι υπερκλειδί

2NF Flashback Η R είναι σε2nf αν είναι σε1nf και κανένα μηπρωτεύον Γνώρισμα δεν είναι μερικώς εξαρτώμενο από ένα υποψήφιο κλειδί

Αποσύνθεση -Flashback To R σε R 1 και R 2 R 1 και R 2 είναι σε BCNF Lossless-join decomposition Dependency preserving

Λύση AB C AC B AD E B D BC A E G {Α, Β, C } AB C AC B BC A Είναι σε BCNF διότι τα AB, AC και BC είναι όλα υποψήφια κλειδιά στη σχέση

Λύση AB C AC B AD E B D BC A E G {A, B, C, E, G} AB C AC B BC A E G Υποψήφια κλειδιά: ΑΒΕ, ACE, BCE Δεν είναι σε BCNF. Δεν είναι ούτε σε 2NFγιατί υπάρχει μη πρωτεύον γνώρισμα που εξαρτάται από υποσύνολο των κλειδιών (E G) ABC και ΑΒΕG όμως ΑΒΕG δεν είναι BCNF γιατί το υποψήφιο κλειδί είναι ΑΒΕ και υπάρχει E G EG και ΑΒΕ

Λύση AB C AC B AD E B D BC A E G {A, C, E, H } Το κλειδί είναι η ίδια η ACEH Είναι σε μορφή BCNF

Ισοδυναμία συνόλου εξαρτήσεων F1 = { A C, AB C, D AC, D E } F2 = { A BC, D AE } Δείξτε ότι είναι ισοδύναμα 1. F1+ = F2+ 2. Μετασχηματισμοί με κανόνες Armstrong

Flashback Αν Υ υποσύνολο του Χ, τότε Χ Υ (αντανακλαστικότητα) Αν Χ Υ ισχύει, τότε ΧΖ ΥΖ (προσαύξηση) Αν Χ Υ και Υ Ζ, τότε Χ Ζ (μεταβατικότητα) Αν Χ Υ και Χ Ζ, τότε Χ ΥΖ (ένωση) Αν Χ ΥΖ, τότε Χ Υ και Χ Ζ (αποσύνθεση) Αν Χ Υ και ΖΥ Ρ, τότε XΖ Ρ (ψευδομεταβατικότητα)

Λύση F1 = { A B, AB C, D AC, D E } F2 = { A BC, D AE } 1. A Β 2. AB C 3. D AC 4. D E 3α. D A και D C (αποσύνθεση) 2α. A Cλόγω της 1, και τώρα το D C μπορεί να φύγει A Β, A C D A D E A BC D AE

Ευρετήρια -Βελτιστοποίηση Suppliers(sid: integer, sname: char(20), city: char(20)) Supply(sid: integer, pid: integer) Parts(pid: integer, pname: char(20), price: real) SELECT S.sname, P.pname FROM Suppliers S, Parts P, Supply Y WHERE S.sid = Y.sid AND Y.pid = P.pid AND S.city= "Madison" AND P.price< 1000

Βελτιστοποίηση Τι πληροφορίες για τις παραπάνω Σχέσεις χρειάζεται ένας βελτιστοποιητήςγια να επιλέξει ένα καλό πλάνο εκτέλεσης για το συγκεκριμένο SQL Ερώτημα? Ποια και τι τύπου ευρετήρια υπάρχουν στα S.sid, Y.sid, Y.pid, P.pid, S.city, P.price. Στατιστικά για την κατανομή τιμών

Βελτιστοποίηση Πόσες διαφορετικές διατάξεις συνδέσμων (joins) ένας τέτοιος βελτιστοποιητήςθα εξετάσει όταν αποφασίζει πως θα εκτελεστεί το ερώτημα και ποιες? ΜΟΝΟ αριστεροβαθείς pid= pid sid=sid (( S join Y ) join P) και >< >< (( Y join P ) join S ) sid=sid pid= pid P >< >< S S Y P Y

Βελτιστοποίηση Ποια ευρετήρια είναι ενδεχομένως χρήσιμα στον υπολογισμό του ερωτήματος. Ένα ταξινομημένο ευρετήριο στο P.price θα ήταν χρήσιμο (range retrieval) Επίσης, B+ - δενδρικά ευρετήρια στα Y.sid, Y.pid, P.pid για τη χρήση του αλγορίθμου sort-merge

Βελτιστοποίηση Πώς επηρεάζονται τα πλάνα εκτέλεσης από την πρόσθεση ενός ORDER BY sname στο ερώτημα? O βελτιστοποιητής θα πρέπει να εξετάσει πλάνα εκτέλεσης που αφήνουν το sname ταξινομημένο (παράπλευρη επιτυχία), αλλιώς θα πρέπει να έχει πλάνα εκτέλεσης που στο τέλος ταξινομούν απευθείας στο sname.