Κεφάλαιο 6. Πρωτεύουσες Οργανώσεις Αρχείων Φυσικός Σχεδιασµός Αποθήκευση Εγγραφών. Ι.Β Πρωτεύουσες Οργανώσεις Αρχείων Σελίδα 3.1

Σχετικά έγγραφα
Κεφάλαιο 6. Πρωτεύουσες Οργανώσεις Αρχείων Φυσικός Σχεδιασµός Αποθήκευση Εγγραφών. Ι.Β Πρωτεύουσες Οργανώσεις Αρχείων Σελίδα 3.1

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

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

Κεφάλαιο 11. Πρωτεύουσες Οργανώσεις Αρχείων Φυσικός Σχεδιασµός Αποθήκευση Εγγραφών. Ι.Β Πρωτεύουσες Οργανώσεις Αρχείων Σελίδα 3.1

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

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

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

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

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

Αποθήκευση εδομένων. ομή ενός Σ Β. Εισαγωγή Το «εσωτερικό» ενός ΜΕΡΟΣ Β : Η (εσωτερική) αρχιτεκτονική ενός Σ Β είναι σε επίπεδα

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

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

Κεφάλαιο 7. ISAM και B- έντρα Φυσικός Σχεδιασµός για Βάσεις εδοµένων. ΙΒ οµές Ευρετηρίων Φυσικός Σχεδιασµός Β Σελίδα 3.53

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Λειτουργικά Συστήματα. Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα

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

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

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

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

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

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

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

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

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

Ευρετήρια και Κατακερματισμός

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

ΗΥ460 Συστήματα Διαχείρισης Βάσεων Δεδομένων Χειμερινό Εξάμηνο 2016 Διδάσκοντες: Βασίλης Χριστοφίδης, Δημήτρης Πλεξουσάκης, Χαρίδημος Κονδυλάκης

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

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

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

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

Σύστηµα Αρχείων και Καταλόγων

ΣΥΣΚΕΥΕΣ ΑΠΟΘΗΚΕΥΣΗΣ (ΜΝΗΜΗ)

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

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

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

Πανεπιστήµιο Κρήτης Τµήµα Επιστήµης Υπολογιστών. ΗΥ-460 Συστήµατα ιαχείρισης Βάσεων εδοµένων ηµήτρης Πλεξουσάκης Βασίλης Χριστοφίδης

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

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

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

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

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

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

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

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

Λειτουργικά Συστήματα Ι. Καθηγήτρια Παπαδάκη Αναστασία


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

Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών Κρυφές Μνήμες. (οργάνωση, λειτουργία και απόδοση)

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

Λειτουργικά Συστήματα. Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα

Τεχνολογία μνημών Ημιαγωγικές μνήμες Μνήμες που προσπελαύνονται με διευθύνσεις:

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

Ιεραρχία Μνήμης. Ιεραρχία μνήμης και τοπικότητα. Σκοπός της Ιεραρχίας Μνήμης. Κρυφές Μνήμες

Linear Hashing. Linear vs other Hashing

Λειτουργικά Συστήματα Η/Υ

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

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

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

Ευρετήρια και Κατακερµατισµός

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

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

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

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

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

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

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

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

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

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ,

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

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

Ενότητα 2: Η κρυφή µνήµη και η λειτουργία της

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

Ιεραρχία Μνήμης. Εικονική μνήμη (virtual memory) Επεκτείνοντας την Ιεραρχία Μνήμης. Εικονική Μνήμη. Μ.Στεφανιδάκης

Τα µπιτ και η σηµασία τους. Σχήµα bit. ΚΕΦΑΛΑΙΟ 1: Αποθήκευση εδοµένων (1/2) 1.7 Αποθήκευση κλασµάτων 1.8 Συµπίεση δεδοµένων 1.9 Σφάλµατα επικοινωνίας

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

Transcript:

Κεφάλαιο 6 Πρωτεύουσες Οργανώσεις Αρχείων Φυσικός Σχεδιασµός Αποθήκευση Εγγραφών Ι.Β Πρωτεύουσες Οργανώσεις Αρχείων Σελίδα 3.1

Πλήρης ιαδικασία Ανάπτυξης Β Ανεξάρτητα του DBMS Εξαρτώµενο του επιλεγµένου DBMS. Μικρόκοσµος (π.χ., µε Σχεσιακό Μοντέλο) Λογικό Μοντέλο -- Σχήµατα / Όψεις Απαιτήσεις Β Εννοιολογικό Μοντέλο (Σχήµα) Συλλογή Απαιτήσεων και Ανάλυση Εννοιολογικός Σχεδιασµός Βάσης (π.χ., µε E-R Model) E-R ιάγραµµα Λογικός Σχεδιασµός Βάσης Βάση εδοµένων Φυσικός Σχεδιασµός Βάσης Φυσικό Μοντέλο Εσωτερικό Σχήµα Πλήρωση Βάσης Ι.Β Πρωτεύουσες Οργανώσεις Αρχείων Σελίδα 3.2

Φυσική Αποθήκευση Ο ιαχειριστής εδοµένων (data manager) είναι το υπόσύστηµα του DBMS υπεύθυνο για τη φυσική βάση δεδοµένων Οι σηµαντικές έννοιες είναι: σύστηµα αρχείων (file system), διαχειριστής ενδιάµεσης µνήµης (buffer manager), δοµές ευρετηρίων (access methods) ΚάθεDBMS έχει τον δικό του ιαχειριστή εδοµένων, ο οποίος συχνά χρησιµοποιεί ένα κλασσικό σύστηµα αρχείων (όπως παρέχεται σε ένα Λειτουργικό Σύστηµα ενισχυµένο µε πρόσθετους µηχανισµούς Ι.Β Πρωτεύουσες Οργανώσεις Αρχείων Σελίδα 3.3

Ιεραρχία Μνήµης. Registers Επικαιρότητα εδοµένων Κ Ο Σ Τ Ο Σ Cache Κύρια Μνήµη Άµεση Εξωτερική Μνήµη Near-line (Archive) Μνήµη Έµµεση Προσπέλαση (Off-line) Ηλεκτρονική Αποθήκευση Ασταθής Ηλεκτρονική ή Μαγνητική / Οπτική (block-addressed) Disk Jukeboxes Ή Ροµπότ Ταινιών ΧΩΡΗΤΙΚΟΤΗΤΑ ΜΝΗΜΗΣ Ι.Β Πρωτεύουσες Οργανώσεις Αρχείων Σελίδα 3.4

ίσκοι και Αρχεία Το DBMS αποθηκεύει πληροφορίες σε (σκληρούς) δίσκους Αυτό έχει σηµαντικές επιπτώσεις για το Σχεδιασµό των DBMS! ιακρίνονται 2 πολύ σηµαντικές πράξεις READ: µεταφέρει δεδοµένα από το ίσκο στην Κύρια Μνήµη (RAM). WRITE: µεταφέρει δεδοµένα από τη RAM στο ίσκο. Αυτές οι δύο πράξεις είναι υψηλού κόστους (χρονικά), σε σχέση µε πράξεις που γίνονται εντός της Κύριας Μνήµης, άρα θα πρέπει να µελετώνται και να σχεδιάζονται πολύ προσεκτικά! Ι.Β Πρωτεύουσες Οργανώσεις Αρχείων Σελίδα 3.5

Γιατί δεν αποθηκεύονται τα πάντα σε Κύρια Μνήµη? Κοστίζει ακριβά. $500 αγοράζουν 128MB RAM ή 7.5GB δίσκο. Η κύρια µνήµη είναι ευµετάβλητη / ασταθής. Θέλουµε να σώζουµε τα δεδοµένα µεταξύ χρήσεων. (Προφανώς!) Τυπική Ιεραρχία: Κύρια Μνήµη (RAM) για δεδοµένα επίκαιρης χρήσης. ίσκοι για την Βάση εδοµένων (δευτερεύουσα µνήµη). Ταινίες για την αποθήκευση παλαιοτέρων εκδόσεων της Βάσης εδοµένων (µαζική αποθήκευση). Ένα DBMS έχει την παρακάτω Ιεραρχία Μνήµης: Ταινία ίσκος Κύρια Μνήµη Cache (σειριακή) (άµεση) Οι ταινίες είναι για µαζική αποθήκευση, οι ταινίες για την µόνιµη (persistent ) αποθήκευση Β, ενώ η κύρια µνήµη και η cache για επεξεργασία των δοσοληψιών και άλλων DBMS πράξεων Ι.Β Πρωτεύουσες Οργανώσεις Αρχείων Σελίδα 3.6

Μονάδες Φυσικής Αποθήκευσης ίσκοι αποθήκευσης Τα δεδοµένα αποθηκεύονται ως µαγνητικές περιοχές σε µαγνητικούς δίσκους Τα πακέτα δίσκων έχουν πολλές δίσκους συνδεδεµένους σε ένα κύλινδρο Οι δίσκοι χωρίζονται σε οµόκεντρους κύκλους, που ονοµάζονται άτρακτοι (tracks), - η χωρητικότητα των ατράκτων είναι µεταξύ 4 και 50 Kbytes Οι άτρακτοι χωρίζονται σε µπλοκ / τοµείς (blocks (pages) /sectors), σταθερού µεγέθους για συγκεκριµένα συστήµατα αρχείων. Το µέγεθος είναι µεταξύ 512 και 4096 bytes Πλήρη µπλοκ µεταφέρονται µεταξύ µνήµης και δίσκου Μια φυσική διεύθυνση στο ίσκο αποτελείται από: αριθµό επιφανείας, αριθµό ατράκτου (στην ίδια επιφάνεια) & αριθµό µπλοκ (στην ίδια άτρακτο) READ και WRITE έχουν κόστος (λόγω των καθυστερήσεων που εισάγουν τα seek time και rotational delay) Ι.Β Πρωτεύουσες Οργανώσεις Αρχείων Σελίδα 3.7

Τµήµατα ίσκου Κεφαλή Άξονας Άτρακτοι Μπλοκ / Σελίδα Κίνηση Κεφαλής Νοητός Κύλινδρος Ατράκτων Μηχανισµοί Κεφαλής - Κτένι Ι.Β Πρωτεύουσες Οργανώσεις Αρχείων Σελίδα 3.8

ίσκος ΑΤΡΑΚΤΟΙ Κάθε άτρακτος περιέχει Τον ίδιο αριθµό εδοµένων ΑΡΧΗ ΑΤΡΑΚΤΟΥ ΤΟΜΕΙΣ -ΣΕΛΙ ΕΣ -ΜΠΛΟΚ Ι.Β Πρωτεύουσες Οργανώσεις Αρχείων Σελίδα 3.9

Πρόσβαση σε µια Σελίδα // Μπλοκ ίσκου Χρόνος Προσπέλασης (ανάγνωση / εγγραφή --- read/write) : Χρόνος Εντοπισµού (seek time) - κίνηση κεφαλής πάνω από την άτρακτο Καθυστέρηση Περιστροφής (rotational delay) - αναµονή για να φτάσει το µπλοκ κάτω από τη κεφαλή Χρόνος Μεταφορά (block transfer time) η ουσιαστική κίνηση δεδοµένων από / προς το ίσκο) Seek time και rotational delay είναι οι µεγαλύτερες καθυστερήσεις. Seek time µεταξύ 1 και 20msec Rotational delay µεταξύ 0 και 10msec Transfer rate περίπου 1msec για µια σελίδα 4KB Το κλειδί για µικρότερες καθυστερήσεις είναι: µικρότερες seek / rotation delays! Χρησιµοποιούνται λύσεις Υλικού ή / και Λογισµικού για να επιτευχθεί αυτό Ι.Β Πρωτεύουσες Οργανώσεις Αρχείων Σελίδα 3.10

ιαχείριση ίσκου Το χαµηλότερου επιπέδου λογισµικό του DBMS είναι αυτό που διαχειρίζεται τους ίσκους Λογισµικό σε υψηλότερα επίπεδα ΚΑΛΟΥΝ αυτό το επίπεδο για: Την κράτηση / αποδέσµευση µιας σελίδας Read / Write µιας σελίδας Αν η κλήση είναι για µια ακολουθία σελίδων, τότε η αίτηση πρέπει να ικανοποιείται µε σελίδες που βρίσκονται σε σειριακή ακολουθία στο ίσκο. Τα υψηλότερα επίπεδα δεν ΧΡΕΙΑΖΕΤΑΙ να γνωρίζουν ΠΩΣ αυτό επιτυγχάνεται ούτε ΠΩΣ γίνεται η διαχείριση της ελεύθερης µνήµης Ι.Β Πρωτεύουσες Οργανώσεις Αρχείων Σελίδα 3.11

ΑΡΧΕΙΑ --- ΒΑΣΙΚΟΙ ΟΡΙΣΜΟΙ Μια εγγραφή είναι µια συλλογή από σχετιζόµενες τιµές ή στοιχεία (items) Ένα αρχείο είναι µια ακολουθία από εγγραφές που αποθηκεύεται σε µια ακολουθία σταθερού µεγέθους από Μπλοκ (blocks - pages) στον ίσκο Κάθε αρχείο έχει file descriptor (file header- επικεφαλίδα) µε πληροφορίες για το αρχείο (ονόµατα πεδίων, δοµές δεδοµένων..) Ο blocking factor για ένα αρχείο είναι ο Μέσος αριθµός εγγραφών που αποθηκεύονται σε ένα µπλοκ. Κάθε µπλοκ έχει όνοµα ταυτόσηµο µε τη ιεύθυνσή του Οι Εγγραφές σε αρχείο ονοµάζονται unspanned (καµία εγγραφή δεν περνά σε δύο µπλοκ) ή spanned (διαπερνούν µπλοκ) Ι.Β Πρωτεύουσες Οργανώσεις Αρχείων Σελίδα 3.12

Σύστηµα Αρχείων (File System) ΣΥΣΤΗΜΑ ΑΡΧΕΙΩΝ: Ο ρόλος του είναι η ιαχείριση Αρχείων σε ένα ίσκο: Create ένα αρχείο Insert µια σελίδα Modify µια σελίδα Delete µια σελίδα Retrieve µια σελίδα Reorganize ένα αρχείο Terminate access ένα αρχείο, κλπ. Το Σύστηµα Αρχείων είναι υπεύθυνο για τη: Μετάφραση από το όνοµα του Αρχείου στη ιεύθυνση Μνήµης του Αρχείου Μετάφραση από την τιµή του ΚΛΕΙ ΙΟΥ στη ιεύθυνση Σελίδας (που βρίσκεται η εγγραφή µε αυτό το κλειδί) Ι.Β Πρωτεύουσες Οργανώσεις Αρχείων Σελίδα 3.13

ιαχείριση Μνήµης.. SET-ORIENTED DBMS Εφαρµογή Προγράµµατα οσοληψιών Database Access Methods ιαχείριση Πλειάδων Associative Access TUPLE- ORIENTED Logging and Recovery ιαχείριση Εγγραφών Κύρια Άµεση Εξωτερική Near line Εξωτερική Manages Buffer Manager BLOCK-ORIENTED Manages File Manager Manages Archive Manager ιαχείριση Ενδιάµεσης Μνήµης ιαχείριση Αρχείων Ι.Β Πρωτεύουσες Οργανώσεις Αρχείων Σελίδα 3.14

ιαχείριση Ενδιάµεσης Μνήµης Ο Buffer (ενδιάµεση µνήµη) είναι τµήµα της κύριας µνήµης που κρατιέται για την αποθήκευση σελίδων (pages) που µεταφέρονται από / σε ίσκους Ο ιαχειριστής Ενδιάµεσης Μνήµης είναι το υποσύστηµα που είναι υπεύθυνο για τη διάθεση του χώρου buffer (µε πλήρη διαφάνεια για τον χρήστη) Τυπικές Πράξεις του Buffer Μάνατζερ Όταν ο Χρήστης ζητά µια Σελίδα: ελέγχει αν η σελίδα είναι ήδη στη Μνήµη, Αν είναι, τότε επιστρέφει τη ιεύθυνσή της στο Χρήστη Αν δεν είναι, τότε την φέρνει από το ίσκο στο buffer, πιθανά µε αντικατάσταση µιας άλλης σελίδας (αν δεν υπάρχει χώρος), και επιστρέφει τη ιεύθυνσή της στο Χρήστη Ι.Β Πρωτεύουσες Οργανώσεις Αρχείων Σελίδα 3.15

ιαχείριση Ενδιάµεσης Μνήµης σε DBMS Αιτήσεις Σελίδων από υψηλότερα επίπεδα BUFFER POOL Σελίδα ίσκου Ελεύθερος Χώρος ΚΥΡΙΑ ΜΝΗΜΗ ΙΣΚΟΣ Β Η Επιλογή χώρου γίνεται µε ειδική στρατηγική Τα δεδοµένα πρέπει να είναι στη RAM για λειτουργία του DBMS! Ι.Β Πρωτεύουσες Οργανώσεις Αρχείων Σελίδα 3.16

Όταν αιτείται µια Σελίδα Αν η Σελίδα δεν είναι ήδη στην Πισίνα (Pool) σελίδων του Buffer: ιάλεξε χώρο για αντικατάσταση Αν ο χώρος είναι «πειραγµένος» (dirty),» Write τη Σελίδα που είναι εκεί στο δίσκο Read την αιτούµενη σελίδα στον επιλεγέντα χώρο (που άδειασε) Καρφίτσωσε (Pin) τη σελίδα και επέστρεψε τη ιεύθυνσή της. Αν µπορούµε να προβλέψουµε τις αιτήσεις (π.χ., σειριακή εξέταση) των σελίδων, τότε µας συµφέρει να φέρουµε (pre-fetch) πολλές σελίδες µαζί! Ι.Β Πρωτεύουσες Οργανώσεις Αρχείων Σελίδα 3.17

Περισσότερα Στοιχεία του Buffer Μάνατζερ Αυτός που αιτείται µια σελίδα πρέπει να την ξε-καρφιτσώσει, και να γνωστοποιήσει αν η σελίδα πρόκειται να αλλάξει dirty bit χρησιµοποιείται για αυτό (πείραγµα) Τη σελίδα µπορεί να τη ζητήσουµε πολλές φορές, ένα pin count χρησιµοποιείται. Μια σελίδα είναι υποψήφια για αντικατάσταση όταν το pin count = 0. Ι.Β Πρωτεύουσες Οργανώσεις Αρχείων Σελίδα 3.18

Πολιτική Αντικατάστασης Σελίδων Η ιαχείριση του Ενδιάµεσου Χώρου απαιτεί µια πολιτική / στρατηγική αντικατάστασης σελίδων Least-recently-used (LRU), Ρολόι, MRU, κλπ. Η πολιτική επηρεάζει τον αριθµό τωνi/o που γίνονται Sequential flooding: Μια κακή περίπτωση που παρουσιάζεται σε LRU + επαναλαµβανόµενες σειριακές εξετάσεις. # buffer frames < # pages στο αρχείο σηµαίνει ότι κάθε αίτηση σελίδας επιφέρει ένα I/O. Η MRU πολιτική είναι πολύ καλύτερη σε αυτή την περίπτωση Ι.Β Πρωτεύουσες Οργανώσεις Αρχείων Σελίδα 3.19

ιαχείριση Buffer (2) Ο buffer µάνατζερ έχει την ίδια λειτουργία µε έναν virtual memory µάνατζερ (στα Λειτουργικά Συστήµατα). Αλλά, είναι συνήθως πολύ πιο πολύπλοκος, µια και έχει φτιαχτεί ειδικά για DBMS και κατά συνέπεια πρέπει να προβλέψει καλύτερα τις ιδιαιτερότητες αυτών ιαφοροποιήσεις µε τον virtual manager: replacement strategy. Οι τυπικές στρατηγικές σε Λειτουργικά Συστήµατα (π.χ.., LRU) δεν είναι πάντα κατάλληλες για DBMS (MRU είναι συνήθως καλύτερες) pinned εγγραφές. Το DBMS πολλές φορές ζητά µερικές σελίδες να καρφιτσωθούν και να παραµένουν συνέχεια στην ενδιάµεση µνήµη (buffer.) forced output σελίδων. Το DBMS πολλές φορές (π.χ.., για recovery) διώχνει σελίδες από το Buffer (εκτός πολιτικής που ακολουθείται, π.χ., MRU) Ι.Β Πρωτεύουσες Οργανώσεις Αρχείων Σελίδα 3.20

ιαχείριση Buffer (3) Ο Buffer Μάνατζερ κρατά για κάθε Σελίδα στο Buffer: Σε ποια Σελίδα ίσκου αποθηκεύεται Αν έχει αλλάξει ή όχι (dirty page) Ποια πολιτική αντικατάστασης ισχύει Υπάρχουν εναλλακτικές οµές για το Buffer: Ο ίδιος Buffer για όλες τις Σχέσεις (Αρχεία) ιαφορετικός Buffer για κάθε Σχέση Ενδιάµεσα Σχήµατα Ι.Β Πρωτεύουσες Οργανώσεις Αρχείων Σελίδα 3.21

οµές Ευρετηρίων (Access Methods) Οι οµές Ευρετηρίων είναι υπεύθυνες για τα παρακάτω: Τοποθέτηση εγγραφών (πλειάδων) µέσα σε Σελίδες (Μπλοκ) Υποστήριξη πρόσβασης σε εγγραφές (βάσει ιεύθυνσης και βάσει Τιµής.) µε Πρωτεύουσες οµές Αρχείου. Ουσιαστικά, για την µετατροπή αναφορών για εγγραφές σε φυσικά Μπλοκ (όπου αποθηκεύονται οι εγγραφές) που είναι σε ίσκους. Υποστήριξη ευτερευόντων (auxiliary) δοµών αρχείου για πιο αποδοτική αναφορά / πρόσβαση σε εγγραφές (βάσει τιµών γνωρισµάτων των εγγραφών που δεν είναι κλειδιά) Στη συνέχεια, θα εξετάσουµε τη φυσική οργάνωση των εγγραφών και των Μπλοκ, καθώς και τις πρωτεύουσες οργανώσεις / δοµές αρχείων Ι.Β Πρωτεύουσες Οργανώσεις Αρχείων Σελίδα 3.22

ιαχείριση Αρχείων ΦΥΣΙΚΗ ΟΡΓΑΝΩΣΗ ΤΩΝ ΕΓΓΡΑΦΩΝ ΣΕ ΙΣΚΟ Θέµατα: Οργάνωση Πεδίων εντός Εγγραφών Οργάνωση Εγγραφών εντός Μπλοκ Ποιες Εγγραφές πάνε σε ποια Μπλοκ (Σηµαντικό!) Πεδία εντός εγγραφών Σταθερού Μεγέθους (σειριακά) F 1 F 2 F 3 F 4 F 5 Η διεύθυνση F i είναι: L 1 L 2 L 3 L 4 L 5 B + Ó L k k = 1 B : ιεύθυνση Βάσης Ι.Β Πρωτεύουσες Οργανώσεις Αρχείων Σελίδα 3.23 i-1

Πεδία εντός Εγγραφών (1) Σταθερού Μεγέθους (σε σωρό µε δείκτες) F 5 F 3 F 1 F 4 --- Τα πεδία δεν αποθηκεύονται (απαραίτητα) σειριακά --- Υπάρχει ακριβώς ένας δείκτης στην επικεφαλίδα για κάθε πεδίο (ανεξάρτητα αν είναι παρόν ή όχι) Ι.Β Πρωτεύουσες Οργανώσεις Αρχείων Σελίδα 3.24

Πεδία εντός Εγγραφών (2) Μη-σταθερού µεγέθους πεδία ξεχωρίζονται µε ειδικά σύµβολα F 1 F 2 F 3 F 4 F 5 $ $ $ $ εναλλακτικά, Μη-σταθερού µεγέθους πεδία ξεχωρίζονται από τα µήκη των F 1 F 2 F 3 F 4 F 5 L 1 L 2 L 3 L 4 L 5 Ι.Β Πρωτεύουσες Οργανώσεις Αρχείων Σελίδα 3.25

Εγγραφές εντός Μπλοκ Εγγραφές εντός Μπλοκ (α) Αποθήκευση εγγραφών σειριακά στο Μπλοκ (fixed packed) B 1 2..... N Μια εγγραφή βρίσκεται µε απλό υπολογισµό: L R i = B + (i-1)*l Ι.Β Πρωτεύουσες Οργανώσεις Αρχείων Σελίδα 3.26

Εγγραφές εντός Μπλοκ (2) Η παραπάνω οργάνωση είναι ανελαστική και δηµιουργεί πολλά προβλήµατα * Οι εγγραφές επεκτείνονται από Μπλοκ σε Μπλοκ (πολύ συχνά) 1 2 3 4 5 Block Boundary * Οι Εισαγωγές και οι διαγραφές των εγγραφών καθίστανται ακριβές (χρονοβόρες) 1 2.. N... ιέγραψε αυτή την εγγραφή Ι.Β Πρωτεύουσες Οργανώσεις Αρχείων Σελίδα 3.27

Εγγραφές εντός Μπλοκ (3) (β) Μια επικεφαλίδα Μπλοκ περιέχει τους είκτες σε εγγραφές που είναι µέσα στο Μπλοκ (indexed heap) DESCRIPTOR Next Primary Next Overflow... µεγαλώνει... Ι.Β Πρωτεύουσες Οργανώσεις Αρχείων Σελίδα 3.28

Εγγραφές εντός Μπλοκ (4) Μια εγγραφή αναζητείται και βρίσκεται στο ίσκο όταν δοθεί το block number ( ιεύθυνση) του Μπλοκ (µέσα στο οποίο είναι αποθηκευµένη η εγγραφή) και ο είκτης που είναι στην επικεφαλίδα του Μπλοκ Ο συνδυασµός (block number, index) ονοµάζεται RID ( Record Identifier) ή TID (Tuple Identifier) όταν έχουµε το Σχεσιακό Μοντέλο Η Εισαγωγή και ιαγραφή εγγραφών είναι απλές πράξεις (γίνονται µε αλλαγές δεικτών στην επικεφαλίδα) Το Μπλοκ µπορεί να αναδιοργανωθεί χωρίς να επηρεασθούν οι εξωτερικοί δείκτες. ηλαδή, οι εγγραφές διατηρούν το TID ακόµη και αν µεταφέρονται εντός του Μπλοκ. Ι.Β Πρωτεύουσες Οργανώσεις Αρχείων Σελίδα 3.29

Τοποθετώντας Εγγραφές στα κατάλληλα Μπλοκ ΟΡΓΑΝΩΣΗ ΑΡΧΕΙΩΝ Επιλέγοντας σε ποιο Μπλοκ αποθηκεύεται µια εγγραφή -- Τυχαία Τοποθέτηση -- Τοποθέτηση βάσει τιµής Κλειδιού (µε ή χωρίς ιάταξη) Τυχαία Τοποθέτηση: Οι εγγραφές τοποθετούνται σε Μπλοκ µε τυχαίο τρόπο, συνήθως, σύµφωνα µε τη σειρά εισαγωγής τους στη Β (η οργάνωση αυτή αποκαλείται ΣΩΡΟΣ (HEAP, PILE) Η πιο απλή στρατηγική οργάνωσης αρχείου Χρησιµοποιεί όσα ακριβώς Μπλοκ χρειάζονται και συνδέει τα Μπλοκ για το ίδιο αρχείο µεταξύ τους εν δίνει ΚΑΜΙΑ βοήθεια για την ανάκληση εγγραφών (σειριακή αναζήτηση) Ι.Β Πρωτεύουσες Οργανώσεις Αρχείων Σελίδα 3.30

Μη ιατεταγµένα Αρχεία Σωρού Η απλούστερη δοµή αρχείου όπου οι εγγραφές είναι σε τυχαία σειρά Καθώς το αρχείο µεγαλώνει ή µικραίνει, σελίδες (µπλοκ) στον δίσκο προσδιορίζονται / από-προσδιορίζονται για το αρχείο Για να υποστηριχθούν πράξεις σε επίπεδο εγγραφών, πρέπει να: Είναι γνωστό ποιες σελίδες προσδιορίζονται για το αρχείο Είναι γνωστός ο ελεύθερος χώρος στις σελίδες Είναι γνωστές οι εγγραφές σε µια σελίδα Υπάρχουν πολλοί τρόποι για να επιτευχθούν τα παραπάνω Ι.Β Πρωτεύουσες Οργανώσεις Αρχείων Σελίδα 3.31

Αρχείο Σωρού Υλοποιούµενο ως Λίστα Σελίδα Επικεφαλίδα Σελίδα εδοµένων Σελίδα εδοµένων Σελίδα εδοµένων Γεµάτες Σελίδες Σελίδα εδοµένων Σελίδα εδοµένων Σελίδα εδοµένων Σελίδες µε Ελεύθερο Χώρο Κάθε Σελίδα περιέχει 2 ( ΥΟ) είκτες ΚΑΙ εδοµένα Ι.Β Πρωτεύουσες Οργανώσεις Αρχείων Σελίδα 3.32

Αρχείο Σωρού µε Κατάλογο Σελίδων Σελίδα Επικεφαλίδα (α) Σελίδα εδοµένων (β) Σελίδα εδοµένων Κατάλογος (ν) Σελίδα εδοµένων Ο ΚΑΤΑΛΟΓΟΣ (ή αρχείο-κατάλογος) είναι µια συλλογή Σελίδων Πολύ µικρότερες απαιτήσεις χώρου από την προηγούµενη υλοποίηση! Ι.Β Πρωτεύουσες Οργανώσεις Αρχείων Σελίδα 3.33

ΑΡΧΕΙΑ ΣΩΡΟΥ και ΕΥΡΕΤΗΡΙΑ Ένα Αρχείο Σωρού µας επιτρέπει να κάνουµε ανάκτηση εγγραφών : Με χρήση του TID (προσδιοριστής / κλειδί εγγραφής), ή Με σειριακή εξέταση όλων των εγγραφών Μερικές φορές, θέλουµε την ανάκληση εγγραφών δίνοντας τις τιµές σε ένα ή περισσότερα πεδία / γνωρίσµατα, π.χ., Βρες όλους τους Σπουδαστές στο Τµήµα ΗΜ & ΜΥ Βρες όλους τους Σπουδαστές µε Βαθµό Απολυτηρίου > 9 Τα Ευρετήρια (Indexes) είναι δοµές αρχείων που µας επιτρέπουν να απαντούµε τέτοιες ερωτήσεις πρόσβασης σε εγγραφές βάσει τιµών µε αποδοτικό τρόπο Ι.Β Πρωτεύουσες Οργανώσεις Αρχείων Σελίδα 3.34

Οργάνωση Αρχείων Τοποθέτηση εγγραφών σε Μπλοκ βάσει τιµής Κλειδιού: Οι εγγραφές τοποθετούνται σε Μπλοκ µε βάσει την τιµή κάποιων πεδίων / γνωρισµάτων που αποτελούν το ΚΛΕΙ Ι. Στην συνέχεια, είναι δυνατόν να ανακληθούν µε πρόσβαση βάσει συσχετισµού (by reference) Η υποστηρίζουσα δοµή που υλοποιεί την αντιστοίχιση των εγγραφών (που έχουν συγκεκριµένες τιµές στο κλειδί) µε ΜΠΛΟΚ ονοµάζεται ΕΥΡΕΤΗΡΙΟ (INDEX) ιευκολύνει την εκτέλεση ανακλήσεων εγγραφών µια και, σε µεγάλο βαθµό, µόνο οι σχετικές εγγραφές λαµβάνονται υπόψη Οι Ενηµερώσεις (εισαγωγές και διαγραφές) καθίστανται πιο ακριβές, γιατί πρέπει να ενηµερώνεται και το Ευρετήριο Υπάρχουν τρεις βασικές οµές Ευρετηρίων (α) HASHING (Κατακερµατισµός) (β) ISAM (Indexed Sequential Access Method) (γ) B-Trees (Β- έντρα) Ι.Β Πρωτεύουσες Οργανώσεις Αρχείων Σελίδα 3.35

Οργάνωση Αρχείων Τοποθέτηση βάσει τιµής Κλειδιού µε ιάταξη: Ταξινόµησε το αρχείο στο ΚΛΕΙ Ι και αποθήκευσε τις εγγραφές του (ΣΕΙΡΙΑΚΟ ΑΡΧΕΙΟ) Είναι ειδική περίπτωση της τοποθέτησης βάσει κλειδιού, µε το ιδιαίτερο χαρακτηριστικό ότι δεν υπάρχει ευρετήριο προς υποστήριξη Οι ανακλήσεις γίνονται µε υαδική Αναζήτηση (binary search) Πλεονεκτήµατα:» Ταχύτερη επιλογή - select (σε σχέση µε µη χρήση κλειδιού)» Καλό για ερωτήσεις διακύµανσης (range queries) π.χ., ηλικία µεταξύ 25 και 35» Αποδοτικές Συνενώσεις joins (π.χ., µε µεθόδους merge-scan) Μειονεκτήµατα:» Πιο αργή επιλογή ισότητας (σε σχέση µε άλλες οργανώσεις κλειδιού)» Οι ενηµερώσεις είναι εξαιρετικά ακριβές (και πολύπλοκες) Ι.Β Πρωτεύουσες Οργανώσεις Αρχείων Σελίδα 3.36

Κατακερµατισµός (Hashing) Η µαγεία της αναδίπλωσης (folding) και του Κατακερµατισµού Πεδίο υνατών Τιµών Κλειδιού FOLDING HASHING (σκιασµένες... Περιοχές Υποδηλώνουν Τιµές Κλειδιών) Πεδίο των Θετικών Ακεραίων Χώρος ιευθύνσεων Εγγραφών Ι.Β Πρωτεύουσες Οργανώσεις Αρχείων Σελίδα 3.37

Βασικά Στοιχεία Κατακερµατισµού Οι τιµές Κλειδιού συνήθως προέρχονται από πολύ µεγάλα Πεδία Τιµών (π.χ., σειρά χαρακτήρων κάποιου µήκους). Πρώτα, πρέπει να µετατραπούν σε µια αριθµητική παράσταση: FOLDING Έπειτα, η αριθµητική τιµή µετατρέπεται σε µια (νόµιµη) τιµή στο χώρο διευθύνσεων των Μπλοκ: HASHING Σηµαντικοί παράγοντες είναι: οι τιµές πεδίου πρέπει να έχουν οµοιογενή κατανοµή, η εκµετάλλευση του χώρου διευθύνσεων πρέπει να είναι υψηλή, οι εγγραφές πρέπει να καταλαµβάνουν περίπου τον ίδιο χώρο στις Σελίδες, κλπ. Γενικά, ο Κατακερµατισµός είναι καλή οργάνωση για ακριβείς ερωτήσεις, αλλά πολύ κακή για ερωτήσεις διακύµανσης Ι.Β Πρωτεύουσες Οργανώσεις Αρχείων Σελίδα 3.38

Μηχανισµοί (Εξωτερικού) Κατακερµατισµού Τα Μπλοκ του Αρχείου χωρίζονται σε ίσο αριθµό από buckets (κάδους) Εν γένει, ένα bucket αντιστοιχεί σε ένα Μπλοκ ίσκου (ή ένα σταθερό αριθµό από Μπλοκ) Ένα (ή περισσότερα) από τα γνωρίσµατα του αρχείου επιλέγεται να είναι το γνώρισµα κατακερµατισµού Μια συνάρτηση κατακερµατισµού h κατασκευάζεται ως: h : V {0, 1, 2,... B-1} όπου: V είναι το πεδίο τιµών του γνωρίσµατος B είναι ο αριθµός των κάδων στο χώρο διευθύνσεων (Σηµείωση: Το Folding είναι ενδιάµεση πράξη) Ι.Β Πρωτεύουσες Οργανώσεις Αρχείων Σελίδα 3.39

Παραδείγµατα Κατακερµατισµού Παράδειγµα Έστω, V το πεδίο για EmployeeNumber (ένας αριθµός µε 9 ψηφία για το ΑΦΜ), και B = 1000. ηµιουργούµε την συνάρτηση h : V {0, 1, 2,... B-1}, ως εξής: αν το v ανήκει στο V, h(v) = τα τελευταία 3 ψηφία του v = v MOD 1000 Η κατασκευή των συναρτήσεων κατακερµατισµού είναι εύκολη, µε βασικό κριτήριο: οµοιογενής κατανοµή εγγραφών σε buckets (άλλως, η αναζήτηση γίνεται πολύ ακριβή) Τυπικές Συναρτήσεις: Congruent (division remainder), Nth power, base transformation, polynomial division, encryption, κλπ. Ι.Β Πρωτεύουσες Οργανώσεις Αρχείων Σελίδα 3.40

Κατακερµατισµός - Υπερχείλιση Ίσως η πλέον δηµοφιλής συνάρτηση είναι η congruence (MOD). Βασικά, διαιρούµε την τιµή του πεδίου (µετά την αναδίπλωση) µε B και παίρνουµε το υπόλοιπο σαν την τιµή του bucket Παράδειγµα Χρήση της h(v) = v MOD 3 για ευρετηρίαση του Salary 0 Tom 30 Jill 36 Salaries h (Salary) 1 Shirley 22 Maria 25 Ron 43 Bart 61 2 Dan 29 OVERFLOW Υπερχείλιση Ι.Β Πρωτεύουσες Οργανώσεις Αρχείων Σελίδα 3.41

Κατακερµατισµός - Υπερχείλιση Το παράδειγµα καταδεικνύει το φαινόµενο των collisions (συγκρούσεων), που συµβαίνει όταν µια εγγραφή κατακερµατίζεται σε ένα κάδο που είναι ήδη ΓΕΜΑΤΟΣ Μια περιοχή υπερχείλισης κρατιέται για την αποθήκευση τέτοιων εγγραφών Οι υπερχειλίσεις συµβαίνουν διότι: Το αρχείο έχει πολλά στοιχεία (εγγραφές) Έγινε κακή επιλογή συνάρτησης κατακερµατισµού (χωρίς κανονική - οµοιόµορφη κατανοµή τιµών) Υπάρχουν Στατιστικές ιδιοµορφίες (υπερβολικά πολλές τιµές κατακερµατίζονται στον ίδιο κάδο) Ι.Β Πρωτεύουσες Οργανώσεις Αρχείων Σελίδα 3.42

Κατακερµατισµός - Υπερχείλιση Υπάρχουν τρεις βασικοί τρόποι αντιµετώπισης του Overflow: Chaining (αλυσιδωτή σύνδεση): αν το bucket h(v) είναι γεµάτο, βάλε σε αλυσίδα ένα άδειο bucket στο γεµάτο bucket για να το επεκτείνεις Open Addressing (ανοικτή διευθυνσιοδότηση) : αν το h(v) είναι γεµάτο, βάλε την εγγραφή στο h(v)+1 Αν και αυτό είναι γεµάτο, βάλε την στο h(v)+2, κλπ. Double-hashing ( ιπλός / Πολλαπλός Κατακερµατισµός): Χρήση 2 συναρτήσεων (h και h ) αν το h(v) είναι γεµάτο δοκίµασε το h (v). Αν το h (v) είναι επίσης γεµάτο, δοκίµασε κάποιο άλλο σχήµα (π.χ., µια τρίτη συνάρτηση κατακερµατισµού, κλπ.) Ι.Β Πρωτεύουσες Οργανώσεις Αρχείων Σελίδα 3.43

Επίδοση Κατακερµατισµού Η Επίδοση (performance) του σχήµατος κατακερµατισµού εξαρτάται από τον παράγοντα φόρτωσης (loading factor) L, που ορίζεται ως: ο αριθµός των εγγραφών σε ένα αρχείο διαιρούµενος µε (BxS) όπου: B είναι ο αριθµός των buckets και S είναι ο αριθµός των εγγραφών που χωρούν σε ένα bucket Πρακτικά Στοιχεία: Για loading factors περίπου 0.9 και µε µια καλά επιλεγµένη συνάρτηση, χρειάζονται περίπου 1.2 προσπάθειες κατά µέσο όρο για ανάκληση µιας εγγραφής µέσω κλειδιού Πρακτικός Κανόνας: Μόλις ο παράγοντας φόρτωσης µεγαλώσει πολύ, τότε διπλασίασε το B και κάνε ξανά κατακερµατισµό Ι.Β Πρωτεύουσες Οργανώσεις Αρχείων Σελίδα 3.44

Περιορισµοί Στατικού Κατακερµατισµού Το µεγαλύτερο µειονέκτηµα του στατικού κατακερµατισµού είναι ο προκαθορισµένος σταθερός αριθµός buckets για το αρχείο (ενώ ο αριθµός των εγγραφών αλλάζει δυναµικά) -- αυτό φέρνει και το OVERFLOW Υπάρχουν αρκετές δυναµικές επεκτάσεις του κατακερµατισµού: Extendible Hashing (επεκτατός κατακερµατισµός) Linear Hashing (γραµµικός κατακερµατισµός) Οι τεχνικές αποφεύγουν τις µακρές αλυσίδες για overflow buckets Αυτό επιτυγχάνεται µε δυναµική αλλαγή του αριθµού των κάδων ή / και της συνάρτησης κατακερµατισµού Ι.Β Πρωτεύουσες Οργανώσεις Αρχείων Σελίδα 3.45

Επεκτατός Κατακερµατισµός Στον επεκτατό κατακερµατισµό, ο αριθµός των bucket αυξάνει / µειώνεται καθώς το αρχείο (σχέση) µεγαλώνει / µικραίνει Η συνάρτηση h επιλέγεται ώστε το πεδίο τιµών της να είναι ένα πολύ µεγάλο σύνολο ακεραίων (π.χ., B = 2 b, όπου b=32) ΕΝ χρησιµοποιούνται όλα τα bits: Ανά πάσα στιγµή, τα d πιο σηµαντικά bits χρησιµοποιούνται, 0 d b Ο d-bit αριθµός χρησιµοποιείται σαν ευρετήριο σε ένα Κατάλογο που περιέχει ένα δείκτη στο κατάλληλο bucket. Ο Κατάλογος λέγεται ότι έχει (global) length d Ο Κατάλογος αποθηκεύεται στο ίσκο και αυξοµειώνεται δυναµικά Ι.Β Πρωτεύουσες Οργανώσεις Αρχείων Σελίδα 3.46

Επεκτατός Κατακερµατισµός (2) Οποιοσδήποτε αριθµός από (αυτά στη δύναµη του 2) γειτονικά στοιχεία στον Κατάλογο µπορεί να «δείχνει» στο ίδιο bucket. Συνεχόµενα στοιχεία, σε δυάδες (1-2, 3-4, 5-6, κλπ.) ονοµάζονται buddies Αν 2 k στοιχεία δείχνουν στο ίδιο bucket, το local depth d του bucket (που βρίσκεται στην επικεφαλίδα του), ισούται µε d = d - k Οι τιµές των κλειδιών που κατακερµατίζονται στο ίδιο bucket έχουν τον ίδιο αριθµό d bits. εν απαιτείται περιοχή υπερχείλισης Ι.Β Πρωτεύουσες Οργανώσεις Αρχείων Σελίδα 3.47

Επεκτατός Κατακερµατισµός (3) Παράδειγµα: Ευρετήριο στο Salary d = 1 d = 00 2 Hart 32 Jill 40 Taft 33 Salaries h (Salary) 01 10 2 Rudy 38 11 2 Bill 31 Shirl 35 Larry 31 Ι.Β Πρωτεύουσες Οργανώσεις Αρχείων Σελίδα 3.48

Επεκτατός Κατακερµατισµός (4) Για τα Overflows έχουµε τον παρακάτω αλγόριθµο: Έστω ότι ένα bucket είναι έτοιµο για overflow (διότι µπαίνει µια νέα εγγραφή): Αν το bucket έχει d < d, ~ Σπάσε το bucket σε 2 ~ Βάλε τον δείκτη του buddy στοιχείου στον Κατάλογο να δείχνει τη νέα εγγραφή ~ Κάνε ξανά κατακερµατισµό για όλα τα κλειδιά στο bucket ~ Αύξησε το local depth (d ) του bucket κατά 1. Αυτή θα είναι και η τιµή του local depth για το νέο bucket Ι.Β Πρωτεύουσες Οργανώσεις Αρχείων Σελίδα 3.49

Επεκτατός Κατακερµατισµός (5) Αν το bucket έχει d = d, ~ ιπλασίασε το µέγεθος του Καταλόγου ~ Κάθε στοιχείο που ευρετηριάζεται από έναν (d+1) - bit αριθµό, δείχνει το bucket όπου το στοιχείο, που ευρετηριαζόταν από τα d bits, έδειχνε προηγουµένως ~ Αύξησε το depth d κατά 1 ~ Σπάσε το overflown bucket σε δύο Όταν πολλά κλειδιά διαγράφονται, οι buddies µπορεί να συνενωθούν. Αυτό έχει σαν αποτέλεσµα ενίοτε, το µέγεθος του Καταλόγου να πέφτει στο µισό. Ι.Β Πρωτεύουσες Οργανώσεις Αρχείων Σελίδα 3.50

h (Salary) Επεκτατός Κατακερµατισµός : Overflow Παράδειγµα: Insert tuples <Peter, 37> και <Nat, 43> 000 001 010 011 100 101 110 111 3 Hart 32 2 Jill 40 Taft 33 Peter 37 Rudy 38 Bill 31 Larry 31 Shirl 35 Nat 43 2 2 3 3 Ι.Β Πρωτεύουσες Οργανώσεις Αρχείων Σελίδα 3.51

Επεκτατός Κατακερµατισµός ΠΛΕΟΝΕΚΤΗΜΑΤΑ Η απόδοση των ανακλήσεων είναι σταθερή καθώς το αρχείο µεγαλώνει ΜΕΙΟΝΕΚΤΗΜΑΤΑ Οι ενηµερώσεις είναι ακριβές, ειδικά όταν ο κατάλογος διπλασιάζεται Ο κατάλογος απαιτεί µνήµη / χώρο Αν ο κατάλογος µεγαλώσει ώστε να µη χωρά στη µνήµη, οι ανακλήσεις εγγραφών πλέον απαιτούν δύο I/O πράξεις Αν ένας κάδος υπερχειλίσει έχοντας τις ίδιες τιµές κλειδιού, τότε ο επεκτατός κατακερµατισµός θα σπάει αυτό τον κάδο εσαεί!!! Ι.Β Πρωτεύουσες Οργανώσεις Αρχείων Σελίδα 3.52