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

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

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

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

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

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

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

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

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

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

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

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

Lecture 23: Functional Dependencies and Normalization

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

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

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

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

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

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

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

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

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

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

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

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

Lecture 14: SQL DML I

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

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

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

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


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

Lecture 22: Functional Dependencies and Normalization

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

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

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

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

Lecture 21: Functional Dependencies and Normalization

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

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

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

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

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

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

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

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

Lecture 21: Functional Dependencies and Normalization

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

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

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

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


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

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

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

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

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

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

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

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

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

Βάσεις Δεδομένων Ι Εξεταστική Περίοδος Φεβρουαρίου 2006

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Lecture 15: SQL DML II

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

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

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

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

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

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

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

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

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

Σχεδίαση Βάσεων Δεδομένων

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

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

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

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

Entity-Relationship Model (Chen) Οντολογικό Σχεσιακό Μοντέλο

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

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

Transcript:

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 1.-/30 2.-/20 3.-/20 4.-/30 ΣΥΝΟΛΟ/100 ΟΝΟΜΑΤΕΠΩΝΥΜΟ ΑΡΙΘΜΟΣ ΜΗΤΡΩΟΥ BΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΕΞΕΤΑΣΗ ΣΕΠΤΕΜΒΡΙΟΥ 2014 Ι. Βασιλείου ----------------------------------------------------------------------------------------------------- ΘΕΜΑ 1 -- ΣΧΕΣΙΑΚΟ ΜΟΝΤΕΛΟ ΚΑΙ ΓΛΩΣΣΕΣ [30] Θεωρήστε τη βάση δεδοµένων ΕΠΙΧΕΙΡΗΣΗ (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) 1

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 (PROJECT) (WORKS_ON) π Pnumber Τελικό 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)) 2

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 from where group by Dname, sum(salary) EMPLOYEE, DEPARTMENT EMPLOYEE.DNumber = DEPARTMENT.DNumber 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 ) 3

ΘΕΜΑ 2.- ΣΧΕΣΙΑΚΟ ΜΟΝΤΕΛΟ ΚΑΙ ΚΑΝΟΝΙΚΟΠΟΙΗΣΗ [20] 2Α.- Θεωρείστε το Σχήµα 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 } 1. ABà C, ACà B, BCàA - ήδη είναι µια ελάχιστη κάλυψη 2. Είναι σε BCNF διότι τα AB, AC και BC είναι όλα υποψήφια κλειδιά στη σχέση. 3. Είναι ήδη σε µορφή BCNF. (ii) {A, B, C, E, G} 1. ABà C, ACà B, BCàA, EàG. - ήδη είναι µια ελάχιστη κάλυψη. 2. Tα ABE, ACE και BCE είναι όλα υποψήφια κλειδιά. Αλλά δεν είναι ούτε 2ΝF γιατί το Ε είναι υποσύνολο των κλειδιών και ισχύει η EàG. Είναι σε 1NF. 3. Η αποσύνθεση σε ABC, ABE και EG είναι BCNF. (iii) {A, C, E, H} 1. Δεν υπάρχουν λειτουργικές εξαρτήσεις ήδη µια ελάχιστη κάλυψη. 2. Το κλειδί είναι η ίδια η ACEH 3. Είναι σε µορφή BCNF. 4

2Β.- Έστω τα παρακάτω δύο σύνολα λειτουργικών εξαρτήσεων F1 = { A à C, AB à C, D à AC, D à E } F2 = { A à BC, D à AE } Δείξτε ότι είναι ισοδύναµα (δηλαδή, F1 + = F2 + ) Ένας τρόπος για να δειχθεί αυτό είναι να υπολογιστούν τα δύο κλεισίµατα των δύο συνόλων και να φανεί ότι είναι ίδια. Ένας άλλος ευκολότερος τρόπος είναι να γίνουν ορισµένοι µετασχηµατισµοί / απλοποιήσεις χρησιµοποιώντας τους κανόνες Armstrong και να φανεί ότι τα δύο σύνολα εξαρτήσεων είναι ουσιαστικά τα ίδια. Υπενθυµίζονται ορισµένοι κανόνες που ισχύουν: Αν Υ υποσύνολο του Χ, τότε Χ à Υ (αντανακλαστικότητα) Αν Χ à Υ ισχύει, τότε ΧΖ à ΥΖ (προσαύξηση) Αν Χ à Υ και Υà Ζ, τότε Χ à Ζ (µεταβατικότητα) Αν Χ à Υ και Χ à Ζ, τότε Χ à ΥΖ (ένωση) Αν Χ à ΥΖ, τότε Χ à Υ και Χ à Ζ (αποσύνθεση) Αν Χ à Υ και ΖΥ à Ρ, τότε 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 5

Το F1 τώρα έγινε: 1.- A à Β, 2.- A à C 3.- D à A 4.- D à E Που προφανώς είναι το ίδιο µε το F2 (εφαρµόζοντας τον κανόνα ένωσης) ΘΕΜΑ 3.- ΕΥΡΕΤΗΡΙΑ - ΒΕΛΤΙΣΤΟΠΟΙΗΣΗ [20] Θεωρείστε το παρακάτω Σχεσιακό Σχήµα και το 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 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 Server) για να επιλέξει ένα καλό πλάνο εκτέλεσης για το συγκεκριµένο 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 ). 6

(γ) Ποια ευρετήρια είναι ενδεχοµένως χρήσιµα στον υπολογισµό του ερωτήµατος. Αιτιολογείστε σύντοµα την απάντησή σας. Ένα ταξινοµηµένο ευρετήριο στο P.price θα ήταν χρήσιµο (range retrieval). Επίσης, B+ - δενδρικά ευρετήρια στα Y.sid, Y.pid, P.pid για τη χρήση του αλγορίθµου sort-merge. (δ) Πώς επηρεάζονται τα πλάνα εκτέλεσης από την πρόσθεση ενός ORDER BY sname στο ερώτηµα? O βελτιστοποιητής θα πρέπει να εξετάσει πλάνα εκτέλεσης που αφήνουν το sname ταξινοµηµένο (παράπλευρη επιτυχία), αλλιώς θα πρέπει να έχει πλάνα εκτέλεσης που στο τέλος ταξινοµούν απευθείας στο sname. ΘΕΜΑ 24 -- ΜΟΝΤΕΛΛΟΠΟΙΗΣΗ [30] Μια εταιρεία µεταφορών, ονοµαζόµενη ΚΟΥΒΑΛΑ, µεταφέρει αγαθά για µια µεγάλη αλυσίδα supermarkets, που ονοµάζεται ΠΑΡΕΚΟΣΜΕ. Τα φορτηγά της ΚΟΥΒΑΛΑ παραλαµβάνουν αγαθά από αποθήκες και τα παραδίνουν σε συγκεκριµένα καταστήµατα (supermarkets). Ένα φορτηγό είναι δυνατόν να µεταφέρει περισσότερες τις µια αποστολές (σύνολο αγαθών για ένα κατάστηµα) σε ένα απλό ταξίδι (ο αριθµός ταξιδιού προσδιορίζει µονοσήµαντα το ταξίδι) και παραδίδει αυτές τις αποστολές σε µια σειρά από supermarkets. Κάθε αποστολή αναγνωρίζεται από ένα ΑριθµοΑποστολής και έχει άλλες πληροφορίες, όπως όγκο αποστολής, βάρος, προορισµός, κλπ. Τα φορτηγά έχουν διαφορετικές δυναµικότητες και όσον αφορά τον όγκο αγαθών που χωρούν, αλλά και το βάρος που µπορούν να µεταφέρουν. Μια βάση δεδοµένων, που θα χρησιµοποιηθεί και από τις δύο εταιρείες, είναι υπό σχεδιασµό για να κρατάει στοιχεία σχετικά µε την χρήση των φορτηγών καθώς και τις αποστολές που γίνονται. Η βάση δεδοµένων θα χρησιµοποιηθεί για τον προγραµµατισµό των φορτηγών και για έγκαιρες παραδόσεις αγαθών στα πολυκαταστήµατα (supermarkets). 7

4Α.- Κατασκευάστε ένα διάγραµµα οντότητας-σχέσης για τη µοντελοποίηση των ανωτέρω. Το διάγραµµα πρέπει να είναι πλήρες υπό την έννοια ότι όλες οι ιδιότητες των οντοτήτων-σχέσεων πρέπει να δείχνονται. (ΕΛΑΧΙΣΤΗ) ΑΠΟΘΗΚΕΣ Ν Ξεκινουν_απο Μ Ν Φορτηγά-που 1 ΤΑΞΙΔΙΑ Χρησιµοποιούνται ΦΟΡΤΗΓΑ 1 Περιλαµβανει Ν ΑΠΟΣΤΟΛΕΣ Ν Προορισµος Μ ΚΑΤΑΣΤΗΜΑΤΑ 8

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