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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

επιστρέφει το αμέσως μεγαλύτερο από το x στοιχείο του S επιστρέφει το αμέσως μικρότερο από το x στοιχείο του S

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

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

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

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

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

Διάλεξη 16: Σωροί. Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Ουρές Προτεραιότητας - Ο ΑΤΔ Σωρός, Υλοποίηση και πράξεις

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

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

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

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

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

Union Find, Λεξικό. Δημήτρης Φωτάκης. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών. Εθνικό Μετσόβιο Πολυτεχνείο

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

(Γραμμικές) Αναδρομικές Σχέσεις

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

(Γραμμικές) Αναδρομικές Σχέσεις

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

Πρόβληµα (ADT) Λεξικού. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Λεξικό, Union - Find 2

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

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

Ισορροπημένα Δένδρα. για κάθε λειτουργία; Ισορροπημένο δένδρο : Διατηρεί ύψος κάθε εισαγωγή ή διαγραφή

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

Γ7.5 Αλγόριθμοι Αναζήτησης. Γ Λυκείου Κατεύθυνσης

Διάλεξη 26: Σωροί. Διδάσκων: Παναγιώτης Ανδρέου

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

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

Διάλεξη 14: Δέντρα IV B Δένδρα. Διδάσκων: Παναγιώτης Ανδρέου

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

Δοµές Δεδοµένων. 16η Διάλεξη Κατακερµατισµός. Ε. Μαρκάκης

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

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

(Γραμμικές) Αναδρομικές Σχέσεις

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

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

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

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

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

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

Αλγόριθμοι Αναζήτησης

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

Διάλεξη 22: Δυαδικά Δέντρα. Διδάσκων: Παναγιώτης Ανδρέου

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

Εισαγωγή ενός νέου στοιχείου. Επιλογή i-οστoύ στοιχείου : Εύρεση στοιχείου με το i-οστό μικρότερο κλειδί

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

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

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

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

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

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

HY430 Εργαστήριο Ψηφιακών Κυκλωμάτων.

Συστήματα αρίθμησης. = α n-1 *b n-1 + a n-2 *b n-2 + +a 1 b 1 + a 0 όπου τα 0 a i b-1

Δοµές Δεδοµένων. 15η Διάλεξη Δέντρα Δυαδικής Αναζήτησης και Κατακερµατισµός. Ε. Μαρκάκης

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

Δημιουργία Δυαδικών Δέντρων Αναζήτησης

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

Ενότητες 3 & 4: Δένδρα, Σύνολα & Λεξικά Ασκήσεις και Λύσεις

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

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

Δένδρα Αναζήτησης Πολλαπλής Διακλάδωσης

Ισορροπημένα Δένδρα. για κάθε λειτουργία; Ισορροπημένο δένδρο : Διατηρεί ύψος κάθε εισαγωγή ή διαγραφή

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

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

Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων

Λεξικό, Union Find. ιδάσκοντες: Σ. Ζάχος,. Φωτάκης Επιμέλεια διαφανειών:. Φωτάκης. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

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

Transcript:

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

Κατακερματισμός Τι αποθηκεύουμε στους κάδους; Στα παραδείγματα δείχνουμε μόνο την τιμή του πεδίου κατακερματισμού Την ίδια την εγγραφή (ως τρόπος οργάνωσης αρχείου) μέγεθος κάδου -> 1 block (ή συστοιχία από συνεχόμενα blocks) Τιμή του πεδίου κατακερματισμού + δείκτη στο υπόλοιπο της εγγραφής; (ως ευρετήριο) Τι γίνεται αν το πεδίο κατακερματισμού δεν είναι κλειδί; Βάσεις Δεδομένων 2013-2014 Ευαγγελία Πιτουρά 2

Κατακερματισμός Πρόβλημα στατικού κατακερματισμού: Έστω Μ κάδους και r εγγραφές ανά κάδο - το πολύ Μ * r εγγραφές (αλλιώς μεγάλες αλυσίδες υπερχείλισης) Δυναμικός κατακερματισμός Επεκτατός Γραμμικός Βάσεις Δεδομένων 2013-2014 Ευαγγελία Πιτουρά 3

Δυναμικός Εξωτερικός Κατακερματισμός Δυαδική αναπαράσταση του αποτελέσματος της συνάρτησης κατακερματισμού, δηλαδή ως μια ακολουθίας δυαδικών ψηφίων Κατανομή εγγραφών με βάση την τιμή των αρχικών (ή τελικών) ψηφίων Βάσεις Δεδομένων 2013-2014 Ευαγγελία Πιτουρά 4

Δυναμικός Κατακερματισμός (εισαγωγή) Το αρχείο ξεκινά με ένα μόνο κάδο Μόλις γεμίσει ένας κάδος διασπάται σε δύο κάδους με βάση την τιμή του 1ου (ή τελευταίου) δυαδικού ψηφίου των τιμών κατακερματισμού -- δηλαδή οι εγγραφές που το πρώτο (τελευταίο) ψηφίο της τιμής κατακερματισμού τους είναι 1 τοποθετούνται σε ένα κάδο και οι άλλες (με 0) στον άλλο Νέα υπερχείλιση ενός κάδου οδηγεί σε διάσπαση του με βάση το αμέσως επόμενο δυαδικό ψηφίο κοκ Βάσεις Δεδομένων 2013-2014 Ευαγγελία Πιτουρά 5

Παράδειγμα Χρήση των τελευταίων 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 εγγραφές ανά κάδο Βάσεις Δεδομένων 2013-2014 Ευαγγελία Πιτουρά 6

Δυναμικός Κατακερματισμός Έτσι δημιουργείται μια δυαδική δενδρική δομή που λέγεται κατάλογος (dirtectory) ή ευρετήριο (index) με δύο ειδών κόμβους εσωτερικούς: που καθοδηγούν την αναζήτηση εξωτερικούς: που δείχνουν σε ένα κάδο Βάσεις Δεδομένων 2013-2014 Ευαγγελία Πιτουρά 7

Δυναμικός Κατακερματισμός (αναζήτηση) Αλγόριθμος αναζήτησης h := τιμή κατακερματισμού t := ρίζα του δέντρου i := 1 while (t εσωτερικός κόμβος) if (i-οστό bit του h είναι 0) t := αριστερά του t else t := δεξιά του t i := i +1 Βάσεις Δεδομένων 2013-2014 Ευαγγελία Πιτουρά 8

Δυναμικός Κατακερματισμός Που αποθηκεύεται ο κατάλογος στη μνήμη, εκτός αν είναι πολύ μεγάλος τότε στο δίσκο οπότε απαιτούνται επιπρόσθετες προσπελάσεις Δυναμική επέκταση αλλά μέγιστος αριθμός επιπέδων (το πλήθος των δυαδικών ψηφίων της συνάρτησης κατακερματισμού) Ισοζύγιση Συνένωση κάδων (δυναμική συρρίκνωση) Βάσεις Δεδομένων 2013-2014 Ευαγγελία Πιτουρά 9

Επεκτατός Κατακερματισμός (extendible hashing) Ο κατάλογος είναι ένας πίνακας με 2 d διευθύνσεις κάδων (d: ολικό βάθος του καταλόγου) 000 001 010 Κάδος για τις εγγραφές με τιμές κατακερματισμού που τελειώνουν σε 000 011 100 Τα τελευταία d ψηφία της τιμής κατακερματισμού χρησιμοποιούνται ως δείκτης στον πίνακα 101 110 111 Βάσεις Δεδομένων 2013-2014 Στις διαφάνειες, χρησιμοποιούμε τα τελευταία bits της δυαδικής αναπαράστασης Ευαγγελία Πιτουρά 10

Επεκτατός Κατακερματισμός Δε χρειάζεται ένας διαφορετικός κάδος για κάθε μία από τις 2 d θέσεις - μπορεί η θέση του πίνακα να δείχνει στη διεύθυνση του ίδιου κάδου αν αυτές χωράνε σε ένα κάδο 000 001 010 011 100 101 110 111 Κάδος για τις εγγραφές με τιμές κατακερματισμού που τελειώνουν από 00 Για κάθε κάδο, τοπικό βάθος d o αριθμός των δυαδικών ψηφίων στα οποία βασίζεται η χρήση του κάδου Παράδειγμα: 2 εγγραφές ανά κάδο εισαγωγή 2, 4, 3, 10, 7, 9 Βάσεις Δεδομένων 2013-2014 Ευαγγελία Πιτουρά 11

Παράδειγμα Χρήση των τελευταίων 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 εγγραφές ανά κάδο Βάσεις Δεδομένων 2013-2014 Ευαγγελία Πιτουρά 12

Παράδειγμα Χρήση των τελευταίων 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 Βάσεις Δεδομένων 2013-2014 Ευαγγελία Πιτουρά 13

Επεκτατός Κατακερματισμός Η τιμή του d μπορεί να αυξάνεται (μέχρι 2 κ, κ: αριθμός δυαδικών ψηφίων της τιμής κατακερματισμού) ή να μειώνεται Αύξηση της τιμής του d Όταν ένας κάδος με τιμή d = d υπερχειλίσει Διπλασιασμός του πίνακα Μείωση της τιμής του d Όταν για όλους τους κάδους d < d Μείωση του μεγέθους του πίνακα στο μισό Δε χρειάζεται rehash (επανα-κερματισμό), Μοιράζουμε μόνο τις εγγραφές του κάδου που υπερχείλισε Βάσεις Δεδομένων 2013-2014 Ευαγγελία Πιτουρά 14

Παράδειγμα 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 Βάσεις Δεδομένων 2013-2014 Ευαγγελία Πιτουρά 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 -> διάσπαση Βάσεις Δεδομένων 2013-2014 Ευαγγελία Πιτουρά 16

Γραμμικός Κατακερματισμός Θέλουμε να αποφύγουμε τη χρήση καταλόγου και το κόστος διπλασιασμού του μεγέθους του καταλόγου Προσοχή! Αυτή η μέθοδος: Διατηρεί λίστες υπερχείλισης Δε χρησιμοποιεί τη δυαδική αναπαράσταση Βάσεις Δεδομένων 2013-2014 Ευαγγελία Πιτουρά 17

Γραμμικός Κατακερματισμός Έστω αρχικά Μ κάδους Χρησιμοποιείται μια οικογένεια από συναρτήσεις κατακερματισμού 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 Βάσεις Δεδομένων 2013-2014 Ευαγγελία Πιτουρά 18

Ξεκινάμε από την πρώτη συνάρτηση κατακερματισμού (h 0 ) Όταν συμβεί η πρώτη υπερχείλιση ενός κάδου, γίνεται διάσπαση με χρήση της h 1 αλλά όχι του κάδου που υπερχείλισε αλλά του κάδου 0 Στη συνέχεια, κάθε κάδος διασπάτε με τη σειρά (δηλαδή, κάδος 1, 2, 3) Στο στάδιο αυτό χρησιμοποιούνται η h 0 και η h 1 Μέχρι να διασπαστούν και οι 4 κάδοι Όταν διασπαστούν όλοι οι κάδοι, Οι διασπάσεις θα ξεκινούν από τον κάδο 0 με χρήση της h 2 Πάλι η διάσπαση των κάδων γίνεται με τη σειρά, δηλαδή 0, 1, 2,, 7 Στο στάδιο αυτό χρησιμοποιούνται η h 1 και η h 2 Μέχρι να διασπαστούν και οι 8 κάδοι κοκ Γραμμικός Κατακερματισμός (εισαγωγή) Βάσεις Δεδομένων 2013-2014 Ευαγγελία Πιτουρά 19

Γραμμικός Κατακερματισμός Πολλές συναρτήσεις κατακερματισμού (άλλη σε κάθε βήμα) Οι κάδοι σε κάθε βήμα διασπώνται με τη σειρά (ο ένας μετά τον άλλο ανεξάρτητα αν είναι αυτοί που έχουν ή όχι υπερχειλίσει) Πότε γίνεται διάσπαση; Θα θεωρήσουμε ότι γίνεται διάσπαση όταν δημιουργείται ένας κάδος υπερχείλισης (όταν γίνεται εισαγωγή σε ένα γεμάτο κάδο) Αρκούν δύο μεταβλητές Βήμα Διάσπασης (j) - ποια συνάρτηση χρησιμοποιούμε (αρχικά j = 0) Πλήθος Διασπάσεων (n) ποιος είναι ο επόμενος κάδος που θα διασπαστεί (αρχικά n = 0) Βάσεις Δεδομένων 2013-2014 Ευαγγελία Πιτουρά 20

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

Γραμμικός Κατακερματισμός Όταν συμβεί μια υπερχείλιση σε έναν οποιοδήποτε κάδο, ο κάδος n χωρίζεται σε δύο κάδους: τον αρχικό κάδο n και ένα νέο κάδο n + k - 1 στο τέλος του αρχείου με βάση την συνάρτηση h 1 (k) = k mod 2M Δηλαδή, σε κάθε υπερχείλιση χωρίζουμε τον επόμενο στη σειρά κάδο Βάσεις Δεδομένων 2013-2014 Ευαγγελία Πιτουρά 22

Γραμμικός Κατακερματισμός Συνεχίζουμε... Όλοι οι κάδοι έχουν διασπαστεί όταν: n = M Τότε έχουμε 2M κάδους Όταν n = M, μηδενίζουμε το n, n = 0 και για οποιαδήποτε νέα διάσπαση εφαρμόζουμε την h 2 (k) = k mod 4M Διασπώντας πάλι τον κάδο 0, 1,... κ.τ.λ Βάσεις Δεδομένων 2013-2014 Ευαγγελία Πιτουρά 23

32 9 44 31 25 5 35 7 36 14 18 10 11 30 43 Παράδειγμα Κάθε κάδος 4 εγγραφές Αρχικά 4 κάδους (M = 4) Βάσεις Δεδομένων 2013-2014 Ευαγγελία Πιτουρά 24

Παράδειγμα h 0 (k) = k mod 4 h 1 (k) = k mod 8 Για μη διασπασμένους κάδους: παλιά συνάρτηση Για διασπασμένους κάδους: νέα συνάρτηση Βήμα διάσπασης 0 (χρήση h 0 ) Πλήθος διασπάσεων = 0 43 Διασπάμε τον πρώτο κάδο Βάσεις Δεδομένων 2013-2014 Ευαγγελία Πιτουρά 25

Γραμμικός Κατακερματισμός Γενικά βήμα διάσπασης j (j = 0, 1, 2, ) h j (k) = k mod 2 j M, και την h j+1 (k) για διασπάσεις Δηλαδή, σε κάθε βήμα έχουμε ένα ζεύγος συναρτήσεων (j, j+1): η πρώτη χρησιμοποιείται για τους μη διασπασμένους κάδους (δηλαδή, με αριθμό μεγαλύτερο του n) και η δεύτερη για τους διασπασμένους Βάσεις Δεδομένων 2013-2014 Ευαγγελία Πιτουρά 26

Παράδειγμα h 0 (k) = k mod 4 h 1 (k) = k mod 8 Για μη διασπασμένους κάδους: παλιά συνάρτηση Για διασπασμένους κάδους: νέα συνάρτηση 37 29 22 Βήμα διάσπασης 0 (χρήση h 0 ) Πλήθος διασπάσεων = 1 66 34 Βάσεις Δεδομένων 2013-2014 Ευαγγελία Πιτουρά 27

Παράδειγμα Εισαγωγή του 50 Βήμα διάσπασης 0 (χρήση h 0 ) Πλήθος διασπάσεων = 3 Βάσεις Δεδομένων 2013-2014 Ευαγγελία Πιτουρά 28

Γραμμικός Κατακερματισμός (αναζήτηση εγγραφής) Τι χρειάζεται να ξέρουμε για να βρεθεί ο κάδος της εγγραφής k που ψάχνουμε; ποια συνάρτηση χρησιμοποιούμε (δηλαδή, το j) σε ποια διάσπαση βρισκόμαστε (δηλαδή το n) Έστω ότι είμαστε στο βήμα j, Τότε θα πρέπει να κοιτάξουμε είτε το h j (k) αν ο κάδος δεν έχει διασπαστεί ή το h j+1 (k) αν έχει διασπαστεί Πως θα ελέγξουμε αν ο κάδος έχει διασπαστεί ή όχι Βάσεις Δεδομένων 2013-2014 Ευαγγελία Πιτουρά 29

Γραμμικός Κατακερματισμός (αναζήτηση) Έστω n ο αριθμός διασπάσεων και ότι αναζητούμε το k, βρίσκεται στον κάδο h j (k) τότε αν n h j (k) o κάδος δεν έχει διασπαστεί ενώ αν n > h j (k) o κάδος έχει διασπαστεί και εφαρμόζουμε την h j+1 (k) Βάσεις Δεδομένων 2013-2014 Ευαγγελία Πιτουρά 30

Γραμμικός Κατακερματισμός (αναζήτηση) Αλγόριθμος Αναζήτησης j : βήμα διάσπασης n : πλήθος διασπάσεων στο βήμα j if (n = 0) else { } then m := h j (k); m := h j (k); if (m < n) then m := h j+1 (k) σημαίνει ότι ο κάδος έχει διασπαστεί Βάσεις Δεδομένων 2013-2014 Ευαγγελία Πιτουρά 31

Ερωτήσεις;