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



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

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

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


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

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

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

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

Κλείσιμο Συνόλου Γνωρισμάτων

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Lecture 21: Functional Dependencies and Normalization

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

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

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

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

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

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

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

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων

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

Εκπαιδευτικό Εργαλείο Κανονικοποίησης

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

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


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

Τελεστής Προβολής - Παράδειγμα. Π Πόλη, Εξάμηνο (Φοιτητές)

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

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

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

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΤΜΗΜΑ ΠΟΛΙΤΙΣΜΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΣ. Επιλέγει όλες τις πλειάδες, από μια σχέση R, που ικανοποιούν τη συνθήκη επιλογής.

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

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

ΤΑΞΙΝΟΜΗΣΗ ΑΠΟΤΕΛΕΣΜΑΤΩΝ ΕΡΩΤΗΜΑΤΟΣ

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

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

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

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


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

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

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

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

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

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

Ηλεκτρονικοί Υπολογιστές II

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

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

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

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

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

GROUP BY, HAVING, COUNT, MIN, MAX, SUM, AVG, ROLLUP.

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

Λογικός Σχεδιασμός Σχεσιακών Σχημάτων: Αποσύνθεση

Επαναληπτικές Ασκήσεις στα Σύνολα

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

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

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

PROJECT ΕΡΓΑΣΤΗΡΙΩΝ ΒΑΣΕΩΝ ΔΕΔΟΜΕΝΩΝ Ι. Τμήμα Μηχανικών Πληροφορικής Τ.Ε.

R-Trees, kd-trees, QuadTrees. Εαρινό Εξάμηνο Τμήμα Μηχανικών Η/Υ και Πληροϕορικής Πολυτεχνική Σχολή, Πανεπιστήμιο Πατρών

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


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

Lecture 24: Functional Dependencies and Normalization IV

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

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

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

Transcript:

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ BΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΕΞΕΤΑΣΗ ΦΕΒΡΟΥΑΡΙΟΥ 2005 ΛΥΣΕΙΣ Ι. Βασιλείου ----------------------------------------------------------------------------------------------------- Θεωρήστε την παρακάτω βάση δεδομένων employee (person-name, street, city) works (person-name, company-name, salary) company (company-name, city) manages (person-name, manager-name) (a) Δώστε μια παράσταση στη σχεσιακή άλγεβρα για τις παρακάτω επερωτήσεις (queries). ι.- Βρείτε τα ονόματα και πόλεις διαμονής όλων των εργαζομένων που δουλεύουν για τη BANK bla bla. iι.- Βρείτε τα ονόματα όλων των εργαζομένων που ζουν στην ίδια πόλη με την εταιρεία στην οποία δουλεύουν. ιιι.- Βρείτε όλες τις εταιρείες που βρίσκονται ΣΕ ΚΑΘΕ ΠΟΛΗ στην οποία βρίσκεται η BANK bla bla (υποθέτουμε ότι μια τράπεζα μπορεί να βρίσκεται σε πολλές πόλεις). 1

(b) Χρησιμοποιώντας τη SQL Ορίστε μια προβολή (όψη, view) που αποτελείται από το όνομα του διευθυντή (managername) και το μέσο μισθό όλων των εργαζομένων υπό την εποπτεία του. Εξηγήστε γιατί το σύστημα ΔΕΝ ΘΑ ΠΡΕΠΕΙ να επιτρέπει να εκφράζονται ενημερώσεις σε σχέση με αυτή την προβολή (όψη). CREATE VIEW salinfo AS SELECT manager-name, AVG(salary) FROM manages, m, works w, WHERE m.employee-name = w.employee-name GROUP BY manager-name Προφανώς δεν μπορούν να επιτραπούν ενημερώσεις στην προβολή αυτή, διότι δεν υπάρχει τρόπος να καθορισθεί πως θα αλλάξουν τα δεδομένα της βάσης στα οποία ορίζεται η προβολή. Για παράδειγμα αν ζητηθεί να αλλάξει ο μέσος μισθός των υπαλλήλων που έχουν διευθυντή τον SMITH σε 500, δεν υπάρχει τρόπος να βρεθεί η ανάλογη (σωστή) αλλαγή των μισθών των υπαλλήλων (ατομικά) ώστε να προκύψει το 500 ως μέσος όρος. (c) Σκεφτείτε το SQL ερώτημα: SELECT FROM WHERE p.a1 p, r1, r2 (p.a1 = r1.a1) OR ( p.a1 = r2.a1) Κάτω από ποιες συνθήκες το ερώτημα αυτό επιλέγει τιμές για το p.a1 που είναι στο r1 ή στο r2??? Εξετάστε προσεκτικά τις περιπτώσεις όπου ένα από τα r1, r2 είναι κενό. Το ερώτημα επιλέγει αυτές τις τιμές του p.a1 που είναι ίσες με κάποια τιμή είτε του r1.a1 ή του r2.a1 ΕΑΝ ΚΑΙ ΜΟΝΟΝ ΕΑΝ και το r1 και το r2 δεν είναι κενά. Σε περίπτωση που ένα ή και τα δύο από αυτά είναι κενό, τότε το καρτεσιανό γινόμενο των p, r1, r2 είναι κενό, άρα και το αποτέλεσμα του ερωτήματος είναι κενό. Φυσικά, αν το p είναι κενό τότε και το αποτέλεσμα του ερωτήματος είναι κενό. ΘΕΜΑ 2. -- ΜΟΝΤΕΛΟΠΟΙΗΣΗ [30] Το γραφείο εγγραφών ενός Πανεπιστημίου διατηρεί δεδομένα για τις παρακάτω οντότητες: (α) μαθήματα, συμπεριλαμβανόμενου του αριθμού, τίτλου, μονάδες, ύλη και προϋποθέσεων (β) προσφορές μαθημάτων, συμπεριλαμβανομένου του αριθμού, του έτους, του εξαμήνου, του αριθμού ενότητας, εισηγητών, ωρών, τάξεων κάθε μαθήματος (γ) μαθητές, συμπεριλαμβανομένου του κωδικού μαθητή, ονόματος και προγράμματος και (δ) εισηγητές, συμπεριλαμβανομένου του κωδικού, ονόματος, τμήματος και τίτλου. Επιπλέον, πρέπει να μοντελοποιηθούν κατάλληλα η ένταξη των μαθητών σε μαθήματα και οι βαθμοί που δίνονται στους μαθητές σε κάθε μάθημα. 1.- Κατασκευάστε ένα διάγραμμα οντότητας-σχέσης. Τεκμηριώστε όλες τις υποθέσεις που κάνετε για τους περιορισμούς απεικόνισης. 2.- Κατασκευάστε την αντίστοιχη σχεσιακή βάση δεδομένων 2

ΣΧΕΣΙΑΚΗ ΒΑΣΗ ΔΕΔΟΜΕΝΩΝ ΘΕΜΑ 3.- ΣΧΕΣΙΑΚΟ ΜΟΝΤΕΛΟ ΚΑΙ ΚΑΝΟΝΙΚΟΠΟΙΗΣΗ [15] (α) Αποδείξτε ότι ΚΑΘΕ σχέση με δύο γνωρίσματα (attributes) είναι σε κανονική μορφή BCNF (Boyce Codd Normal Form)---- Υπόδειξη: εξετάστε όλες τις περιπτώσεις ύπαρξης μη-τετριμμένων συναρτησιακών (λειτουργικών) εξαρτήσεων. Έστω ότι τα δύο γνωρίσματα είναι το Α και το Β. Σύμφωνα με τον ορισμό του BCNF, εξετάζουμε όλες τις περιπτώσεις. 1.- ΔΕΝ υπάρχουν μη-τετριμμένες FD. Τότε προφανώς έχουμε BCNF διότι μόνο οι μητετριμμένες FD μπορούν να καταστρατηγήσουν τη συνθήκη του ορισμού (παρενθετικά, το μοναδικό κλειδί είναι ο συνδυασμός ΑΒ.) 2.- Α Β ισχύει, αλλά δεν ισχύει η Β Α. Τότε το Α είναι το μοναδικό κλειδί και κάθε μη τετριμμένη FD περιέχει το Α στο αριστερό σκέλος, άρα έχουμε BCNF. 3

3.- Β Α ισχύει, αλλά δεν ισχύει η Α Β. Περίπτωση συμμετρική της 2. 4.- Α Β ισχύει και Β Α ισχύει. Τότε και το Α και το Β είναι κλειδιά χωρίς να καταστρατηγείται η συνθήκη του ορισμού της BCNF. (β) Θεωρείστε μια σχέση R (A, B, C, D) όπου ισχύουν οι παρακάτω συναρτησιακές εξαρτήσεις:: AB C, C D και D A, - Εντοπίστε όλα τα κλειδιά του R - Ποιες άλλες συναρτησιακές εξαρτήσεις προκύπτουν από τις παραπάνω εξαρτήσεις (περιοριστείτε σε εξαρτήσεις όπου η δεξιά πλευρά έχει μόνο ένα γνώρισμα) ΚΛΕΙΔΙΑ: AB, BC ΙΣΧΥΟΥΝ ΕΠΙΣΗΣ AB D, BC D, BC A, C A, καθώς και οι τετριμμένες (π.χ., AB A, κλπ.) (γ) Θεωρείστε μια σχέση R (A, B, C, D, Ε, G) και το σύνολο των συναρτησιακών εξαρτήσεων που ισχύει στην R. F = { AB C, AC B, AD E, B D, BC A, E G } Ποια από τις επόμενες διασπάσεις της R, όπου ισχύουν οι παραπάνω συναρτησιακές εξαρτήσεις (ι) διατηρεί τις εξαρτήσεις? (ii) δε συνεπάγεται απώλεια πληροφορίας στις συζεύξεις συνενώσεις. 1.- R1(A, B), R2(B,C), R3(A, B, D, E), R4(E, G) 2.- R1(A, B, C), R2(A, C, D, E), R3(A, D, G) 1. ΔΕΝ διατηρεί τις εξαρτήσεις (π.χ., τη AB C). Συνεπάγεται απώλεια πληροφορίας (ΔΕΝ είναι lossless). Για να αποδειχθεί αυτό παίρνουμε δυο τυχαίες πλειάδες της αρχικής σχέσης, έστω (a1, b, c1, d1, e1, g1) και (a2, b, c2, d2, e2, g2). Εφόσον ισχύουν ΑΒ C και BC A, τότε a1 # a2 αν και μόνο αν c1 # c2. Είναι εύκολο να δει κανείς ότι η συνένωση μεταξύ των ΑΒ και BC περιέχει 4 πλειάδες: (a1, b, c1), (a1, b, c2), (a2, b, c1), (a2, b, c2). Συνεπώς, η συνένωση μεταξύ όλων των σχέσεων της διάσπασης θα περιέχει ΤΟΥΛΑΧΙΣΤΟΝ 4 πλειάδες, άρα έχουμε απώλεια πληροφορίας. 2. ΔΕΝ διατηρεί τις εξαρτήσεις (π.χ., τη Β D, που προέρχεται από τις αρχικές εξαρτήσεις με τους κανόνες Armstrong.) ΔΕΝ συνεπάγεται απώλεια πληροφορίας (είναι lossless) Αν κανείς πάρει τη συνένωση των R1 και R2, τα κοινά γνωρίσματα AC αποτελούν κλειδί για τη R2 (lossless join). Συνεχίζοντας, αν το αποτέλεσμα της ανωτέρω συνένωσης το συνενώσουμε με το R3, τότε τα κοινά γνωρίσματα AD αποτελούν κλειδί της R3 (lossless join). ΘΕΜΑ 4.- ΑΡΧΕΙΑ - ΕΥΡΕΤΗΡΙΑ - ΒΕΛΤΙΣΤΟΠΟΙΗΣΗ [25] (a) Κατασκευάστε ένα B+ δένδρο για το παρακάτω σύνολο από τιμές κλειδιών: 2, 3, 5, 7, 11, 17, 19, 23, 29, 31 Θεωρείστε ότι ο αριθμός των δεικτών που χωρούν σε ένα κόμβο είναι 4. Για το δένδρο που κατασκευάσατε, δείξτε ποια είναι η μορφή του μετά από: 1.- εισαγωγή του 9, 2.- εισαγωγή του 10 4

3.- διαγραφή του 23 4.- διαγραφή του 19 Σημειώνεται ότι εδώ δείχνουμε τα δέντρα μετά τις «διαδοχικές» αλλαγές αλλά και αν κάθε αλλαγή γινόταν στο «αρχικό» δένδρο ξεχωριστά, θεωρήθηκε ΣΩΣΤΗ. Delete 23 (b) Ας πούμε ότι οι σχέσεις R1(A, B, C) και R2 (C, D, E) ) έχουν τις παρακάτω ιδιότητες: το R1 έχει 20.000 εγγραφές, το R2 έχει 45.000 εγγραφές, οι 25 εγγραφές του R1 χωρούν σε ένα μπλοκ και 30 5

εγγραφές του R2 χωρούν σε ένα μπλοκ. Εκτιμήστε τον αριθμό των προσπελάσεων μπλοκ που απαιτούνται, χρησιμοποιώντας καθεμία από τις στρατηγικές συνδέσμου για το R1 >< R2 - σύνδεσμος ένθετου βρόχου (nested loop join) - σύνδεσμος μπλοκ ένθετου βρόχου (block nested loop join) - σύνδεσμος συγχώνευσης (merge join) - σύνδεσμος HASH (hash join) Σύμφωνα με την εκφώνηση, η r1 χρειάζεται 800 μπλοκ και η r2 χρειάζεται 1500 μπλοκ για αποθήκευση. Έστω ότι έχουμε Μ σελίδες διαθέσιμες στη μνήμη (buffer). Αν το Μ > 800, τότε χρησιμοποιούμε τις 800 σελίδες της μνήμης και κάνουμε ένα απλό σύνδεσμο ένθετου βρόχου με συνολικό κόστος (βέλτιστο) το 1500+800 μπλοκ προσβάσεις. Σε περίπτωση όπου το Μ < 800. - σύνδεσμος ένθετου βρόχου (nested loop join) Με το r1 εξωτερική σχέση, απαιτούνται 20000 * 1500 + 800 = 30000800 προσβάσεις. Με το r2 εξωτερική σχέση, απαιτούνται 45000 * 800 +1500 = 36001500 προσβάσεις. - σύνδεσμος μπλοκ ένθετου βρόχου (block nested loop join) Με το r1 εξωτερική σχέση, απαιτούνται 800 / (M-1) * 1500 +800. Με το r2 εξωτερική σχέση, απαιτούνται 1500 / (M-1) * 800 +1500. - σύνδεσμος συγχώνευσης (merge join) Απαιτούνται 1500 + 800 + Β προσβάσεις, όπου Β είναι το κόστος ταξινόμησης στο γνώρισμα της συνένωσης (Β = 1500 * (2 log (m-1) (1500 / M)) + 800 * (2 log (m-1) (800 / M)) ) - σύνδεσμος HASH (hash join) Υποθέτοντας ότι δεν έχουμε υπερχείλιση και με αρκετά μεγάλο Μ (για να μη χρειάζονται διαχωρισμοί), το κόστος είναι 3 * (1500 + 800) = 6900 προσβάσεις (γ) Θεωρείστε την παρακάτω ερώτηση σε SQL. SELECT FROM WHERE E.name, E.Address, D.deptname Employee E, Department D D.deptname= Research AND D.code=E.code 1.- Δώστε τουλάχιστον δύο δένδρα ερώτησης που μπορούν να την αναπαραστήσουν. Κάτω από ποιες συνθήκες θα χρησιμοποιούσατε καθένα από τα δένδρα που σχηματίσατε? 2 Δείξτε ένα δένδρο ερώτησης σε μια όσο το δυνατόν πιο βελτιστοποιημένη μορφή (κάνοντας όποιες παραδοχές θέλετε) 6

Πρώτο Δένδρο (χωρίς βοηθητικές δομές) name, address, deptname deptname = research Code = Code Employee Department Δεύτερο Δένδρο (που είναι και καλύτερο από το πρώτο) (On-the-fly) name, address, deptname (Sort-Merge Join) Code = Code d (Scan write to temp T1) deptname = research Employee Department 7