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



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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ονοματεπώνυμο: Αριθμός Μητρώου:

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

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

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

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

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

Επαναληπτικές ασκήσεις

Πληροφορική 2. Δομές δεδομένων και αρχείων

Δεντρικά Ευρετήρια. Δέντρα Αναζήτησης

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

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

Δυναμικά Πολυεπίπεδα Ευρετήρια (Β-δένδρα) Μ.Χατζόπουλος 1

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

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

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

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

Ευρετήρια. Το ευρετήριο αρχείου είναι ένα διατεταγµένο αρχείο µε σταθερού µήκους εγγραφές

ΗΥ240: οµές εδοµένων Χειµερινό Εξάµηνο Ακαδηµαϊκό Έτος Παναγιώτα Φατούρου. Προγραµµατιστική Εργασία 3 ο Μέρος

2 η Σειρά Ασκήσεων Ημερομηνία Παράδοσης: 14/11/2016

Ευρετήρια. Το ευρετήριο αρχείου είναι ένα διατεταγµένο αρχείο µε σταθερού µήκους εγγραφές

Επεξεργασία Ερωτήσεων: Επανάληψη και Ασκήσεις

Εαρινό Εξάμηνο

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

Βάσεις εδοµένων Ευαγγελία Πιτουρά 2

Ευρετήρια. Βάσεις Δεδομένων : Ευρετήρα 1. Πρωτεύον ευρετήριο (primary index): ορισμένο στο κλειδί διάταξης του αρχείου. Ευρετήρια.

Τα δεδομένα (περιεχόμενο) μιας βάσης δεδομένων αποθηκεύεται στο δίσκο

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

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

Αλγόριθμοι Ταξινόμησης Μέρος 4

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

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

Copyright 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση, Δίαβλος, Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 14-1

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

Έλεγχος Ταυτοχρονισμού

5. Απλή Ταξινόμηση. ομές εδομένων. Χρήστος ουλκερίδης. Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων

Οργάνωση αρχείων: πως είναι τοποθετηµένες οι εγγραφές ενός αρχείου όταν αποθηκεύονται στο δίσκο

Ευρετήρια. Πρωτεύον ευρετήριο (primary index): ορισμένο στο κλειδί διάταξης του αρχείου. Ευρετήρια. Ευρετήρια. Ευρετήρια

Ευρετήρια. Πρωτεύον ευρετήριο (primary index): ορισμένο στο κλειδί διάταξης του αρχείου. Ευρετήρια. Ευρετήρια. Ευρετήρια

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

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

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

Heapsort Using Multiple Heaps

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

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

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

Αλγόριθµοι και Πολυπλοκότητα

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

Φροντιστήριο 4. Άσκηση 1. Λύση. Πανεπιστήµιο Κρήτης, Τµήµα Επιστήµης Υπολογιστών HY463 - Συστήµατα Ανάκτησης Πληροφοριών Εαρινό Εξάµηνο

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

Σύστηµα Αρχείων και Καταλόγων

Ενδεικτικές Ερωτήσεις Θεωρίας

Ταξινόμηση κάδου και ταξινόμηση Ρίζας Bucket-Sort και Radix-Sort

Ο βελτιστοποιητής ερωτημάτων (query optimizer) Μετασχηματισμός εκφράσεων σχεσιακής άλγεβρας Υπολογισμός μεγεθών πράξεων σχεσιακής άλγεβρας

Α1. Στον προγραµµατισµό χρησιµοποιούνται δοµές δεδοµένων. 1. Τι είναι δυναµική δοµή δεδοµένων; Μονάδες 3 2. Τι είναι στατική δοµή δεδοµένων;

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

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Δοµές Δεδοµένων

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

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

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

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

Εξωτερική Αναζήτηση. Ιεραρχία Μνήμης Υπολογιστή. Εξωτερική Μνήμη. Εσωτερική Μνήμη. Κρυφή Μνήμη (Cache) Καταχωρητές (Registers) μεγαλύτερη ταχύτητα

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Δοµές Δεδοµένων

εντρικά Ευρετήρια έντρα Αναζήτησης

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

4.3. Γραµµικοί ταξινοµητές

Βελτιστοποίηση Ερωτημάτων Κεφ. 14

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

Transcript:

Πανεπιστήµιο Κρήτης Τµήµα Επιστήµης Υπολογιστών ΗΥ-460 Συστήµατα ιαχείρισης Βάσεων εδοµένων ηµήτρης Πλεξουσάκης Βασίλης Χριστοφίδης Ονοµατεπώνυµο: Αριθµός Μητρώου: Επαναληπτική Εξέταση (3 ώρες) Ηµεροµηνία: 27 Αυγούστου 2007 Άσκηση 1 (20 µονάδες) (Ενδιάµεση Μνήµη) Ως γνωστόν, η απλή LRU (simple Least Recently Used buffer management policy) δεν αποτελεί τη βέλτιστη πολιτική διαχείρισης ενδιάµεσης µνήµης σε ένα Σύστηµα ιαχείρισης Βάσεων εδοµένων (Σ Β ). Σας δίνεται µια δεξαµενή ενδιάµεσης µνήµης (buffer pool) των 100 σελίδων (όπου κάθε σελίδα χωράει 10 πλειάδες δεδοµένων µιας σχέσης) την οποία το Σ Β χρησιµοποιεί για να εκτελέσει παράλληλα τις ακόλουθες λειτουργίες: Α: (4 µονάδες) Μία ακολουθιακή σάρωση (sequential scan) µιας σχέσης R, που αποτελείται από 10.000 πλειάδες B: (6 µονάδες) Μία σύζευξη εµφωλευµένων βρόχων (nested loops join) µιας σχέσης S, αποτελούµενης από 1000 πλειάδες, µε µια σχέση Τ, αποτελούµενη από 500 πλειάδες, µε την S ως εξωτερική σχέση. C: (10 µονάδες) Μία σύζευξη ευρετηριασµένων εµφωλευµένων βρόχων (index nested loops join) µιας σχέσης U, αποτελούµενης από 1000 πλειάδες, µε µια σχέση V, αποτελούµενη από 10.000 πλειάδες, µε την V ως εσωτερική σχέση. Θεωρείστε ότι υπάρχει ένα πρωτεύον ευρετήριο B + -tree στη V και ότι το Β + -tree είναι τάξης (order) 10 και έχει συντελεστή κάλυψης (fill factor) 0,5. Κάθε αναζήτηση (lookup) στην V επισκέπτεται ακριβώς µία σελίδα φύλλο (leaf page) του Β + -tree. Εκτιµήστε τον αριθµό των σελίδων που θα διαβαστούν από το δίσκο µε µια απλή LRU πολιτική διαχείρισης ενδιάµεσης µνήµης κατά την παράλληλη επεξεργασία των παραπάνω λειτουργιών, θεωρώντας ότι κάθε µία από αυτές χρειάζεται τον ίδιο χρόνο για να ολοκληρωθεί, και ξεκινά περίπου την ίδια χρονική στιγµή. Για λόγους απλότητας, θεωρείστε ότι οι παραπάνω λειτουργίες εκτελούνται µε επικαλυπτόµενο (interleaved) τρόπο, έτσι ώστε µία σελίδα να τυγχάνει επεξεργασίας από τη λειτουργία Α, εν συνεχεία µία εξωτερική πλειάδα να τυγχάνει επεξεργασίας από τη λειτουργία Β και εν συνεχεία µια εξωτερική πλειάδα να τυγχάνει επεξεργασίας από τη λειτουργία C. Επίσης θεωρείστε ότι οι πλειάδες όλων των σχέσεων της άσκησης έχουν το ίδιο µέγεθος. Εφόσον όλες οι λειτουργίες εκτελούνται µε επικαλυπτόµενο (interleaved) τρόπο και χρειάζονται τον ίδιο χρόνο για να ολοκληρωθούν, µπορούµε να θεωρήσουµε ότι σε κάθε πέρασµα της εσωτερικής σχέσης T της σύζευξης Β (για την επεξεργασία µιας εξωτερικής πλειάδας της S), η Α θα σαρώσει το 1/1000 των πλειάδων της R, δηλαδή µία σελίδα δίσκου µε 10 πλειάδες.

Παροµοίως, για κάθε πλειάδα της εξωτερικής σχέσης S που τυγχάνει επεξεργασίας στην Β, η C θα επεξεργάζεται επίσης µια πλειάδα της εξωτερικής σχέσης U. Η τελευταία λειτουργία θα εµπλέκει µια αναζήτηση στο Β+-tree, το οποίο αποτελείται από 5 επίπεδα (συνεπώς θα προσπελάζονται 5 σελίδες). Ανάλογα µε το πώς ερµηνεύουµε την απαίτηση για την τιµή 0,5 του συντελεστή κάλυψης, µπορούµε ενδεχοµένως να συµπεράνουµε ότι το Β+-tree αποτελείται από 6 επίπεδα. Εφόσον οι ενέργειες αυτές θα εκτελούνται µε επικαλυπτόµενο (interleaved) τρόπο το κόστος κάθε µιας από τις τρεις ενέργειες θα είναι: Α. Θα διαβαστούν 1000 σελίδες της R. Β. Θα διαβαστούν 100 σελίδες της εξωτερικής σχέσης S. Κάθε πέρασµα της εσωτερικής σχέσης T για την επεξεργασία µιας εξωτερικής πλειάδας της S θα προσπελάζει 50 σελίδες. Το πρώτο πέρασµα θα απαιτήσει την εκ νέου ανάγνωση όλης της εσωτερικής σχέσης T. Στα επόµενα περάσµατα της εσωτερικής σχέσης, η Α θα έχει αποδεσµεύσει µία ακόµα σελίδα ενδιάµεσης µνήµης ενώ η C 5 ακόµα σελίδες. Εφόσον όµως η Β προσπελάζει εκ νέου κάθε µια από τις 50 σελίδες της για κάθε µία εξωτερική πλειάδα που τυγχάνει επεξεργασίας από τις A και C, οι σελίδες της δεν πρόκειται ποτέ να αποδεσµευτούν από την ενδιάµεση µνήµη. Συνεπώς θα αναγνωσθούν µόνο 150 σελίδες. C. Θα αναγνωσθούν 100 σελίδες της εξωτερικής σχέσης U. Κάθε µία θα εµπλέκει 5 αναζητήσεις στο Β+-tree για την εσωτερική σχέση V. Προφανώς η ρίζα του Β+-tree θα παραµένει στη δεξαµενή ενδιάµεσης µνήµης. Κάθε σελίδα δεύτερου επιπέδου του Β+-tree θα προσπελάζεται εκ νέου, κατά µέσο όρο κάθε 1 στις 10 αναζητήσεις. Μετά από κάθε 10 αναζητήσεις, η Α θα έχει προσπελάσει 10 σελίδες και η Β θα έχει προσπελάσει 1 νέα σελίδα των πλειάδων της εσωτερικής σχέσης T. Συνεπώς, µε µεγάλη πιθανότητα τα δύο κορυφαία επίπεδα του Β+-tree θα παραµένουν στην ενδιάµεση µνήµη. Τα κατώτερα επίπεδα του Β+-tree είναι απίθανο να διατηρούνται στην ενδιάµεση µνήµη εφόσον προσπελάζονται εκ νέου µόνο κάθε 1 στις 100 εξωτερικές πλειάδες το πολύ. Το συνολικό κόστος είναι: 100 + 1 (κορυφαίο επίπεδο) + 10 (δεύτερο επίπεδο) + 3 * 1.000 = 3111 σελίδες. Συνεπώς, ο συνολικός αριθµός σελίδων που διαβάζονται µε την προσέγγιση LRU είναι: 3111 + 150 + 1000 = 4.261 σελίδες. Άσκηση 2 (10 µονάδες) (Φυσικό Σχήµα Β ) Σας δίνεται η σχέση Executives(ename, title, dname, address), όπου όλα τα γνωρίσµατα έχουν το ίδιο µήκος και το ename είναι ένα υποψήφιο κλειδί (candidate key). Η σχέση αποθηκεύεται σε 12000 σελίδες και έχουµε στην διάθεσή µας ενδιάµεση µνήµη (buffer) 10 σελίδων. Υποθέστε ότι 10% των πλειάδων ικανοποιούν την ακόλουθη επερώτηση: Select E.title, Count(*) From Executives E Where E.dname > 'W%'

Group by E.title Για κάθε ένα από τα παρακάτω σενάρια, περιγράψτε το πιο αποδοτικό σχέδιο εκτέλεσης της επερώτησης (query execution plan) και υπολογίστε το κόστος του σε σελίδες Ε/Ε. Σηµειώστε ότι το βέλτιστο σχέδιο εκτέλεσης µπορεί να µην χρησιµοποιεί κανέναν από τα ευρετήρια που σας δίνονται στην συνέχεια. α) Μόνο ένα συσταδοποιηµένο δενδρικό ευρετήριο (Β+ δένδρο) είναι διαθέσιµο στο γνώρισµα title. β) Μόνο ένα µη-συσταδοποιηµένο δενδρικό ευρετήριο (Β+ δένδρο) είναι διαθέσιµο στο γνώρισµα title. γ) Μόνο ένα συσταδοποιηµένο δενδρικό ευρετήριο (Β+ δένδρο) είναι διαθέσιµο στο γνώρισµα dname. δ) Μόνο ένα συσταδοποιηµένο δενδρικό ευρετήριο (Β+ δένδρο) είναι διαθέσιµο στο σύνθετο γνώρισµα (dname, title). ε) Μόνο ένα συσταδοποιηµένο δενδρικό ευρετήριο (Β+ δένδρο) είναι διαθέσιµο στο σύνθετο γνώρισµα (title, dname). (α) Ακολουθιακή σάρωση του αρχείου και εκτέλεση της επιλογής (selection) και της αρίθµησης (counting) on the fly. Συνολικό κόστος = 12000 Ε/Ε. (β) Ταξινόµηση του αρχείου και εκτέλεση των υπολοίπων ενεργειών on the fly. Παρατηρήστε ότι µόλις εκτελεστεί η επιλογή, δεν υπάρχει λόγος να διατηρείται το πεδίο dname στο αποτέλεσµα. Συνολικό κόστος = 13200 Ε/Ε. (γ) Σάρωση του ευρετηρίου για το ταίριασµα των dnames, έπειτα ταξινόµηση και αρίθµηση των αντίστοιχων titles. Συνολικό κόστος = 2700 Ε/Ε. (δ) Σάρωση του ευρετηρίου για το ταίριασµα εγγραφών (entries), έπειτα ταξινόµηση και αρίθµηση των αντίστοιχων titles. Συνολικό κόστος = 1800 Ε/Ε. (ε) Σάρωση του ευρετηρίου και αρίθµηση των titles. Συνολικό κόστος = 6000 Ε/Ε. Άσκηση 3 (34 µονάδες) (Βελτιστοποίηση Επερωτήσεων) Υπολογίστε τον αριθµό µεταφορών σελίδων (Ε/Ε) που απαιτούνται για τον υπολογισµό της σύζευξης R R.a= S.b S µε τον αλγόριθµο συγχώνευσης-ταξινόµησης (sort-merge), υποθέτοντας τα εξής: 1. Το µέγεθος της R είναι 1000 σελίδες, µε 10 πλειάδες (tuples) ανά σελίδα, το µέγεθος της S είναι 500 σελίδες µε 20 πλειάδες (tuples) ανά σελίδα. 2. Το µέγεθος της διαθέσιµης ενδιάµεσης µνήµης (main memory buffer) για τον υπολογισµό της σύζευξης είναι 10 σελίδες. 3. Το Καρτεσιανό γινόµενο των πλειάδων της R και S που µπορούνε να συζευχθούν (matching) υπολογίζεται χρησιµοποιώντας έναν αλγόριθµο φωλιασµένων βρόγχων (block-nested loop). 4. Έχουµε τα στατιστικά V(R,A)=100 και V(S,B)=50. Αυτές οι διακριτές τιµές κατανέµονται οµοιόµορφα στις πλειάδες των δύο σχέσεων.

1. (2 µονάδες) Εξωτερική ταξινόµηση της σχέσης R: 2 1000( log 9 1000/10 +1) = 8000 Ε/Ε 2. (2 µονάδες) Εξωτερική ταξινόµηση της σχέσης S: 2 500( log 9 500/10 +1) = 3000 Ε/Ε. Για να µπορέσουµε να συγχωνεύσουµε σε ένα µόνο πέρασµα, θα πρέπει να έχουµε τόση µνήµη ώστε να τακτοποιούµε µια σελίδα από κάθε εκτέλεση (run) δηλαδή B > L, όπου L είναι το µέγεθος της µεγαλύτερης σχέσης. Όµως, αυτό δεν ισχύει διότι 1000 = 31.6 και έχουµε µόνο 10 σελίδες ενδιάµεσης µνήµης διαθέσιµες. 3. (15 µονάδες) Το βήµα συγχώνευσης: Πρώτον, προφανώς, πρέπει να σαρώσουµε τις εκτελέσεις των R και S, το οποίο µας κοστίζει 1500 µεταφορές σελίδων. Για κάθε τιµή του πεδίου A, ο αριθµός των σελίδων της R που περιέχουν πλειάδες που ταιριάζουν µε αυτή την τιµή είναι 1000/100=10. Παροµοίως, για κάθε τιµή του B, ο αριθµός των σελίδων της S που περιέχουν πλειάδες που ταιριάζουν µε αυτή την τιµή είναι 500/50=10. Συνεπώς, κάθε φορά που έχουµε ταίριασµα (match), υπολογίζουµε ένα Καρτεσιανό γινόµενο των 2 10-σέλιδων σχέσεων. Η χρήση του αλγορίθµου φωλιασµένων βρόγχων µε 10 σελίδες ενδιάµεσης µνήµης απαιτεί τη σάρωση µιας φοράς του R-µέρους και δύο φορών του S-µέρους για ένα σύνολο 30 σελίδων. Όµως, µια σάρωση των R και S που απαιτείται για τον υπολογισµό του γινοµένου έχει ήδη πραγµατοποιηθεί στην αρχική σάρωση (η οποία απαιτεί την µεταφορά 1500 σελίδων). Άρα, το επιπλέον κόστος είναι µόνο 10 σελίδες για τη σάρωση του S-µέρους τη δεύτερη φορά. Η έξοδος έχει 10 10 = 100 σελίδες, οπότε για κάθε ταίριασµα ο υπολογισµός του Καρτεσιανού γινόµενου απαιτεί την µεταφορά 110 σελίδων. Η ερώτηση είναι πόσα ταιριάσµατα µπορεί να έχουµε. Εφόσον το A έχει 100 τιµές και το B έχει 50, µπορούµε να έχουµε το πολύ 50 ταιριάσµατα, οπότε ο υπολογισµός και η παραγωγή στην έξοδο των ταιριαγµένων πλειάδων θα πάρει το πολύ 50 110 = 5500 µεταφορές σελίδων. Συνολικά θα έχουµε: 1000 + 500 + 5500 = 7000 σελίδες 4. (15 µονάδες) Όταν οι R και S είναι εξωτερικά ταξινοµηµένες, η τελευταία εκτέλεση (run) της ταξινόµησης διατηρεί τις σελίδες στη µνήµη και πάει απευθείας στο βήµα της συγχώνευσης. Με αυτό τον τρόπο εξοικονοµούµε χρόνο αλλιώς θα γράφαµε πίσω τις σελίδες στο δίσκο και θα τις ξαναφέρναµε για τη συγχώνευση. Η διατήρηση της R στη µνήµη εξοικονοµεί 1000 µεταφορές σελίδων ( 2 = 2000) και η διατήρηση της S στην µνήµη εξοικονοµεί 500 µεταφορές σελίδων ( 2 = 1000). Συνεπώς,, το συνολικό κόστος θα είναι: 6000 + 2000 + 7000 = 15000 σελίδες Ε/Ε.

Άσκηση 4 (10 µονάδες) ( ενδρικά Ευρετήρια) Θεωρήστε ένα Β+ δέντρο που ευρετηριάζει 300 εγγραφές (records). (α) Εάν το Β+ δέντρο έχει τάξη (order) 9 (δηλ., κάθε κόµβος έχει το πολύ 9 κλειδιά), ποιο είναι το ελάχιστο και µέγιστο ύψος (βάθος) του; (Ένα δέντρο µε µόνο τον κόµβο ρίζας έχει ένα ύψος (βάθος) 1.) Ελάχιστο: 3 (Ένα δένδρο ύψους 2 θα µπορούσε να δεικτοδοτήσει το πολύ 90 εγγραφές) Μέγιστο: 4 (Ένα δένδρο ύψους 5 απαιτεί τουλάχιστον 1250 εγγραφές) (β) Εάν το Β+ δέντρο έχει ένα ύψος 2, ποια είναι η ελάχιστη και µέγιστη τάξη (order) του; Ελάχιστο: 17 (Η τάξη 17 επιτρέπει µέχρι 18 * 17 = 306 εγγραφές να ευρετηριαστούν, ενώ η τάξη 16 θα επέτρεπε µόνο 17 * 16 = 272 εγγραφές να ευρετηριαστούν) Μέγιστο: 300 (Η τάξη 300 επιτρέπει τουλάχιστον 300 εγγραφές µε 2 κόµβους φύλλα στο δεύτερο επίπεδο, ο καθένας από τους οποίους θα πρέπει να δείχνει τουλάχιστον σε 150 εγγραφές. Η τάξη 301 θα απαιτούσε τουλάχιστον 2 κόµβους φύλλα δευτέρου επιπέδου που θα έπρεπε να δείχνουν σε τουλάχιστον 151 εγγραφές ο καθένας.) Άσκηση 5 (26 µονάδες) ( ιαχείριση οσοληψιών) 5.1 (13 µονάδες) Θεωρείστε τις δοσοληψίες T1: R1(A), W1(B) και T2: R2(A), W2(A), W2(B). Υποθέστε ότι εισάγοµε από ένα ζεύγος εντολών lock και unlock για κάθε στοιχείο της βάσης δεδοµένων στο οποίο οι δοσοληψίες έχουν πρόσβαση. Πόσα προγράµµατα σύγχρονης εκτέλεσης των δύο δοσοληψιών υπάρχουν που ακολουθούν το πρωτόκολλο 2PL; Υπάρχουν σειριακοποιήσιµα προγράµµατα σύγχρονης εκτέλεσης των δύο δοσοληψιών που δεν ακολουθούν το 2PL; Αν ακολουθηθεί το 2PL, τότε τα µόνα προγράµµατα σύγχρονης εκτέλεσης είναι τα σειριακά: Τ1;Τ2 και Τ2;Τ1. Θεωρούµε, ως συνήθως, ότι τα locks ζητούνται ακριβώς όταν χρειαστούν και απελευθερώνονται όλα µαζί. Αν αποδεσµευτούµε από το 2PL πρωτόκολλο, µπορούν να βρεθούν και άλλα σειριακοποιήσιµα προγράµµατα σύγχρονης εκτέλεσης, όπως το ακόλουθο: L 1 (A); R 1 (A); U 1 (A); L 1 (B); R 1 (B); U 1 (B); L 2 (A); R 2 (A); W 2 (A); U 2 (A); L 2 (B); W 2 (B); U 2 (B);

Αρκετές ακόµα παραλλαγές µπορούν να υπάρξουν, προσέχοντας όµως να µην παραβιαστεί η σειριακοποιησιµότητα του προγράµµατος. 5.2 (13 µονάδες) Θεωρείστε τις δοσοληψίες T1: R1(A), R1(B), INC1(A), INC1(B) και T2: R2(A), R2(B), INC2(A), INC2(B). Πόσα σειριακοποιήσιµα προγράµµατα σύγχρονης εκτέλεσης των δύο δοσοληψιών υπάρχουν; Αν η σειρά των increment operations στην T2 αντιστραφεί, πόσα σειριακοποιήσιµα προγράµµατα σύγχρονης εκτέλεσης των δύο δοσοληψιών υπάρχουν; Αρχικά, ας µετρήσουµε το πλήθος των σειριακοποιήσιµων διατάξεων που είναι conflictequivalent µε τη διάταξη (Τ1, Τ2). Για να είναι ένα πρόγραµµα ισοδύναµο µε το (Τ1, Τ2), το ΙΝC1(Α) πρέπει να προηγείται του R2(A). Έτσι, τα πρώτα τρία βήµατα της Τ1 πρέπει να βρίσκονται στις τρεις πρώτες θέσεις του προγράµµατος. Επιπρόσθετα, το INC1(Β) πρέπει να βρίσκεται πριν το R2(B), έτσι ώστε το πρώτο να είναι είτε η τέταρτη ενέργεια του προγράµµατος είτε η πέµπτη, αµέσως µετά το R2(A). Εποµένως, υπάρχουν δύο σειριακοποιήσιµα προγράµµατα ισοδύναµα του (Τ1, Τ2). Λόγω συµµετρίας, ο ίδιος αριθµός προγραµµάτων θα είναι ισοδύναµα µε την αντίθετη διάταξη (Τ2, Τ1). Έτσι, τελικά, το σύνολο των σειριακοποιήσιµων προγραµµάτων είναι τέσσερα. Αν τώρα η σειρά των increment operations στην Τ2 αντιστραφεί, τότε η κατάσταση δεν αλλάζει αν πρώτη διεργασία είναι η Τ1. Αν όµως εκκινήσει πρώτα η Τ2, τότε η µόνη δυνατή σειριακοποιήσιµη εκτέλεση είναι η σειριακή. Εποµένως, συνολικά τρία είναι τα σειριακοποιήσιµα προγράµµατα σύγχρονης εκτέλεσης.