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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Transcript:

Αρχεία Τα δεδομένα συνήθως αποθηκεύονται σε αρχεία στο δίσκο Οργάνωση Αρχείων Η μεταφορά δεδομένων από το δίσκο στη μνήμη και από τη μνήμη στο δίσκο γίνεται σε μονάδες blocks Βασικός στόχος η ελαχιστοποίηση της επικοινωνίας με το δίσκο: ελαχιστοποίηση του αριθμού των blocks που μεταφέρονται μεταξύ της πρωτεύουσας (κύριας μνήμης, cache ενδιάμεση μνήμη buffers-καταχωρητές) και της δευτερεύουσας αποθήκευσης (δίσκος) Βάσεις Δεδομένων 2007-2008 Ευαγγελία Πιτουρά 1 Βάσεις Δεδομένων 2007-2008 Ευαγγελία Πιτουρά 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 Βάσεις Δεδομένων 2007-2008 Ευαγγελία Πιτουρά 3 Βάσεις Δεδομένων 2007-2008 Ευαγγελία Πιτουρά 4 Εγγραφές Εγγραφές Γιατί είναι προτιμότερες οι εγγραφές σταθερού μήκους: εύκολος ο εντοπισμός ενός πεδίου και η διατήρηση πληροφορίας για «άδειες» θέσεις Πως προκύπτουν οι εγγραφές μεταβλητού τύπου; Στο σχεσιακό μοντέλο κάθε εγγραφή (πλειάδα) μιας σχέσης περιέχει το ίδιο πλήθος πεδίων (αριθμό γνωρισμάτων). Άρα Εγγραφές του ίδιου τύπου αλλά έχουν ένα ή περισσότερα πεδία μεταβλητού μεγέθους Ανάμεικτο (mixed) αρχείο: εγγραφές διαφορετικού τύπου Βάσεις Δεδομένων 2007-2008 Ευαγγελία Πιτουρά 5 Βάσεις Δεδομένων 2007-2008 Ευαγγελία Πιτουρά 6 Βάσεις Δεδομένων 2007-2008: Οργάνωση Αρχείων 1

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

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

Αρχεία Σωρού Κατακερματισμένα Αρχεία Οργάνωση Αρχείων Οργάνωση αρχείων: πως είναι τοποθετημένες οι εγγραφές ενός αρχείου όταν αποθηκεύονται στο δίσκο Β 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 χρόνος επεξεργασίας ανά εγγραφή Βάσεις Δεδομένων 2007-2008 Ευαγγελία Πιτουρά 19 Βάσεις Δεδομένων 2007-2008 Ευαγγελία Πιτουρά 20 Αρχεία Σωρού Αρχεία Σωρού 3. ιαγραφή εγγραφής Σημάδι διαγραφής 4. Τροποποίηση εγγραφής - εγγραφή μεταβλητού μήκους Περιοδική αναδιοργάνωση Χρόνος Αναζήτησης + (C + D) 5. Σάρωση (scan) Ανάγνωση όλων των εγγραφών B*(D+R*C) 6. Ανάγνωση όλων των εγγραφών σε διάταξη Εξωτερική ταξινόμηση συνήθως μια παραλλαγή της ταξινόμησης με συγχώνευση Βάσεις Δεδομένων 2007-2008 Ευαγγελία Πιτουρά 21 Βάσεις Δεδομένων 2007-2008 Ευαγγελία Πιτουρά 22 Φυσική διάταξη των εγγραφών ενός αρχείου με βάση την τιμή ενός από τα πεδία του το οποίο λέγεται πεδίο διάταξης (ordering field) ιατεταγμένο ή φυσικό αρχείο Αν το πεδίο διάταξης είναι και κλειδί τότε λέγεται και κλειδί διάταξης 1. Εισαγωγή i. Εύρεση της σωστής θέσης της εγγραφής στο αρχείο ii. Μετακίνηση εγγραφών για να κάνουμε χώρο για την εισαγωγή της Κατά μέσο όρο μετακίνηση των μισών εγγραφών Χρόνος αναζήτησης + 2 * (0.5 * Β *(D+ R*C)) Β blocks R εγγραφές ανά block D χρόνος μεταφοράς block C χρόνος επεξεργασίας ανά εγγραφή Βάσεις Δεδομένων 2007-2008 Ευαγγελία Πιτουρά 23 Βάσεις Δεδομένων 2007-2008 Ευαγγελία Πιτουρά 24 Βάσεις Δεδομένων 2007-2008: Οργάνωση Αρχείων 4

1. Εισαγωγή (συνέχεια) 2. Αναζήτηση εγγραφής (με επιλογή ισότητας) αποδοτική αν η συνθήκη αναζήτησης είναι στο πεδίο ταξινόμησης ιατήρηση κάποιου αχρησιμοποίητου χώρου ανά block ημιουργία ενός προσωρινού μη διατεταγμένου αρχείου (αρχείο υπερχείλισης) - κυρίως αρχείο Έστω Β blocks, αναζήτηση της εγγραφής με τιμή K στο πεδίο διάταξης Σημείωση: Υποθέτουμε ότι οι διευθύνσεις των blocks του αρχείου είναι αποθηκευμένες στην επικεφαλίδα του αρχείου Βάσεις Δεδομένων 2007-2008 Ευαγγελία Πιτουρά 25 Βάσεις Δεδομένων 2007-2008 Ευαγγελία Πιτουρά 26 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. Τροποποίηση εγγραφής Βάσεις Δεδομένων 2007-2008 Ευαγγελία Πιτουρά 27 Βάσεις Δεδομένων 2007-2008 Ευαγγελία Πιτουρά 28 Αποθήκευση (επανάληψη) 5. Ανάγνωση όλων των εγγραφών σε διάταξη 1. Τα δεδομένα αποθηκεύονται σε αρχεία στο δίσκο 2. Για να γίνει η επεξεργασία τους πρέπει να μεταφερθούν στη μνήμη 3. Η μονάδα μεταφοράς από το δίσκο στη μνήμη είναι ένα block 4. Ο χρόνος προσπέλασης (εγγραφής ή ανάγνωσης) ενός block διαφέρει και εξαρτάται από τη θέση του block δε θα το εξετάσουμε στο μάθημα 5. Μας ενδιαφέρει η ελαχιστοποίηση του Ι/Ο (πολυπλοκότητα σε σχέση με blocks) Βάσεις Δεδομένων 2007-2008 Ευαγγελία Πιτουρά 29 Βάσεις Δεδομένων 2007-2008 Ευαγγελία Πιτουρά 30 Βάσεις Δεδομένων 2007-2008: Οργάνωση Αρχείων 5

Οργάνωση Αρχείων (επανάληψη) Οργάνωση Αρχείων (επανάληψη) Ένα αρχείο είναι λογικά οργανωμένο σε μια ακολουθία από εγγραφές Συνήθως ένα αρχείο ανά (σχήμα) σχέσης και μια εγγραφή αντιστοιχεί σε μια πλειάδα Μη εκτεινόμενη (unspanned) οργάνωση: οι εγγραφές δεν επιτρέπεται να διασχίζουν τα όρια ενός block (-) Αχρησιμοποίητος χώρος (+) Πιο εύκολη η προσπέλαση Έστω Β μέγεθος block σε byte και R μέγεθος εγγραφής σε bytes Παράγοντας ομαδοποίησης (blocking factor), όταν Β R bfr = (B / R) Πόσες εγγραφές χωρούν σε ένα block b: Αριθμός blocks για την αποθήκευση ενός αρχείου r εγγραφών: b = (r/bfr) Βάσεις Δεδομένων 2007-2008 Ευαγγελία Πιτουρά 31 Βάσεις Δεδομένων 2007-2008 Ευαγγελία Πιτουρά 32 Για κάθε σχέση: όνομα, αρχείο, δομή αρχείου (πχ αρχείο σωρού) Όνομακαιτύπογιακάθεγνώρισμα Όνομα ευρετηρίου για κάθε ευρετήριο Περιορισμοί ακεραιότητας Για κάθε ευρετήριο: ομή (πχ 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 Βάσεις Δεδομένων 2007-2008 Ευαγγελία Πιτουρά Βάσεις Δεδομένων 2007-2008 Ευαγγελία Πιτουρά Αρχεία (επανάληψη) Οργάνωση Αρχείων (επανάληψη) Αρχείο από σελίδες (page, block) από εγγραφές (πλειάδες) Βασικές λειτουργίες: Εισαγωγή/διαγραφή/τροποποίηση εγγραφής Εντοπισμός (αναζήτηση) μια συγκεκριμένης εγγραφής με βάση συνθήκη ισότητας ή διαστήματος ιάσχιση (scan) όλων των εγγραφών του αρχείου Βασικόςστόχοςηελαχιστοποίηση του αριθμού των blocks που μεταφέρονται Θεωρούμε ότι η πληροφορία για τη θέση στο δίσκο ενός block υπάρχει (π.χ., στην επικεφαλίδα του αρχείου) Βάσεις Δεδομένων 2007-2008 Ευαγγελία Πιτουρά Βάσεις Δεδομένων 2007-2008 Ευαγγελία Πιτουρά 36 Βάσεις Δεδομένων 2007-2008: Οργάνωση Αρχείων 6

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

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

υναμικός Εξωτερικός Κατακερματισμός υναμικός Εξωτερικός Κατακερματισμός Το αρχείο ξεκινά με ένα μόνο κάδο Μόλις γεμίσει ένας κάδος διασπάται σε δύο κάδους με βάση την τιμή του 1ου δυαδικού ψηφίου των τιμών κατακερματισμού - - δηλαδή οι εγγραφές που το πρώτο ψηφίο της τιμής κατακερματισμού τους είναι 1 τοποθετούνται σε ένα κάδο και οι άλλες (με 0) στον άλλο Νέα υπερχείλιση ενός κάδου οδηγεί σε διάσπαση του με βάση το αμέσως επόμενο δυαδικό ψηφίο κοκ Έτσι δημιουργείται μια δυαδική δενδρική δομή που λέγεται κατάλογος (dirtectory) ή ευρετήριο (index) με δύο ειδών κόμβους εσωτερικούς: που καθοδηγούν την αναζήτηση εξωτερικούς: που δείχνουν σε ένα κάδο Βάσεις Δεδομένων 2007-2008 Ευαγγελία Πιτουρά 49 Βάσεις Δεδομένων 2007-2008 Ευαγγελία Πιτουρά 50 υναμικός Εξωτερικός Κατακερματισμός (Παράδειγμα) υναμικός Εξωτερικός Κατακερματισμός Χρήση των τελευταίων bits τηςδυαδικήςαναπαράστασης 1 000001 4 000100 5 000101 4 εγγραφές ανά κάδο 7 000111 10 001010 12 001100 15 001111 16 010000 19 010011 21 010101 32 100000 13 001101 20 010100 Αλγόριθμος αναζήτησης h := τιμή κατακερματισμού t := ρίζα του δέντρου i := 1 while (t εσωτερικός κόμβος) if (i-οστό bit του h είναι 0) t := αριστερά του t else t := δεξιά του t i := i +1 Βάσεις Δεδομένων 2007-2008 Ευαγγελία Πιτουρά 51 Βάσεις Δεδομένων 2007-2008 Ευαγγελία Πιτουρά 52 Που αποθηκεύεται ο κατάλογος υναμικός Εξωτερικός Κατακερματισμός στη μνήμη, εκτός αν είναι πολύ μεγάλος τότε στο δίσκο οπότε θα απαιτούνται επιπρόσθετες προσπελάσεις υναμική επέκταση αλλά μέγιστος αριθμός επιπέδων (το πλήθος των δυαδικών ψηφίων της συνάρτησης κατακερματισμού) Ισοζύγιση Συνένωση κάδων (δυναμική συρρίκνωση) Επεκτάσιμος Εξωτερικός Κατακερματισμός Extendible hashing Ο κατάλογος είναι ένας πίνακας με 2 d διευθύνσεις κάδων (d: ολικό βάθος του καταλόγου) Κάδος για τις εγγραφές με τιμές 000 κατακερματισμού που αρχίζουν από (ή τελειώνουν σε) 000 001 010 011 100 Τα πρώτα (ή τα τελευταία) d ψηφία της 101 τιμής κατακερματισμού χρησιμοποιούνται 110 ως δείκτης στον πίνακα 111 Βάσεις Δεδομένων 2007-2008 Ευαγγελία Πιτουρά 53 Βάσεις Δεδομένων 2007-2008 Ευαγγελία Πιτουρά 54 Βάσεις Δεδομένων 2007-2008: Οργάνωση Αρχείων 9

000 001 010 011 100 101 110 111 Επεκτάσιμος Εξωτερικός Κατακερματισμός ε χρειάζεται ένας διαφορετικός κάδος για κάθε μία από τις 2 d θέσεις - μπορεί η θέση του πίνακα να δείχνει στη διεύθυνση του ίδιου κάδου αν αυτές χωράνε σε ένα κάδο Κάδος για τις εγγραφές με τιμές κατακερματισμού που αρχίζουν από 00 Για κάθε κάδο, τοπικό βάθος d o αριθμός των δυαδικών ψηφίων στα οποία βασίζεται η χρήση του κάδου Επεκτάσιμος Εξωτερικός Κατακερματισμός (Παράδειγμα) Χρήση των τελευταίων 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 Βάσεις Δεδομένων 2007-2008 Ευαγγελία Πιτουρά 55 Βάσεις Δεδομένων 2007-2008 Ευαγγελία Πιτουρά 56 Επεκτάσιμος Εξωτερικός Κατακερματισμός (Παράδειγμα) Επεκτάσιμος Εξωτερικός Κατακερματισμός Χρήση των τελευταίων 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 Ητιμήτουd μπορεί να αυξάνεται (μέχρι 2 κ, κ: αριθμός δυαδικών ψηφίων της τιμής κατακερματισμού) ή να μειώνεται Αύξηση της τιμής του d Όταν ένας κάδος με τιμή d = d υπερχειλίσει ε χρειάζεται rehash (επανακερματισμό), διασπάμε κάθε κάδο ιπλασιασμός του πίνακα Επίσης, κάθε φορά μόνο τον κάδο που Μείωση της τιμής του d υπερχείλισε Όταν για όλους τους κάδους d < d Μείωση του μεγέθους του πίνακα στο μισό Βάσεις Δεδομένων 2007-2008 Ευαγγελία Πιτουρά 57 Βάσεις Δεδομένων 2007-2008 Ευαγγελία Πιτουρά 58 Επεκτάσιμος Εξωτερικός Κατακερματισμός (Παράδειγμα) 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 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 -> διάσπαση Βάσεις Δεδομένων 2007-2008 Ευαγγελία Πιτουρά 59 Βάσεις Δεδομένων 2007-2008 Ευαγγελία Πιτουρά 60 Βάσεις Δεδομένων 2007-2008: Οργάνωση Αρχείων 10

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

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

Αλγόριθμος Αναζήτησης 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) } σημαίνει ότι ο κάδος έχει διασπαστεί Βάσεις Δεδομένων 2007-2008 Ευαγγελία Πιτουρά 73 Βάσεις Δεδομένων 2007-2008: Οργάνωση Αρχείων 13