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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Άσκηση 1. με κόκκινο χρώμα σημειώνονται οι κρίσιμοι κόμβοι

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

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

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

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

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

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

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

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

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

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

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

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

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

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

13/5/2015 ΟΥΡΕΣ ΠΡΟΤΕΡΑΙΟΤΗΤΑΣ. Δομές Δεδομένων. Ουρές Προτεραιότητας

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

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

Transcript:

Κατακερματισμός 1 Αποθήκευση εδομένων (σύνοψη) Τα δεδομένα (περιεχόμενο) μιας βάσης δεδομένων αποθηκεύεται στο δίσκο Παραδοσιακά, μία σχέση (πίνακας/στιγμιότυπο) αποθηκεύεται σε ένα αρχείο Αρχείο δεδομένων Η αποθήκευση είναι οριζόντια: δηλαδή, κάθε πλειάδα της σχέσης αντιστοιχεί σε μια εγγραφή του αρχείου ηλαδή, ένα αρχείο είναι μια ακολουθία από εγγραφές (πλειάδες) 2 : Κατακερματισμός 1

Οργάνωση Αρχείων (σύνοψη) Οι εγγραφές μπορεί να βρίσκονται αποθηκευμένες σε πολλές σελίδες (pages) θα θεωρούμε page (σελίδα) = block Μη εκτεινόμενη (unspanned) οργάνωση: οι εγγραφές δεν επιτρέπεται να διασχίζουν τα όρια ενός block (-) Αχρησιμοποίητος χώρος (+) Πιο εύκολη η προσπέλαση 3 Οργάνωση Αρχείων (σύνοψη) Έστω Β μέγεθος block σε byte και R μέγεθος εγγραφής σε bytes Παράγοντας ομαδοποίησης (blocking factor), όταν Β R bfr = (B / R) Πόσες εγγραφές χωρούν σε ένα block b: Αριθμός blocks για την αποθήκευση ενός αρχείου r εγγραφών: b = (r/bfr) 4 : Κατακερματισμός 2

Αρχεία (σύνοψη) Οργάνωση αρχείων: πως πρέπει να οργανώσουμε (τοποθετήσουμε) τις εγγραφές σε ένα αρχείο για αποδοτική επεξεργασία ερωτήσεων Βασικές λειτουργίες: Εντοπισμός (αναζήτηση) μια συγκεκριμένης εγγραφής με βάση συνθήκη ισότητας ή διαστήματος τιμών σε ένα γνώρισμα (πεδίο) της εγγραφής (σε ποιο block βρίσκεται) Αν το γνώρισμα είναι κλειδί Αν το γνώρισμα δεν είναι κλειδί Εισαγωγή/διαγραφή/τροποποίηση εγγραφής ιάσχιση (scan) όλων των εγγραφών του αρχείου Οργάνωση Αρχείων (σύνοψη) Βασικόςστόχοςηελαχιστοποίηση του αριθμού των blocks που μεταφέρονται Θεωρούμε ότι η πληροφορία για τη θέση στο δίσκο ενός block υπάρχει (π.χ., στην επικεφαλίδα του αρχείου) Σε πραγματικά συστήματα Ίσως και άλλοι τύποι κόστους (πχ κόστος CPU) Πρόσβασης κατά block (διάβασμα γειτονικών block με μια μόνο αίτηση I/O: αναζήτηση 1 ου block + μεταφορά όλων των επόμενων) 6 : Κατακερματισμός 3

Οργάνωση Αρχείων (σύνοψη) Οργάνωση αρχείων: πως είναι τοποθετημένες οι εγγραφές ενός αρχείου όταν αποθηκεύονται στο δίσκο 1. Αρχεία Σωρού 2. Ταξινομημένα Αρχεία Φυσική διάταξη των εγγραφών ενός αρχείου με βάση την τιμή ενός από τα πεδία του το οποίο λέγεται πεδίο διάταξης (ordering field) 7 Οργάνωση Αρχείων Αρχεία Κατακερματισμού Βασική ιδέα: η τοποθέτηση των εγγραφών στα blocks του αρχείου γίνεται εφαρμόζοντας μια συνάρτηση κατακερματισμού σε κάποιο από τα πεδία της εγγραφής 8 : Κατακερματισμός 4

Εσωτερικός Κατακερματισμός Εσωτερικός Κατακερματισμός (τα δεδομένα είναι στη μνήμη, όπως στις δομές δεδομένων) Πίνακας κατακερματισμού με Μ θέσεις - κάδους (buckets) h: συνάρτηση κατακερματισμού h(k) = i Πεδίο αναζήτησης - Πεδίο κατακερματισμού Σε ποιο κάδο - τιμή από 0 έως Μ-1 9 Αρχεία Κατακερματισμού Εξωτερικός Κατακερματισμός (εφαρμογή σε δεδομένα αποθηκευμένα σε αρχεία) Στόχος h(k) = i Τιμή του πεδίου κατακερματισμού ιεύθυνση (αριθμός) block του αρχείου που είναι αποθηκευμένη Η εγγραφή με τιμή στο πεδίο κατακερματισμού k αποθηκεύεται στο i-οστο block (κάδο) του αρχείου 10 : Κατακερματισμός 5

Κατακερματισμός h: συνάρτηση κατακερματισμού Ομοιόμορφη κατανομή των κλειδιών στους κάδους (blocks) Συνηθισμένη συνάρτηση κατακερματισμού: Συχνά M πρώτος h(k) = k mod M 11 Κατακερματισμός Σύγκρουση (collision): όταν μια νέα εγγραφή κατακερματίζεται σε μία ήδη γεμάτη θέση Καλή συνάρτηση κατακερματισμού: κατανέμει τις εγγραφές ομοιόμορφα στο χώρο των διευθύνσεων (ελαχιστοποίηση συγκρούσεων και λίγες αχρησιμοποίητες θέσεις) Ευριστικοί: -- αν r εγγραφές, πρέπει να επιλέξουμε το Μ ώστε το r/m να είναι μεταξύ του 0.7 και 0.9 -- όταν χρησιμοποιείται η mod τότε είναι καλύτερα το Μ να είναι πρώτος 12 : Κατακερματισμός 6

Κατακερματισμός Επίλυση Συγκρούσεων 1. Ανοιχτή ιευθυνσιοδότηση (open addressing): χρησιμοποίησε την επόμενη κενή θέση 2. Αλυσιδωτή Σύνδεση (chaining): για κάθε θέση μια συνδεδεμένη λίστα με εγγραφές υπερχείλισης 3. Πολλαπλός Κατακερματισμός (multiple hashing): εφαρμογή μιας δεύτερης συνάρτησης κατακερματισμού 13 Εξωτερικός Κατακερματισμός Κάδος: μια συστάδα από συνεχόμενα blocks του αρχείου h(k) = i Σχετική διεύθυνση του κάδου (ποιος κάδος του αρχείου) Τιμή του πεδίου κατακερματισμού Ο κατακερματισμός είναι πολύ αποδοτικός για επιλογές ισότητας 14 : Κατακερματισμός 7

Εξωτερικός Κατακερματισμός Ένας πίνακας που αποθηκεύεται στην επικεφαλίδα του αρχείου μετατρέπει τον αριθμό κάδου στην αντίστοιχη διεύθυνση block 0 διεύθυνση 1ου block του κάδου στο δίσκο 1 διεύθυνση 1ου block του κάδου στο δίσκο 2 διεύθυνση 1ου block του κάδου στο δίσκο... Μ-1 διεύθυνση 1ου block του κάδου στο δίσκο 15 Εξωτερικός Κατακερματισμός Συγκρούσεις - αλυσιδωτή σύνδεση - εγγραφές υπερχείλισης ανά κάδο 1. Ανάγνωση όλου του αρχείου (scan) Έστω ότι διατηρούμε κάθε κάδο γεμάτο κατά 80% άρα ένα αρχείο με μέγεθος Β blocks χρειάζεται 1.25 Β blocks 1.25 * Β * (Τ D + R * Τ C ) 2. Αναζήτηση Συνθήκη ισότητας και μόνο ένα block ανά κάδο: Τ D + R * C Αν συνθήκη περιοχής (διαστήματος): scan! 16 : Κατακερματισμός 8

Οργάνωση Αρχείων Κόστος: μεταφορά blocks (I/O) Σωρός Ταξινομημένο Κατακερματισμένο Ανάγνωση του αρχείου Β B 1.25B Αναζήτηση με συνθήκη ισότητας 0.5 B logb 1 Αναζήτηση με συνθήκη περιοχής B logb + ταιριάσματα 1.25 Β Εισαγωγή 2 αναζήτηση + B 2 ιαγραφή αναζήτηση + 1 αναζήτηση + Β αναζήτηση + 1 17 Εξωτερικός Κατακερματισμός Πρόβλημα: Στατικός Κατακερματισμός Έστω Μ κάδους και r εγγραφές ανά κάδο - το πολύ Μ * r εγγραφές (αλλιώς μεγάλες αλυσίδες υπερχείλισης) υναμικός Κατακερματισμός Επεκτατός Γραμμικός 18 : Κατακερματισμός 9

υναμικόςεξωτερικόςκατακερματισμός υναμικός Εξωτερικός Κατακερματισμός υαδική αναπαράσταση του αποτελέσματος της συνάρτησης κατακερματισμού, δηλαδή ως μια ακολουθίας δυαδικών ψηφίων Κατανομή εγγραφών με βάση την τιμή των αρχικών (ή τελικών) ψηφίων 19 υναμικόςεξωτερικόςκατακερματισμός Το αρχείο ξεκινά με ένα μόνο κάδο Μόλις γεμίσει ένας κάδος διασπάται σε δύο κάδους με βάση την τιμή του 1ου (ή τελευταίου) δυαδικού ψηφίου των τιμών κατακερματισμού -- δηλαδή οι εγγραφές που το πρώτο (τελευταίο) ψηφίο της τιμής κατακερματισμού τους είναι 1 τοποθετούνται σε ένα κάδο και οι άλλες (με 0) στον άλλο Νέα υπερχείλιση ενός κάδου οδηγεί σε διάσπαση του με βάση το αμέσως επόμενο δυαδικό ψηφίο κοκ 20 : Κατακερματισμός 10

υναμικόςεξωτερικόςκατακερματισμός Έτσι δημιουργείται μια δυαδική δενδρική δομή που λέγεται κατάλογος (dirtectory) ή ευρετήριο (index) με δύο ειδών κόμβους εσωτερικούς: που καθοδηγούν την αναζήτηση εξωτερικούς: που δείχνουν σε ένα κάδο 21 υναμικόςεξωτερικόςκατακερματισμός(παράδειγμα) Χρήση των τελευταίων bits της δυαδικής αναπαράστασης Αποτέλεσμα συνάρτησης κατακερματισμού 1 000001 4 000100 5 000101 7 000111 10 001010 12 001100 15 001111 16 010000 19 010011 21 010101 32 100000 13 001101 20 010100 4 εγγραφές ανά κάδο 22 : Κατακερματισμός 11

υναμικόςεξωτερικόςκατακερματισμός Αλγόριθμος αναζήτησης h := τιμή κατακερματισμού t := ρίζα του δέντρου i := 1 while (t εσωτερικός κόμβος) if (i-οστό bit του h είναι 0) t := αριστερά του t else t := δεξιά του t i := i +1 23 υναμικόςεξωτερικόςκατακερματισμός Που αποθηκεύεται ο κατάλογος στη μνήμη, εκτός αν είναι πολύ μεγάλος τότε στο δίσκο οπότε θα απαιτούνται επιπρόσθετες προσπελάσεις υναμική επέκταση αλλά μέγιστος αριθμός επιπέδων (το πλήθος των δυαδικών ψηφίων της συνάρτησης κατακερματισμού) Ισοζύγιση Συνένωση κάδων (δυναμική συρρίκνωση) 24 : Κατακερματισμός 12

Επεκτατός Εξωτερικός Κατακερματισμός Extendible hashing Ο κατάλογος είναι ένας πίνακας με 2 d διευθύνσεις κάδων (d: ολικό βάθος του καταλόγου) Κάδος για τις εγγραφές με τιμές 000 κατακερματισμού που τελειώνουν σε 000 001 010 011 100 Τα τελευταία d ψηφία της τιμής 101 κατακερματισμού χρησιμοποιούνται ως 110 δείκτης στον πίνακα 111 25 Επεκτατός Εξωτερικός Κατακερματισμός ε χρειάζεται ένας διαφορετικός κάδος για κάθε μία από τις 2 d θέσεις - μπορεί η θέση του πίνακα να δείχνει στη διεύθυνση του ίδιου κάδου αν αυτές χωράνε σε ένα κάδο 000 001 010 011 100 101 110 111 Κάδος για τις εγγραφές με τιμές κατακερματισμού που τελειώνουν από 00 Για κάθε κάδο, τοπικό βάθος d o αριθμός των δυαδικών ψηφίων στα οποία βασίζεται η χρήση του κάδου Παράδειγμα: 2 εγγραφές ανά κάδο εισαγωγή 2, 4, 3, 10, 7, 9 26 : Κατακερματισμός 13

Επεκτατός Εξωτερικός Κατακερματισμός (Παράδειγμα) Χρήση των τελευταίων bits της δυαδικής αναπαράστασης 1 000001 4 000100 5 000101 7 000111 10 001010 12 001100 15 001111 16 010000 19 010011 21 010101 32 100000 13 001101 4 εγγραφές ανά κάδο 27 Επεκτατός Εξωτερικός Κατακερματισμός (Παράδειγμα) Χρήση των τελευταίων bits τηςδυαδικήςαναπαράστασης 1 000001 4 000100 5 000101 7 000111 10 001010 12 001100 15 001111 16 010000 19 010011 21 010101 32 100000 13 001101 28 : Κατακερματισμός 14

Επεκτατός Εξωτερικός Κατακερματισμός Ητιμήτουd μπορεί να αυξάνεται (μέχρι 2 κ, κ: αριθμός δυαδικών ψηφίων της τιμής κατακερματισμού) ή να μειώνεται Αύξηση της τιμής του d Όταν ένας κάδος με τιμή d = d υπερχειλίσει ε χρειάζεται rehash (επανακερματισμό), διασπάμε κάθε κάδο ιπλασιασμός του πίνακα Επίσης, κάθε φορά μόνο τον κάδο που Μείωση της τιμής του d υπερχείλισε Όταν για όλους τους κάδους d < d Μείωση του μεγέθους του πίνακα στο μισό 29 Επεκτατός Εξωτερικός Κατακερματισμός (Παράδειγμα) 20 010100 1 000001 4 000100 5 000101 7 000111 10 001010 12 001100 15 001111 16 010000 19 010011 21 010101 32 100000 13 001101 ιάσπαση -> Ολικό βάθος 3 30 : Κατακερματισμός 15

1 000001 4 000100 5 000101 7 000111 10 001010 12 001100 15 001111 16 010000 19 010011 21 010101 32 100000 13 001101 20 010100 Επεκτατός Εξωτερικός Κατακερματισμός 4 12 32 16 20 -> διάσπαση 31 Κατακερματισμός ΠΡΟΣΟΧΗ ΓΕΝΙΚΗ ΠΑΡΑΤΗΡΗΣΗ Τι αποθηκεύουμε στους κάδους; Στα παραδείγματα δείχνουμε μόνο την τιμή του πεδίου κατακερματισμού Την ίδια την εγγραφή; (οργάνωση αρχείου) μέγεθος κάδου -> 1 block Τιμή του πεδίου κατακερματισμού (+δείκτη στο υπόλοιπο της εγγραφής); Τι γίνεται αν το πεδίο κατακερματισμού δεν είναι κλειδί (παραπάνω από μια εγγραφή με την ίδια τιμή) Θα το δούμε ξανά στα ευρετήρια 32 : Κατακερματισμός 16

Γραμμικός Εξωτερικός Κατακερματισμός Γραμμικός Κατακερματισμός Θέλουμε να αποφύγουμε τη χρήση καταλόγου + ιπλασιασμό μεγέθους του καταλόγου Αυτή η μέθοδος: ιατηρεί λίστες υπερχείλισης ε χρησιμοποιεί τη δυαδική αναπαράσταση 33 Γραμμικός Εξωτερικός Κατακερματισμός Χρησιμοποιεί μια οικογένεια από συναρτήσεις κατακερματισμού h 0 (k), h 1 (k),, h d (k) Κάθε συνάρτηση διπλάσιους κάδους από την προηγούμενη: h 0 (k) = k mod M, h 1 (k) = k mod 2M, h 2 (k) = k mod 4M,, h j (k) = k mod 2 j M Όταν συμβαίνει η πρώτη υπερχείλιση ενός κάδου, πάμε στην επόμενη συνάρτηση μέχρι να διασπαστούν όλοι οι κάδοι με αυτήν τη συνάρτηση ΠΡΟΣΟΧΗ: δε διασπάμε τον κάδο που υπερχειλίζει, αλλά έναν-έναν τον κάδο με τη σειρά! 34 : Κατακερματισμός 17

Γραμμικός Εξωτερικός Κατακερματισμός Βασικά σημεία Πολλές συναρτήσεις κατακερματισμού (άλλη σε κάθε βήμα) Οι κάδοι σε κάθε βήμα διασπώνται με τη σειρά (ο ένας μετά τον άλλο ανεξάρτητα αν έχουν ή όχι υπερχειλίσει) 35 Γραμμικός Εξωτερικός Κατακερματισμός Αρχικά: Βήμα ιάσπασης (ποια συνάρτηση χρησιμοποιούμε) αρχικά j = 0: Πλήθος ιασπάσεων (στο τρέχον βήμα) αρχικά n= 0, j -> ποια συνάρτηση χρησιμοποιούμε n -> ποιο κάδο διασπάμε Έστω αρχικά Μ κάδους αριθμημένους από 0 έως Μ -1 και αρχική συνάρτηση κατακερματισμού h 0 (k) = k mod M 36 : Κατακερματισμός 18

j -> ποια συνάρτηση χρησιμοποιούμε n -> ποιο κάδο διασπάμε Γραμμικός Εξωτερικός Κατακερματισμός Όταν συμβεί μια υπερχείλιση σε έναν οποιοδήποτε κάδο, οκάδος0 χωρίζεται σε δύο κάδους: τον αρχικό κάδο 0 και ένα νέο κάδο Μ στο τέλος του αρχείου με βάση την συνάρτηση h 1 (k) = k mod 2M Βήμα ιάσπασης (ποια συνάρτηση χρησιμοποιούμε) j = 1 Πλήθος ιασπάσεων n = 1 Συνεχίζουμε γραμμικά, διασπώντας με τη σειρά τους κάδους 1, 2, 3,... μέχρι να διασπαστούν όλοι οι «παλιοί» κάδοι ημεταβλητήn («Πλήθος ιασπάσεων») κρατάει ποιος κάδος έχει σειρά για διάσπαση 37 Γραμμικός Εξωτερικός Κατακερματισμός Βήμα διάσπασης (ποια συνάρτηση χρησιμοποιούμε) j = 1: Πλήθος ιασπάσεων n = m -1 : Όταν συμβεί μια υπερχείλιση σε έναν οποιοδήποτε κάδο, οκάδοςm-1 χωρίζεται σε δύο κάδους: τον αρχικό κάδο m-1 και ένα νέο κάδο m + k - 1 στο τέλος του αρχείου με βάση την συνάρτηση h 1 (k) = k mod 2M ηλαδή, σε κάθε υπερχείλιση χωρίζουμε όλους τους κάδους με τη σειρά ξεκινώντας από τον πρώτο κάδο 38 : Κατακερματισμός 19

Συνεχίζουμε... Όλοι οι κάδοι έχουν διασπαστεί όταν: Τότε έχουμε 2M κάδους Γραμμικός Εξωτερικός Κατακερματισμός n = M Όταν n = M, μηδενίζουμε το n, n = 0 και για οποιαδήποτε νέα διάσπαση εφαρμόζουμε την h 2 (k) = k mod 4M ιασπώντας πάλι τον κάδο 0, 1,... κ.τ.λ 39 Γραμμικός Εξωτερικός Κατακερματισμός Γενικά βήμα διάσπασης j (j = 0, 1, 2, ) h j (k) = k mod 2 j M, και την h j+1 (k) για διασπάσεις 40 : Κατακερματισμός 20

Γραμμικός Εξωτερικός Κατακερματισμός 32 9 44 31 25 5 35 7 36 14 18 10 11 30 Κάθε κάδος 4 εγγραφές Αρχικά 4 κάδους (M = 4) ΠΡΟΣΟΧΗ: ε χρησιμοποιούμε τη δυαδική αναπαράσταση 41 Γραμμικός Εξωτερικός Κατακερματισμός (παράδειγμα) h 0 (k) = k mod 4 h 1 (k) = k mod 8 Για μη διασπασμένους κάδους: παλιά συνάρτηση Για διασπασμένους κάδους: νέα συνάρτηση 37 29 Βήμα διάσπασης 0 (χρήση h 0 ) Πλήθος διασπάσεων = 0 43 ιασπάμε τον πρώτο κάδο 22 66 34 42 : Κατακερματισμός 21

Γραμμικός Εξωτερικός Κατακερματισμός (παράδειγμα) 50 Βήμα διάσπασης 0 (χρήση h 0 ) Πλήθος διασπάσεων = 0 43 Γραμμικός Εξωτερικός Κατακερματισμός Αναζήτηση Εγγραφής (γενικά) Τι χρειάζεται να ξέρουμε για να βρεθεί ο κάδος της εγγραφής k που ψάχνουμε; ποια συνάρτηση χρησιμοποιούμε (δηλαδή, το j) σε ποια διάσπαση βρισκόμαστε (δηλαδή το n) Έστω ότι είμαστε στο βήμα j, Τότε θα πρέπει να κοιτάξουμε είτε το h j (k) αν ο κάδος δεν έχει διασπαστεί ήτο h j+1 (k) αν έχει διασπαστεί Πως θα ελέγξουμε αν ο κάδος έχει διασπαστεί ή όχι 44 : Κατακερματισμός 22

Γραμμικός Εξωτερικός Κατακερματισμός Αναζήτηση Εγγραφής ύο περιπτώσεις ο κάδος στον οποίο είναι (1) έχει ή (2) δεν έχει διασπαστεί Κρατάμε μια μεταβλητή το πλήθος n των διασπάσεων Έστω n ο αριθμός διασπάσεων και ότι αναζητούμε το k, βρίσκεται στον κάδο h 0 (k) τότε αν n h 0 (k) o κάδος δεν έχει διασπαστεί ενώ αν n > h 0 (k) o κάδος έχει διασπαστεί και εφαρμόζουμε την h 1 (k) 45 Γραμμικός Εξωτερικός Κατακερματισμός Αλγόριθμος Αναζήτησης j : βήμα διάσπασης n : πλήθος διασπάσεων στο βήμα j if (n = 0) then m := h j (k); else { m := h j (k); if (m < n) then m := h j+1 (k) } σημαίνει ότι ο κάδος έχει διασπαστεί 46 : Κατακερματισμός 23