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



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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Linear Hashing. Linear vs other Hashing

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

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

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

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

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

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

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

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

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

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

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

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

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

Κεφάλαιο 6. Πρωτεύουσες Οργανώσεις Αρχείων Φυσικός Σχεδιασµός Αποθήκευση Εγγραφών. Ι.Β Πρωτεύουσες Οργανώσεις Αρχείων Σελίδα 3.1

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

Advanced Data Indexing

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

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

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

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

Κεφάλαιο 6. Πρωτεύουσες Οργανώσεις Αρχείων Φυσικός Σχεδιασµός Αποθήκευση Εγγραφών. Ι.Β Πρωτεύουσες Οργανώσεις Αρχείων Σελίδα 3.1

Δομές Αναζήτησης. εισαγωγή αναζήτηση επιλογή. εισαγωγή. αναζήτηση

Transcript:

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

Οργάνωση Αρχείων Αρχεία σωρού ιατεταγµένα αρχεία Αρχεία κατακερµατισµού Ευρετήρια Ταξινοµηµένα ευρετήρια B + -δένδρα Ευρετήρια κατακερµατισµού ΠΑ.ΠΕΙ. Γιάννης Θεοδωρίδης Οργάνωση αρχείων Η βάση δεδοµένων αποθηκεύεται ως µια συλλογή από αρχεία. Κάθε αρχείο είναι µια ακολουθία από εγγραφές. Μια εγγραφή είναι µια ακολουθία από πεδία. Η βάση δεδοµένων πρέπει να αποθηκευτεί σε κάποιο αποθηκευτικό µέσο 4 ΠΑ.ΠΕΙ. Γιάννης Θεοδωρίδης 5.2

Ιεραρχία µέσων αποθήκευσης πρωτεύουσα αποθήκευση (primary storage): κύρια µνήµη, κρυφή µνήµη (cache) γρήγορη προσπέλαση (nsecs) περιορισµένη χωρητικότητα (Mbytes) δευτερεύουσα αποθήκευση (secondary storage): µαγνητικοί δίσκοι, ταινίες πιο αργή προσπέλαση (msecs) µεγάλη χωρητικότητα (Gbytes ή και TBytes) Οι περισσότερες βάσεις δεδοµένων αποθηκεύονται σε δευτερεύουσες αποθηκευτικές µονάδες (κυρίως σε δίσκους) πολύ µεγάλες Β µεγάλο κόστος µόνιµηαποθήκευση (non-volatile storage) 5 ΠΑ.ΠΕΙ. Γιάννης Θεοδωρίδης Μαγνητικοί δίσκοι (1) κτένι Κεφαλές ανάγνωσης/εγγραφής βραχίονας Άξονας περιστροφής άτρακτος (track) κύλινδρος (cylinder) σελίδα δίσκου (block) τοµέας (sector) 6 ΠΑ.ΠΕΙ. Γιάννης Θεοδωρίδης 5.3

Μαγνητικοί δίσκοι (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 7 ΠΑ.ΠΕΙ. Γιάννης Θεοδωρίδης Παραδοχές Η µονάδα µεταφοράς µεταξύδίσκουκαιµνήµης είναι ένα block δίσκου (µε µέγεθος b bytes) Κάθε αρχείο έχει εγγραφές ενός τύπου µόνο Το µέγεθος των εγγραφών είναι σταθερό (µε µέγεθος r bytes) Οι εγγραφές δεν επιτρέπεται να διασχίζουν τα όρια ενός block Παράγοντας οµαδοποίησης (blocking factor): bfr = (b / r) Αριθµός blocks B για την αποθήκευση ενός αρχείου R εγγραφών: B= (R / bfr) 8 ΠΑ.ΠΕΙ. Γιάννης Θεοδωρίδης 5.4

Εγγραφές σταθερού µήκους Απλή προσέγγιση: Αποθηκεύουµε τηνi-οστή εγγραφή ξεκινώντας από τοbyte n (i 1), όπου n είναι το µέγεθος κάθε εγγραφής. Υπέρ: Η προσπέλαση των εγγραφών είναι απλή Κατά: Η διαγραφήµιας εγγραφής είναι προβληµατική 9 ΠΑ.ΠΕΙ. Γιάννης Θεοδωρίδης Ελεύθερες λίστες Αποθηκεύουµε τηδιεύθυνσητηςπρώτης διαγραµµένης εγγραφής στην επικεφαλίδα του αρχείου. Χρησιµοποιούµεαυτήντηνπρώτη εγγραφή για να αποθηκεύσουµε τη διεύθυνση της δεύτερης διαγραµµένης εγγραφής κ.ο.κ. Μπορούµε να θεωρήσουµε αυτέςτις αποθηκευµένες διευθύνσεις ως δείκτες, αφού δείχνουν στη θέση που βρίσκεται µια εγγραφή. 10 ΠΑ.ΠΕΙ. Γιάννης Θεοδωρίδης 5.5

Οργάνωση των εγγραφών σε αρχεία Αρχεία σωρού µια εγγραφή µπορεί να τοποθετηθεί οπουδήποτε υπάρχει χώρος στο αρχείο. ιατεταγµένα αρχεία αποθήκευση των εγγραφών βάσει της τιµής του κλειδιού διάταξης κάθε εγγραφής. Αρχεία κατακερµατισµού µια συνάρτηση κατακερµατισµού υπολογίζεται σε κάποιο χαρακτηριστικό κάθε εγγραφής. Το αποτέλεσµα καθορίζει σε ποιο block του αρχείου πρέπει να αποθηκευθεί η εγγραφή. 11 ΠΑ.ΠΕΙ. Γιάννης Θεοδωρίδης Οργάνωση Αρχείων Αρχεία σωρού ιατεταγµένα αρχεία Αρχεία κατακερµατισµού Ευρετήρια Ταξινοµηµένα ευρετήρια B + -δένδρα Ευρετήρια κατακερµατισµού ΠΑ.ΠΕΙ. Γιάννης Θεοδωρίδης 5.6

Αρχεία σωρού Αρχείο Σωρού (heap file ή pile file): Οι εγγραφές τοποθετούνται στο αρχείο µετησειράπου εισάγονται Κόστος εισαγωγής εγγραφής: 2 blocks (1 ανάγνωση + 1 εγγραφή) (µέσο) κόστος αναζήτησης εγγραφών (ερώτηση ταυτότητας) B/2 blocks (κλειδί) B blocks (όχι κλειδί) 13 ΠΑ.ΠΕΙ. Γιάννης Θεοδωρίδης Οργάνωση Αρχείων Αρχεία σωρού ιατεταγµένα αρχεία Αρχεία κατακερµατισµού Ευρετήρια Ταξινοµηµένα ευρετήρια B + -δένδρα Ευρετήρια κατακερµατισµού ΠΑ.ΠΕΙ. Γιάννης Θεοδωρίδης 5.7

ιατεταγµένα αρχεία (1) Οι εγγραφές στο αρχείο είναι διατεταγµένες βάσει ενός κλειδιού διάταξης. Κλειδί διάταξης (ordering key): χαρακτηριστικό (ή σύνολο χαρακτηριστικών) που χρησιµοποιείται για την αναζήτηση εγγραφών σε ένα αρχείο. Π.χ., <branch-name, account-number> εν ταυτίζεται απαραίτητα µε τοπρωτεύον κλειδί 15 ΠΑ.ΠΕΙ. Γιάννης Θεοδωρίδης ιατεταγµένα αρχεία (2) Εισαγωγή 2εναλλακτικά: ιατήρηση αχρησιµοποίητου χώρου σε κάθε block ηµιουργία προσωρινού µη διατεταγµένου αρχείου (αρχείο υπερχείλισης) Ανάγκη περιοδικής αναδιοργάνωσης Κόστος εισαγωγής εγγραφής = Κόστος αναζήτησης (για εντοπισµό της κατάλληλης θέσης) + κόστος εισαγωγής στο αρχείο υπερχείλισης (2 blocks) Κόστος αναζήτησης (ερώτηση ταυτότητας στο κλειδί διάταξης) = κόστος αναζήτησης στο κύριο αρχείο (log 2 B blocks) + κόστος αναζήτησης στοαρχείουπερχείλισης, µεγέθους B (B /2 blocks) (παραδοχή: B << B) 16 ΠΑ.ΠΕΙ. Γιάννης Θεοδωρίδης 5.8

Οργάνωση Αρχείων Αρχεία σωρού ιατεταγµένα αρχεία Αρχεία κατακερµατισµού Ευρετήρια Ταξινοµηµένα ευρετήρια B + -δένδρα Ευρετήρια κατακερµατισµού ΠΑ.ΠΕΙ. Γιάννης Θεοδωρίδης Αρχεία Κατακερµατισµού Ένας κάδος (bucket) είναι µια µονάδα αποθήκευσης που περιέχει µια ή περισσότερες εγγραφές (συνήθως κάδος = block). Σε ένα αρχείο κατακερ- µατισµού (hashing) βρίσκουµε τονκάδοστον οποίο περιέχεται µια εγγραφή απευθείας από την τιµή του κλειδιού διάταξης της εγγραφής χρησιµοποιώντας µια συνάρτηση κατακερ- µατισµού (hashing function). 18 ΠΑ.ΠΕΙ. Γιάννης Θεοδωρίδης 5.9

Στατικός κατακερµατισµός Στο στατικό κατακερµατισµό (static hashing) δεσµεύεται εξαρχήςέναςαριθµός από κάδους. Η συνάρτηση κατακερµατισµού h(κ) είναι µια συνάρτηση από το σύνολο των τιµών του κλειδιού διάταξης K στο σύνολο των διευθύνσεων των κάδων B. Η συνάρτηση κατακερµατισµού χρησιµοποιείται για την αναζήτηση, εισαγωγή αλλά και τη διαγραφή εγγραφών. Εγγραφές µε διαφορετικές τιµέςτουκλειδιούδιάταξης µπορεί να τοποθετηθούν στον ίδιο κάδο. Εποµένως, όλος ο κάδος πρέπει να σαρωθεί σειριακά για την εύρεση µιας εγγραφής. 19 ΠΑ.ΠΕΙ. Γιάννης Θεοδωρίδης Παράδειγµα στατικού κατακερµατισµού Κατακερµατισµός πάνω στο branch-name 10 κάδοι (4 εγγραφές / κάδο) Η συνάρτηση κατακερ- µατισµού επιστρέφει µια τιµή στο[0..9] Παράδειγµα: h(perryridge) = 5 h(round Hill) = 3 20 ΠΑ.ΠΕΙ. Γιάννης Θεοδωρίδης 5.10

Συναρτήσεις κατακερµατισµού Η χειρότερη συνάρτηση κατακερ- µατισµού αντιστοιχεί όλες τις τιµές του κλειδιού διάταξης στον ίδιο κάδο. Μια ιδανική συνάρτηση κατακερ- µατισµού είναι: οµοιόµορφη, σε κάθε κάδο ανατίθεται ο ίδιος αριθµός απότιµές του κλειδιού διάταξης απότοσύνολοόλωντων πιθανών τιµών. τυχαία, κάθε κάδος έχει τον ίδιο αριθµό από εγγραφές ανεξάρτητα από την πραγµατική κατανοµή των τιµών του κλειδιού διάταξης στο αρχείο. 30 25 20 15 10 5 0 16 14 12 10 8 6 4 2 0 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 21 ΠΑ.ΠΕΙ. Γιάννης Θεοδωρίδης Επίλυση συγκρούσεων Σύγκρουση (collision) συµβαίνει όταν µια νέα εγγραφή κατακερµατίζεται σε έναν ήδη γεµάτο κάδο λόγω: ανεπάρκειας των κάδων (λίγοι σε σχέση µε τον όγκο της Β ή ασυµµετρίας στην κατανοµή των εγγραφών. Επίλυση συγκρούσεων: Ανοιχτή ιευθυνσιοδότηση (open addressing): τοποθέτηση στην επόµενη κενή θέση Αλυσιδωτή Σύνδεση (chaining): συνδεδεµένη λίστα µε κάδους υπερχείλισης (overflow buckets) Πολλαπλός Κατακερµατισµός (multiple hashing): εφαρµογή δεύτερης συνάρτησης κατακ/µού 22 ΠΑ.ΠΕΙ. Γιάννης Θεοδωρίδης 5.11

Μειονεκτήµατα στατικού κατακερµατισµού Το σύνολο των διευθύνσεων κάδων είναι προκαθορισµένο. Οι βάσεις δεδοµένων µεγαλώνουν µε τοχρόνο. Αν ο αρχικός αριθµός κάδων είναι πολύ µικρός, η απόδοση θα µειωθεί λόγω των αλυσίδων υπερχείλισης. Έστω και εάν είναι προβλέψιµο το µελλοντικό µέγεθος των αρχείων και προσδιοριστεί ανάλογα ο αριθµός των κάδων, στην αρχή θα σπαταλιέται άσκοπα σηµαντικό ποσό χώρου. Όταν συρρικνώνεται η βάση δεδοµένων, πάλι υπάρχει σπατάλη χώρου. Μια λύση είναι η περιοδική αναδιοργάνωση του αρχείου µε µια νέα συνάρτηση κατακερµατισµού, αλλά αυτή η διαδικασία είναι πολύ ακριβή (σε χώρο και χρόνο). Αυτά τα προβλήµατα αποφεύγονται µε τεχνικές που επιτρέπουν να τροποποιείται δυναµικά ο αριθµός των κάδων επεκτάσιµος κατακερµατισµός (extensible hashing). 23 ΠΑ.ΠΕΙ. Γιάννης Θεοδωρίδης Επεκτάσιµος κατακερµατισµός (1) υαδική αναπαράσταση του αποτελέσµατος της συνάρτησης κατακερµατισµού, δηλαδή ως µια ακολουθία δυαδικών ψηφίων Κατανοµή εγγραφών µε βάσητηντιµή τωναρχικώνψηφίων ιαδικασία: Το αρχείο ξεκινά µε ένα µόνο κάδο Μόλις γεµίσει ένας κάδος διασπάται σε δύο κάδους (0 και 1) µε βάσητην τιµή του1 ου δυαδικού ψηφίου των τιµών κατακερµατισµού Νέα υπερχείλιση ενός κάδου οδηγεί σε διάσπασή του µε βάσητοαµέσως επόµενο δυαδικό ψηφίο, κοκ. Έτσι δηµιουργείται ένας κατάλογος (directory) µε τιµές κατακερµατισµού (σε δυαδική µορφή) και διευθύνσεις κάδων ο κατάλογος διατηρείται στη µνήµη, εκτός αν είναι µεγάλος 24 ΠΑ.ΠΕΙ. Γιάννης Θεοδωρίδης 5.12

Επεκτάσιµος κατακερµατισµός (2) Τα πρώτα d ψηφία της τιµής κατακερµατισµού χρησιµοποιούνται ως δείκτης στον κατάλογο 000 001 010 011 100 101 110 111 εν χρειάζεται διαφορετικός κάδος για κάθε µία απότις 2 d θέσεις - µπορεί η θέση του καταλόγου να δείχνει στη διεύθυνση του ίδιου κάδου αν αυτές χωράνε σε ένα κάδο Ητιµή τουd µπορεί να αυξάνεται ή να µειώνεται Κάδος για τις εγγραφές µε τιµές κατακερµατισµού που αρχίζουν από 10 Κάδος για τις εγγραφές µε τιµές κατακερµατισµού που αρχίζουν από 111 25 ΠΑ.ΠΕΙ. Γιάννης Θεοδωρίδης Οργάνωση Αρχείων Αρχεία σωρού ιατεταγµένα αρχεία Αρχεία κατακερµατισµού Ευρετήρια Ταξινοµηµένα ευρετήρια B + -δένδρα Ευρετήρια κατακερµατισµού ΠΑ.ΠΕΙ. Γιάννης Θεοδωρίδης 5.13

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

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

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

Οργάνωση Αρχείων Αρχεία σωρού ιατεταγµένα αρχεία Αρχεία κατακερµατισµού Ευρετήρια Ταξινοµηµένα ευρετήρια B + -δένδρα Ευρετήρια κατακερµατισµού ΠΑ.ΠΕΙ. Γιάννης Θεοδωρίδης Ευρετήρια µε χρήση B + -δένδρων Μειονέκτηµα των διατεταγµένων αρχείων: ηαπόδοση µειώνεται καθώς το αρχείο µεγαλώνει, από τηστιγµή που µπορεί να δηµιουργηθούν πολλά blocks υπερχείλισης. Απαιτείται περιοδική αναδιοργάνωση όλου του αρχείου. Λύση: χρήση Β + -δένδρων 34 ΠΑ.ΠΕΙ. Γιάννης Θεοδωρίδης 5.17

Παράδειγµα B + -δένδρου Κάθε κόµβος έχει k τιµές και k+1 δείκτες. Όλες οι τιµές του κλειδιού διάταξης υπάρχουν στα φύλλα. Στα φύλλα, οι δείκτες (εκτός από έναν) δείχνουν σε εγγραφές στο αρχείο. 35 ΠΑ.ΠΕΙ. Γιάννης Θεοδωρίδης Ορισµός B + - δένδρου Ένα B + -δένδρο τάξης n (συνήθως, n περιττός αριθµός) είναι ένα δένδρο µε ρίζαπου ικανοποιεί τις παρακάτω ιδιότητες: Όλα τα µονοπάτια από τηρίζαπρος ένα φύλλο έχουν το ίδιο µήκος (ισοζυγισµένο δένδρο). Ένας εσωτερικός κόµβος µε k τιµές έχει k+1 παιδιά. Ένας εσωτερικός κόµβος έχει από n/2 έως n παιδιά. Ειδικά η ρίζα (αν είναι εσωτ. κόµβος) έχει από 2 έως n παιδιά. Ένα φύλλο έχει από (n 1)/2 έως n 1 τιµές. Ειδικά η ρίζα (αν είναι φύλλο) έχει από 0 έως n 1 τιµές. 36 ΠΑ.ΠΕΙ. Γιάννης Θεοδωρίδης 5.18

Οι κόµβοι του B + -δένδρου Τυπικός κόµβος K i είναι τιµές του κλειδιού διάταξης. P i είναι δείκτες σε παιδιά (για εσωτερικούς κόµβους) ή δείκτεςσε blocks µε εγγραφές (για φύλλα). Τα κλειδιά διάταξης σε ένα κόµβο είναι διατεταγµένα K 1 < K 2 < K 3 <... < K n 1 37 ΠΑ.ΠΕΙ. Γιάννης Θεοδωρίδης Τα φύλλα του B + -δένδρου Ιδιότητες ενός φύλλου Για i = 1, 2,, n 1, οδείκτηςp i δείχνει σε µια εγγραφή (στο αρχείο) µε τιµή κλειδιού διάταξης K i ηλαδή, το τελευταίο επίπεδο (φύλλα) λειτουργεί ως διατεταγµένο ευρετήριο Ο δείκτηςp n δείχνει στο επόµενο φύλλο βάσει της σειράς του κλειδιού διάταξης. Άρα, υπάρχει διάταξη στα φύλλα ενός Β + -δένδρου. 38 ΠΑ.ΠΕΙ. Γιάννης Θεοδωρίδης 5.19

Υπέρ και κατά των B + -δένδρων Πλεονεκτήµατα από τηχρήσητωνb + -δένδρων: έχουν τη δυνατότητα αυτόµατης αναδιοργάνωσης µε µικρές, τοπικές αλλαγές κατά τη διάρκεια εισαγωγών και διαγραφών. Για τη διατήρηση της απόδοσης δεν απαιτείται αναδιοργάνωση όλου του αρχείου. Μειονεκτήµατα από τηχρήσητωνb + -δένδρων: επιπλέον κόστος I/O για την εισαγωγή και διαγραφή καθώς και επιπλέον απαίτηση χώρου. Τα πλεονεκτήµατα των B + -δένδρων υπερκαλύπτουν τα µειονεκτήµατα και αυτό δικαιολογεί την ευρεία χρήση τους. 39 ΠΑ.ΠΕΙ. Γιάννης Θεοδωρίδης Οργάνωση Αρχείων Αρχεία σωρού ιατεταγµένα αρχεία Αρχεία κατακερµατισµού Ευρετήρια Ταξινοµηµένα ευρετήρια B + -δένδρα Ευρετήρια κατακερµατισµού ΠΑ.ΠΕΙ. Γιάννης Θεοδωρίδης 5.20

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

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

Παράρτηµα: SQL Server Τα ευρετήρια είναι B + -δένδρα ηµιουργία ευρετηρίου σε T-SQL. CREATE [UNIQUE] [CLUSTERED NONCLUSTERED] INDEX index_name ON table_name ( column_name [, column_name, column_name, ] ) [WITH options] [ON filegroup_name] [UNIQUE]: unique vs. nonunique indexes [CLUSTERED]: clustered vs. nonclustered indexes (βλ. επόµενη διαφάνεια) [with options]: PAD_INDEX FILL_FACTOR? number IGNORE_DUP_KEY DROP_EXISTING STATISTICS_NORECOMPUTE πηγή: Microsoft SQL Server 2000 Administrator s Companion (ch. 17) 45 ΠΑ.ΠΕΙ. Γιάννης Θεοδωρίδης Clustered index Non-clustered index 46 ΠΑ.ΠΕΙ. Γιάννης Θεοδωρίδης 5.23