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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΦΥΛΛΟ ΕΡΓΑΣΙΑΣ B.2.M3 Κύρια και Βοηθητική Μνήμη

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

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

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

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

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

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

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

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

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

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

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

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

Οργάνωση Υπολογιστών (IΙI)

Κεφ. 10: Δομές Αποθήκευσης

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

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

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

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

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

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

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

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

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

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

Transcript:

Εισαγωγή Στο μέρος Α του μαθήματος, είδαμε το σχεδιασμό και υλοποίηση μιας βάσης δεδομένων χρησιμοποιώντας ένα Σ Β Αποθήκευση εδομένων ΜΕΡΟΣ Β : Το «εσωτερικό» ενός Σ Β -- αποθήκευση δεδομένων -- ευρετήρια -- υπολογισμός ερωτήσεων Βάσεις Δεδομένων 2005-2006 Ευαγγελία Πιτουρά 1 Βάσεις Δεδομένων 2005-2006 Ευαγγελία Πιτουρά 2 Αποθηκευτικές Μονάδες Ηβάση δεδομένων θα πρέπει να αποθηκευτεί σε κάποιο αποθηκευτικό μέσο Ιεραρχία αποθήκευσης ευτερεύουσα αποθήκευση (μαγνητικοί δίσκοι, ταινίες, δισκέτες, κλπ) Αποθηκευτικές Μονάδες πρωτεύουσα αποθήκευση (primary storage) κύρια μνήμη (main memory) - κρυφή μνήμη (cache) άμεση προσπέλαση από την κύρια ΚΜΕ (CPU) γρήγορη προσπέλαση περιορισμένη χωρητικότητα αποθήκευσης για την επεξεργασία των δεδομένων απαιτείται η μεταφορά των δεδομένων στην πρωτεύουσα αποθήκευση πιο αργή προσπέλαση μεγάλη χωρητικότητα μικρότερο κόστος (για την ίδια ποσότητα χώρου η κύρια μνήμη 100 φορές ακριβότερη από τη δευτερεύουσα) Βάσεις Δεδομένων 2005-2006 Ευαγγελία Πιτουρά 3 Βάσεις Δεδομένων 2005-2006 Ευαγγελία Πιτουρά 4 Αποθηκευτικές Μονάδες Μαγνητικοί ίσκοι Οι περισσότερες βάσεις δεδομένων αποθηκεύονται σε δευτερεύουσες αποθηκευτικές μονάδες κυρίως σε δίσκους πολύ μεγάλες μεγάλο κόστος μόνιμη αποθήκευση (nonvolatile storage) Μαγνητικοί ίσκοι Μαγνητισμός μιας περιοχής του δίσκου κατά ορισμένο τρόπο ώστε 1 ή 0 Χωρητικότητα (capacity) σε Kbyte -Mbyte-Gbyte Μαγνητικό υλικό σε σχήμα κυκλικού δίσκου Μαγνητικές ταινίες για τήρηση εφεδρικών αντιγράφων αρχειοθέτηση (archiving) (δεδομένα που θέλουμε να κρατήσουμε για πολύ καιρό αλλά η προσπέλαση τους είναι σπάνια) Απλής και διπλής όψης Βάσεις Δεδομένων 2005-2006 Ευαγγελία Πιτουρά 5 Βάσεις Δεδομένων 2005-2006 Ευαγγελία Πιτουρά 6 1

Μαγνητικοί ίσκοι Μαγνητικοί ίσκοι Σε πακέτα δίσκων Οι πληροφορίες σε ομόκεντρους κύκλους διαφορετικής διαμέτρου: άτρακτοι track (συνήθως κάθε άτρακτος την ίδια ποσότητα πληροφορίας) Τομέας (sector) Block (μονάδα μεταφοράς) Κάθε άτρακτος χωρίζεται σε τόξα που ονομάζονται τομείς (sectors) και είναι χαρακτηριστικό του κάθε δίσκου και δε μπορεί να τροποιηθεί Ομόκεντροι κύκλοι σε διαφορετικές επιφάνειες: κύλινδρος (cylinder) Το μέγεθος ενός block τίθεται κατά την αρχικοποίηση του δίσκου και είναι κάποιο πολλαπλάσιο του τομέα Βάσεις Δεδομένων 2005-2006 Ευαγγελία Πιτουρά 7 Βάσεις Δεδομένων 2005-2006 Ευαγγελία Πιτουρά 8 Μαγνητικοί ίσκοι Μαγνητικοί ίσκοι κτένι Κεφαλή ανάγνωσης/εγγραφής Άξονας περιστροφής χρόνος εντοπισμού (seek time) Τοποθέτηση κεφαλής στη σωστή άτρακτο χρόνος περιστροφής (rotational delay ή latency) Ώσπου η αρχή του σωστού block να βρεθεί κάτω από την κεφαλή χρόνος μεταφοράς block (block transfer time) χρόνος μεταφοράς δεδομένων από το δίσκο στη μνήμη βραχίονας Χρόνος προσπέλασης = χρόνος εντοπισμού + χρόνος περιστροφής + χρόνος μεταφοράς Μεταφορά αρκετών γειτονικών block Βάσεις Δεδομένων 2005-2006 Ευαγγελία Πιτουρά 9 Βάσεις Δεδομένων 2005-2006 Ευαγγελία Πιτουρά 10 Μαγνητικοί ίσκοι Μαγνητικοί ίσκοι Παράδειγμα IBM Deskstar 14GPX Χωρητικότητα: 14.4 GB (μέσος) Χρόνος Εντοπισμού: 9.1 msec (2.2 για γειτονικά - 15.5 μέγιστο) (μέσος) Χρόνος Περιστροφής: 4.17 msec 5 διπλής όψης κυκλικούς δίσκους - 7,200 περιστροφές το λεπτό Χρόνος Μεταφοράς 13MB ανά sec Χρόνος προσπέλασης από το δίσκο ~ 10 msec ενώ για θέσης μνήμης 60 nanosecond Συνήθως μόνο μία κεφαλή τη φορά Disk controller λειτουργίες εγγραφής/ανάγνωσης υπολογισμός αθροίσματος ελέγχου (checksum) Disk Controller ίαυλος Συστήματος SCSI Βάσεις Δεδομένων 2005-2006 Ευαγγελία Πιτουρά 11 Βάσεις Δεδομένων 2005-2006 Ευαγγελία Πιτουρά 12 2

Συμπεράσματα 1. Τα δεδομένα πρέπει να βρίσκονται στη μνήμη Αποθηκευτικές Μονάδες 2. Η μονάδα μεταφοράς από το δίσκο στη μνήμη είναι ένα block. Το διάβασμα ή γράψιμο ενός block ονομάζεται λειτουργία Εισόδου/Εξόδου (Input/Output I/O) 3. Ο χρόνος προσπέλασης (εγγραφής ή ανάγνωσης) ενός block διαφέρει και εξαρτάται από τη θέση του block Μαγνητικές Ταινίες ίσκοι τυχαίας προσπέλασης (random access) Μαγνητικές Ταινίες Ταινίες σειριακής προσπέλασης (serial access) για να διαβάσουμε το n-οστό block πρέπει να ξεκινήσουμε από την αρχή και να διαβάσουμε και τα n-1 blocks χρόνος προσπέλασης = χρόνος εντοπισμού + χρόνου περιστροφής + χρόνος μεταφοράς Βάσεις Δεδομένων 2005-2006 Ευαγγελία Πιτουρά 13 Βάσεις Δεδομένων 2005-2006 Ευαγγελία Πιτουρά 14 Μεταφορά block σε ενδιάμεση μνήμη Μεταφορά block σε ενδιάμεση μνήμη Μεταφορά block σε ενδιάμεση μνήμη Ενώ γίνεται η μεταφορά των δεδομένων από την δευτερεύουσα στην κύρια μνήμη - παράλληλα και ανεξάρτητα η ΚΜΕ μπορεί να επεξεργάζεται δεδομένα Συνδρομικά (concurrently) και ταυτόχρονα (simulteneously) Συνδρομικά και εναλλασόμενα (interleaved) Ένας ανεξάρτητος επεξεργαστής Εισόδου/Εξόδου ή πολλαπλοί επεξεργαστές Χρόνος Χρόνος Βάσεις Δεδομένων 2005-2006 Ευαγγελία Πιτουρά 15 Βάσεις Δεδομένων 2005-2006 Ευαγγελία Πιτουρά 16 Μεταφορά block σε ενδιάμεση μνήμη Ιεραρχία Μνήμης Πρωτεύουσα Αποθήκευση KME Χρήση διπλής ενδιάμεσης μνήμης Cache Κύρια Μνήμη RAID: πλεονάζουσες συστοιχίες ανεξάρτητων δίσκων ευτερεύουσα Αποθήκευση (Μαγνητικός) ίσκος (καταμερισμός δεδομένων και πλεονασμός) Αίτηση για δεδομένα Ταινία εδομένα που ικανοποιούν την αίτηση Βάσεις Δεδομένων 2005-2006 Ευαγγελία Πιτουρά 17 Βάσεις Δεδομένων 2005-2006 Ευαγγελία Πιτουρά 18 3

Αρχεία Τα δεδομένα συνήθως αποθηκεύονται σε αρχεία Οργάνωση Αρχείων Η μεταφορά δεδομένων από το δίσκο στη μνήμη και από τη μνήμη στο δίσκο γίνεται σε μονάδες blocks Βασικός στόχος η ελαχιστοποίηση της επικοινωνίας με το δίσκο: ελαχιστοποίηση του αριθμού των blocks που μεταφέρονται μεταξύ της πρωτεύουσας (κύριας μνήμης, cache ενδιάμεση μνήμη buffers, καταχωρητές) και της δευτερεύουσας αποθήκευσης (δίσκος) Βάσεις Δεδομένων 2005-2006 Ευαγγελία Πιτουρά 19 Βάσεις Δεδομένων 2005-2006 Ευαγγελία Πιτουρά 20 Αρχεία Τα δεδομένα συνήθως αποθηκεύονται με τη μορφή εγγραφών Οι εγγραφές συνήθως περιγράφουν οντότητες (σχέσεις) και τα γνωρίσματά τους Ένα αρχείο είναι λογικά οργανωμένο σε μια ακολουθία από εγγραφές που μπορεί να βρίσκονται αποθηκευμένες σε πολλές σελίδες (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 Βάσεις Δεδομένων 2005-2006 Ευαγγελία Πιτουρά 21 Βάσεις Δεδομένων 2005-2006 Ευαγγελία Πιτουρά 22 Εγγραφές Εγγραφές Γιατί είναι προτιμότερες οι εγγραφές σταθερού μήκους: εύκολος ο εντοπισμός ενός πεδίου και η διατήρηση πληροφορίας για «άδειες» θέσεις Πως προκύπτουν οι εγγραφές μεταβλητού τύπου; Στο σχεσιακό μοντέλο κάθε εγγραφή (πλειάδα) μιας σχέσης περιέχει το ίδιο πλήθος πεδίων (αριθμό γνωρισμάτων). Άρα Εγγραφές του ίδιου τύπου αλλά έχουν ένα ή περισσότερα πεδία μεταβλητού μεγέθους Ανάμεικτο (mixed) αρχείο: εγγραφές διαφορετικού τύπου Βάσεις Δεδομένων 2005-2006 Ευαγγελία Πιτουρά 23 Βάσεις Δεδομένων 2005-2006 Ευαγγελία Πιτουρά 24 4

Εγγραφές Αποθήκευση των πεδίων συνεχόμενα, χωρισμένα με διαχωριστές (ειδικούς χαρακτήρες που δεν εμφανίζονται ως δεδομένα) Χώρο στην αρχή κάθε εγγραφής πίνακας ακεραίων Ι[j] όπου j η μετατόπιση (offset) της j-οστής εγγραφής που κρατά την αρχή του j-οστού πεδίου + τη μετατόπιση του τέλους της εγγραφής απευθείας πρόσβαση σε οποιαδήποτε πεδίο καλό χειρισμό της τιμής null Ως εγγραφές σταθερού μήκους, θεωρώντας το μέγιστο μέγεθος για κάθε εγγραφή Παράγοντας Ομαδοποίησης Ημονάδα μεταφοράς μεταξύ δίσκου και μνήμης είναι ένα block δίσκου Έστω εγγραφές σταθερού μήκους Όταν Β R περισσότερες από μια εγγραφή ανά block - κάθε εγγραφή σε ένα μόνο block Παράγοντας ομαδοποίησης (blocking factor), όταν Β R bfr = (B / R), όπου Β μέγεθος block σε byte και R μέγεθος εγγραφής σε bytes ηλαδή, πόσες «ολόκληρες» εγγραφές χωρούν σε ένα block Βάσεις Δεδομένων 2005-2006 Ευαγγελία Πιτουρά 25 Βάσεις Δεδομένων 2005-2006 Ευαγγελία Πιτουρά 26 Εκτεινόμενη καταχώρηση Εκτεινόμενη καταχώρηση Εκτεινόμενη και μη εκτεινόμενη καταχώρηση εγγραφών Μη εκτεινόμενη (unspanned) οργάνωση:οι εγγραφές δεν επιτρέπεται να διασχίζουν τα όρια ενός block Αχρησιμοποίητος χώρος: Β - bfr * R bytes ανά block Πιο εύκολη η προσπέλαση Εκτεινόμενη (spanned) οργάνωση: αποθήκευση μέρους μιας εγγραφής σε ένα block και το υπόλοιπο σε ένα άλλο block - δείκτης στο τέλος του πρώτου τμήματος δείχνει στο block που περιέχει το υπόλοιπο Βάσεις Δεδομένων 2005-2006 Ευαγγελία Πιτουρά 27 Βάσεις Δεδομένων 2005-2006 Ευαγγελία Πιτουρά 28 Εκτεινόμενη καταχώρηση Αρχεία Τοποθέτηση block αρχείου στο δίσκο b: Αριθμός blocks για την αποθήκευση ενός αρχείου r εγγραφών: b = (r/bfr) συνεχόμενη τοποθέτηση (contiguous allocation) τα block του αρχείου τοποθετούνται σε διαδοχικά blocks του δίσκου συνδεδεμένη τοποθέτηση (linked allocation) κάθε block του αρχείου περιλαμβάνει ένα δείκτη προς το επόμενο block του αρχείου Εύκολη επέκταση - πιο αργή ανάγνωση όλου του αρχείου συστάδες διαδοχικών blocks δίσκου (τμήματα (segments) ή επεκτάματα (extents) ευρετηριοποιημένη τοποθέτηση (indexed allocation) Βάσεις Δεδομένων 2005-2006 Ευαγγελία Πιτουρά 29 Βάσεις Δεδομένων 2005-2006 Ευαγγελία Πιτουρά 30 5

Επικεφαλίδες αρχείων Αρχεία Μια επικεφαλίδα ή περιγραφέας αρχείου (file header ή file descriptor) περιέχει πληροφορίες σχετικά με ένα αρχείο που είναι απαραίτητες στα προγράμματα που προσπελαύνουν τις εγγραφές του αρχείου Πληροφορίες για προσδιορισμό διεύθυνσης των blocks αρχείου στο δίσκο περιγραφές μορφοποίησης εγγραφών Αποθηκεύεται στο αρχείο, μπορούμε να θεωρούμε ότι «ξέρουμε» σε ποιο block είναι αποθηκευμένη η i-οστή σελίδα του αρχείου Αρχεία Σωρού Ταξινομημένα Αρχεία Κατακερματισμένα Αρχεία Οργάνωση Αρχείων Οργάνωση αρχείων: πως είναι τοποθετημένες οι εγγραφές ενός αρχείου όταν αποθηκεύονται στο δίσκο Β blocks - R εγγραφές ανά block - D εγγραφή/ανάγνωση -C χρόνος επεξεργασίας ανά εγγραφή D = 15 milliseconds -- C = 100 nanoseconds Βάσεις Δεδομένων 2005-2006 Ευαγγελία Πιτουρά 31 Βάσεις Δεδομένων 2005-2006 Ευαγγελία Πιτουρά 32 Αρχεία Σωρού Αρχεία Σωρού Αρχείο Σωρού (heap file ή pile file): Οι εγγραφές τοποθετούνται στο αρχείο με τη σειρά που εισάγονται 3. ιαγραφή εγγραφής Σημάδι διαγραφής Αρχεία Σωρού Μη ταξινομημένο αρχείο 1. Εισαγωγή 2 * D + C 2. Αναζήτηση 0.5 * B * (D + R * C) Β blocks R εγγραφές ανά block D χρόνος μεταφοράς block C χρόνος επεξεργασίας ανά εγγραφή Περιοδική αναδιοργάνωση Χρόνος Αναζήτησης + (C + D) Βάσεις Δεδομένων 2005-2006 Ευαγγελία Πιτουρά 33 Βάσεις Δεδομένων 2005-2006 Ευαγγελία Πιτουρά 34 4. Τροποποίηση εγγραφής - εγγραφή μεταβλητού μήκους 5. Σάρωση (scan) Ανάγνωση όλων των εγγραφών B(D+R*C) Αρχεία Σωρού 6. Ανάγνωση όλων των εγγραφών σε διάταξη Εξωτερική ταξινόμηση συνήθως μια παραλλαγή της ταξινόμησης με συγχώνευση Ταξινομημένα Αρχεία Ταξινομημένα Αρχεία Φυσική διάταξη των εγγραφών ενός αρχείου με βάση την τιμή ενός από τα πεδία του το οποίο λέγεται πεδίο διάταξης (ordering field) ιατεταγμένο ή φυσικό αρχείο Αν το πεδίο διάταξης είναι και κλειδί τότε λέγεται και κλειδί διάταξης Βάσεις Δεδομένων 2005-2006 Ευαγγελία Πιτουρά 35 Βάσεις Δεδομένων 2005-2006 Ευαγγελία Πιτουρά 36 6

Ταξινομημένα Αρχεία Ταξινομημένα Αρχεία 1. Εισαγωγή i. Εύρεση της σωστής θέσης της εγγραφής στο αρχείο ii. Μετακίνηση εγγραφών για να κάνουμε χώρο για την εισαγωγή της Κατά μέσο όρο μετακίνηση των μισών εγγραφών Χρόνος αναζήτησης + 2 * (0.5 * Β (D+ R*C)) Β blocks R εγγραφές ανά block D χρόνος μεταφοράς block C χρόνος επεξεργασίας ανά εγγραφή 1. Εισαγωγή (συνέχεια) ιατήρηση κάποιου αχρησιμοποίητου χώρου ανά block ημιουργία ενός προσωρινού μη διατεταγμένου αρχείου (αρχείο υπερχείλισης) - κυρίως αρχείο Βάσεις Δεδομένων 2005-2006 Ευαγγελία Πιτουρά 37 Βάσεις Δεδομένων 2005-2006 Ευαγγελία Πιτουρά 38 Ταξινομημένα Αρχεία Ταξινομημένα Αρχεία 2. Αναζήτηση εγγραφής (με επιλογή ισότητας) αποδοτική αν η συνθήκη αναζήτησης είναι στο πεδίο ταξινόμησης Έστω Β blocks, αναζήτηση της εγγραφής με τιμή K στο πεδίο διάταξης Σημείωση: Υποθέτουμε ότι οι διευθύνσεις των blocks του αρχείου είναι αποθηκευμένες στην επικεφαλίδα του αρχείου 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... ανά εγγραφή Βάσεις Δεδομένων 2005-2006 Ευαγγελία Πιτουρά 39 Βάσεις Δεδομένων 2005-2006 Ευαγγελία Πιτουρά 40 Ταξινομημένα Αρχεία Ταξινομημένα Αρχεία 3. ιαγραφή εγγραφής Μετακίνηση εγγραφών Χρήση σημαδιού διαγραφής 5. Ανάγνωση όλων των εγγραφών σε διάταξη 4. Τροποποίηση εγγραφής Βάσεις Δεδομένων 2005-2006 Ευαγγελία Πιτουρά 41 Βάσεις Δεδομένων 2005-2006 Ευαγγελία Πιτουρά 42 7

Αποθήκευση (επανάληψη) Οργάνωση Αρχείων (επανάληψη) 1. Τα δεδομένα αποθηκεύονται σε αρχεία στο δίσκο 2. Για να γίνει η επεξεργασία τους πρέπει να μεταφερθούν στη μνήμη 3. Η μονάδα μεταφοράς από το δίσκο στη μνήμη είναι ένα block 4. Ο χρόνος προσπέλασης (εγγραφής ή ανάγνωσης) ενός block διαφέρει και εξαρτάται από τη θέση του block δε θα το εξετάσουμε στο μάθημα Ένα αρχείο είναι λογικά οργανωμένο σε μια ακολουθία από εγγραφές Συνήθως ένα αρχείο ανά (σχήμα) σχέσης και μια εγγραφή αντιστοιχεί σε μια πλειάδα Μη εκτεινόμενη (unspanned) οργάνωση: οι εγγραφές δεν επιτρέπεται να διασχίζουν τα όρια ενός block (-) Αχρησιμοποίητος χώρος (+) Πιο εύκολη η προσπέλαση Βάσεις Δεδομένων 2005-2006 Ευαγγελία Πιτουρά 43 Βάσεις Δεδομένων 2005-2006 Ευαγγελία Πιτουρά 44 Οργάνωση Αρχείων (επανάληψη) Οργάνωση Αρχείων (επανάληψη) Έστω Β μέγεθος block σε byte και R μέγεθος εγγραφής σε bytes Παράγοντας ομαδοποίησης (blocking factor), όταν Β R bfr = (B / R) Πόσες εγγραφές χωρούν σε ένα block b: Αριθμός blocks για την αποθήκευση ενός αρχείου r εγγραφών: b = (r/bfr) Βασικός στόχος η ελαχιστοποίηση του αριθμού των blocks που μεταφέρονται Θεωρούμε ότι η πληροφορία για τη θέση στο δίσκο ενός block υπάρχει (π.χ., στην επικεφαλίδα του αρχείου) Βάσεις Δεδομένων 2005-2006 Ευαγγελία Πιτουρά 45 Βάσεις Δεδομένων 2005-2006 Ευαγγελία Πιτουρά 46 Οργάνωση Αρχείων (επανάληψη) Αρχεία Κατακερματισμού Οργάνωση αρχείων: πως είναι τοποθετημένες οι εγγραφές ενός αρχείου όταν αποθηκεύονται στο δίσκο Βασικές πράξεις: διάβασμα όλου του αρχείου (scan), εισαγωγή εγγραφής, διαγραφή εγγραφής, αναζήτηση με συνθήκη ισότητας, αναζήτηση με συνθήκη διαστήματος τιμών Αρχεία Σωρού (δεν υπάρχει διάταξη) Ταξινομημένα Αρχεία (διάταξη με βάση κάποιο πεδίο διάταξης) Αρχεία Κατακερματισμού Πεδίο ή κλειδί κατακερματισμού h: συνάρτηση κατακερματισμού h(k) = i Τιμή του πεδίου κατακερματισμού Στόχος ιεύθυνση block του δίσκου που είναι αποθηκευμένη Βάσεις Δεδομένων 2005-2006 Ευαγγελία Πιτουρά 47 Βάσεις Δεδομένων 2005-2006 Ευαγγελία Πιτουρά 48 8

Εσωτερικός Κατακερματισμός Εσωτερικός Κατακερματισμός (τα δεδομένα είναι στη μνήμη, όπως στις δομές δεδομένων) Πίνακας κατακερματισμού με Μ θέσεις - κάδους (buckets) h: συνάρτηση κατακερματισμού h(k) = i Πεδίο αναζήτησης - Πεδίο κατακερματισμού Συνηθισμένη συνάρτηση κατακερματισμού: Σε ποιο κάδο - τιμή από 0 έως Μ-1 h(k) = k mod M Εσωτερικός Κατακερματισμός Σύγκρουση (collision): όταν μια νέα εγγραφή κατακερματίζεται σε μία ήδη γεμάτη θέση Καλή συνάρτηση κατακερματισμού: κατανέμει τις εγγραφές ομοιόμορφα στο χώρο των διευθύνσεων (ελαχιστοποίηση συγκρούσεων και λίγες αχρησιμοποίητες θέσεις) Ευριστικοί: -- αν r εγγραφές, πρέπει να επιλέξουμε το Μ ώστε το r/m να είναι μεταξύ του 0.7 και 0.9 -- όταν χρησιμοποιείται η mod τότε είναι καλύτερα το Μ να είναι πρώτος Βάσεις Δεδομένων 2005-2006 Ευαγγελία Πιτουρά 49 Βάσεις Δεδομένων 2005-2006 Ευαγγελία Πιτουρά 50 Επίλυση Συγκρούσεων Εσωτερικός Κατακερματισμός 1. Ανοιχτή ιευθυνσιοδότηση (open addressing): χρησιμοποίησε την επόμενη κενή θέση 2. Αλυσιδωτή Σύνδεση (chaining): για κάθε θέση μια συνδεδεμένη λίστα με εγγραφές υπερχείλισης 3. Πολλαπλός Κατακερματισμός (multiple hashing): εφαρμογή μιας δεύτερης συνάρτησης κατακερματισμού Εξωτερικός Κατακερματισμός Εξωτερικός Κατακερματισμός (εφαρμογή σε δεδομένα αποθηκευμένα σε αρχεία) Κάδος: μια συστάδα από συνεχόμενα blocks του αρχείου h(k) = i Τιμή του πεδίου κατακερματισμού Σχετική διεύθυνση του κάδου (ποιος κάδος του αρχείου) π.χ., η εγγραφή με τιμή k στο πεδίο κατακερματισμού βρίσκεται στον i-οστό κάδο Βάσεις Δεδομένων 2005-2006 Ευαγγελία Πιτουρά 51 Βάσεις Δεδομένων 2005-2006 Ευαγγελία Πιτουρά 52 Εξωτερικός Κατακερματισμός Εξωτερικός Κατακερματισμός Ένας πίνακας που αποθηκεύεται στην επικεφαλίδα του αρχείου μετατρέπει τον αριθμό κάδου στην αντίστοιχη διεύθυνση 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! Βάσεις Δεδομένων 2005-2006 Ευαγγελία Πιτουρά 53 Βάσεις Δεδομένων 2005-2006 Ευαγγελία Πιτουρά 54 9

Οργάνωση Αρχείων Εξωτερικός Κατακερματισμός Κόστος: μεταφορά blocks (I/O) Σωρός Ταξινομημένο Κατακερματισμένο Ανάγνωση του αρχείου Β B 1.25B Αναζήτηση με συνθήκη ισότητας 0.5 B logb 1 Αναζήτηση με συνθήκη περιοχής B logb + ταιριάσματα 1.25 Β Εισαγωγή 2 αναζήτηση + B 2 ιαγραφή αναζήτηση + 1 αναζήτηση + Β αναζήτηση + 1 Πρόβλημα: Έστω Μ κάδους και r εγγραφές ανά κάδο - το πολύ Μ * r εγγραφές (αλλιώς μεγάλες αλυσίδες υπερχείλισης) υναμικός κατακερματισμός Βάσεις Δεδομένων 2005-2006 Ευαγγελία Πιτουρά 55 Βάσεις Δεδομένων 2005-2006 Ευαγγελία Πιτουρά 56 υναμικός Εξωτερικός Κατακερματισμός υναμικός Εξωτερικός Κατακερματισμός υναμικός Εξωτερικός Κατακερματισμός υαδική αναπαράσταση του αποτελέσματος της συνάρτησης κατακερματισμού, δηλαδή ως μια ακολουθίας δυαδικών ψηφίων Κατανομή εγγραφών με βάση την τιμή των αρχικών ψηφίων Το αρχείο ξεκινά με ένα μόνο κάδο Μόλις γεμίσει ένας κάδος διασπάται σε δύο κάδους με βάση την τιμή του 1ου δυαδικού ψηφίου των τιμών κατακερματισμού - - δηλαδή οι εγγραφές που το πρώτο ψηφίο της τιμής κατακερματισμού τους είναι 1 τοποθετούνται σε ένα κάδο και οι άλλες (με 0) στον άλλο Νέα υπερχείλιση ενός κάδου οδηγεί σε διάσπαση του με βάση το αμέσως επόμενο δυαδικό ψηφίο κοκ Βάσεις Δεδομένων 2005-2006 Ευαγγελία Πιτουρά 57 Βάσεις Δεδομένων 2005-2006 Ευαγγελία Πιτουρά 58 υναμικός Εξωτερικός Κατακερματισμός υναμικός Εξωτερικός Κατακερματισμός Έτσι δημιουργείται μια δυαδική δενδρική δομή που λέγεται κατάλογος (dirtectory) ή ευρετήριο (index) με δύο ειδών κόμβους εσωτερικούς: που καθοδηγούν την αναζήτηση εξωτερικούς: που δείχνουν σε ένα κάδο Αλγόριθμος αναζήτησης h := τιμή κατακερματισμού t := ρίζα του δέντρου i := 1 while (t εσωτερικός κόμβος) if (i-οστό bit του h είναι 0) t := αριστερά του t else t := δεξιά του t i := i +1 Βάσεις Δεδομένων 2005-2006 Ευαγγελία Πιτουρά 59 Βάσεις Δεδομένων 2005-2006 Ευαγγελία Πιτουρά 60 10

Που αποθηκεύεται ο κατάλογος υναμικός Εξωτερικός Κατακερματισμός στη μνήμη, εκτός αν είναι πολύ μεγάλος αν στο δίσκο απαιτούνται επιπρόσθετες προσπελάσεις υναμική επέκταση αλλά μέγιστος αριθμός επιπέδων (το πλήθος των δυαδικών ψηφίων της συνάρτησης κατακερματισμού) Ισοζύγιση Συνένωση κάδων (δυναμική συρρίκνωση) Επεκτάσιμος Εξωτερικός Κατακερματισμός Ο κατάλογος είναι ένας πίνακας με 2 d διευθύνσεις κάδων (d: ολικό βάθος του καταλόγου) Κάδος για τις εγγραφές με τιμές 000 001 κατακερματισμού που αρχίζουν από (ή τελειώνουν σε) 000 010 011 100 101 110 Τα πρώτα (ή τα τελευταία) d ψηφία της τιμής κατακερματισμού χρησιμοποιούνται ως δείκτης στον πίνακα 111 Βάσεις Δεδομένων 2005-2006 Ευαγγελία Πιτουρά 61 Βάσεις Δεδομένων 2005-2006 Ευαγγελία Πιτουρά 62 Επεκτάσιμος Εξωτερικός Κατακερματισμός ε χρειάζεται ένας διαφορετικός κάδος για κάθε μία από τις 2 d θέσεις - μπορεί η θέση του πίνακα να δείχνει στη διεύθυνση του ίδιου κάδου αν αυτές χωράνε σε ένα κάδο Επεκτάσιμος Εξωτερικός Κατακερματισμός (Παράδειγμα) Χρήση των τελευταίων bits της δυαδικής αναπαράστασης 000 001 010 011 100 101 110 111 Κάδος για τις εγγραφές με τιμές κατακερματισμού που αρχίζουν από 00 Για κάθε κάδο, τοπικό βάθος d o αριθμός των δυαδικών ψηφίων στα οποία βασίζεται η χρήση του κάδου 1 000001 4 000100 5 000101 7 000111 10 000110 12 001100 15 001111 16 010000 19 010011 21 010101 32 100000 13 001101 Βάσεις Δεδομένων 2005-2006 Ευαγγελία Πιτουρά 63 Βάσεις Δεδομένων 2005-2006 Ευαγγελία Πιτουρά 64 Επεκτάσιμος Εξωτερικός Κατακερματισμός Ητιμή του d μπορεί να αυξάνεται (μέχρι 2 κ, κ: αριθμός δυαδικών ψηφίων της τιμής κατακερματισμού) ή να μειώνεται Αύξηση της τιμής του d Όταν ένας κάδος με τιμή d = d υπερχειλίσει ιπλασιασμός του πίνακα ε χρειάζεται rehash (ξανακερματισμό), διασπάμε κάθε κάδο Μείωση της τιμής του d Όταν για όλους τους κάδους d < d Μείωση του μεγέθους του πίνακα στο μισό Επεκτάσιμος Εξωτερικός Κατακερματισμός (Παράδειγμα) 20 010100 1 000001 4 000100 5 000101 7 000111 10 000110 12 001100 15 001111 16 010000 19 010011 21 010101 32 100000 13 001101 ιάσπαση -> Ολικό βάθος 3 Βάσεις Δεδομένων 2005-2006 Ευαγγελία Πιτουρά 65 Βάσεις Δεδομένων 2005-2006 Ευαγγελία Πιτουρά 66 11

1 000001 4 000100 5 000101 7 000111 10 000110 12 001100 15 001111 16 010000 19 010011 21 010101 32 100000 13 001101 20 010100 Επεκτάσιμος Εξωτερικός Κατακερματισμός 4 12 32 16 20 -> διάσπαση Γραμμικός Κατακερματισμός Θέλουμε να αποφύγουμε τη χρήση καταλόγου Σημείωση: διατηρούμε λίστες υπερχείλισης Βάσεις Δεδομένων 2005-2006 Ευαγγελία Πιτουρά 67 Βάσεις Δεδομένων 2005-2006 Ευαγγελία Πιτουρά 68 Χρησιμοποιεί μια οικογένεια από συναρτήσεις κατακερματισμού 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 Όταν συμβαίνει η πρώτη υπερχείλιση ενός κάδου, πάμε στην επόμενη συνάρτηση μέχρι να διασπαστούν όλοι οι κάδοι με αυτήν τη συνάρτηση Αρχικά: Βήμα ιάσπασης (ποια συνάρτηση χρησιμοποιούμε) αρχικά j = 0: Πλήθος ιασπάσεων (στο τρέχον βήμα) αρχικά n = 0, Έστω αρχικά Μ κάδους αριθμημένους από 0 έως Μ -1 και αρχική συνάρτηση κατακερματισμού h 0 (k) = k mod M Βάσεις Δεδομένων 2005-2006 Ευαγγελία Πιτουρά 69 Βάσεις Δεδομένων 2005-2006 Ευαγγελία Πιτουρά 70 Όταν συμβεί μια υπερχείλιση σε έναν οποιοδήποτε κάδο, ο κάδος 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 ηλαδή, σε κάθε υπερχείλιση χωρίζουμε όλους τους κάδους με τη σειρά ξεκινώντας από τον πρώτο κάδο Βάσεις Δεδομένων 2005-2006 Ευαγγελία Πιτουρά 71 Βάσεις Δεδομένων 2005-2006 Ευαγγελία Πιτουρά 72 12

Αναζήτηση Εγγραφής ύο περιπτώσεις ο κάδος στον οποίο είναι (1) έχει ή (2) δεν έχει διασπαστεί Κρατάμε μια μεταβλητή το πλήθος n των διασπάσεων Έστω n ο αριθμός διασπάσεων και ότι αναζητούμε το k, βρίσκεται στον κάδο h 0 (k) τότε αν n h 0 (k) o κάδος δεν έχει διασπαστεί ενώ αν n > h 0 (k) o κάδος έχει διασπαστεί και εφαρμόζουμε την h 1 (k) Συνεχίζουμε... Όλοι οι κάδοι έχουν διασπαστεί όταν: n = M Τότε έχουμε 2M κάδους Όταν n = M, μηδενίζουμε το n, n = 0 και για οποιαδήποτε νέα διάσπαση εφαρμόζουμε την h 2 (k) = k mod 4M ιασπώντας πάλι τον κάδο 0, 1,... κ.τ.λ Βάσεις Δεδομένων 2005-2006 Ευαγγελία Πιτουρά 73 Βάσεις Δεδομένων 2005-2006 Ευαγγελία Πιτουρά 74 Γενικά βήμα διάσπασης j (j = 0, 1, 2, ) h j (k) = k mod 2 j M, και την h j+1 (k) για διασπάσεις Βάσεις Δεδομένων 2005-2006 Ευαγγελία Πιτουρά 75 Αναζήτηση Εγγραφής (γενικά) Τι χρειάζεται να ξέρουμε για να βρεθεί ο κάδος της εγγραφής k που ψάχνουμε; ποια συνάρτηση χρησιμοποιούμε (δηλαδή, το j) σε ποια διάσπαση βρισκόμαστε (δηλαδή το n) Έστω ότι είμαστε στο βήμα j, Τότε θα πρέπει να κοιτάξουμε είτε το h j (k) αν ο κάδος δεν έχει διασπαστεί ή το h j+1 (k) αν έχει διασπαστεί Πως θα ελέγξουμε αν ο κάδος έχει διασπαστεί ή όχι Βάσεις Δεδομένων 2005-2006 Ευαγγελία Πιτουρά 76 (παράδειγμα) Αλγόριθμος Αναζήτησης 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) } σημαίνει ότι ο κάδος έχει διασπαστεί Βήμα διάσπασης 0 (χρήση h 0 ) Πλήθος διασπάσεων = 0 43 ιασπάμε τον πρώτο κάδο Βάσεις Δεδομένων 2005-2006 Ευαγγελία Πιτουρά 77 Βάσεις Δεδομένων 2005-2006 Ευαγγελία Πιτουρά 78 13

(παράδειγμα) Βήμα διάσπασης 0 (χρήση h 0 ) Πλήθος διασπάσεων = 0 Βάσεις Δεδομένων 2005-2006 Ευαγγελία Πιτουρά 79 14