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

Σχετικά έγγραφα
BΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΕΞΕΤΑΣΗ ΦΕΒΡΟΥΑΡΙΟΥ 2005


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΕΣΔ 232: ΟΡΓΑΝΩΣΗ ΔΕΔΟΜΕΝΩΝ ΣΤΗΝ ΚΟΙΝΩΝΙΑ ΤΗΣ ΠΛΗΡΟΦΟΡΙΑΣ. Ακαδημαϊκό Έτος , Εαρινό Εξάμηνο Διδάσκων Καθ.: Νίκος Τσαπατσούλης

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

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

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

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

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

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

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

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

Σχεσιακό Μοντέλο. Εισαγωγή. Βάσεις εδοµένων : Σχεσιακό Μοντέλο 1

Σχεδιασμός μιας εφαρμογής ΒΔ: Βήματα. 1. Συλλογή και Ανάλυση Απαιτήσεων(requirement analysis)

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

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

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

Ένας απλός τρόπος αναπαράστασης δεδομένων: ένας διδιάστατος πίνακας που λέγεται σχέση Γνωρίσματα

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

Ένας απλός τρόπος αναπαράστασης δεδομένων: ένας διδιάστατος πίνακας που λέγεται σχέση Γνωρίσματα

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

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

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

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

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

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

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

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

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

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

Σχεδιασμός μιας Β : Βήματα

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

Μετατροπή Σχήματος Ο/Σ σεσχεσιακό

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

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

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

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

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

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

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

Μετατροπή Σχήματος Ο/Σ σε Σχεσιακό

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

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

Μοντέλο Οντοτήτων-Συσχετίσεων

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

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

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

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

Η SQL ως γλώσσα ερωτημάτων. Υπενθυμίζουμε: Σχέση = Πίνακας Πλειάδα = Εγγραφή = Γραμμή (Πίνακα) Πεδίο = Γνώρισμα (Σχέσης) = Στήλη (Πίνακα)

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

Κανονικές Μορφές. Τι συμβαίνει με το (πρωτεύον) κλειδί και τις συναρτησιακές εξαρτήσεις; Παράδειγμα 1. Παράδειγμα 2

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

Μετατροπή Σχήµατος Ο/Σ σε Σχεσιακό

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

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

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

Σχεσιακό Μοντέλο Περιορισμοί Μετατροπή ER σε Σχεσιακό Παράδειγμα.. Εργαστήριο Βάσεων Δεδομένων. Relational Model

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

Θέματα ανακεφαλαίωσης

Συναρτησιακές Εξαρτήσεις και Κανονικοποίηση

2. Εννοιολογική Μοντελοποίηση Δεδομένων

Lecture 21: Functional Dependencies and Normalization

Σχεδίαση και λειτουργία βάσης δεδομένων Το παράδειγμα της μαιευτικής κλινικής Ευάγγελος Καρβούνης

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

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

Εισαγωγή. Σχεδιασµός µιας Β

ΟΝΟΜΑΤΕΠΩΝΥΜΟ : Αντικείμενα: Βάσεις δεδομένων, σχέσεις μεταξύ πινάκων, ερωτήματα, φόρμες και αναφορές.

Σχεδιασµός µιας Β. Ένας απλός τρόπος αναπαράστασης δεδοµένων: ένας διδιάστατος πίνακας που λέγεται σχέση Γνωρίσµατα

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

Σχεδιασµός µιας Β. Εισαγωγή. Μετατροπή σε σχεσιακό -> είσοδο σε ένα Σ Β. Εισαγωγή. Ιδέες Ο/Σ Σχέσεις Σχεσιακό Σ Β

Μετατροπή Σχήματος Ο/Σ σεσχεσιακό

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

Πανεπιστήμιο Πειραιώς, Τμήμα Πληροφορικής

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

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ασκήσεις και ερωτήσεις

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

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

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

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

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

Transcript:

ΟΝΟΜΑ Αρ. Μητρώου 1 2 3 ΣΥΝ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 1 BΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΕΞΕΤΑΣΗ 2011-2012 (Σεπτεμβρίου) ΣΗΜΕΙΩΣΗ: Οι απαντήσεις δίνονται στα κενά μεταξύ ερωτήσεων! Διδάσκων: Ι. Βασιλείου ----------------------------------------------------------------------------------------------------- ΘΕΜΑ 1.- ΣΧΕΣΙΑΚΟ ΜΟΝΤΕΛΟ ΚΑΙ ΓΛΩΣΣΕΣ [30] Θεωρήστε την παρακάτω βάση δεδομένων ΠΙΛΟΤΟΣ(Όνομα, Πόλη, Ώρες-Πτήσης) ΠΕΤΑΕΙ(Όνομα, Αεροσκάφος, Μισθός) ΑΝΗΚΕΙ(Αεροσκάφος, Αεροπορική-Εταιρεία, Πόλη-Εγγραφής) (α) Γράψτε στη γλώσσα SQL τα ερωτήματα (queries). [10] i.- Βρες τα ονόματα των πιλότων που πετούνε αεροσκάφη με πόλη εγγραφής την ίδια με αυτή που μένουν. ii.- Βρες τα ονόματα των πιλότων που έχουν μεγαλύτερο μισθό από κάθε πιλότο της εταιρείας BLA ΛΥΣΗ: i. SELECT P.Όνομα FROM ΠΙΛΟΤΟΣ as P, ΠΕΤΑΕΙ as Q, ΑΝΗΚΕΙ as A WHERE (P.Όνομα = Q.Όνομα) AND (Q.Αεροσκάφος = A. Αεροσκάφος) AND (P.Πόλη = Α.Πόλη-Εγγραφής) ii. SELECT DISTINCT P.Όνομα FROM ΠΕΤΑΕΙ as P WHERE P.Μισθός > (SELECT max(r.μισθός) FROM ΠΕΤΑΕΙ as R, ΑΝΗΚΕΙ as A WHERE (R.Αεροσκάφος = A. Αεροσκάφος) AND (A.Αεροπορική-Εταιρία = BLA ) GROYP BY R. Όνομα )

//Αν κάθε ΠΙΛΟΤΟΣ πετάει περισσότερα από 1 Αεροπλάνα και για καθένα παίρνει διαφορετικό μισθό θέλουμε το άθροισμα; // SELECT DISTINCT P.Όνομα FROM ΠΕΤΑΕΙ as P GROUP BY P.Όνομα HAVING sum(q.μισθός) > all(select sum(r.μισθός) as TotalM FROM ΠΕΤΑΕΙ as R, ΑΝΗΚΕΙ as A WHERE (R.Αεροσκάφος = A. Αεροσκάφος) AND (A.Αεροπορική-Εταιρία = BLA ) GROYP BY R. Όνομα ) // ή SELECT DISTINCT P.Όνομα FROM ΠΕΤΑΕΙ as P GROUP BY P.Όνομα HAVING sum(q.μισθός) > (SELECT max(totalm) FROM (SELECT sum(r.μισθός) as TotalM FROM ΠΕΤΑΕΙ as R, ΑΝΗΚΕΙ as A WHERE (R.Αεροσκάφος = A. Αεροσκάφος) AND (A.Αεροπορική-Εταιρία = BLA ) GROYP BY R. Όνομα ) ) (β) [10] Γράψτε σε σχεσιακή άλγεβρα τα ερωτήματα (queries). i.- Βρες τα ονόματα των πιλότων που πετούνε αεροσκάφη με πόλη εγγραφής την ίδια με αυτή που μένουν. ii.- Βρες τα ονόματα των πιλότων που έχουν μεγαλύτερο μισθό από 200000 και πετούνε το αεροσκάφος ALB. ΛΥΣΗ: i. π ΠΙΛΟΤΟΣ.Όνομα ( σ (ΠΙΛΟΤΟΣ.Πόλη = ΑΝΗΚΕΙ.Πόλη-Εγγραφής) ( ΠΙΛΟΤΟΣ >< Όνομα ΠΕΤΑΕΙ >< Αεροσκάφος ΑΝΗΚΕΙ) ) ii. δ ( π ΠΕΤΑΕΙ.Όνομα ( σ (ΑΝΗΚΕΙ.Εταιρία = BLA ) Λ (ΠΕΤΑΕΙ.Μισθός > 200000) ( ΠΕΤΑΕΙ >< Αεροσκάφος ΑΝΗΚΕΙ) ) ) //ή με division, αντί για select distinct: (π ΠΕΤΑΕΙ.Όνομα (σ (ΠΕΤΑΕΙ.Μισθός > 200000) ΠΕΤΑΕΙ )) (π ΑΝΗΚΕΙ.Αεροσκάφος ( σ (ΑΝΗΚΕΙ.Εταιρία = BLA ) ΑΝΗΚΕΙ )) 2

(γ) [10] Θεωρείστε την παραπάνω Βάση Δεδομένων: i. Δώστε ένα παράδειγμα μίας χρήσιμης όψης / προβολής (VIEW) στη σχέση ΠΙΛΟΤΟΣ (χρησιμοποιώντας την SQL), στην οποία επιτρέπεται να γίνουν μεταβολές (ενημερώσεις, διαγραφές, εισαγωγές). ii. Δώστε ένα παράδειγμα μίας χρήσιμης όψης στη σχέση ΠΙΛΟΤΟΣ, στην οποία ΔΕΝ επιτρέπεται να γίνουν ενημερώσεις σε κάποιο γνώρισμα. ΛΥΣΗ: i. CREATE VIEW V1 as SELECT P.Όνομα, P.Ώρες-Πτήσης FROM ΠΙΛΟΤΟΣ as P WHERE (P.Ώρες-Πτήσης > 50) ii. CREATE VIEW V2 as SELECT P.Όνομα, P.Πόλη, count(q.αεροσκάφος), sum(q.μισθός) FROM ΠΙΛΟΤΟΣ as P, ΠΕΤΑΕΙ as Q WHERE (P.Όνομα = Q.Όνομα) AND (Q.Μισθός > 5000) GROUP BY P.Όνομα, P.Πόλη 3

ΘΕΜΑ 2 ΓΕΝΙΚΕΣ ΕΡΩΤΗΣΕΙΣ -ΚΑΝΟΝΙΚΟΠΟΙΗΣΗ-ΦΥΣΙΚΟΣ ΣΧΕΔΙΑΣΜΟΣ - ΒΕΛΤΙΣΤΟΠΟΙΗΣΗ [35] (α) [12] Κανονικοποίηση Θεωρείστε το Σχήμα 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 } Για κάθε ένα από τα παρακάτω σύνολα γνωρισμάτων (ι) {Α, Β, C } (ii) {A, B, C, E, G} (iii) {A, C, E, H } να κάνετε τρία πράγματα: (1) Υπολογίστε το σύνολο των εξαρτήσεων που ισχύουν για το συγκεκριμένο σύνολο γνωρισμάτων και διατυπώστε μια (ελάχιστη) κανονική κάλυψη του (2) Αναγνωρίστε αν το σύνολο γνωρισμάτων ικανοποιεί την κανονική μορφή BCNF, (3) αν το σύνολο δεν είναι σε BCNF, τότε επιδιώξτε μια αποσύνθεση σε ένα σύνολο από BCNF σχήματα που διατηρούν τις εξαρτήσεις. Υπενθυμίζεται ο ορισμός της κανονικής μορφής BCNF (εάν και μόνο εάν για κάθε Χ Υ που ισχύει τότε ένα εκ των δύο συμβαίνει: είτε το Χ Υ είναι τετριμμένη λειτουργική εξάρτηση ή το Χ είναι υπερκλειδί) ΛΥΣΗ (ι) {Α, Β, C } (ii) {A, B, C, E, G} 4 1. AB C, AC B, BC A - ήδη είναι μια ελάχιστη κάλυψη 2. Είναι σε BCNF διότι τα AB, AC και BC είναι όλα υποψήφια κλειδιά στη σχέση. 3. Είναι ήδη BCNF. 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. (β) [13] Σχεδίαση Φυσικού Σχήματος Θεωρήστε ένα σχεσιακό σύστημα διαχείρισης βάσεων δεδομένων που περιέχει τις εξής δύο σχέσεις: Athlete (αθλητές) και Team (ομάδες). Athlete(id, name, age, salary, tname) Team(tname, league) Ο πίνακας Athlete έχει 1000 πλειάδες και κάθε πλειάδα έχει σταθερό μήκος 500 bytes. Το πρωτεύον κλειδί id έχει μήκος 40 bytes. Ο πίνακας Team έχει 100 πλειάδες και κάθε πλειάδα έχει μήκος 200 bytes. Το πρωτεύον κλειδί tname έχει μήκος 20 bytes. Κάθε μπλοκ έχει μέγεθος 8Κ (8192) bytes, από τα οποία τα 192 bytes δεσμεύονται για την κεφαλίδα του μπλοκ. Μια εγγραφή δε μπορεί να επεκτείνεται σε περισσότερα του ενός μπλοκ. Όλες οι εγγραφές του πίνακα Athlete αποθηκεύονται σειριακά στο δίσκο, βάσει του id. Ομοίως, όλες οι εγγραφές του πίνακα Team αποθηκεύονται σειριακά στο δίσκο, βάσει του tname. Υποθέστε τα εξής: - Κάθε δείκτης σε μπλοκ έχει μέγεθος 6 bytes. - Κάθε δείκτης σε εγγραφή έχει μέγεθος 8 bytes. - Μια εγγραφή ευρετηρίου δεν επεκτείνεται σε περισσότερα του ενός μπλοκ. (β1) (9 μονάδες) Υποθέστε ότι θέλουμε να δημιουργήσουμε ένα πρωτεύον ευρετήριο INDEX1 στο Athlete.id. (ι) Χρησιμοποιώντας ένα πυκνό (dense) ευρετήριο, ποιος είναι ο ελάχιστος αριθμός μπλοκ που απαιτούνται για το INDEX1; (ιι) Χρησιμοποιώντας ένα αραιό (sparse) ευρετήριο, ποιος είναι ο ελάχιστος αριθμός μπλοκ που απαιτούνται για το INDEX1; Λύση (β1): (ι) Κάθε εγγραφή του πυκνού ευρετηρίου καταλαμβάνει 40+8=48 bytes. Άρα σε ένα μπλοκ χωράνε floor((8192-192)/48)=166 εγγραφές ευρετηρίου και συνεπώς ο ελάχιστος αριθμός μπλοκ που απαιτούνται για το ευρετήριο είναι ceiling(1000/166) = 7 μπλοκ. 5

(ιι) Στην περίπτωση αραιού ευρετηρίου, κάθε εγγραφή καταλαμβάνει 40+6=46 bytes. Άρα σε ένα μπλοκ χωράνε floor((8192-192)/46)=173 εγγραφές ευρετηρίου. Επειδή έχουμε αραιό ευρετήριο, θα έχουμε μια εγγραφή ευρετηρίου για κάθε μπλοκ της σχέσης Athlete. Σε ένα μπλοκ χωράνε (8192-192)/500=16 πλειάδες της σχέσης Athlete. Άρα, για να αποθηκεύσουμε ολόκληρη τη σχέση Athlete, χρειαζόμαστε ceiling(1000/16)=63 μπλοκ. Συνεπώς ο ελάχιστος αριθμός μπλοκ που απαιτούνται για το αραιό ευρετήριο είναι ceiling(63/173)=1 μπλοκ. (β2) (4 μονάδες) Υποθέστε ότι θέλουμε να δημιουργήσουμε ένα δευτερεύον ευρετήριο INDEX2 στο Team. league. (ι) Θα είχε νόημα να είναι το INDEX2 πυκνό (dense) ευρετήριο; Εξηγήστε την απάντησή σας. (ιι) Θα είχε νόημα να είναι το INDEX2 αραιό (sparse) ευρετήριο; Εξηγήστε την απάντησή σας. Λύση (β2): (ι) Ναι, δεδομένου ότι πρόκειται για δευτερεύον ευρετήριο σε μη πρωτεύον γνώρισμα, θα χρειαστούμε ένα δείκτη ευρετηρίου για κάθε πλειάδα της σχέσης. (ιι) Όχι, διότι οι εγγραφές του πίνακα Team δεν είναι αποθηκευμένες στο δίσκο σειριακά βάσει του γνωρίσματος Team.league, αλλά βάσει του Team.tname. (γ) [10] Βελτιστοποίηση Ερωτημάτων Θεωρείστε το παρακάτω σχεσιακό σχήμα (με τα πρωτεύοντα κλειδιά υπογραμμισμένα): MUSICIAN (mid, name, instrument, city, age, company) SONG (sid, title, artist, composer, genre) PARTICIPATES (mid, sid, recording_date) Όπου τα mid και sid είναι ξένα κλειδιά αναφερόμενα στις MUSICIAN και SONG αντίστοιχα. Αυτές οι σχέσεις έχουν τα ακόλουθα χαρακτηριστικά: Η σχέση MUSICIAN έχει 20.000 πλειάδες με 40 πλειάδες σε κάθε σελίδα δίσκου. ΝKeys(instrument) για τη σχέση MUSICIAN είναι 200 (δηλαδή υπάρχουν 200 διακριτές τιμές για το γνώρισμα instrument). NKeys(age) για τη MUSICIAN είναι 50. Η σχέση SONG έχει 1.000 πλειάδες με 80 πλειάδες ανά σελίδα. Η σχέση PARTICIPATES έχει 80.000 πλειάδες με 100 πλειάδες ανά σελίδα. 6

Έχουμε ορίσει τα παρακάτω ευρετήρια: Ένα ευρετήριο κατακερματισμού στο mid της MUSICIAN. Ένα συσταδοποιημένο Β+ δεντρικό ευρετήριο στο instrument της MUSICIAN. Ένα μη-συσταδοποιημένο Β+ δεντρικό ευρετήριο στο age της MUSICIAN. Υποθέστε ότι μια καταχώρηση ευρετηρίου έχει το μισό μέγεθος μιας πλειάδας δεδομένων. (γ1) (5 μονάδες) Δώστε (i) το πιο αποδοτικό πλάνο εκτέλεσης του παρακάτω ερωτήματος και (ii) το κόστος σε αριθμό σελίδων που προσπελαύνονται για την εκτέλεση του πλάνου. Στην απάντηση σας διευκρινίστε εάν και ποιο(-α) ευρετήριο(- α) χρησιμοποιείται(-ούνται). Περιγράψτε λεπτομερώς όποια επιπλέον υπόθεση κάνετε. Query a: SELECT * FROM MUSICIAN WHERE instrument = Guitar' AND age = 30 Λύση (γ1): Υποθέστε μια ομοιόμορφη κατανομή των μουσικών σε μουσικά όργανα και σε ηλικιακές ομάδες. H σχέση MUSICIAN έχει ceiling(20.000/40)=500 σελίδες. Η επιλογή στο γνώρισμα instrument έχει την μεγαλύτερη επιλεκτικότητα (1/200) και αφού το αντίστοιχο ευρετήριο είναι συσταδοποιημένο αρκεί να διαβάσουμε ένα πολύ μικρό μέρος των πλειάδων της σχέσης ceiling(500/200), συν το κόστος να διατρέξουμε το δεντρικό ευρετήριο από την ρίζα και να προσπελάσουμε κάποιες από τις σελίδες-φύλα του. Πλάνο: σάρωση του ευρετηρίου (index scan) στο instrument με «on the fly» φιλτράρισμα στο age. Μέγεθος του Β+ δέντρου στο instrument: Επειδή έχουμε συσταδοποιημένο ευρετήριο, η MUSICIAN αναγκαστικά πρέπει να είναι ταξινομημένη ως προς το instrument. Έτσι το Β+ δεντρικό ευρετήριο έχει 200 δείκτες προς τις σελίδες της σχέσης (ένα δείκτη ευρετηρίου προς κάθε ξεχωριστή τιμή του γνωρίσματος). Δεδομένου ότι μια καταχώρηση ευρετηρίου έχει το μισό μέγεθος μιας πλειάδας δεδομένων, σε κάθε σελίδα χωράνε 80 Index entries. Επομένως το Β+ δένδρο θα έχει ceiling(200/80) = 3 φύλλα και 1 ρίζα. Total cost: 2 + ceiling(500/200) = 5. (γ2) (5 μονάδες) Υποθέτοντας ομοιόμορφη κατανομή των τιμών και ανεξαρτησία 7

των στηλών, εκτιμήστε τον αριθμό των πλειάδων που επιστρέφονται από το παρακάτω ερώτημα. Query b: SELECT * FROM MUSICIAN M, SONG S, PARTICIPATES P WHERE M.mid = P.mid AND S.sid = P.sid Λύση (γ2): Η μέγιστη πληθικότητα της επερώτησης είναι M x S x P =20.000x1.000x80.000 = 16x10 11 Reduction Factors: 1/20000 for M.mid = P.mid, 1/1000 for S.sid = P.sid Άρα, ο αριθμός των επιστρεφόμενων πλειάδων είναι (1/20.000)(1/1.000)( 16x10 11 ) = 80.000. Μια απλούστερη λύση είναι να θεωρήσουμε μια σύζευξη βασισμένη σε εξωτερικά κλειδιά: για κάθε πλειάδα στη PARTICIPATES, υπάρχει μόνο μια πλειάδα που ταιριάζει από τη MUSICIAN και μια από τη SONG. Άρα το μέγεθος του αποτελέσματος είναι 80.000. 8

ΘΕΜΑ 3. -- ΜΟΝΤΕΛΛΟΠΟΙΗΣΗ [35] Θέλετε να δημιουργήσετε μια βάση δεδομένων για την Βιομηχανία του ΚΙΝΗΜΑΤΟΓΡΑΦΟΥ. Θα πρέπει να αποθηκευτούν πληροφορίες για: - τις ΤΑΝΙΕΣ που δημιουργούνται (π.χ., Τίτλος, Έτος Παραγωγής, Είδος Ταινίας, Διάρκεια σε λεπτά, κλπ.) - τους ΗΘΟΠΟΙΟΥΣ (π.χ., όνομα, διεύθυνση, έτος γέννησης,, κλπ) - τις ΕΤΑΙΡΕΙΕΣ ή ΣΤΟΥΝΤΙΟ στις οποίες ανήκουν οι ταινίες (π.χ., Όνομα, Διεύθυνση, Πρόεδρος, κλπ.) i. Δώστε το διάγραμμα οντοτήτων-συσχετίσεων για τη βάση αυτή. Ποια είναι τα κλειδιά για τη κάθε οντότητα? ii. Επεκτείνοντας τις πληροφορίες για τη Βάση Δεδομένων, θεωρείστε την έννοια του ΣΥΜΒΟΛΑΙΟΥ μιας εταιρείας με έναν ηθοποιό για μια ταινία. Πως θα το παρουσιάσετε στο παραπάνω διάγραμμα? Σαν μια οντότητα ή μια συσχέτιση (μεταξύ ποιών οντοτήτων)? Πως γίνεται τώρα το διάγραμμα? iii. Προσπαθήσετε να επεκτείνετε ακόμη περισσότερο τη Βάση Δεδομένων εισάγοντας και νέες (λογικές και χρήσιμες) έννοιες. Για παράδειγμα, πως παρίστανται οι «συνέχειες» (sequel) των ταινιών (π.χ., Άρχοντας των Δακτυλιδιών 1 μετά το 2, κλπ.) Πως μπορούμε να χρησιμοποιήσουμε ISA ιεραρχίες (π.χ., είδη ταινιών), κλπ. iv. Δώστε την αντίστοιχη περιγραφή (schema) ολόκληρης της Βάσης Δεδομένων) στο σχεσιακό μοντέλο. Να γραφούν οι οποιεσδήποτε παραδοχές που κάνετε για τα παραπάνω (π.χ., μια ταινία ανήκει το πολύ σε ένα στούντιο, κλπ.) 9

i. E-R Τα κλειδιά είναι FILM: title ACTOR: ssn STUDIO: company-name. title year genre duration salary name year_of_birth age FILM Ν PLAYS Μ ACTOR Ν address phone OWNS street zipcode 1 STUDIO address president company-name street zipcode ΠΑΡΑΔΟΧΕΣ: - Σε όλες τις ταινίες παίζουν ηθοποιοί. - Κάθε ταινία ανήκει σε 1 εταιρία (studio). - Υπάρχουν ηθοποιοί που δεν έχουν παίξει ακόμα σε ταινία. - Ένας ηθοποιός μπορεί να έχει παίξει σε πολλές ταινίες. - Σε μια ταινία μπορούν να παίζουν πολλοί ηθοποιοί. - Ο τίτλος κάθε ταινίας είναι μοναδικός. - Το όνομα εταιρίας είναι μοναδικό. 10

ii. Συσχέτιση μεταξύ FILM, ACTOR, STUDIO. title year genre duration salary name year_of_birth age FILM Ν PLAYS Μ ACTOR Ν phone OWNS 1 STUDIO CONTRACT date street address zipcode address president company-name street zipcode iii. ISA για το είδος των ταινιών: FILM ISA COMEDY DRAMA SEQUEL ACTION ROMANCE Series_number ΠΑΡΑΔΟΧΕΣ: - Η συμμετοχή του FILM στην ISA είναι ολική. - Οι κατηγορίες δεν είναι ξένες μεταξύ τους (disjoint). Μια ταινία μπορεί να ανήκει σε περισσότερες από μία (π.χ. SEQUEL και ACTION). 11

iv. RELATIONAL FILM PLAYS ACTOR PK FK Title Year Duration Genre PK1,FK PK2,FK Salary PK1 Name Year-of-Birth Street Zipcode PK STUDIO Company President Street Zipcode CONTRACT PK1,FK PK2,FK PK3,FK Date PHONE PK1,FK PK2 number Or: since each FILM belongs to only one STUDIO: FILM PLAYS ACTOR PK FK Title Year Duration Genre PK1,FK PK2,FK Salary PK1 Name Year-of-Birth Street Zipcode PK STUDIO Company President Street Zipcode CONTRACT PK1,FK PK2,FK Date PHONE PK1,FK PK2 number 12

Thus, PLAYS and CONTRACT could be combined in one relation: FILM PLAYS ACTOR PK FK Title Year Duration Genre PK1,FK PK2,FK Salary Contract-date PK1 Name Year-of-Birth Street Zipcode PK STUDIO Company President Street Zipcode PHONE PK1,FK PK2 number 13