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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Φροντιστήριο Αποθήκευση σε δίσκο, βασικές οργανώσεις αρχείων κατακερματισμός και δομές ευρετηρίων για αρχεία

Λειτουργικά Συστήματα Κεφάλαιο 2 Οργάνωση Συστήματος Αρχείων 2.1 Διαχείριση Αρχείων και Σύστημα Αρχείων(File System)

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

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

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

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

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

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

Αποθήκευση και Οργάνωση αρχείων. Βάσεις Δεδομένων Μάθημα 2ο Διδάσκων: Μαρία Χαλκίδη

Αποθήκευση εδομένων. ομή ενός Σ Β. Εισαγωγή Το «εσωτερικό» ενός ΜΕΡΟΣ Β : Η (εσωτερική) αρχιτεκτονική ενός Σ Β είναι σε επίπεδα

Βάσεις Δεδομένων. Αποθήκευση σε δίσκο, βασικές οργανώσεις αρχείων, κατακερματισμός και δομές ευρετηρίων για αρχεία. Φροντιστήριο 7 o

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

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

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

Λειτουργικά Συστήματα. Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα

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

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

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

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

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

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

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

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

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

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

ΦΥΛΛΟ ΕΡΓΑΣΙΑΣ B.2.M3 Κύρια και Βοηθητική Μνήμη

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

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

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

Θεωρήστε ένα puzzle (παιχνίδι σπαζοκεφαλιάς) με την ακόλουθη αρχική διαμόρφωση : b b b w w w e

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

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

ΒΑΣΕΙΣ Ε ΟΜΕΝΩΝ. Επίπεδα Αφαίρεσης Σ Β. Αποθήκευση Εγγραφών - Ευρετήρια. ρ. Βαγγελιώ Καβακλή ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ, Επίπεδο Όψεων.

Διάλεξη 04: Παραδείγματα Ανάλυσης Πολυπλοκότητας/Ανάλυση Αναδρομικών Αλγόριθμων

A ΕΠΑ.Λ ΕΦΑΡΜΟΓΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 5 η ΕΝΟΤΗΤΑ: ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ. Εκπαιδευτικοί: ΓΑΛΑΝΟΣ ΓΕΩΡΓΙΟΣ ΜΠΟΥΣΟΥΝΗΣ ΚΩΝΣΤΑΝΤΙΝΟΣ

Τα µπιτ και η σηµασία τους. Σχήµα bit. ΚΕΦΑΛΑΙΟ 1: Αποθήκευση εδοµένων (1/2) 1.7 Αποθήκευση κλασµάτων 1.8 Συµπίεση δεδοµένων 1.9 Σφάλµατα επικοινωνίας


Αντισταθμιστική ανάλυση

ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 4. Παραδείγματα Ανάλυσης Πολυπλοκότητας Ανάλυση Αναδρομικών Αλγόριθμων

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

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

Διάλεξη 04: Παραδείγματα Ανάλυσης

Πληροφορική & Τηλεπικοινωνίες. K18 - Υλοποίηση Συστημάτων Βάσεων Δεδομένων Εαρινό Εξάμηνο

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

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

Αποθήκευση εδοµένων. Μαγνητικοί ίσκοι. Μαγνητικές ταινίες για. Εισαγωγή

Κατακερματισμός (Hashing)

Οργάνωση Αρχείων. Ευρετήρια. Ταξινοµηµένα ευρετήρια B + -δένδρα Ευρετήρια κατακερµατισµού. Αρχεία σωρού ιατεταγµένα αρχεία Αρχεία κατακερµατισµού

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

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

Λειτουργικά Συστήματα. Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα

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

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

Δομές Δεδομένων. Δημήτρης Μιχαήλ. Δέντρα Αναζήτησης. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

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

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

9. Φυσική Οργάνωση Αρχείων στο Δίσκο & Ευρετήρια

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

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

ΤΜΗΜΑ ΜΗΥΤΔ, ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ (ΗΥ222) ΔΙΔΑΣΚΩΝ: ΧΡΗΣΤΟΣ Δ. ΑΝΤΩΝΟΠΟΥΛΟΣ Τελική Εξέταση Σεπτεμβρίου 2009, Χρόνος: 2:30

Κατακερµατισµός. Οργάνωση Αρχείων (σύνοψη) Οργάνωση αρχείων: πως είναι τοποθετημένες οι εγγραφές ενός αρχείου όταν αποθηκεύονται στο δίσκο

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

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

'Ασκηση 1: Στατικός Κατακερματισμός. Εισαγωγή. Ρουτίνες υλοποίησης κατακερματισμού. (Ημερομηνία Παράδοσης: Παρασκευή, 16/5/2008, 5μμ) HT_Init()

Οργάνωση Αρχείων. Διάγραμμα Σχεσιακού σχήματος. Ευρετήρια. Ταξινομημένα ευρετήρια B + δένδρα Ευρετήρια κατακερματισμού

Σύβακας Σταύρος ΠΕ19,MSc. IT ΣΥΒΑΚΑΣ ΣΤΑΥΡΟΣ ΕΡΩΤΗΜΑΤΑ

ΘΕΜΑΤΑ. Ερώτηση 1 Κατά τη Φυσική Αποθήκευση (Physical storage) μιας ΒΔ αποθηκεύονται στον δίσκο τα:

Ευρετήρια και Κατακερματισμός

Transcript:

ΗΥ460 Τελική Εξέταση 1 Φεβρουαρίου 2012 Σελίδα 1 από 8 Ονοματεπώνυμο: Αριθμός Μητρώου: Πανεπιστήμιο Κρήτης Τμήμα Επιστήμης Υπολογιστών ΗΥ-460 Συστήματα Διαχείρισης Βάσεων Δεδομένων Δημήτρης Πλεξουσάκης Βασίλης Χριστοφίδης Τελική Εξέταση (3 ώρες) Ημερομηνία: 1 Φεβρουαρίου 2012 Άσκηση 1 (14 μονάδες) (Αποθήκευση Δεδομένων) Θεωρείστε ένα δίσκο με μέγεθος τομέα (sector) 1KB, μέγεθος μπλοκ (block) 4ΚΒ, 100 τομείς ανά τροχιά (sectors per track), 10,000 τροχιές ανά επιφάνεια (tracks per surface), και 5 διπλής όψεως πλατό (platters). Υποθέστε ότι ο μέσος χρόνος αναζήτησης (seek time) είναι 10 msec, η μέση καθυστέρηση περιστροφής (rotational delay) είναι 5 msec, και ο χρόνος μεταφοράς (transfer time) είναι 4MB ανά δευτερόλεπτο. Υποθέστε ότι ενδιαφερόμαστε να αποθηκεύσουμε σε ένα τέτοιο δίσκο ένα αρχείο 1000000 εγγραφών (records) των 200 bytes η κάθε μια και ότι καμία εγγραφή δε επιτρέπεται να εκτίνεται σε 2 μπλοκ (unspanned). Ζητούνται τα εξής: α) (2 μονάδες) Πόσα μπλοκ απαιτούνται για να αποθηκευτεί ολόκληρο το αρχείο; Για 20 εγγραφές ανά μπλοκ απαιτούνται 1,000,000 / 20 = 50,000 blocks. β) (4 μονάδες) Ποιος είναι ο χρόνος μεταφοράς (transfer time) ανά μπλοκ; Στρογγυλοποιείστε αυτό τον χρόνο στο πλησιέστερο ακέραιο αριθμό msecs. Ποιος είναι ο χρόνος μεταφοράς ανά κύλινδρο; Ο χρόνος μεταφοράς ανά μπλοκ είναι 4KB / (4MB / sec) = 1/1024 sec ~ 1 msec Ο χρόνος μεταφοράς ανά κύλινδρο είναι 250 msec γ) (5 μονάδες) Υποθέστε ότι τα δεδομένα είναι οργανωμένα κατά βέλτιστο τρόπο, δηλαδή πρώτα γεμίζουμε τον κύλινδρο (cylinder) 1, μετά τον κύλινδρο 2, κοκ. Υποθέστε επίσης ότι για κάθε αναζήτηση (seek) απαιτείται ο μέσος χρόνος αναζήτησης ανεξάρτητα από τον πραγματικό αριθμό των τροχιών (tracks) ανάμεσα στην τρέχουσα (current track) και την τροχιά προορισμού (destination track) και ότι η κεφαλή (head) βρίσκεται αρχικά σε τυχαία τροχιά και σε τυχαίο τομέα. Ποιος είναι ο χρόνος που απαιτείται για την σειριακή (sequentially) ανάγνωση ολόκληρου του αρχείου;

ΗΥ460 Τελική Εξέταση 1 Φεβρουαρίου 2012 Σελίδα 2 από 8 Ο κύλινδρος έχει 25 * 10 μπλοκ, άρα απαιτούνται 50,000 / 250 = 200 κύλινδροι για να αποθηκευτεί ολόκληρο το αρχείο. Οπότε ο χρόνος που απαιτείται για την ανάγνωση ολόκληρου του αρχείου είναι: average rotational delay + 200 (average seek time + transfer time per cylinder) = 5 msec + 200 (10 msec + 250 msec) = 52,005 msec ~ 52 sec Note: the solution omitting the term for the rotational delay is also acceptable. δ) (3 μονάδες) Ποιος είναι ο χρόνος που απαιτείται για την ανάγνωση του αρχείου με τυχαία σειρά (random order); Υποθέστε ότι κάθε αίτημα για ένα μπλοκ «κοστίζει» το μέσο χρόνο αναζήτησης (seek time) και τη μέση καθυστέρηση περιστροφής (rotational delay). Ο χρόνος που απαιτείται για την ανάγνωση ολόκληρου του αρχείου είναι: 50,000 (average seek time + average rotational delay + transfer time per block) = 50,000 (10 msec + 5 msec + 1 msec) = 800,000 msec = 800 sec Άσκηση 2 (15 μονάδες) (B+ Δεντρικά Ευρετήρια) Θεωρήστε ένα Β+ δεντρικό ευρετήριο. Οι κόμβοι-φύλλα περιέχουν δείκτες σε συνολικά Ν εγγραφές και κάθε μπλοκ του ευρετηρίου περιέχει m δείκτες. Θέλουμε να επιλέξουμε την τιμή του m που ελαχιστοποιεί τους χρόνους αναζήτησης, εάν αποθηκεύσουμε το ευρετήριο σε συσκευή δίσκου με τα εξής χαρακτηριστικά: Ο χρόνος ανάγνωσης ενός μπλοκ (από το δίσκο στην κύρια μνήμη) προσεγγίζεται από τη σχέση (70+0.05*m) msecs. Τα 70 msecs αναπαριστούν το χρόνο αναζήτησης (seek time) και την καθυστέρηση περιστροφής (rotational delay) ενώ τα 0.05*m msecs είναι ο χρόνος μεταφοράς (transfer time). Όσο το m αυξάνεται, τόσο μεγαλύτερο γίνεται το μπλοκ και συνεπώς τόσο περισσότερος χρόνος απαιτείται για τη μεταφορά του στην κύρια μνήμη. Όταν το μπλοκ μεταφερθεί στην κύρια μνήμη, χρησιμοποιείται δυαδική αναζήτηση για να βρεθεί ο σωστός δείκτης. Άρα ο χρόνος επεξεργασίας του μπλοκ στην κύρια μνήμη είναι (a + b log2 m) msecs, όπου a, b είναι σταθερές. Η σταθερά a είναι πολύ μικρότερη από το χρόνο αναζήτησης και καθυστέρησης των 70 milliseconds. Το ευρετήριο είναι πλήρες, άρα ο αριθμός των μπλοκ που πρέπει να εξεταστούν σε κάθε αναζήτηση είναι logm N. Απαντήστε τα ακόλουθα: (α) (10 μονάδες) Ποια τιμή του m ελαχιστοποιεί το χρόνο αναζήτησης μιας δεδομένης εγγραφής; Δώστε μια απάντηση κατά προσέγγιση. Η τιμή που θα δώσετε θα πρέπει να είναι ανεξάρτητη του b. Υπόδειξη: Αν καταλήξετε μια εξίσωση που λύνεται δύσκολα αλγεβρικά, βρείτε τη ρίζα της δοκιμάζοντας τιμές (δηλ την τιμή που μηδενίζει την εξίσωση). Θυμηθείτε ότι loga (X * Y) = loga (X) + loga (Y) και loga (X/Y) = loga (X) - loga (Y). Επίσης εάν a > 0, b > 0, a!= 1, b!= 1, και Χ > 0 loga (X) = logβ (X) / logβ (α).

ΗΥ460 Τελική Εξέταση 1 Φεβρουαρίου 2012 Σελίδα 3 από 8 f(m)=logm(n)*(70+0.05*m+a+b*log2(m)).αφού a<<70, μπορούμε να το αγνοήσουμε και άρα f(m) logm(n)*(70+0.05*m+b*log2(m)). Παραγωγίζοντας την f(m) έχουμε f'(m)=[ln(n)/ln(m)]*[0.05-(70+0.05m)/(m*ln(m))] Θέτουμε f'(m)=0 για να βρούμε το ελάχιστο και έχουμε: 70=0.05*m*(ln(m)-1) m 298 (β) (5 μονάδες) Τι συμβαίνει όταν η σταθερά χρόνου αναζήτησης και καθυστέρησης (70ms) ελαττώνεται; Για παράδειγμα, αν η σταθερά αυτή υποδιπλασιαστεί, πώς αλλάζει η βέλτιστη τιμή του m; Όσο η σταθερά χρόνου αναζήτησης και καθυστέρησης ελαττώνεται, το ίδιο συμβαίνει και με το m. Για παράδειγμα, αν η σταθερά υποδιπλασιαστεί τότε το βέλτιστο m ισούται προσεγγιστικά με 169. Άσκηση 3 (10 μονάδες) (Σχεδίαση Φυσικού Σχήματος) Θεωρείστε την σχέση R(a,b,c,d), η οποία είναι συσταδοποιημένη (clustering) στο γνώρισμα a που αποτελεί και το κλειδί της σχέσης στο οποίο έχει επίσης οριστεί ένα B+δενδρικό ευρετήριο. Για κάθε ένα από τα ακόλουθα ανεξάρτητα φορτία εργασίας θα πρέπει να μελετήστε εάν είναι δυνατόν η προσθήκη ενός ακόμα B+δενδρικού ευρετηρίου θα επιταχύνει την εκτέλεση των ερωτημάτων (queries). Εάν υπάρχουν παραπάνω από ένα δυνατά ευρετήρια διαλέξτε ένα και καθορήστε ποιο ή ποια γνωρίσματα καλύπτει. Εάν εκτιμάτε ότι ο χρόνος εκτέλεσης των ερωτημάτων του κάθε φορτίου δεν θα βελτιωθεί από την ύπαρξη ενός επιπλέον ευρετηρίου εξηγήστε γιατί. (α) (5 μονάδες) Όλα τα ερωτήματα έχουν την μορφή: select * from R where b >? and b <? and d =? όπου? συμβολίζει κάποια τιμή An index on (d,b) would be best since it allows us to select exactly the tuples that satisfy these queries. (Indices on d only would require reading through unneeded values of b. Indices on b alone or (b,d) also are less selective since although they allow us to access the specified values of b, some of the d values in the selected b range might match, while others might not.) (β) (5 μονάδες) 100,000 ερωτήματα έχουν την μορφή: select * from R where b =? and c =? και 100,000 ερωτήματα έχουν την μορφή: select * from R where b =? and d =? An index on either (b,c) or (b,d) would be most selective for half of the queries and would be helpful for the others. An index on b alone would not be quite as good. It would help all queries equally well, but miss the opportunity to speed up half of them further.

ΗΥ460 Τελική Εξέταση 1 Φεβρουαρίου 2012 Σελίδα 4 από 8 Άσκηση 4 (20 μονάδες) (Βελτιστοποίηση Επερωτήσεων) Θεωρείστε δυο σχέσεις R(A,B,C,V) και S(D,E,F) όπου το A είναι το κλειδί της R και το D το κλειδί της S. Σας δίνεται το ακόλουθο ερώτημα SQL: Select S.F, sum(r.v) From R, S Where R.B = 1234 and R.C= S.D and S.E= 5678 Group by S.F Έχουμε συσταδοποιημένα (clustered) ευρετήρια στα πεδία R.A και S.D (που είναι και τα κλειδιά των σχέσεων), και μη συσταδοποιημένα (unclustered) ευρετήρια στα R.B και S.E. Υποθέστε ότι και οι δυο σχέσεις R και S είναι πολύ μεγάλες και δεν χωράνε στην κύρια μνήμη. Θεωρείστε τα ακόλουθα τρία λογικά πλάνα (logical plans) όπου ο τελεστής συμβολίζει την ομαδοποίηση (grouping): P1 = F,sum(V) ( B=1234 (R)) Join C=D ( E=5678(S)) P2 = F,sum(V) ( E=5678 ( B=1234(R) Join C=D S)) P3 = F,sum(V) ( Β=1234 ( Ε=5678 (R Join C=D S))) Σε αυτή την άσκηση θεωρούμε ότι στα πλάνα μας η R εμφανίζεται μόνο σαν αριστερή και η S μόνο σαν δεξιά σχέση μιας σύζευξης (join). α) (3 μονάδες) Καθορίστε σε ποια λογικά πλάνα μπορούμε να χρησιμοποιήσουμε μια σύζευξη βασισμένη σε ευρετήρια (index-based join). Θυμηθείτε ότι σε μια τέτοια σύζευξη χρησιμοποιείται το ευρετήριο της δεξιάς σχέσης. Τα P2, P3. Δεν γίνεται να χρησιμοποιηθεί μια σύζευξη βασισμένη σε ευρετήρια για το P1 καθώς το ευρετήριο χάνεται μετά την επιλογή (selection). β) (3 μονάδες) Υποθέστε ότι όλες οι επιλογές (selections) υλοποιούνται σαν αναζητήσεις ευρετηρίων (index lookups). Καθορίστε για ποια λογικά πλάνα μπορούμε να χρησιμοποιήσουμε μια σύζευξη με συγχώνευση (merge join) που αποφεύγει την δημιουργία των αρχικά ταξινομημένων συρμών (runs) για το σωστό πεδίο. Θυμηθείτε ότι μια σύζευξη με συγχώνευση γίνεται σε δυο βήματα: τον αρχικό σχηματισμό των συρμών για την αριστερή και την δεξιά σχέση, και στην συνέχεια τη φάση συγχώνευσης. Σε αυτό το υποερώτημα ενδιαφερόμαστε μόνο για τα φυσικά πλάνα (physical plans) που αποφεύγουν τον αρχικό σχηματισμό συρμών για την δεξιά σχέση. Δεν πρέπει να κάνετε καμία επιπλέον υπόθεση για την ύπαρξη ευρετήριων πέρα από αυτά που σας δίνονται στην εκφώνηση. Το P3 γιατί η σύζευξη R Join C=D S θα πραγματοποιηθεί στο γνώρισμα S.D στο οποίο η δεξιά σχέση είναι συσταδοποιημένη και άρα ήδη ταξινομημένη. γ) (3 μονάδες) Εάν αποφασίσουμε να υλοποιήσουμε την σύζευξη με έναν αλγόριθμο κατακερματισμού (hash join), καθορίστε σε ποιο από τα τρία λογικά πλάνα η σύζευξη θα εκτελεστεί βέλτιστα απαιτώντας το πολύ τον ίδιο αριθμό E/E για οποιοδήποτε από τα υπόλοιπα δυο πλάνα στα οποία η σύζευξη υλοποιείται με τον αλγόριθμο της συγχώνευσης. To P1, γιατί κάνει σύζευξη σε μικρότερους πίνακες.

ΗΥ460 Τελική Εξέταση 1 Φεβρουαρίου 2012 Σελίδα 5 από 8 δ) (3 μονάδες) Θεωρείστε το λογικό πλάνο P2. Σε ποιες από τα παρακάτω περιπτώσεις μια σύζευξη βασισμένη σε ευρετήρια (index join) εγγυάται ότι θα αποδώσει καλύτερα (λιγότερες E/E) από ότι μια σύζευξη κατακερματισμού (hash-join), εάν αυτή πραγματοποιείται στη κύρια μνήμη; Όλες οι πλειάδες στο R ικανοποιούν το R.B= 1234. Όχι, γιατί σε αυτή την περίπτωση μια σύζευξη βασισμένη σε ευρετήρια έχει πολύ κακή απόδοση. Υπάρχει μόνο μια πλειάδα στο R που ικανοποιεί το R.B= 1234 Ναι, γιατί σε αυτή την περίπτωση μια σύζευξη βασισμένη σε ευρετήρια θα χρειαστεί μόνο μια αναζήτηση ευρετηρίου (single index lookup). ε) (8 μονάδες) Υποθέστε ότι και οι δύο σχέσεις αποθηκεύονται σε 10000 σελίδες (pages), οι σελίδες ενδιάμεσης μνήμης (buffers) είναι 102, όλες οι πλειάδες της R ικανοποιούν την συνθήκη R.B= 1234 και όλες οι πλειάδες της S ικανοποιούν την συνθήκη S.E= 5678 (ακόμα V(R,B)=V(S,E)=1 και V(R,C)=V(S,F)=100). Σημειώστε ότι κανένα από τα λογικά πλάνα δεν μπορεί να υλοποιηθεί στην κύρια μνήμη. Βρείτε ένα νέο λογικό πλάνο που μπορεί να εκτελεστεί αποκλειστικά στην κύρια μνήμη εκτός από τις αναγνώσεις των σχέσεων R και S. Δώστε μόνο το λογικό πλάνο, υποθέτοντας ότι καμιά εγγραφή δεν είναι μεγαλύτερη από μια σελίδα. [F, sum(v)] ( [C, sum(v)] ( (R)) Join (S)) Η εσωτερική ομαδοποίηση έχει μόνο 100 κάδους (buckets), οπότε μπορεί να γίνει στην κύρια μνήμη. Η σύζευξη έχει μια αριστερή σχέση που χωράει στην κύρια μνήμη και μπορεί να γίνει σαν μια σύζευξη φωλιασμένων βρόγχων (nested loop join), και μετά τα αποτελέσματα στέλνονται σε ροή στην εξωτερική ομαδοποίηση. Αυτή επίσης μπορεί να υλοποιηθεί σαν μια σύζευξη με φωλιασμένους βρόγχους επαναχρησιμοποιώντας τους κάδους της πρώτης ομαδοποίησης. Άσκηση 5 (16 μονάδες) Στατιστικά και Εκτίμηση Πληθικότητας Επερωτήσεων Θεωρήστε την παρακάτω σχέση R: Make Model Doors Honda Civic 2 Honda Accord 2 Honda SUV 2 Ford Taurus 4 Ford Mustang 4 Ford SUV 4 GM Chevy 2 GM Buivk 2 GM SUV 2

ΗΥ460 Τελική Εξέταση 1 Φεβρουαρίου 2012 Σελίδα 6 από 8 (α) (3 μονάδες) Τι τιμή έχουν οι παρακάτω μεταβλητές? T(R) V(R, Make) V(R, Doors) T(R) = 9 V(R, Make) = 3 V(R, Doors) = 2 (β) (5 μονάδες) Υποθέστε ότι οι τιμές για τις επερωτήσεις επιλέγονται από τις τιμές που υπάρχουν στην βάση μας. Τι θα υπολογίσει ο βελτιστοποιητής των επερωτήσεων (optimizer) για: Τον αριθμό των πλειάδων στο σ Make=Honda(R) Τον αριθμό των πλειάδων στο σ Model=SUV(R) Τον αριθμό των πλειάδων στο σ Make=Honda^Model=SUV(R) Τον αριθμό των πλειάδων στο σ Make=Honda^Doors=2(R) Τον αριθμό των πλειάδων στο Make, Doors(R) T(R) / V (R, Make) = 3 T(R) / V (R, Model) = 9/7 T(R) / V (R, Make) * V (R, Model) = 9/ 3 * 7 = 3/7 T(R) / V (R, Make) * V (R, Doors) = 9/ 3 * 2 = 3/2 T(R) = 9 (Δεν αφαιρούμε τις διπλοεγγραφές) (γ) (3 μονάδες) Εξηγείστε σύντομα γιατί η εκτίμηση για την επερώτηση Make=Honda ^ Model=SUV μπορεί να έχει μεγαλύτερη ακρίβεια από την επερώτηση Make=Honda ^ Doors=2. Όταν κάνουμε υπολογισμούς για τα αποτελέσματα κάποιας επιλογής, υποθέτουμε ότι τα γνωρίσματά μας είναι ανεξάρτητα το ένα από το άλλο. Στην περίπτωση όμως του Make και του Doors, υπάρχει συσχέτιση ανάμεσα στις τιμές τους. Για την ακρίβεια, όλα τα Honda έχουν 2 πόρτες στην σχέση R. (δ) (5 μονάδες) Για να χειριστούμε το πρόβλημα που προέκυψε στο υποερώτημα γ, κάποιος θα μπορούσε να προτείνει να κρατάμε στατιστικά για το V(R, Make-Doors), όπου το Make-Doors χρησιμοποιείται σαν ένα ενιαίο πεδίο που σχηματίζεται από την συνένωση των τιμών του Make και του Doors. Εξηγήστε σύντομα το πόσο καλή είναι η παραπάνω ιδέα και αν θα μπορούσε η όχι να υλοποιηθεί σε ένα DBMS.

ΗΥ460 Τελική Εξέταση 1 Φεβρουαρίου 2012 Σελίδα 7 από 8 Για να απαντήσουμε στην ερώτηση θα πρέπει να λάβουμε υπόψη μας τα παρακάτω. Τα στατιστικά θα βοηθούσαν τους υπολογισμούς μας, μια και T(R)/V(R, Make-Doors) = 3 που είναι ακριβώς η τιμή που θα θέλαμε για την Make=Honda ^ Doors=2 επερώτηση. Από την άλλη απαιτείται ένα επιπλέον κόστος για να κρατάμε στατιστικά και να τα ενημερώνουμε. Το να συλλέξουμε τα στατιστικά σε όλα τα ζεύγη γνωρισμάτων θα ήταν εξαιρετικά ακριβό, έτσι αν υλοποιούσαμε την ιδέα θα έπρεπε να το κάνουμε μόνο σε ζεύγη που γνωρίζουμε οτι συσχετίζονται. Επιπλέον, αν και οι τιμές της R φαίνεται να συσχετίζονται, δεν σημαίνει στην γενική περίπτωση ότι τα δυο αυτά πεδία συσχετίζονται. Άσκηση 6 (15 μονάδες) Έλεγχος σύγχρονης πρόσβασης

ΗΥ460 Τελική Εξέταση 1 Φεβρουαρίου 2012 Σελίδα 8 από 8 Λύση Άσκηση 7 (15 μονάδες) Ανάνηψη από σφάλματα