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

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

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

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

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

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

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

Αποθήκευση εδομένων. Μαγνητικές ταινίες για. Εισαγωγή. Μέχρι σήμερα, είδαμε το σχεδιασμό και υλοποίηση μιας βάσης δεδομένων χρησιμοποιώντας ένα Σ Β

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

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

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

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

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

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

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

Οργάνωση Αρχείων. Βάσεις Δεδομένων : Οργάνωση Αρχείων 1. Blobs

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

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

Οργάνωση Αρχείων. Βάσεις Δεδομένων : Οργάνωση Αρχείων 1. Blobs

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

Κατακερματισμός. 4/3/2009 Μ.Χατζόπουλος 1

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

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

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

Δυναμικός Κατακερματισμός

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

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

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

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

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

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

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

Τα δεδομένα συνήθως αποθηκεύονται σε αρχεία στο δίσκο

Θέματα Υλοποίησης Σχεσιακών ΣΔΒΔ

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

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

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

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

Κεφάλαιο 13. Αποθήκευση σε ίσκους, Βασικές οµέςαρχείων, και Κατακερµατισµός. ιαφάνεια 13-1

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

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

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

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

Αποθήκευση Δεδοµένων

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

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

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

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

Αποθήκευση Δεδοµένων

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

Κεφάλαιο 13. Αποθήκευση σε Δίσκους, Βασικές Δομές Αρχείων, και Κατακερματισμός

Ενότητα 6: Κατακερματισμός Ασκήσεις και Λύσεις

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

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

Λειτουργικά Συστήματα Ι. Καθηγήτρια Παπαδάκη Αναστασία

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

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

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

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

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

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

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

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

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

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

Πίνακες (Μια παλιά άσκηση) Πίνακες Κατακερματισμού (Hash Tables) Πίνακες (Μια παλιά άσκηση) Εισαγωγή. A n

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

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

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

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

Δομές Δεδομένων και Αλγόριθμοι

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

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

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

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

Δυναμικά Σύνολα. Δυναμικό σύνολο. Tα στοιχεία του μεταβάλλονται μέσω εντολών εισαγωγής και διαγραφής. διαγραφή. εισαγωγή

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

Δομές Δεδομένων. Ενότητα 11: Τεχνικές Κατακερματισμού. Καθηγήτρια Μαρία Σατρατζέμη. Τμήμα Εφαρμοσμένης Πληροφορικής.

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

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

Οργάνωση Υπολογιστών (IΙI)

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

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

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

Πίνακες Συμβόλων. εισαγωγή αναζήτηση επιλογή. εισαγωγή. αναζήτηση

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

Advanced Data Indexing

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

Advanced Data Indexing

Δυναμικά Σύνολα. Δυναμικό σύνολο. Tα στοιχεία του μεταβάλλονται μέσω εντολών εισαγωγής και διαγραφής. διαγραφή. εισαγωγή

ΠΑΡΑΡΤΗΜΑ: QUIZ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ

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

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

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

Ο ΑΤΔ Λεξικό. Σύνολο στοιχείων με βασικές πράξεις: Δημιουργία Εισαγωγή Διαγραφή Μέλος. Υλοποιήσεις

Προηγμένη Ευρετηρίαση Δεδομένων (ΠΜΣ) Ενδεικτικές ερωτήσεις-θέματα για την εξέταση της θεωρίας

10. Πίνακες Κατακερματισμού

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

ΣΥΣΚΕΥΕΣ ΑΠΟΘΗΚΕΥΣΗΣ (ΜΝΗΜΗ)

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

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ - UNIX. Συστήματα Αρχείων. Διδάσκoντες: Καθ. Κ. Λαμπρινουδάκης Δρ. Α. Γαλάνη

Transcript:

Οργάνωση Αρχείων & Ευρετήρια Οργάνωση Αρχείων Αρχεία σωρού Διατεταγμένα αρχεία Αρχεία κατακερματισμού Ευρετήρια Ταξινομημένα ευρετήρια B + δένδρα Ευρετήρια κατακερματισμού Βασική πηγή διαφανειών: Silberschatz et al., Database System Concepts, 4/e Εργαστήριο Πληροφοριακών Συστηµάτων, Παν/µιο Πειραιώς (http://infolab.cs.unipi.gr/) έκδοση: Φεβ. 2010 ΠΑ.ΠΕΙ. Γιάννης Θεοδωρίδης Διάγραμμα Σχεσιακού σχήματος Βάση δεδομένων τράπεζας (πελάτες υποκαταστήματα καταθετικοί λογαριασμοί δάνεια) 2 ΠΑ.ΠΕΙ. Γιάννης Θεοδωρίδης 5.1

Οργάνωση Αρχείων Αρχεία σωρού Διατεταγμένα αρχεία Αρχεία κατακερματισμού Ευρετήρια Ταξινομημένα ευρετήρια B + δένδρα Ευρετήρια κατακερματισμού ΠΑ.ΠΕΙ. Γιάννης Θεοδωρίδης Οργάνωση αρχείων Η βάση δεδομένων αποθηκεύεται ως μια συλλογή από αρχεία. Κάθε αρχείο είναι μια ακολουθία από εγγραφές. Μια εγγραφή είναι μια ακολουθία από πεδία. Η βάση δεδομένων πρέπει να αποθηκευτείσεκάποιοαποθηκευτικόμέσο Ιεραρχία μέσων αποθήκευσης πρωτεύουσα αποθήκευση (primary storage): κύρια μνήμη, κρυφή μνήμη (cache) γρήγορη προσπέλαση (nsecs) αλλά περιορισμένη χωρητικότητα (Mbytes) δευτερεύουσα αποθήκευση (secondary storage): μαγνητικοί δίσκοι, ταινίες αργή προσπέλαση (msecs) αλλά μεγάλη χωρητικότητα (TBytes) Οι περισσότερες βάσεις δεδομένων αποθηκεύονται σε δευτερεύουσες αποθηκευτικές μονάδες (κυρίως σε δίσκους) πολύ μεγάλες ΒΔ μεγάλο κόστος μόνιμη αποθήκευση (non volatile storage) 4 ΠΑ.ΠΕΙ. Γιάννης Θεοδωρίδης 5.2

Μαγνητικοί δίσκοι (1) κτένι Κεφαλές ανάγνωσης/εγγραφής βραχίονας Άξονας περιστροφής άτρακτος (track) κύλινδρος (cylinder) σελίδα δίσκου (block) τομέας (sector) 5 ΠΑ.ΠΕΙ. Γιάννης Θεοδωρίδης Μαγνητικοί δίσκοι (2) χρόνος εντοπισμού (seek time): χρόνος για να τοποθετηθεί η κεφαλή στη σωστή άτρακτο χρόνος περιστροφής (rotational delay ή latency): χρόνος ώσπου η αρχή του σωστού block να βρεθεί κάτω από την κεφαλή χρόνος μεταφοράς block (block transfer time) χρόνος μεταφοράς δεδομένων από το δίσκο στη μνήμη Χρόνος προσπέλασης = χρόνος εντοπισμού + χρόνος περιστροφής + χρόνος μεταφοράς Seagate Barracuda 180 hard disk size: 180 GBytes interface: Ultra 160 SCSI, Fibre Channel spindle rotation speed: 7200 RPM latency: 4.17 ms average read/write seek time: 7.4/8.2 ms internal formatted data rate: 26-47 Mbytes/s buffer size: 4 (optionally 16) Mb 6 ΠΑ.ΠΕΙ. Γιάννης Θεοδωρίδης 5.3

Παραδοχές Η μονάδα μεταφοράς μεταξύ δίσκου και μνήμης είναι ένα block δίσκου (με μέγεθος b bytes) Κάθε αρχείο έχει εγγραφές ενός τύπου μόνο Το μέγεθος των εγγραφών είναι σταθερό (με μέγεθος r bytes) Οι εγγραφές δεν επιτρέπεται να διασχίζουν τα όρια ενός block Παράγοντας ομαδοποίησης (blocking factor): bfr = (b / r) Αριθμός blocks B για την αποθήκευση ενός αρχείου R εγγραφών: B= (R /bfr) 7 ΠΑ.ΠΕΙ. Γιάννης Θεοδωρίδης Εγγραφές σταθερού μήκους Απλή προσέγγιση: Αποθηκεύουμε την i οστή εγγραφή ξεκινώντας από το byte n (i 1), όπου n είναι το μέγεθος κάθε εγγραφής. Υπέρ: Η προσπέλαση των εγγραφών είναι απλή Κατά: Η διαγραφή μιας εγγραφής είναι προβληματική 8 ΠΑ.ΠΕΙ. Γιάννης Θεοδωρίδης 5.4

Ελεύθερες λίστες Αποθηκεύουμε τη διεύθυνση της πρώτης διαγραμμένης εγγραφής στην επικεφαλίδα του αρχείου. Χρησιμοποιούμε αυτήν την πρώτη εγγραφή για να αποθηκεύσουμε τη διεύθυνση της δεύτερης διαγραμμένης εγγραφής κ.ο.κ. Μπορούμε να θεωρήσουμε αυτές τις αποθηκευμένες διευθύνσεις ως δείκτες, αφού δείχνουν στη θέση που βρίσκεται μια εγγραφή. 9 ΠΑ.ΠΕΙ. Γιάννης Θεοδωρίδης Οργάνωση των εγγραφών σε αρχεία Αρχεία σωρού μια εγγραφή μπορεί να τοποθετηθεί οπουδήποτε υπάρχει χώρος στο αρχείο. Διατεταγμένα αρχεία αποθήκευση των εγγραφών βάσει της τιμής του κλειδιού διάταξης κάθε εγγραφής. Αρχεία κατακερματισμού μια συνάρτηση κατακερματισμού υπολογίζεται σε κάποιο χαρακτηριστικό κάθε εγγραφής. Το αποτέλεσμα καθορίζει σε ποιο block του αρχείου πρέπει να αποθηκευθεί η εγγραφή. 10 ΠΑ.ΠΕΙ. Γιάννης Θεοδωρίδης 5.5

Αρχεία σωρού Αρχείο Σωρού (heap file ή pile file): Οι εγγραφές τοποθετούνται στο αρχείο με τη σειρά που εισάγονται Κόστος εισαγωγής εγγραφής: 2 blocks (1 ανάγνωση + 1 εγγραφή) (μέσο) κόστος αναζήτησης εγγραφών (ερώτηση ταυτότητας) B/2 blocks (κλειδί) B blocks (όχι κλειδί) 11 ΠΑ.ΠΕΙ. Γιάννης Θεοδωρίδης Διατεταγμένα αρχεία (1) Οι εγγραφές στο αρχείο είναι διατεταγμένες βάσει ενός κλειδιού διάταξης. Κλειδί διάταξης (ordering key): χαρακτηριστικό (ήσύνολο χαρακτηριστικών) που χρησιμοποιείται για την αναζήτηση εγγραφών σε ένα αρχείο. Π.χ., <branch name, account number> Δεν ταυτίζεται απαραίτητα με το πρωτεύον κλειδί 12 ΠΑ.ΠΕΙ. Γιάννης Θεοδωρίδης 5.6

Διατεταγμένα αρχεία (2) Αναζήτηση: Ερώτηση ταυτότητας σε πεδίο άλλο από το κλειδί διάταξης: σειριακή αναζήτηση Ερώτηση ταυτότητας στο κλειδί διάταξης: δυαδική αναζήτηση Κόστος αναζήτησης (ερώτηση ταυτότητας στο κλειδί διάταξης) = κόστος αναζήτησης στο κύριο αρχείο (log 2 B blocks) + κόστος αναζήτησης στο αρχείο υπερχείλισης, μεγέθους B (B /2 blocks) παραδοχή: B << B 13 ΠΑ.ΠΕΙ. Γιάννης Θεοδωρίδης Διατεταγμένα αρχεία (3) Εισαγωγή 2εναλλακτικά: Διατήρηση αχρησιμοποίητου χώρου σε κάθε block Δημιουργία προσωρινού μη διατεταγμένου αρχείου (αρχείο υπερχείλισης) Και στις 2 περιπτώσεις προκύπτει η ανάγκη περιοδικής αναδιοργάνωσης Κόστος εισαγωγής εγγραφής = Κόστος αναζήτησης (για εντοπισμό της κατάλληλης θέσης) + κόστος εισαγωγής στο αρχείο υπερχείλισης (2 blocks) 14 ΠΑ.ΠΕΙ. Γιάννης Θεοδωρίδης 5.7

Αρχεία Κατακερματισμού Ένας κάδος (bucket) είναι μια μονάδα αποθήκευσης που περιέχει μια ή περισσότερες εγγραφές (συνήθως κάδος = block). Σε ένα αρχείο κατακερματισμού (hashing) βρίσκουμε τον κάδο στον οποίο περιέχεται μια εγγραφή απευθείας από την τιμή του κλειδιού διάταξης της εγγραφής χρησιμοποιώντας μια συνάρτηση κατακερματισμού (hashing function). 15 ΠΑ.ΠΕΙ. Γιάννης Θεοδωρίδης Στατικός κατακερματισμός Στο στατικό κατακερματισμό (static hashing) δεσμεύεται εξαρχής ένας αριθμός από κάδους. Η συνάρτηση κατακερματισμού h(κ) είναι μια συνάρτηση από το σύνολο των τιμών του κλειδιού διάταξης K στο σύνολο των διευθύνσεων των κάδων B. Η συνάρτηση κατακερματισμού χρησιμοποιείται για την αναζήτηση, εισαγωγή αλλά και τη διαγραφή εγγραφών. Εγγραφές με διαφορετικές τιμές του κλειδιού διάταξης μπορεί να τοποθετηθούν στον ίδιο κάδο. Επομένως, όλος ο κάδος πρέπει να σαρωθεί σειριακά για την εύρεση μιας εγγραφής. 16 ΠΑ.ΠΕΙ. Γιάννης Θεοδωρίδης 5.8

Παράδειγμα στατικού κατακερματισμού Κατακερματισμός πάνω στο branch name 10 κάδοι (4 εγγραφές / κάδο) Ησυνάρτησηκατακερματισμού επιστρέφει μια τιμή στο [0..9] Παράδειγμα: h(perryridge) = 5 h(round Hill) = 3 17 ΠΑ.ΠΕΙ. Γιάννης Θεοδωρίδης Συναρτήσεις κατακερματισμού Η χειρότερη συνάρτηση κατακερματισμού αντιστοιχεί όλες τις τιμές του κλειδιού διάταξης στον ίδιο κάδο. Μια ιδανική συνάρτηση κατακερματισμού είναι: ομοιόμορφη, σε κάθε κάδο ανατίθεται ο ίδιος αριθμός από τιμές του κλειδιού διάταξης από το σύνολο όλων των πιθανών τιμών. τυχαία, κάθε κάδος έχει τον ίδιο αριθμό από εγγραφές ανεξάρτητα από την πραγματική κατανομή των τιμών του κλειδιού διάταξης στο αρχείο. 30 25 20 15 10 5 0 0 1 2 3 4 5 6 7 8 9 16 14 12 10 8 6 4 2 0 0 1 2 3 4 5 6 7 8 9 18 ΠΑ.ΠΕΙ. Γιάννης Θεοδωρίδης 5.9

Επίλυση συγκρούσεων Σύγκρουση (collision) συμβαίνει όταν μια νέα εγγραφή κατακερματίζεται σε έναν ήδη γεμάτο κάδο λόγω: ανεπάρκειας των κάδων (λίγοι σε σχέση με τον όγκο της ΒΔ ή ασυμμετρίας στην κατανομή των εγγραφών. Επίλυση συγκρούσεων: Ανοιχτή Διευθυνσιοδότηση (open addressing): τοποθέτηση στην επόμενη κενή θέση Αλυσιδωτή Σύνδεση (chaining): συνδεδεμένη λίστα με κάδους υπερχείλισης (overflow buckets) Πολλαπλός Κατακερματισμός (multiple hashing): εφαρμογή δεύτερης συνάρτησης κατακ/μού 19 ΠΑ.ΠΕΙ. Γιάννης Θεοδωρίδης Μειονεκτήματα στατικού κατακερματισμού Το σύνολο των διευθύνσεων κάδων είναι προκαθορισμένο. Οι βάσεις δεδομένων μεγαλώνουν με το χρόνο. Αν ο αρχικός αριθμός κάδων είναι πολύ μικρός, η απόδοση θα μειωθεί λόγω των αλυσίδων υπερχείλισης. Έστω και εάν είναι προβλέψιμο το μελλοντικό μέγεθος των αρχείων και προσδιοριστεί ανάλογα ο αριθμός των κάδων, στην αρχή θα σπαταλιέται άσκοπα σημαντικό ποσό χώρου. Όταν συρρικνώνεται η βάση δεδομένων, πάλι υπάρχει σπατάλη χώρου. Μια λύση είναι η περιοδική αναδιοργάνωση του αρχείου με μια νέα συνάρτηση κατακερματισμού, αλλά αυτή η διαδικασία είναι πολύ ακριβή (σε χώρο και χρόνο). Αυτά τα προβλήματα αποφεύγονται με τεχνικές που επιτρέπουν να τροποποιείται δυναμικά ο αριθμός των κάδων επεκτάσιμος κατακερματισμός (extensible hashing). 20 ΠΑ.ΠΕΙ. Γιάννης Θεοδωρίδης 5.10

Επεκτάσιμος κατακερματισμός (1) Δυαδική αναπαράσταση του αποτελέσματος της συνάρτησης κατακερματισμού, δηλαδή ως μια ακολουθία δυαδικών ψηφίων Κατανομή εγγραφών με βάση τηντιμήτωναρχικώνψηφίων Διαδικασία: Το αρχείο ξεκινά με ένα μόνο κάδο Μόλις γεμίσει ένας κάδος διασπάται σε δύο κάδους (0 και 1) με βάση την τιμή του λιγότερο σημαντικού δυαδικού ψηφίου (LSB) των τιμών κατακερματισμού Νέα υπερχείλιση ενός κάδου οδηγεί σε διάσπασή του με βάση το αμέσως μεγαλύτερο σε σημασία δυαδικό ψηφίο, κοκ. Έτσι δημιουργείται ένας κατάλογος (directory) με τιμές κατακερματισμού (σε δυαδική μορφή) και διευθύνσεις κάδων ο κατάλογος διατηρείται στη μνήμη, εκτός αν είναι μεγάλος 21 ΠΑ.ΠΕΙ. Γιάννης Θεοδωρίδης Επεκτάσιμος κατακερματισμός (2) Τα τελευταία d ψηφία της τιμής κατακερματισμού χρησιμοποιούνται ως δείκτης στον κατάλογο 000 001 010 011 100 101 110 111 Δεν χρειάζεται διαφορετικός κάδος για κάθε μία από τις 2 d θέσεις μπορεί η θέση του καταλόγου να δείχνει στη διεύθυνση του ίδιου κάδου αν αυτές χωράνε σε ένα κάδο Ητιμήτουd μπορείνααυξάνεταιήναμειώνεται Κάδος για τις εγγραφές με τιμές κατακερματισμού που λήγουν σε 10 Κάδος για τις εγγραφές με τιμές κατακερματισμού που λήγουν σε 111 22 ΠΑ.ΠΕΙ. Γιάννης Θεοδωρίδης 5.11

Οργάνωση Αρχείων Αρχεία σωρού Διατεταγμένα αρχεία Αρχεία κατακερματισμού Ευρετήρια Ταξινομημένα ευρετήρια B + δένδρα Ευρετήρια κατακερματισμού ΠΑ.ΠΕΙ. Γιάννης Θεοδωρίδης Ευρετήρια Βασικά θέματα Οι μηχανισμοί δεικτοδότησης ευρετήρια χρησιμοποιούνται για να επιταχύνουν την πρόσβαση σε επιθυμητά δεδομένα. Π.χ., κατάλογος συγγραφέων στη βιβλιοθήκη Ένα ευρετήριο (index) αποτελείται από εγγραφές της μορφής: κλειδί διάταξης δείκτης Τα ευρετήρια συνήθως είναι αρκετά μικρότερα από το αρχείο που δεικτοδοτούν. Δυο βασικά είδη ευρετηρίων: διατεταγμένα ευρετήρια: ευρετήρια που διατηρούν τη διάταξη των τιμών του πεδίου διάταξης ευρετήρια κατακερματισμού: μηχανισμός αντίστοιχος με αυτόν στα αρχεία κατακερματισμού. 24 ΠΑ.ΠΕΙ. Γιάννης Θεοδωρίδης 5.12

Διατεταγμένα ευρετήρια Περιέχουν εγγραφές <τιμή κλειδιού διάταξης, δείκτης στο κύριο αρχείο> για κάθε τιμή του κλειδιού διάταξης που εμφανίζεται στο αρχείο. 25 ΠΑ.ΠΕΙ. Γιάννης Θεοδωρίδης Ενημέρωση ευρετηρίου Εισαγωγή εγγραφής: Πραγματοποιούμε μια αναζήτηση χρησιμοποιώντας την τιμή του κλειδιού διάταξης που έχει η εγγραφή που πρόκειται να εισαχθεί. Εάν το κλειδί διάταξης δεν υπάρχει στο ευρετήριο, το εισάγουμε. Διαγραφή εγγραφής: Εάν η διαγραφείσα εγγραφή ήταν η μοναδική στο αρχείο με τη συγκεκριμένη τιμή του κλειδιού διάταξης, το κλειδί διάταξης διαγράφεται επίσης και από το ευρετήριο. η διαγραφή του κλειδιού διάταξης είναι παρόμοια με τη διαγραφή μιας εγγραφής του αρχείου. 26 ΠΑ.ΠΕΙ. Γιάννης Θεοδωρίδης 5.13

Δευτερεύοντα ευρετήρια Πολλές φορές θέλουμε να βρούμε όλες τις εγγραφές, των οποίων οι τιμές σε ένα συγκεκριμένο πεδίο (το οποίο δεν είναι το κλειδί διάταξης) ικανοποιούν κάποια συνθήκη. Παράδειγμα: Στη σχέση account, θέλουμε να βρούμε όλους τους λογαριασμούς με ένα συγκεκριμένο υπόλοιπο (ή εύρος υπολοίπων). Μπορούμε να έχουμε ένα δευτερεύον ευρετήριο (secondary index) με μια εγγραφή για κάθε τιμή του πεδίου. Κάθε εγγραφή του ευρετηρίου δείχνει σε ένα κάδο, ο οποίος περιέχει δείκτες σε όλες τις πραγματικές εγγραφές με τη συγκεκριμένη τιμή του πεδίου. 27 ΠΑ.ΠΕΙ. Γιάννης Θεοδωρίδης Παράδειγμα δευτερεύοντος ευρετηρίου πάνω στο πεδίο balance της σχέσης account Βρείτε το λάθος!! 28 ΠΑ.ΠΕΙ. Γιάννης Θεοδωρίδης 5.14

Ευρετήρια με χρήση B + δένδρων Μειονέκτημα των διατεταγμένων αρχείων: η απόδοση μειώνεται καθώς το αρχείο μεγαλώνει, από τη στιγμή που μπορεί να δημιουργηθούν πολλά blocks υπερχείλισης. Απαιτείται περιοδική αναδιοργάνωση όλου του αρχείου. Λύση: χρήση Β + δένδρων 29 ΠΑ.ΠΕΙ. Γιάννης Θεοδωρίδης Παράδειγμα B + δένδρου Κάθε κόμβος έχει k τιμές και k+1 δείκτες. Όλες οι τιμές του κλειδιού διάταξης υπάρχουν στα φύλλα. Στα φύλλα, οι δείκτες (εκτός από έναν) δείχνουν σε εγγραφές στο αρχείο. 30 ΠΑ.ΠΕΙ. Γιάννης Θεοδωρίδης 5.15

Ορισμός B + δένδρου Ένα B + δένδρο τάξης n (συνήθως, n περιττός αριθμός) είναι ένα δένδρο με ρίζα που ικανοποιεί τις παρακάτω ιδιότητες: Όλα τα μονοπάτια από τη ρίζα προς ένα φύλλο έχουν το ίδιο μήκος (ισοζυγισμένο δένδρο). Ένας εσωτερικός κόμβος με k τιμές έχει k+1 παιδιά. Ένας εσωτερικός κόμβος έχει από n/2 έως n παιδιά. Ειδικά η ρίζα (ανείναιεσωτερικόςκόμβοςκαιόχιφύλλο) έχει από 2 έως n παιδιά. Ένα φύλλο έχει από (n 1)/2 έως n 1 τιμές. Ειδικά η ρίζα (αν είναι φύλλο) έχει από 0 έως n 1 τιμές. 31 ΠΑ.ΠΕΙ. Γιάννης Θεοδωρίδης Οι κόμβοι του B + δένδρου Τυπικός κόμβος K i είναι τιμές του κλειδιού διάταξης. P i είναι δείκτες σε παιδιά (για εσωτερικούς κόμβους) ή δείκτες σε blocks με εγγραφές (για φύλλα). Τα κλειδιά διάταξης σε ένα κόμβο είναι διατεταγμένα K 1 < K 2 < K 3 <... < K n 1 32 ΠΑ.ΠΕΙ. Γιάννης Θεοδωρίδης 5.16

Τα φύλλα του B + δένδρου Ιδιότητες ενός φύλλου Για i = 1, 2,, n 1, ο δείκτης P i δείχνει σε μια εγγραφή (στο αρχείο) με τιμή κλειδιού διάταξης K i Δηλαδή, το τελευταίο επίπεδο (φύλλα) λειτουργεί ως διατεταγμένο ευρετήριο Ο δείκτηςp n δείχνει στο επόμενο φύλλο βάσει της σειράς του κλειδιού διάταξης. Άρα, υπάρχει διάταξη στα φύλλα ενός Β + δένδρου. 33 ΠΑ.ΠΕΙ. Γιάννης Θεοδωρίδης Υπέρ και κατά των B + δένδρων Πλεονεκτήματα από τη χρήση των B + δένδρων: έχουν τη δυνατότητα αυτόματης αναδιοργάνωσης με μικρές, τοπικές αλλαγές κατά τη διάρκεια εισαγωγών και διαγραφών. Για τη διατήρηση της απόδοσης δεν απαιτείται αναδιοργάνωση όλου του αρχείου. Μειονεκτήματα από τη χρήση των B + δένδρων: επιπλέον κόστος I/O για την εισαγωγή και διαγραφή καθώς και επιπλέον απαίτηση χώρου. Τα πλεονεκτήματα των B + δένδρων υπερκαλύπτουν τα μειονεκτήματα και αυτό δικαιολογεί την ευρεία χρήση τους. 34 ΠΑ.ΠΕΙ. Γιάννης Θεοδωρίδης 5.17

Ευρετήρια κατακερματισμού Ο κατακερματισμός δεν χρησιμοποιείται μόνο για οργάνωση αρχείων, αλλά και για τη δημιουργία δομών ευρετηρίων. Ένα ευρετήριο κατακερματισμού (hash index) οργανώνει τα κλειδιά διάταξης και τους αντίστοιχους δείκτες στις εγγραφές σε μια δομή ενός αρχείου κατακερματισμού. Εάν το αρχείο είναι οργανωμένο με κατακερματισμό, είναι πλεονασμός να υπάρχει και ξεχωριστό ευρετήριο πάνω σε αυτό χρησιμοποιώντας το ίδιο κλειδί διάταξης. 35 ΠΑ.ΠΕΙ. Γιάννης Θεοδωρίδης Παράδειγμα ευρετηρίου κατακερματισμού 36 ΠΑ.ΠΕΙ. Γιάννης Θεοδωρίδης 5.18

Διατεταγμένα ή κατακερματισμού ; Κόστος περιοδικής αναδιοργάνωσης. Σχετική συχνότητα εισαγωγών και διαγραφών. Αναμενόμενοι τύποι ερωτήσεων: Ο κατακερματισμός είναι προτιμότερος για ερωτήσεις ταυτότητας πάνω στο κλειδί διάταξης. Για ερωτήσεις διαστήματος πάνω στο κλειδί διάταξης επιλέγονται τα ταξινομημένα ευρετήρια. Ο κατακερματισμός δεν μπορεί να υποστηρίξει ερωτήσεις διαστήματος 37 ΠΑ.ΠΕΙ. Γιάννης Θεοδωρίδης Ορισμός ευρετηρίων στην SQL Δημιουργία ενός ευρετηρίου create [unique] index <όνομα ευρετηρίου> on <όνομα σχέσης> (<λίστα χαρακτηριστικών>) Π.χ.: create index b index on branch(branch name) Χρήση της παραμέτρου unique γιαναδηλώσουμεότιτοκλειδίδιάταξηςείναι υποψήφιο κλειδί. Γιαναδιαγράψουμεέναευρετήριο drop index <όνομα ευρετηρίου> 38 ΠΑ.ΠΕΙ. Γιάννης Θεοδωρίδης 5.19

Donald Knuth and the B + tree About the naming of B + trees: A variation of B trees, B* Trees, was named by Donald Knuth in The Art of Computer Programing, Vol. 3, Searching and Sorting. Knuth proposed that B* Trees had nodes that were at least 2/3 full rather than 1/2 full. Knuth also proposed another B Tree variation having all keys in the leaves of the tree and the leaves are linked from left toright (making B + Tree ideal for sequential search) Comer says that Knuth did not name this variation, but Comer chooses to call it B + Tree. (source: http://mactech.com/articles/mactech/vol.06/06.11/nov90 Letters/index.html) Donald Knuth 39 ΠΑ.ΠΕΙ. Γιάννης Θεοδωρίδης 5.20