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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Μάθημα 8: Διαχείριση Μνήμης

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

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

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων

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

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων

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

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

ΚΕΦΑΛΑΙΟ 8 Η ΓΛΩΣΣΑ PASCAL

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

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

Transcript:

Αρχεία Τα δεδομένα συνήθως αποθηκεύονται σε αρχεία στο δίσκο Οργάνωση Αρχείων Η μεταφορά δεδομένων από το δίσκο στη μνήμη και από τη μνήμη στο δίσκο γίνεται σε μονάδες blocks Βασικός στόχος η ελαχιστοποίηση της επικοινωνίας με το δίσκο: ελαχιστοποίηση του αριθμού των blocks που μεταφέρονται μεταξύ της πρωτεύουσας (κύριας μνήμης, cache ενδιάμεση μνήμη buffers-καταχωρητές) και της δευτερεύουσας αποθήκευσης (δίσκος) Βάσεις Δεδομένων 2008-2009 Ευαγγελία Πιτουρά 1 Βάσεις Δεδομένων 2008-2009 Ευαγγελία Πιτουρά 2 Αρχεία Τα δεδομένα συνήθως αποθηκεύονται με τη μορφή εγγραφών Οι εγγραφές συνήθως περιγράφουν οντότητες (σχέσεις) και τα γνωρίσματά τους Ένα αρχείο είναι λογικά οργανωμένο σε μια ακολουθία από εγγραφές που μπορεί να βρίσκονται αποθηκευμένες σε πολλές σελίδες (pages) θα θεωρούμε page = block Εγγραφές Πως οργανώνονται τα πεδία μέσα σε μία εγγραφή Εγγραφές σταθερού και μεταβλητού μήκους type film = record branch-name: char(22); Έστω κάθε char 1 byte - real 8 bytes account-number: char(20); balance:real; Κάθε εγγραφή 50 bytes end branch-name account-number balance branch-name account-number balance Blobs Βάσεις Δεδομένων 2008-2009 Ευαγγελία Πιτουρά 3 Βάσεις Δεδομένων 2008-2009 Ευαγγελία Πιτουρά 4 Εγγραφές Εγγραφές Γιατί είναι προτιμότερες οι εγγραφές σταθερού μήκους: εύκολος ο εντοπισμός ενός πεδίου και η διατήρηση πληροφορίας για «άδειες» θέσεις Πως προκύπτουν οι εγγραφές μεταβλητού τύπου; Στο σχεσιακό μοντέλο κάθε εγγραφή (πλειάδα) μιας σχέσης περιέχει το ίδιο πλήθος πεδίων (αριθμό γνωρισμάτων). Άρα Εγγραφές του ίδιου τύπου αλλά έχουν ένα ή περισσότερα πεδία μεταβλητού μεγέθους Ανάμεικτο (mixed) αρχείο: εγγραφές διαφορετικού τύπου Βάσεις Δεδομένων 2008-2009 Ευαγγελία Πιτουρά 5 Βάσεις Δεδομένων 2008-2009 Ευαγγελία Πιτουρά 6 Βάσεις Δεδομένων 2008-2009: Οργάνωση Αρχείων 1

Εγγραφές Εγγραφές Αποθήκευση των πεδίων συνεχόμενα, χωρισμένα με διαχωριστές (ειδικούς χαρακτήρες που δεν εμφανίζονται ως δεδομένα) F1 F2 F3 F4 $ $ $ $ Χώρο στην αρχή κάθε εγγραφής πίνακας ακεραίων Ι[j] όπου j η μετατόπιση (offset) της j-οστής εγγραφής (κρατά την αρχή του j- οστού πεδίου) + τη μετατόπιση του τέλους της εγγραφής απευθείας πρόσβαση σε οποιαδήποτε πεδίο καλό χειρισμό της τιμής null F1 F2 F3 F4 Βάσεις Δεδομένων 2008-2009 Ευαγγελία Πιτουρά 7 Βάσεις Δεδομένων 2008-2009 Ευαγγελία Πιτουρά 8 Εγγραφές Παράγοντας Ομαδοποίησης Η μονάδα μεταφοράς μεταξύ δίσκου και μνήμης είναι ένα block δίσκου Ως εγγραφές σταθερού μήκους, θεωρώντας το μέγιστο μέγεθος για κάθε εγγραφή Έστω εγγραφές σταθερού μήκους Όταν Β R περισσότερες από μια εγγραφή ανά block - κάθε εγγραφή σε ένα μόνο block Παράγοντας ομαδοποίησης (blocking factor), όταν Β R bfr = (B / R), όπου Β μέγεθος block σε byte και R μέγεθος εγγραφής σε bytes ηλαδή, πόσες «ολόκληρες» εγγραφές χωρούν σε ένα block Βάσεις Δεδομένων 2008-2009 Ευαγγελία Πιτουρά 9 Βάσεις Δεδομένων 2008-2009 Ευαγγελία Πιτουρά 10 Εκτεινόμενη καταχώρηση Εκτεινόμενη καταχώρηση Εκτεινόμενη και μη εκτεινόμενη καταχώρηση εγγραφών Μη εκτεινόμενη (unspanned) οργάνωση:οι εγγραφές δεν επιτρέπεται να διασχίζουν τα όρια ενός block Αχρησιμοποίητος χώρος: Β - bfr * R bytes ανά block Πιο εύκολη η προσπέλαση Εκτεινόμενη (spanned) οργάνωση: αποθήκευση μέρους μιας εγγραφής σε ένα block και το υπόλοιπο σε ένα άλλο block - δείκτης στο τέλος του πρώτου τμήματος δείχνει στο block που περιέχει το υπόλοιπο Βάσεις Δεδομένων 2008-2009 Ευαγγελία Πιτουρά 11 Βάσεις Δεδομένων 2008-2009 Ευαγγελία Πιτουρά 12 Βάσεις Δεδομένων 2008-2009: Οργάνωση Αρχείων 2

Εκτεινόμενη καταχώρηση Αρχεία Τοποθέτηση block αρχείου στο δίσκο b: Αριθμός blocks για την αποθήκευση ενός αρχείου r εγγραφών: b = (r/bfr) συνεχόμενη τοποθέτηση (contiguous allocation) τα block του αρχείου τοποθετούνται σε διαδοχικά blocks του δίσκου συνδεδεμένη τοποθέτηση (linked allocation) κάθε block του αρχείου περιλαμβάνει ένα δείκτη προς το επόμενο block του αρχείου Εύκολη επέκταση - πιο αργή ανάγνωση όλου του αρχείου συστάδες διαδοχικών blocks δίσκου (τμήματα (segments) ή επεκτάματα (extents) ευρετηριοποιημένη τοποθέτηση (indexed allocation) Βάσεις Δεδομένων 2008-2009 Ευαγγελία Πιτουρά 13 Βάσεις Δεδομένων 2008-2009 Ευαγγελία Πιτουρά 14 Αρχεία Αρχεία Επικεφαλίδες αρχείων Μια επικεφαλίδα ή περιγραφέας αρχείου (file header ή file descriptor) περιέχει πληροφορίες σχετικά με ένα αρχείο που είναι απαραίτητες στα προγράμματα που προσπελαύνουν τις εγγραφές του αρχείου Πληροφορίες για προσδιορισμό διεύθυνσης των blocks αρχείου στο δίσκο + περιγραφές μορφοποίησης εγγραφών Header Full s s with Free Space Αποθηκεύεται στο αρχείο θεωρούμε ότι «ξέρουμε» σε ποιο block είναι αποθηκευμένη η i-οστή σελίδα του αρχείου Βάσεις Δεδομένων 2008-2009 Ευαγγελία Πιτουρά 15 Βάσεις Δεδομένων 2008-2009 Ευαγγελία Πιτουρά Αρχεία Αποθήκευση (επανάληψη) Header DIRECTORY 1 2 N Βασικά Σημεία 1. Τα δεδομένα αποθηκεύονται σε αρχεία στο δίσκο 2. Για να γίνει η επεξεργασία τους πρέπει να μεταφερθούν στη μνήμη 3. Η μονάδα μεταφοράς από το δίσκο στη μνήμη είναι ένα block 4. Ο χρόνος προσπέλασης (εγγραφής ή ανάγνωσης) ενός block διαφέρει και εξαρτάται από τη θέση του block δε θα το εξετάσουμε στο μάθημα 5. Μας ενδιαφέρει η ελαχιστοποίηση του Ι/Ο (πολυπλοκότητα σε σχέση με blocks) Βάσεις Δεδομένων 2008-2009 Ευαγγελία Πιτουρά Βάσεις Δεδομένων 2008-2009 Ευαγγελία Πιτουρά 18 Βάσεις Δεδομένων 2008-2009: Οργάνωση Αρχείων 3

Οργάνωση Αρχείων (επανάληψη) Οργάνωση Αρχείων (επανάληψη) Ένα αρχείο είναι λογικά οργανωμένο σε μια ακολουθία από εγγραφές Συνήθως ένα αρχείο ανά (σχήμα) σχέσης και μια εγγραφή αντιστοιχεί σε μια πλειάδα Μη εκτεινόμενη (unspanned) οργάνωση: οι εγγραφές δεν επιτρέπεται να διασχίζουν τα όρια ενός block (-) Αχρησιμοποίητος χώρος (+) Πιο εύκολη η προσπέλαση Έστω Β μέγεθος block σε byte και R μέγεθος εγγραφής σε bytes Παράγοντας ομαδοποίησης (blocking factor), όταν Β R bfr = (B / R) Πόσες εγγραφές χωρούν σε ένα block b: Αριθμός blocks για την αποθήκευση ενός αρχείου r εγγραφών: b = (r/bfr) Βάσεις Δεδομένων 2008-2009 Ευαγγελία Πιτουρά 19 Βάσεις Δεδομένων 2008-2009 Ευαγγελία Πιτουρά 20 Για κάθε σχέση: όνομα, αρχείο, δομή αρχείου (πχ αρχείο σωρού) Όνομακαιτύπογιακάθεγνώρισμα Όνομα ευρετηρίου για κάθε ευρετήριο Περιορισμοί ακεραιότητας Για κάθε ευρετήριο: ομή (πχ B+ δέντρο) και κλειδιά αναζήτησης Για κάθε όψη: Το όνομα και τον ορισμό της Κατάλογος Συστήματος Επίσης, στατιστικά, μέγεθος του buffer pool, δικαιώματα προσπέλασης κλπ. Ο κατάλογος αποθηκεύεται επίσης ως σχέση Attr_Cat(attr_name, rel_name, type, position) Κατάλογος Συστήματος attr_name rel_name type position attr_name Attribute_Cat string 1 rel_name Attribute_Cat string 2 type Attribute_Cat string 3 position Attribute_Cat integer 4 sid Students string 1 name Students string 2 login Students string 3 age Students integer 4 gpa Students real 5 fid Faculty string 1 fname Faculty string 2 sal Faculty real 3 Βάσεις Δεδομένων 2008-2009 Ευαγγελία Πιτουρά Βάσεις Δεδομένων 2008-2009 Ευαγγελία Πιτουρά Αρχεία Οργάνωση Αρχείων (επανάληψη) Αρχείο από σελίδες (page, block) από εγγραφές (πλειάδες) Βασικές λειτουργίες: Εισαγωγή/διαγραφή/τροποποίηση εγγραφής Εντοπισμός (αναζήτηση) μια συγκεκριμένης εγγραφής με βάση συνθήκη ισότητας ή διαστήματος τιμών ιάσχιση (scan) όλων των εγγραφών του αρχείου Βασικός στόχος η ελαχιστοποίηση του αριθμού των blocks που μεταφέρονται Θεωρούμε ότι η πληροφορία για τη θέση στο δίσκο ενός block υπάρχει (π.χ., στην επικεφαλίδα του αρχείου) Σε πραγματικά συστήματα Ίσως και άλλοι τύποι κόστους (πχ κόστος CPU) Πρόσβασης κατά block (διάβασμα γειτονικών block με μια μόνο αίτηση I/O: αναζήτηση 1 ου block + μεταφορά όλων των επόμενων) Βάσεις Δεδομένων 2008-2009 Ευαγγελία Πιτουρά Βάσεις Δεδομένων 2008-2009 Ευαγγελία Πιτουρά 24 Βάσεις Δεδομένων 2008-2009: Οργάνωση Αρχείων 4

Αρχεία Σωρού Κατακερματισμένα Αρχεία Οργάνωση Αρχείων Οργάνωση αρχείων: πως είναι τοποθετημένες οι εγγραφές ενός αρχείου όταν αποθηκεύονται στο δίσκο Β blocks - R εγγραφές ανά block - D εγγραφή/ανάγνωση -C χρόνος επεξεργασίας ανά εγγραφή D = 15 milliseconds -- C = 100 nanoseconds Αρχεία Σωρού Αρχεία Σωρού Αρχείο Σωρού (heap file ή pile file): Οι εγγραφές τοποθετούνται στο αρχείο με τη σειρά που εισάγονται Μη ταξινομημένο αρχείο 1. Εισαγωγή 2 * D + C 2. Αναζήτηση 0.5 * B * (D + R * C) Β blocks R εγγραφές ανά block D χρόνος μεταφοράς block C χρόνος επεξεργασίας ανά εγγραφή Βάσεις Δεδομένων 2008-2009 Ευαγγελία Πιτουρά 25 Βάσεις Δεδομένων 2008-2009 Ευαγγελία Πιτουρά 26 Αρχεία Σωρού Αρχεία Σωρού 3. ιαγραφή εγγραφής Σημάδι διαγραφής 4. Τροποποίηση εγγραφής - εγγραφή μεταβλητού μήκους Περιοδική αναδιοργάνωση Χρόνος Αναζήτησης + (C + D) 5. Σάρωση (scan) Ανάγνωση όλων των εγγραφών B*(D+R*C) 6. Ανάγνωση όλων των εγγραφών σε διάταξη Εξωτερική ταξινόμηση συνήθως μια παραλλαγή της ταξινόμησης με συγχώνευση Βάσεις Δεδομένων 2008-2009 Ευαγγελία Πιτουρά 27 Βάσεις Δεδομένων 2008-2009 Ευαγγελία Πιτουρά 28 Φυσική διάταξη των εγγραφών ενός αρχείου με βάση την τιμή ενός από τα πεδία του το οποίο λέγεται πεδίο διάταξης (ordering field) ιατεταγμένο ή φυσικό αρχείο Αν το πεδίο διάταξης είναι και κλειδί τότε λέγεται και κλειδί διάταξης 1. Εισαγωγή i. Εύρεση της σωστής θέσης της εγγραφής στο αρχείο ii. Μετακίνηση εγγραφών για να κάνουμε χώρο για την εισαγωγή της Κατά μέσο όρο μετακίνηση των μισών εγγραφών Χρόνος αναζήτησης + 2 * (0.5 * Β *(D+ R*C)) Β blocks R εγγραφές ανά block D χρόνος μεταφοράς block C χρόνος επεξεργασίας ανά εγγραφή Βάσεις Δεδομένων 2008-2009 Ευαγγελία Πιτουρά 29 Βάσεις Δεδομένων 2008-2009 Ευαγγελία Πιτουρά 30 Βάσεις Δεδομένων 2008-2009: Οργάνωση Αρχείων 5

1. Εισαγωγή (συνέχεια) 2. Αναζήτηση εγγραφής (με επιλογή ισότητας) αποδοτική αν η συνθήκη αναζήτησης είναι στο πεδίο ταξινόμησης ιατήρηση κάποιου αχρησιμοποίητου χώρου ανά block ημιουργία ενός προσωρινού μη διατεταγμένου αρχείου (αρχείο υπερχείλισης) + κυρίως αρχείο Έστω Β blocks, αναζήτηση της εγγραφής με τιμή K στο πεδίο διάταξης Σημείωση: Υποθέτουμε ότι οι διευθύνσεις των blocks του αρχείου είναι αποθηκευμένες στην επικεφαλίδα του αρχείου Βάσεις Δεδομένων 2008-2009 Ευαγγελία Πιτουρά 31 Βάσεις Δεδομένων 2008-2009 Ευαγγελία Πιτουρά 32 2. Αναζήτηση εγγραφής (συνέχεια) lower := 1; upper := Β; Χρόνος: log B * (D + log R * C) while (upper lower) Συνθήκη πχ., <= i := (lower + upper) div 2; read block i if (K < τιμής διάταξης της πρώτης εγγραφής) Β blocks upper := i - 1; R εγγραφές ανά block else if (K > τιμής διάταξης της τελευταίας D χρόνος μεταφοράς εγγραφής) block lower := i + 1; C χρόνος επεξεργασίας else... ανά εγγραφή 3. ιαγραφή εγγραφής Μετακίνηση εγγραφών Χρήση σημαδιού διαγραφής 4. Τροποποίηση εγγραφής Βάσεις Δεδομένων 2008-2009 Ευαγγελία Πιτουρά 33 Βάσεις Δεδομένων 2008-2009 Ευαγγελία Πιτουρά 34 Οργάνωση Αρχείων (επανάληψη) Οργάνωση αρχείων: πως είναι τοποθετημένες οι εγγραφές ενός αρχείου όταν αποθηκεύονται στο δίσκο 5. Ανάγνωση όλων των εγγραφών σε διάταξη Αρχεία Σωρού (δεν υπάρχει διάταξη) (διάταξη με βάση κάποιο πεδίο διάταξης) Αρχεία Κατακερματισμού Βάσεις Δεδομένων 2008-2009 Ευαγγελία Πιτουρά 35 Βάσεις Δεδομένων 2008-2009 Ευαγγελία Πιτουρά 36 Βάσεις Δεδομένων 2008-2009: Οργάνωση Αρχείων 6

Εσωτερικός Κατακερματισμός Εσωτερικός Κατακερματισμός (τα δεδομένα είναι στη μνήμη, όπως στις δομές δεδομένων) Πίνακας κατακερματισμού με Μ θέσεις - κάδους (buckets) h: συνάρτηση κατακερματισμού h(k) = i Πεδίο αναζήτησης - Πεδίο κατακερματισμού Σε ποιο κάδο - τιμή από 0 έως Μ-1 Εξωτερικός Κατακερματισμός (εφαρμογή σε δεδομένα αποθηκευμένα σε αρχεία) h(k) = i Τιμή του πεδίου κατακερματισμού Στόχος Αρχεία Κατακερματισμού ιεύθυνση (αριθμός) block του αρχείου που είναι αποθηκευμένη Η εγγραφή με τιμή στο πεδίο κατακερματισμού k αποθηκεύεται στο i block (κάδο) του αρχείου Βάσεις Δεδομένων 2008-2009 Ευαγγελία Πιτουρά 37 Βάσεις Δεδομένων 2008-2009 Ευαγγελία Πιτουρά 38 Κατακερματισμός Κατακερματισμός h: συνάρτηση κατακερματισμού Ομοιόμορφη κατανομή των κλειδιών στους κάδους (blocks) Συνηθισμένη συνάρτηση κατακερματισμού: h(k) = k mod M Συχνά M πρώτος Σύγκρουση (collision): όταν μια νέα εγγραφή κατακερματίζεται σε μία ήδη γεμάτη θέση Καλή συνάρτηση κατακερματισμού: κατανέμει τις εγγραφές ομοιόμορφα στο χώρο των διευθύνσεων (ελαχιστοποίηση συγκρούσεων και λίγες αχρησιμοποίητες θέσεις) Ευριστικοί: -- αν r εγγραφές, πρέπει να επιλέξουμε το Μ ώστε το r/m να είναι μεταξύ του 0.7 και 0.9 -- όταν χρησιμοποιείται η mod τότε είναι καλύτερα το Μ να είναι πρώτος Βάσεις Δεδομένων 2008-2009 Ευαγγελία Πιτουρά 39 Βάσεις Δεδομένων 2008-2009 Ευαγγελία Πιτουρά 40 Κατακερματισμός Εξωτερικός Κατακερματισμός Επίλυση Συγκρούσεων 1. Ανοιχτή ιευθυνσιοδότηση (open addressing): χρησιμοποίησε την επόμενη κενή θέση 2. Αλυσιδωτή Σύνδεση (chaining): για κάθε θέση μια συνδεδεμένη λίστα με εγγραφές υπερχείλισης 3. Πολλαπλός Κατακερματισμός (multiple hashing): εφαρμογή μιας δεύτερης συνάρτησης κατακερματισμού Κάδος: μια συστάδα από συνεχόμενα blocks του αρχείου h(k) = i Τιμή του πεδίου κατακερματισμού Σχετική διεύθυνση του κάδου (ποιος κάδος του αρχείου) Ο κατακερματισμός είναι πολύ αποδοτικός για επιλογές ισότητας Βάσεις Δεδομένων 2008-2009 Ευαγγελία Πιτουρά 41 Βάσεις Δεδομένων 2008-2009 Ευαγγελία Πιτουρά 42 Βάσεις Δεδομένων 2008-2009: Οργάνωση Αρχείων 7

Εξωτερικός Κατακερματισμός Εξωτερικός Κατακερματισμός Ένας πίνακας που αποθηκεύεται στην επικεφαλίδα του αρχείου μετατρέπει τον αριθμό κάδου στην αντίστοιχη διεύθυνση block 0 διεύθυνση 1ου block του κάδου στο δίσκο 1 διεύθυνση 1ου block του κάδου στο δίσκο 2 διεύθυνση 1ου block του κάδου στο δίσκο... Μ-1 διεύθυνση 1ου block του κάδου στο δίσκο Συγκρούσεις - αλυσιδωτή σύνδεση - εγγραφές υπερχείλισης ανά κάδο 1. Ανάγνωση όλου του αρχείου (scan) Έστω ότι διατηρούμε κάθε κάδο γεμάτο κατά 80% άρα ένα αρχείο με μέγεθος Β blocks χρειάζεται 1.25 Β blocks 1.25 * Β * (D + R * C) 2. Αναζήτηση Συνθήκη ισότητας και μόνο ένα block ανά κάδο: D + R * C Αν συνθήκη περιοχής (διαστήματος): scan! Βάσεις Δεδομένων 2008-2009 Ευαγγελία Πιτουρά 43 Βάσεις Δεδομένων 2008-2009 Ευαγγελία Πιτουρά 44 Οργάνωση Αρχείων Εξωτερικός Κατακερματισμός Κόστος: μεταφορά blocks (I/O) Σωρός Ταξινομημένο Κατακερματισμένο Ανάγνωση του αρχείου Β B 1.25B Αναζήτηση με συνθήκη ισότητας 0.5 B logb 1 Αναζήτηση με συνθήκη περιοχής B logb + ταιριάσματα 1.25 Β Εισαγωγή 2 αναζήτηση + B 2 ιαγραφή αναζήτηση + 1 αναζήτηση + Β αναζήτηση + 1 Πρόβλημα: Στατικός Κατακερματισμός Έστω Μ κάδους και r εγγραφές ανά κάδο - το πολύ Μ * r εγγραφές (αλλιώς μεγάλες αλυσίδες υπερχείλισης) υναμικός Κατακερματισμός Επεκτατός Γραμμικός Βάσεις Δεδομένων 2008-2009 Ευαγγελία Πιτουρά 45 Βάσεις Δεδομένων 2008-2009 Ευαγγελία Πιτουρά 46 υναμικός Εξωτερικός Κατακερματισμός υναμικός Εξωτερικός Κατακερματισμός υναμικός Εξωτερικός Κατακερματισμός υαδική αναπαράσταση του αποτελέσματος της συνάρτησης κατακερματισμού, δηλαδή ως μια ακολουθίας δυαδικών ψηφίων Κατανομή εγγραφών με βάση την τιμή των αρχικών (ή τελικών) ψηφίων Το αρχείο ξεκινά με ένα μόνο κάδο Μόλις γεμίσει ένας κάδος διασπάται σε δύο κάδους με βάση την τιμή του 1ου δυαδικού ψηφίου των τιμών κατακερματισμού - - δηλαδή οι εγγραφές που το πρώτο ψηφίο της τιμής κατακερματισμού τους είναι 1 τοποθετούνται σε ένα κάδο και οι άλλες (με 0) στον άλλο Νέα υπερχείλιση ενός κάδου οδηγεί σε διάσπαση του με βάση το αμέσως επόμενο δυαδικό ψηφίο κοκ Βάσεις Δεδομένων 2008-2009 Ευαγγελία Πιτουρά 47 Βάσεις Δεδομένων 2008-2009 Ευαγγελία Πιτουρά 48 Βάσεις Δεδομένων 2008-2009: Οργάνωση Αρχείων 8

υναμικός Εξωτερικός Κατακερματισμός υναμικός Εξωτερικός Κατακερματισμός (Παράδειγμα) Χρήση των τελευταίων bits τηςδυαδικήςαναπαράστασης Έτσι δημιουργείται μια δυαδική δενδρική δομή που λέγεται κατάλογος (dirtectory) ή ευρετήριο (index) με δύο ειδών κόμβους εσωτερικούς: που καθοδηγούν την αναζήτηση εξωτερικούς: που δείχνουν σε ένα κάδο Αποτέλεσμα συνάρτησης κατακερματισμού 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 εγγραφές ανά κάδο Βάσεις Δεδομένων 2008-2009 Ευαγγελία Πιτουρά 49 Βάσεις Δεδομένων 2008-2009 Ευαγγελία Πιτουρά 50 υναμικός Εξωτερικός Κατακερματισμός υναμικός Εξωτερικός Κατακερματισμός Αλγόριθμος αναζήτησης h := τιμή κατακερματισμού t := ρίζα του δέντρου i := 1 while (t εσωτερικός κόμβος) if (i-οστό bit του h είναι 0) t := αριστερά του t else t := δεξιά του t i := i +1 Που αποθηκεύεται ο κατάλογος στη μνήμη, εκτός αν είναι πολύ μεγάλος τότε στο δίσκο οπότε θα απαιτούνται επιπρόσθετες προσπελάσεις υναμική επέκταση αλλά μέγιστος αριθμός επιπέδων (το πλήθος των δυαδικών ψηφίων της συνάρτησης κατακερματισμού) Ισοζύγιση Συνένωση κάδων (δυναμική συρρίκνωση) Βάσεις Δεδομένων 2008-2009 Ευαγγελία Πιτουρά 51 Βάσεις Δεδομένων 2008-2009 Ευαγγελία Πιτουρά 52 Επεκτατός Εξωτερικός Κατακερματισμός Extendible hashing Ο κατάλογος είναι ένας πίνακας με 2 d διευθύνσεις κάδων (d: ολικό βάθος του καταλόγου) Κάδος για τις εγγραφές με τιμές 000 κατακερματισμού που αρχίζουν από (ή τελειώνουν σε) 000 001 010 011 100 Τα πρώτα (ή τα τελευταία) d ψηφία της 101 τιμής κατακερματισμού χρησιμοποιούνται 110 ως δείκτης στον πίνακα 111 000 001 010 011 100 101 110 111 Επεκτατός Εξωτερικός Κατακερματισμός ε χρειάζεται ένας διαφορετικός κάδος για κάθε μία από τις 2 d θέσεις - μπορεί η θέση του πίνακα να δείχνει στη διεύθυνση του ίδιου κάδου αν αυτές χωράνε σε ένα κάδο Κάδος για τις εγγραφές με τιμές κατακερματισμού που αρχίζουν από 00 Για κάθε κάδο, τοπικό βάθος d o αριθμός των δυαδικών ψηφίων στα οποία βασίζεται η χρήση του κάδου Βάσεις Δεδομένων 2008-2009 Ευαγγελία Πιτουρά 53 Βάσεις Δεδομένων 2008-2009 Ευαγγελία Πιτουρά 54 Βάσεις Δεδομένων 2008-2009: Οργάνωση Αρχείων 9

Επεκτατός Εξωτερικός Κατακερματισμός (Παράδειγμα) Επεκτατός Εξωτερικός Κατακερματισμός (Παράδειγμα) Χρήση των τελευταίων bits τηςδυαδικήςαναπαράστασης 1 000001 4 000100 4 εγγραφές ανά κάδο 5 000101 7 000111 10 001010 12 001100 15 001111 16 010000 19 010011 21 010101 32 100000 13 001101 Χρήση των τελευταίων 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 Βάσεις Δεδομένων 2008-2009 Ευαγγελία Πιτουρά 55 Βάσεις Δεδομένων 2008-2009 Ευαγγελία Πιτουρά 56 Επεκτατός Εξωτερικός Κατακερματισμός Ητιμήτουd μπορεί να αυξάνεται (μέχρι 2 κ, κ: αριθμός δυαδικών ψηφίων της τιμής κατακερματισμού) ή να μειώνεται Αύξηση της τιμής του d Όταν ένας κάδος με τιμή d = d υπερχειλίσει ε χρειάζεται rehash (επανακερματισμό), διασπάμε κάθε κάδο ιπλασιασμός του πίνακα Επίσης, κάθε φορά μόνο τον κάδο που Μείωση της τιμής του d υπερχείλισε Όταν για όλους τους κάδους d < d Μείωση του μεγέθους του πίνακα στο μισό Επεκτατός Εξωτερικός Κατακερματισμός (Παράδειγμα) 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 Βάσεις Δεδομένων 2008-2009 Ευαγγελία Πιτουρά 57 Βάσεις Δεδομένων 2008-2009 Ευαγγελία Πιτουρά 58 Κατακερματισμός 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 -> διάσπαση ΠΡΟΣΟΧΗ ΓΕΝΙΚΗ ΠΑΡΑΤΗΡΗΣΗ Τι αποθηκεύουμε στους κάδους; Στα παραδείγματα δείχνουμε μόνο την τιμή του πεδίου κατακερματισμού Τιμή του πεδίου κατακερματισμού (+δείκτη στο υπόλοιπο της εγγραφής); Την ίδια την εγγραφή; Τι γίνεται αν το πεδίο κατακερματισμού δεν είναι κλειδί (παραπάνω από μια εγγραφή με την ίδια τιμή) Θα το δούμε ξανά στα ευρετήρια Βάσεις Δεδομένων 2008-2009 Ευαγγελία Πιτουρά 59 Βάσεις Δεδομένων 2008-2009 Ευαγγελία Πιτουρά 60 Βάσεις Δεδομένων 2008-2009: Οργάνωση Αρχείων 10

Γραμμικός Κατακερματισμός Θέλουμε να αποφύγουμε τη χρήση καταλόγου + ιπλασιασμό μεγέθους του καταλόγου Σημείωση: διατηρούμε λίστες υπερχείλισης Χρησιμοποιεί μια οικογένεια από συναρτήσεις κατακερματισμού 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 Όταν συμβαίνει η πρώτη υπερχείλιση ενός κάδου, πάμε στην επόμενη συνάρτηση μέχρι να διασπαστούν όλοι οι κάδοι με αυτήν τη συνάρτηση ΠΡΟΣΟΧΗ: δε διασπάμε τον κάδο που υπερχειλίζει, αλλά έναν-έναν τον κάδο με τη σειρά! Βάσεις Δεδομένων 2008-2009 Ευαγγελία Πιτουρά 61 Βάσεις Δεδομένων 2008-2009 Ευαγγελία Πιτουρά 62 Βασικά σημεία Πολλές συναρτήσεις κατακερματισμού (άλλη σε κάθε βήμα) Οι κάδοι σε κάθε βήμα διασπώνται με τη σειρά (ο ένας μετά τον άλλο ανεξάρτητα αν έχουν ή όχι υπερχειλίσει) Αρχικά: Βήμα ιάσπασης (ποια συνάρτηση χρησιμοποιούμε) αρχικά j = 0: Πλήθος ιασπάσεων (στο τρέχον βήμα) αρχικά n= 0, j -> ποια συνάρτηση χρησιμοποιούμε n -> ποιο κάδο διασπάμε Έστω αρχικά Μ κάδους αριθμημένους από 0 έως Μ -1 και αρχική συνάρτηση κατακερματισμού h 0 (k) = k mod M Βάσεις Δεδομένων 2008-2009 Ευαγγελία Πιτουρά 63 Βάσεις Δεδομένων 2008-2009 Ευαγγελία Πιτουρά 64 Όταν συμβεί μια υπερχείλιση σε έναν οποιοδήποτε κάδο, ο κάδος 0 χωρίζεται σε δύο κάδους: τον αρχικό κάδο 0 και ένα νέο κάδο Μ στο τέλος του αρχείου με βάση την συνάρτηση h 1 (k) = k mod 2M Βήμα ιάσπασης (ποια συνάρτηση χρησιμοποιούμε) j = 1 Πλήθος ιασπάσεων n = 1 Συνεχίζουμε γραμμικά, διασπώντας με τη σειρά τους κάδους 1, 2, 3,... μέχρι να διασπαστούν όλοι οι «παλιοί» κάδοι μια μεταβλητή n («Πλήθος ιασπάσεων») κρατάει ποιος κάδος έχει σειρά για διάσπαση Βήμα διάσπασης (ποια συνάρτηση χρησιμοποιούμε) j = 1: Πλήθος ιασπάσεων n = m -1 : Όταν συμβεί μια υπερχείλιση σε έναν οποιοδήποτε κάδο, ο κάδος m-1 χωρίζεται σε δύο κάδους: τον αρχικό κάδο m-1 και ένα νέο κάδο m + k - 1 στο τέλος του αρχείου με βάση την συνάρτηση h 1 (k) = k mod 2M ηλαδή, σε κάθε υπερχείλιση χωρίζουμε όλους τους κάδους με τη σειρά ξεκινώντας από τον πρώτο κάδο Βάσεις Δεδομένων 2008-2009 Ευαγγελία Πιτουρά 65 Βάσεις Δεδομένων 2008-2009 Ευαγγελία Πιτουρά 66 Βάσεις Δεδομένων 2008-2009: Οργάνωση Αρχείων 11

Συνεχίζουμε... Όλοι οι κάδοι έχουν διασπαστεί όταν: n = M Τότε έχουμε 2M κάδους Όταν n = M, μηδενίζουμε το n, n = 0 και για οποιαδήποτε νέα διάσπαση εφαρμόζουμε την h 2 (k) = k mod 4M ιασπώντας πάλι τον κάδο 0, 1,... κ.τ.λ Γενικά βήμα διάσπασης j (j = 0, 1, 2, ) h j (k) = k mod 2 j M, και την h j+1 (k) για διασπάσεις Βάσεις Δεδομένων 2008-2009 Ευαγγελία Πιτουρά 67 Βάσεις Δεδομένων 2008-2009 Ευαγγελία Πιτουρά 68 32 9 44 31 25 5 35 7 36 14 18 10 11 30 Κάθε κάδος 4 εγγραφές Αρχικά 4 κάδους (M = 4) ΠΡΟΣΟΧΗ: ε χρησιμοποιούμε τη δυαδική αναπαράσταση (παράδειγμα) h 0 (k) = k mod 4 h 1 (k) = k mod 8 Βήμα διάσπασης 0 (χρήση h 0 ) Πλήθος διασπάσεων = 0 Για μη διασπασμένους κάδους: παλιά συνάρτηση Για διασπασμένους κάδους: νέα συνάρτηση 43 ιασπάμε τον πρώτο κάδο 37 29 22 66 34 Βάσεις Δεδομένων 2008-2009 Ευαγγελία Πιτουρά 69 Βάσεις Δεδομένων 2008-2009 Ευαγγελία Πιτουρά 70 (παράδειγμα) 50 Βήμα διάσπασης 0 (χρήση h 0 ) Πλήθος διασπάσεων = 0 Βάσεις Δεδομένων 2008-2009 Ευαγγελία Πιτουρά 71 Αναζήτηση Εγγραφής (γενικά) Τι χρειάζεται να ξέρουμε για να βρεθεί ο κάδος της εγγραφής k που ψάχνουμε; ποια συνάρτηση χρησιμοποιούμε (δηλαδή, το j) σε ποια διάσπαση βρισκόμαστε (δηλαδή το n) Έστω ότι είμαστε στο βήμα j, Τότε θα πρέπει να κοιτάξουμε είτε το h j (k) αν ο κάδος δεν έχει διασπαστεί ήτο h j+1 (k) αν έχει διασπαστεί Πως θα ελέγξουμε αν ο κάδος έχει διασπαστεί ή όχι Βάσεις Δεδομένων 2008-2009 Ευαγγελία Πιτουρά 72 Βάσεις Δεδομένων 2008-2009: Οργάνωση Αρχείων 12

Αναζήτηση Εγγραφής ύο περιπτώσεις ο κάδος στον οποίο είναι (1) έχει ή (2) δεν έχει διασπαστεί Κρατάμε μια μεταβλητή το πλήθος n των διασπάσεων Έστω n ο αριθμός διασπάσεων και ότι αναζητούμε το k, βρίσκεται στον κάδο h 0 (k) τότε αν n h 0 (k) o κάδος δεν έχει διασπαστεί ενώ αν n > h 0 (k) o κάδος έχει διασπαστεί και εφαρμόζουμε την h 1 (k) Αλγόριθμος Αναζήτησης 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) } σημαίνει ότι ο κάδος έχει διασπαστεί Βάσεις Δεδομένων 2008-2009 Ευαγγελία Πιτουρά 73 Βάσεις Δεδομένων 2008-2009 Ευαγγελία Πιτουρά 74 Βάσεις Δεδομένων 2008-2009: Οργάνωση Αρχείων 13