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



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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Εισαγωγή στην Επιστήμη των Υπολογιστών

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

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

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

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

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

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

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

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

Οι βασικές λειτουργίες (ή πράξεις) που γίνονται σε μια δομή δεδομένων είναι:

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

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

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

Διάλεξη 23: Τεχνικές Κατακερματισμού II (Hashing)

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

Διάλεξη 22: Τεχνικές Κατακερματισμού I (Hashing)

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Δομές Δεδομένων. Ιωάννης Γ. Τόλλης Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης

Πίνακες Κατακερματισμού. Hash Tables. Προγραμματισμός II 1

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

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

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

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

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

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

ΕΝΟΤΗΤΑ 8 KATAKEΡΜΑΤΙΣΜΟΣ (HASHING)

Advanced Data Indexing

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

ΠΛΗ111. Ανοιξη Μάθηµα 8 ο. Αναζήτηση. Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης

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

Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο Κάθε δομή μπορεί να χρησιμοποιηθεί σε οποιοδήποτε πρόβλημα ή εφαρμογή

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

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

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

Δομές Δεδομένων. Κατακερματισμός. Δομές Δεδομένων & Αλγόριθμοι. Εργαστήριο Γνώσης και Ευφυούς Πληροφορικής 1

HY240 : Δομές Δεδομένων. Φροντιστήριο Προγραμματιστικής Εργασίας 2 ο και 3 ο Μέρος

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Πληροφορική II. Ενότητα 6 : Δομές αρχείων. Δρ. Γκόγκος Χρήστος

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

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

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

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

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

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

Διαχρονικές δομές δεδομένων

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

Εξωτερική Ταξινόμηση. Μ.Χατζόπουλος 1

ΕΝΟΤΗΤΑ 6 ΛΙΣΤΕΣ ΠΑΡΑΛΕΙΨΗΣ (SKIP LISTS)

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

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ

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

Επιµέλεια Θοδωρής Πιερράτος

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

Εξωτερική Ταξινόμηση. Μ.Χατζόπουλος 1

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

Συναρτήσεις Κατακερματισμού και Πίνακες Κατακερματισμού

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

Διάλεξη 23: Τεχνικές Κατακερματισμού II (Hashing)

Περιεχόμενα. Περιεχόμενα

ΚΕΦΑΛΑΙΟ 3 ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ

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

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

Cuckoo Hashing. Αλγόριθμοι και Πολυπλοκότητα. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο

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

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

Περιεχόμενα. Δομές δεδομένων. Τεχνικές σχεδίασης αλγορίθμων. Εισαγωγή στον προγραμματισμό. Υποπρογράμματα. Επαναληπτικά κριτήρια αξιολόγησης

Αλγόριθμοι και Δομές Δεδομένων (IΙ) (γράφοι και δένδρα)

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

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

Διάλεξη 18: Τεχνικές Κατακερματισμού I (Hashing)

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

Σύνοψη Προηγούμενου. Πίνακες (Arrays) Πίνακες (Arrays): Βασικές Λειτουργίες. Πίνακες (Arrays) Ορέστης Τελέλης

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

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

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

Ανάπτυξη εφαρμογών σε προγραμματιστικό περιβάλλον υποδειγματική διδασκαλία Κεφ. 3 Δομές Δεδομένων & αλγόριθμοι

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

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

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

Transcript:

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

H ιδέα που βρίσκεται πίσω από την τεχνική του κατακερματισμού είναι να δίνεται μια συνάρτησης h, που λέγεται συνάρτηση κατακερματισμού ή παραγωγής τυχαίων τιμών (hash ή randomizing function), η οποία εφαρμοζόμενη στην τιμή του πεδίου κατακερματισμού μιας εγγραφής επιστρέφει τη διεύθυνση του μπλοκ του δίσκου στο οποίο βρίσκεται η εγγραφή αποθηκευμένη. 4/3/2009 Μ.Χατζόπουλος 2

Με χρήση μιας συνάρτησης που ονομάζεται συνάρτηση απεικόνισης ή συνάρτηση κατακερματισμού (hash function) απεικονίζεται η τιμή ενός πεδίου στο χώρο των διευθύνσεων: h(k) A 4/3/2009 Μ.Χατζόπουλος 3

Δεν είναι εύκολο πάντα να βρεθούν καλές συναρτήσεις. Ο κυριότερος λόγος είναι ότι το πλήθος των πιθανών τιμών ενός πεδίου είναι κατά πολύ μεγαλύτερο από τον χώρο των διευθύνσεων. 4/3/2009 Μ.Χατζόπουλος 4

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

temp 1 ; for i 1 to 20 do temp temp * code(k[i]) mod M ; hash_address temp mod M ; i hash_address(k); a i ; if (η θέση i είναι κατειλημμένη) then begin i (i+1) mod M ; while (i a) and (η θέση i είναι κατειλημμένη) do i (i+1) mod M ; if (i = a) then όλες οι θέσεις είναι γεμάτες else new_hash_address i end ; 4/3/2009 Μ.Χατζόπουλος 6

Σύγκρουση Mια σύγκρουση (collision) συμβαίνει όταν η τιμή του πεδίου κατακερματισμού μιας νέας εγγραφής που εισάγεται κατακερματίζεται σε μια διεύθυνση που ήδη περιέχει μια διαφορετική εγγραφή. Στην περίπτωση αυτή πρέπει να εισάγουμε τη νέα εγγραφή σε μια άλλη θέση, αφού η διεύθυνση κατακερματισμού της είναι κατειλημμένη. Ο κατακερματισμός γενικά δεν διατηρεί την διάταξη. 4/3/2009 Μ.Χατζόπουλος 7

Επίλυση Συγκρούσεων Ανοικτή διευθυντιοδότηση (Open Addressing) Αλυσιδωτή Σύνδεση (Chaining) Πολλαπλός Κατακερματισμός 4/3/2009 Μ.Χατζόπουλος 8

0 1 2 3 M-2 M-1 Μ Μ+1 Μ+2.. -1 Μ -1 Μ+2-1 -1 Μ+1-1 Μ+5-1 -1-1 Χώρος Διευθύνσεων Χώρος Υπερχείλισης 4/3/2009 Μ.Χατζόπουλος 9

O στόχος μιας καλής συνάρτησης κατακερματισμού είναι να κατανέμει τις εγγραφές ομοιόμορφα στο χώρο διευθύνσεων ώστε να ελαχιστοποιούνται οι συγκρούσεις χωρίς να μένουν πολλές αχρησιμοποίητες θέσεις. H προσομοίωση αλλά και οι αναλυτικές μέθοδοι έχουν δείξει ότι συνήθως είναι καλύτερα να διατηρείται ένας πίνακας κατακερματισμού γεμάτος σε ποσοστό 70% ως 90%, έτσι ώστε το πλήθος των συγκρούσεων να παραμένει μικρό και να μην σπαταλάμε πάρα πολύ χώρος. Eπομένως, αν περιμένουμε ότι θα πρέπει να αποθηκεύσουμε r εγγραφές στον πίνακα, πρέπει να επιλέξουμε M θέσεις για τον χώρο διευθύνσεων έτσι ώστε το (r/m) να βρίσκεται μεταξύ 0.7 και 0.9. Mπορεί επίσης να είναι χρήσιμο να επιλεγεί ως M ένας πρώτος αριθμός, καθώς έχει δειχθεί ότι αυτό κατανέμει καλύτερα τις διευθύνσεις κατακερματισμού στο χώρο των διευθύνσεων όταν χρησιμοποιείται ως συνάρτηση κατακερματισμού η mod. 4/3/2009 Μ.Χατζόπουλος 10

Συναρτήσεις Κατακερματισμού Μέσου Τετραγώνου Διαίρεση Αναδίπλωση 4/3/2009 Μ.Χατζόπουλος 11

Εξωτερικός Κατακερματισμός Διεύθυνση Μπλοκ στο δίσκο 0 1 Μ-2 Μ-1 Κάδος 4/3/2009 Μ.Χατζόπουλος 12

Στατικός Εξωτερικός Κατακερματισμός κλειδί h 0 1 M-1 4/3/2009 Μ.Χατζόπουλος 13

κάδος 0 Κύριοι κάδοι Κάδοι υπερχείλισης null κάδος 1 δείκτης null δείκτης κάδος Μ-1 null δείκτης 4/3/2009 Μ.Χατζόπουλος 14

Το σχήμα αυτό ονομάζεται στατικός κατακερματισμός επειδή διατίθεται ένας σταθερός αριθμός από κάδους M. Αυτό μπορεί να είναι σοβαρό μειονέκτημα για δυναμικά αρχεία. Αν διαθέτουμε M κάδους για το χώρο διευθύνσεων και ότι m είναι το μέγιστο πλήθος εγγραφών που χωρούν σε έναν κάδο τότε, το πολύ (m*m) εγγραφές θα χωρούν στο χώρο που διατέθηκε. Aν τελικά το πλήθος των εγγραφών είναι σημαντικά μικρότερο από (m*m), τότε έχουμε πολύ αχρησιμοποίητο χώρο. Aπό την άλλη πλευρά, αν το πλήθος των εγγραφών μεγαλώσει πολύ περισσότερο από (m*m), θα προκληθούν πολλές συγκρούσεις και η ανάκτηση θα επιβραδυνθεί λόγω της εμφάνισης μεγάλων λιστών από εγγραφές υπερχείλισης. 4/3/2009 Μ.Χατζόπουλος 15

Τι γίνεται με Αναζήτηση εγγραφής όταν δεν δίδεται η τιμή κατακερματισμού. Διαγραφές Τροποποίηση τιμής Πεδίου. 4/3/2009 Μ.Χατζόπουλος 16

Δυναμικά Σχήματα Κατακερματισμού Τα σχήματα αυτά επιτρέπουν την δυναμική επέκταση και συρρίκνωση των αρχείων κατακερματισμού. Ο μετασχηματισμός στηρίζεται στην δυαδική αναπαράσταση την τιμής κατακερματισμού. Τα πιο γνωστά σχήματα είναι: Ο επεκτατός κατακερματισμός και Ο γραμμικά Επεκτατός Κατακερματισμός 4/3/2009 Μ.Χατζόπουλος 17

Οι αρχές προέρχονται από τον εκθετικά επεκτατό κατακερματισμό. Μέσω της συνάρτησης κατακερματισμού το κλειδί απεικονίζεται σε μια ακέραια τιμή με δυαδική αναπαράσταση. 00 01 10 11 Κάδοι Δεδομένων Βάθος 2 4/3/2009 Μ.Χατζόπουλος 18

000 001 010 011 100 101 110 111 4/3/2009 Μ.Χατζόπουλος 19

Συνεχίζοντας με αυτόν τον τρόπο θα έχουμε άχρηστη εκθετική αύξηση του χώρου. Προσπαθούμε να βρούμε τεχνικές για να περιορίσουμε την επέκταση του χώρου. 4/3/2009 Μ.Χατζόπουλος 20

Η επέκταση γίνεται εκθετικά μόνο στο ευρετήριο 000 001 010 011 100 101 110 Αυτός είναι ο κάδος που προστέθηκε 111 Βάθος 3 4/3/2009 Μ.Χατζόπουλος 21

Ολικό βάθος 3 d =3 000 001 010 011 100 101 110 d =2 d =2 d =2 d =3 111 4/3/2009 Μ.Χατζόπουλος 22

Τοπικό βάθος σε όλα 2 Ολικό βάθος 2 4 12 32 16 Κάδος Α Για παράδειγμα το h(k)=16 00 01 10 11 1 5 21 10 15 7 19 Κάδος Β Κάδος C Κάδος D 4/3/2009 Μ.Χατζόπουλος 23

Τοπικό βάθος σε όλα 2 Ολικό βάθος 2 4 12 32 16 Κάδος Α 00 01 10 11 1 5 21 13 10 15 7 19 Κάδος Β Κάδος C Κάδος D Εισαγωγή του h(r)=13 Στη συνέχεια η εισαγωγή του 20 δημιουργεί πρόβλημα 4/3/2009 Μ.Χατζόπουλος 24

Τοπικό βάθος σε όλα 2 Ολικό βάθος 2 32 16 Κάδος Α 00 01 10 11 1 5 21 13 10 15 7 19 4 12 20 Κάδος Β Κάδος C Κάδος D Ο κάδος αυτός προκύπτει από Διάσπαση του Α 4/3/2009 Μ.Χατζόπουλος 25

000 Ολικό βάθος 3 32 16 Κάδος Α Τοπικό βάθος 3 001 010 1 5 21 13 Κάδος Β Τοπικό βάθος 2 011 100 10 Κάδος C Τοπικό βάθος 2 101 110 15 7 19 Κάδος D Τοπικό βάθος 2 111 4 12 20 Κάδος Α2 Τοπικό βάθος 3 Προσθήκη του 9 δημιουργεί πρόβλημα στο Β 4/3/2009 Μ.Χατζόπουλος 26

000 Ολικό βάθος 3 32 16 Κάδος Α Τοπικό βάθος 3 001 010 1 9 Κάδος Β Τοπικό βάθος 3 011 100 10 Κάδος C Τοπικό βάθος 2 101 110 15 7 19 Κάδος D Τοπικό βάθος 2 111 4 12 20 Κάδος Α2 Τοπικό βάθος 3 Κάδος Β2 5 21 13 Τοπικό βάθος 3 4/3/2009 Μ.Χατζόπουλος 27

Ερώτηση Αν το ολικό βάθος του ευρετηρίου είναι d bits και το τοπικό βάθος ενός κάδου είναι l bits πόσες καταχωρήσεις ευρετηρίου δείχνουν στον κάδο αυτό; 4/3/2009 Μ.Χατζόπουλος 28

Για διαγραφές εντοπίζεται ο κάδος που περιέχει το δεδομένο και ακολουθεί διαγραφή. Αν η διαγραφή οδηγεί σε κενό κάδο τότε μπορεί να συγχωνευθεί με τον κάδο από τον οποίο προήλθε από την διάσπαση. Η συγχώνευση των κάδων μειώνει το τοπικό βάθος. Αυτό μπορεί να οδηγήσει και σε μείωση του ευρετηρίου στο μισό. 4/3/2009 Μ.Χατζόπουλος 29

Αν το ευρετήριο χωράει στη μνήμη μια αναζήτηση ισότητας μπορεί να απαντηθεί με μια προσπέλαση στο δίσκο. Αρχείο 100ΜΒ με 100 bytes καταχώρηση και μέγεθος σελίδας 4ΚΒ περιέχει 1000000 καταχωρήσεις και μόνο περίπου 25000 καταχωρήσεις ευρετηρίου. Επομένως σε πολλές περιπτώσεις μπορεί να χωράει το ευρετήριο στη μνήμη. 4/3/2009 Μ.Χατζόπουλος 30

Γραμμικός Κατακερματισμός Ο γραμμικός κατακερματισμός είναι μια τεχνική που προσαρμόζεται με επιτυχία σε εισαγωγές και διαγραφές. H ιδέα στην οποία βασίζεται ο γραμμικός κατακερματισμός είναι να επιτρέπουμε σε ένα αρχείο κατακερματισμού να επεκτείνει ή να συρρικνώνει τους κάδους του δυναμικά χωρίς να χρειάζεται κάποιον κατάλογο. Με την μέθοδο αυτή υπάρχει μια ακολουθία συναρτήσεων κατακερματισμού h 0, h 1, h 2,.. με την ιδιότητα το πεδίο τιμών καθεμιάς να είναι διπλάσιο από αυτό της προηγουμένης της. 4/3/2009 Μ.Χατζόπουλος 31

h i (τιμή)=h(τιμή) mod (2 i N) Συνήθως το Ν είναι δύναμη του 2 4/3/2009 Μ.Χατζόπουλος 32

Μπορούμε να θεωρήσουμε γύρους κατακερματισμού. Κατά τον γύρο i χρησιμοποιούνται μόνο οι συναρτήσεις h i και h i+1. Όπως γεμίζουν οι κάδοι διαχωρίζονται ένας ένας από τον πρώτο στον τελευταίο. 4/3/2009 Μ.Χατζόπουλος 33

Έστω ότι η χωρητικότητα του κάδου είναι 4 Εισαγωγή 43 Σελίδα Υπερχείλισης h1 h0 000 00 32 44 36 _ 001 01 9 25 5 _ 010 10 14 18 10 30 011 11 31 35 7 11 h1 h0 000 00 32 _ 001 01 9 25 5 _ 010 10 14 18 10 30 011 11 31 35 7 11 100 00 44 36 43 Τα κόκκινα πληροφοριακά μόνο 4/3/2009 Μ.Χατζόπουλος 34

Διάσπαση συμβαίνει όταν γίνει επέκταση στην υπερχείλιση Εισαγωγή 37 h1 h0 000 00 32 _ 001 01 9 25 5 37 010 10 14 18 10 30 011 11 31 35 7 11 100 00 44 36 43 4/3/2009 Μ.Χατζόπουλος 35

Εισαγωγή 29 h1 h0 000 00 32 _ 001 01 9 25 010 10 14 18 10 30 011 11 31 35 7 11 100 00 44 36 101 01 5 37 29 43 4/3/2009 Μ.Χατζόπουλος 36

Εισαγωγή των 22 66 και 34 h1 h0 000 00 32 _ 001 01 9 25 010 10 66 18 10 34 011 11 31 35 7 11 100 00 44 36 101 01 5 37 29 _ 110 10 14 30 22 _ 43 4/3/2009 Μ.Χατζόπουλος 37

Εισαγωγή 50 h1 h0 000 00 32 _ 001 01 9 25 010 10 66 18 10 34 011 11 43 35 11 _ 100 00 44 36 101 01 5 37 29 _ 110 10 14 30 22 _ 111 11 31 7 50 4/3/2009 Μ.Χατζόπουλος 38

Aλγόριθμος H διαδικασία αναζήτησης για γραμμικό κατακερματισμό. if (n = 0) then m h j (K) (* το m είναι η τιμή κατακερματισμού της εγγραφής με κλειδί κατακερματισμού K *) else begin m h j (K) ; if (m < n) then m h j+1 (K) end; αναζήτησε τον κάδο που η τιμή κατακερματισμού του είναι m (και την υπερχείλισή του, αν έχει) ; 4/3/2009 Μ.Χατζόπουλος 39

Μια άλλη πολιτική διάσπασης θα ήταν ο παράγοντας φόρτωσης. Όταν ξεπεράσει μια τιμή να γίνεται διάσπαση. Παράγοντας φόρτωσης l=r/(bfr*n) r: το πλήθος των εγγραφών του αρχείου bfr: το μέγιστο πλήθος εγγραφών στον κάδο N: το τρέχον πλήθος των κάδων 4/3/2009 Μ.Χατζόπουλος 40

Αν υποθέσουμε ότι κάθε κάδος έχει 3 θέσεις και παράγοντα φόρτωσης του αρχείου 67% 00 01 10 11 56 64 67 43 79 15 27 19 00 01 10 11 56 64 12 33 67 43 79 15 27 19 56=0111000 67=1000011 43=0101011 79=1001111 15=0001111 27=0011011 19=0010011 64=1000000 12=0001100 33=0100001 57=0111101 65=1000001 Στην επόμενη εισαγωγή θα πρέπει να γίνει διάσπαση 4/3/2009 Μ.Χατζόπουλος 41

000 01 10 11 100 56 64 33 57 65 67 43 79 12 Για την επόμενη εισαγωγή Θα χρειασθεί διάσπαση 000 001 10 11 100 56 64 33 57 65 67 43 79 12 15 27 19 101 15 27 19 4/3/2009 Μ.Χατζόπουλος 42

Γενικά μπορούμε να εφαρμόσουμε και την αντίστροφη διαδικασία συρρίκνωσης του αρχείου όταν διαπιστώσουμε μεγάλο αχρησιμοποίητο χώρο. Για παράδειγμα αν ο παράγοντας φόρτωσης πέσει κάτω από μια τιμή. 4/3/2009 Μ.Χατζόπουλος 43