-----------------------------------------------------------------------------------------------------



Σχετικά έγγραφα
ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΟΝΟΜΑΤΕΠΩΝΥΜΟ ΑΡΙΘΜΟΣ ΜΗΤΡΩΟΥ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Lecture 23: Functional Dependencies and Normalization

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Lecture 14: SQL DML I

Lecture 22: Functional Dependencies and Normalization

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

Κανονικές Μορφές 8ο Φροντιστήριο. Βάρσος Κωνσταντίνος

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

Lecture 21: Functional Dependencies and Normalization

Η αναλυτική περιγραφή της γλώσσας SQL αποτελεί αντικείµενο των σελίδων που ακολουθούν. Η ΓΛΩΣΣΑ ΟΡΙΣΜΟΥ Ε ΟΜΕΝΩΝ

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

Lecture 21: Functional Dependencies and Normalization

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

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


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

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

Κεφάλαιο 5. Ορισµός Βάσεων εδοµένων µε SQL DDL - Άλλες Γλώσσες Σχεσιακών Βάσεων (QBE) Ι.Β. Σχεσιακές Γλώσσες Εµφύτευση / DDL Σελίδα 2.

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

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

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

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

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

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

Κανονικές Μορφές 8ο Φροντιστήριο. Βάρσος Κωνσταντίνος

Κεφάλαιο 5. Ορισµός Βάσεων εδοµένων µε SQL DDL - Άλλες Γλώσσες Σχεσιακών Βάσεων (QBE) Ι.Β. Σχεσιακές Γλώσσες Εµφύτευση / DDL Σελίδα 2.

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

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

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

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

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

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

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

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

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

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι. Ενότητα 7β: SQL (Πρακτική Εξάσκηση 1) Ευαγγελίδης Γεώργιος. Τμήμα Εφαρμοσμένης Πληροφορικής ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι

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

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

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

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

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

Συναρτησιακές Εξαρτήσεις Σχεδιασμός Βάσεων Δεδομένων

Lecture 15: SQL DML II

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι. Ενότητα 7α: SQL (NULL, Διαίρεση) Ευαγγελίδης Γεώργιος. Τμήμα Εφαρμοσμένης Πληροφορικής ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι

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

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

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

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

SQL: Αιτήματα. Κεφάλαιο 5. Database Management Systems, R. Ramakrishnan and J. Gehrke

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

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

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

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

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι. Ενότητα 5: SQL (Απλή SELECT) Ευαγγελίδης Γεώργιος. Τμήμα Εφαρμοσμένης Πληροφορικής ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι

Transcript:

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ BΑΣΕΙΣ Ε ΟΜΕΝΩΝ ΕΞΕΤΑΣΗ ΜΑΡΤΙΟΥ 2006 - ΛΥΣΕΙΣ Ι. Βασιλείου ----------------------------------------------------------------------------------------------------- ΘΕΜΑ 1 -- ΣΧΕΣΙΑΚΟ ΜΟΝΤΕΛΟ ΚΑΙ ΓΛΩΣΣΕΣ [20] Θεωρήστε τη βάση δεδοµένων ΕΠΙΧΕΙΡΗΣΗ (COMPANY), όπως καλύπτεται και στις διαφάνειες του µαθήµατος: 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) 1A.- Γράψτε σε Σχεσιακή Άλγεβρα (Relational Algebra) τα παρακάτω ερωτήµατα (queries). (α) Βρες τα ονόµατα των υπαλλήλων που δουλεύουν σε όλα τα έργα (retrieve the names of employees who work on every project) (β) Βρες τα ονόµατα των υπαλλήλων που δεν δουλεύουν σε κανένα έργο (retrieve the names of employees who do not work on any project) (α) Υπάλληλοι σε Εργα = π PΝumber,SSN (WORKS_ON) Ολα τα Εργα = π PΝumber (PROJECT) Υπάλλ. σε ολα τα εργα = π PΝumber,SSN (WORKS_ON) π Pnumber (PROJECT) Τελικό Query = π Name (EMPLOYEE) >< SSN=SSN (π Pnumber,SSN (WORKS_ON) π Pnumber (PROJECT)) >< (β) Ολοι οι υπάλληλοι = π SSN (EMPLOYEES) Ολοι οι υπάλληλοι που εργάζονται = π SSN (WORKS_ON) Τελικό query = π Name (EMPLOYEE) >< SSN=SSN (π SSN (EMPLOYEES) - π SSN (WORKS_ON)) >< 1

1Β.- Γράψτε σε SQL τις παρακάτω ερωτήµατα (queries). (α) Για κάθε Τµήµα, βρες το όνοµα του Τµήµατος και το συνολικό κόστος σε µισθούς για τους εργαζοµένους στο Τµήµα (for each Department, list the Department name and the total Salary - by all employees for that Department.) (β) Βρες τα ονόµατα και διευθύνσεις υπαλλήλων που δουλεύουν τουλάχιστον σε ένα έργο που εκτελείται (βρίσκεται) στα Πατήσια, για το οποίο το τµήµα που το ελέγχει δεν βρίσκεται στα Πατήσια (retrieve the names and addresses of employees who work on at least one project located in patisia but whose department has no location in patisia) (α) select Dname, sum(salary) from EMPLOYEE, DEPARTMENT where EMPLOYEE.DNumber = DEPARTMENT.DNumber group by DName (β) 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 where DEPT_LOCATION.DNumber= EMPLOYEE.DNumber and DLocation = patisia ) ΘΕΜΑ 2. -- ΜΟΝΤΕΛΛΟΠΟΙΗΣΗ [30] Μια εταιρεία µεταφορών, ονοµαζόµενη ΚΟΥΒΑΛΑ, µεταφέρει αγαθά για µια µεγάλη αλυσίδα supermarkets, που ονοµάζεται ΠΑΡΕΚΟΣΜΕ. Τα φορτηγά της ΚΟΥΒΑΛΑ παραλαµβάνουν αγαθά από αποθήκες και τα παραδίνουν σε συγκεκριµένα καταστήµατα (supermarkets). Ένα φορτηγό είναι δυνατόν να µεταφέρει περισσότερες τις µια αποστολές (σύνολο αγαθών για ένα κατάστηµα) σε ένα απλό ταξίδι (ο αριθµός ταξιδιού προσδιορίζει µονοσήµαντα το ταξίδι) και παραδίδει αυτές τις αποστολές σε µια σειρά από supermarkets. Κάθε αποστολή αναγνωρίζεται από ένα ΑριθµοΑποστολής και έχει άλλες πληροφορίες, όπως όγκο αποστολής, βάρος, προορισµός, κλπ. Τα φορτηγά έχουν διαφορετικές δυναµικότητες και όσον αφορά τον όγκο αγαθών που χωρούν, αλλά και το βάρος που µπορούν να µεταφέρουν. Μια βάση δεδοµένων, που θα χρησιµοποιηθεί και από τις δύο εταιρείες, είναι υπό σχεδιασµό για να κρατάει στοιχεία σχετικά µε την χρήση των φορτηγών καθώς και τις αποστολές που γίνονται. Η βάση δεδοµένων θα χρησιµοποιηθεί για τον προγραµµατισµό των φορτηγών και για έγκαιρες παραδόσεις αγαθών στα πολυκαταστήµατα (supermarkets). 2Α.- Κατασκευάστε ένα διάγραµµα οντότητας-σχέσης για τη µοντελοποίηση των ανωτέρω. 2

Το διάγραµµα πρέπει να είναι πλήρες υπό την έννοια ότι όλες οι ιδιότητες των οντοτήτων-σχέσεων πρέπει να δείχνονται. (ΕΛΑΧΙΣΤΗ) ΑΠΟΘΗΚΕΣ Ν Ξεκινουν_απο Μ Ν Φορτηγά-που 1 ΤΑΞΕΙ ΙΑ Χρησιµοποιούνται ΦΟΡΤΗΓΑ 1 Περιλαµβανει Ν ΑΠΟΣΤΟΛΕΣ Ν Προορισµος Μ ΚΑΤΑΣΤΗΜΑΤΑ ΑΠΟΘΗΚΕΣ ( Ονοµα, Τοποθεσία,...) ΤΑΞΕΙ ΙΑ (ΑριθµόςΤαξειδιού, Ηµεροµηνία,...) ΑΠΟΣΤΟΛΕΣ (ΑριθµόςΑποστολής, Βάρος, Ογκος,... ) ΦΟΡΤΗΓΑ (ΑριθµόςΦορτηγού, υναµικότηταβάρους, υναµογκου,...) ΚΑΤΑΣΤΗΜΑΤΑ (Ονοµα, ιεύθυνση,...) 2Β.- Κατασκευάστε την αντίστοιχη σχεσιακή βάση δεδοµένων, είτε παρουσιάζοντας ένα διάγραµµα (σχεσιακού) σχήµατος όπως στο Βιβλίο του µαθήµατος ή µε απλή παράθεση των Σχηµάτων Σχέσεων (φυσικά, µε όλα τα στοιχεία: ιδιότητες γνωρίσµατα, κλειδιά, κλπ.) Σηµείωση:: Για το σχεδιασµό µπορείτε να είτε να ΜΕΤΑΤΡΕΨΕΤΕ το E-R διάγραµµα (παραπάνω) σε ανάλογη σχεσιακή περιγραφή, ή να παρουσιάσετε το σχεσιακό µοντέλο απευθείας µε τα στοιχεία περιγραφής που δίνονται στην εκφώνηση. ΑΠΟΘΗΚΕΣ ( Ονοµα, Τοποθεσία,...) ΤΑΞΕΙ ΙΑ (ΑριθµόςΤαξειδιού, Ηµεροµηνία,.. ΑριθµόςΦορτηγού) ΑΠΟΣΤΟΛΕΣ (ΑριθµόςΑποστολής, Βάρος, Ογκος,... ΑριθµόςΤαξειδιού) ΦΟΡΤΗΓΑ (ΑριθµόςΦορτηγού, υναµικότηταβάρους, υναµογκου,...) ΚΑΤΑΣΤΗΜΑΤΑ (Ονοµα, ιεύθυνση,...) ΑΠΟΘΗΚΕΣ-ΤΑΞΕΙ ΙΑ(ΑριθµόςΤαξειδιού, ΟνοµαΑποθήκης ) ΚΑΤΑΣΤΗΜΑΤΑ-ΤΑΞΕΙ ΙΑ(ΑριθµόςΤαξειδιού, ΟνοµαΚαταστήµατος ) ΘΕΜΑ 3.- ΣΧΕΣΙΑΚΟ ΜΟΝΤΕΛΟ ΚΑΙ ΚΑΝΟΝΙΚΟΠΟΙΗΣΗ [25] 3

3Α.- Θεωρείστε το Σχήµα R µε τα γνωρίσµατα (attributes): A, B, C, D, E, G, H και τις λειτουργικές εξαρτήσεις (functional dependencies) που ισχύουν στο R :. F = { AB C, AC B, AD E, B D, BC A, E G } Για κάθε ένα από τα παρακάτω σύνολα γνωρισµάτων να κάνετε τρία πράγµατα: (α) Υπολογίστε το σύνολο των εξαρτήσεων που ισχύουν για το συγκεκριµένο σύνολο γνωρισµάτων και διατυπώστε µια (ελάχιστη) κανονική κάλυψη του (β) Αναγνωρίστε αν το σύνολο γνωρισµάτων ικανοποιεί την κανονική µορφή BCNF, (γ) αν το σύνολο δεν είναι σε BCNF, τότε επιδιώξτε µια αποσύνθεση σε ένα σύνολο από BCNF σχήµατα που διατηρούν τις εξαρτήσεις. (ι) {Α, Β, C } (ii) {A, B, C, E, G} (iii) {A, C, E, H } Υπενθυµίζεται ο ορισµός της κανονικής µορφής BCNF (εάν και µόνο εάν για κάθε Χ Υ που ισχύει τότε ένα εκ των δύο συµβαίνει: είτε το Χ Υ είναι τετριµµένη λειτουργική εξάρτηση ή το Χ είναι υπερκλειδί) (ι) {Α, Β, C } (α) AB C, AC B, BC A - ήδη είναι µια ελάχιστη κάλυψη (β) Είναι σε BCNF διότι τα AB, AC και BC είναι όλα υποψήφια κλειδιά στη σχέση. (γ) Είναι ήδη BCNF. (ii) {A, B, C, E, G} (a) AB C, AC B, BC A, E G. - ήδη είναι µια ελάχιστη κάλυψη. (b) Tα ABE, ACE και BCE είναι όλα υποψήφια κλειδιά. Αλλά δεν είναι ούτε 2ΝF γιατί το Ε είναι υποσύνολο των κλειδιών και ισχύει η E G. Είναι σε 1NF. (c) Η αποσύνθεση σε ABC, ABE και EG είναι BCNF. (iv) {A, C, E, H } (a) εν υπάρχουν λειτουργικές εξαρτήσεις ήδη µια ελάχιστη κάλυψη. (b) Το κλειδί είναι η ίδια η ACEH (c) Είναι σε µορφή BCNF. 3Β.- Έστω τα παρακάτω δύο σύνολα λειτουργικών εξαρτήσεων F1 = { A Β, AB C, D AC, D E } F2 = { A BC, D AE } είξτε ότι είναι ισοδύναµα (δηλαδή, F1 + = F2 + ) Ένας τρόπος για να δειχθεί αυτό είναι να υπολογιστούν τα δύο κλεισίµατα των δύο συνόλων και να φανεί ότι είναι ίδια. Ένας άλλος ευκολότερος τρόπος είναι να γίνουν ορισµένοι µετασχηµατισµοί / απλοποιήσεις χρησιµοποιώντας τους κανόνες Armstrong και να φανεί ότι τα δύο σύνολα εξαρτήσεων είναι ουσιαστικά τα ίδια. Υπενθυµίζονται ορισµένοι κανόνες που ισχύουν: Αν Υ υποσύνολο του Χ, τότε Χ Υ (αντανακλαστικότητα) Αν Χ Υ ισχύει, τότε ΧΖ ΥΖ (προσαύξηση) Αν Χ Υ και Υ Ζ, τότε Χ Ζ (µεταβατικότητα) Αν Χ Υ και Χ Ζ, τότε Χ ΥΖ (ένωση) 4

Αν Χ ΥΖ, τότε Χ Υ και Χ Ζ (αποσύνθεση) Αν Χ Υ και ΖΥ Ρ, τότε XΖ Ρ (ψευδο-µεταβατικότητα) Αν Χ Υ, τότε Χ Υ Ζ (τοµή συνόλων) Βάζουµε στη σειρά τις λειτουργικές εξαρτήσεις του F1. 1.- A Β, 2.- AB C 3.- D AC 4.- D E H 3.- µπορεί να αντικατασταθεί από 3.- D A και D C (αποσύνθεση) Το 2.- µπορεί να αντικατασταθεί (λόγω του 1.- )από το 2.- A C Αλλά τώρα ισχύει µε µεταβατικότητα (D A και A C άρα D C) συνεπώς το D C µπορεί να φύγει και το 3.- γίνεται: 3.- D A Το F1τώρα έγινε: 1.- A Β, 2.- A C 3.- D A 4.- D E Που προφανώς είναι το ίδιο µε το F2 (εφαρµόζοντας τον κανόνα ένωσης) 3Γ.- Αποδείξτε (χρησιµοποιώντας τους κανόνες ανωτέρω) ότι, Αν Χ Υ και Ζ Ρ, τότε ισχύει Χ ( Ζ Υ) ΥΡ (όπου το είναι η διαφορά συνόλων και το ΥΡ είναι ταυτόσηµο µε το Υ U Ρ ένωση συνόλων) 1.- Χ Υ (δεδοµένο) 2.- Ζ Ρ (δεδοµένο) 3.- Χ Υ Ζ (τοµή συνόλων και 1) 4.- ( Ζ Υ) ( Ζ Υ) (αντανακλαστικότητα) 5.- Χ ( Ζ Υ) (Υ Ζ) ( Ζ Υ) (προσαύξηση, 3 και 4) 6.- Χ ( Ζ Υ) Ζ (απλούστευση της 5) 7.- Χ ( Ζ Υ) Ρ (µεταβατικότητα, 6 και 2) 8.- Χ ( Ζ Υ) ΥΡ (ένωση, 1 και 7) ΘΕΜΑ 4.- ΕΥΡΕΤΗΡΙΑ - ΒΕΛΤΙΣΤΟΠΟΙΗΣΗ [25] 4Α. - Θεωρείστε το παρακάτω Σχεσιακό Σχήµα και το SQL ερώτηµα 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 5

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 (α) Τι πληροφορίες για τις παραπάνω Σχέσεις χρειάζεται ένας σοβαρός βελτιστοποιητής (όπως ο βελτιστοποιητής του System R) για να επιλέξει ένα καλό πλάνο εκτέλεσης για το συγκεκριµένο SQL Ερώτηµα? O βελτιστοποιητής χρειάζεται πληροφορίες όπως του ποιά ευρετήρια (indexes) υπάρχουν και τι τύπου στα S.sid, Y.sid, Y.pid, P.pid, S.city, P.price. Επίσης θα χριεαστεί στατιστικά για τη βάση δεδοµένων, όπως τις υψηλές / χαµηλές τιµές, κατανοµή τιµών κλπ. (β) Πόσες διαφορετικές διατάξεις συνδέσµων (joins) ένας τέτοιος βελτιστοποιητής θα εξετάσει όταν αποφασίζει πως θα εκτελεστεί το ερώτηµα και ποιες? (Υπόδειξη: διατάξεις αριστερού βάθους συνδέσµων left-deep plans) O βελτιστοποιητής θα εξετάσει µόνο δύο διατάξεις (αριστερού βάθους), συγκεκριµένα ((S join Y) join P) και (( Y join P ) join S ). (γ) Ποια ευρετήρια είναι ενδεχοµένως χρήσιµα στον υπολογισµό του ερωτήµατος. Αιτιολογείστε σύντοµα την απάντησή σας. Ένα ταξινοµηµένο ευρετήριο στο P.price θα ήταν χρήσιµο (range retrieval). Επίσης, B+ - δενδρικά ευρετήρια στα Y.sid, Y.pid, P.pid για τη χρήση του αλγορίθµου sort-merge. (δ) Πώς επηρεάζονται τα πλάνα εκτέλεσης από την πρόσθεση ενός ORDER BY sname στο ερώτηµα? O βελτιστοποιητής θα πρέπει να εξετάσει πλάνα εκτέλεσης που αφήνουν το sname ταξινοµηµένο (παράπλευρη επιτυχία), αλλιώς θα πρέπει να έχει πλάνα εκτέλεσης που στο τέλος ταξινοµούν απευθείας στο sname. 4Β.- Αποδείξτε την παρακάτω ισοδυναµία: X U (Y Z) = (X U Y) (X U Z) Όπου τα Χ, Υ, Ζ είναι σύνολα γνωρισµάτων (ιδιοτήτων), και U, είναι η Ένωση και Τοµή αντίστοιχα. Υπόδειξη είξτε ότι αν µια πλειάδα t ανήκει στο σύνολο που συγκροτεί το αριστερό σκέλος, τότε ανήκει και στο σύνολο στο δεξί σκέλος (και αντίστροφα). Έστω ότι η t ανήκει στο X U (Y Z), τότε το t ανήκει στο Χ ή το t ανήκει στο (Y Z). Αν το t ανήκει στο X τότε ισχύει ότι το t ανήκει και στο X U Y και στο X U Ζ, άρα το t ανήκει στο (X U Y) (X U Z) Αν το t ανήκει στο (Y Z). τότε ισχύει ότι το t ανήκει και στο Y και στο Ζ, άρα το t ανήκει και στο (X U Y) και στο (X U Z), συνεπώς και στην τοµή αυτών. Αντίστροφα, αν το t ανήκει στο (X U Y) (X U Z), συµπεραίνουµε ότι το t ανήκει και στο (X U Y) και στο (X U Z), άρα το t ανήκει στο Χ ή ανήκει και στο Υ και στο Ζ. Συνεπώς το t ανήκει στο X U (Y Z). 6