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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ. Εξωτερική Αναζήτηση και Β-δέντρα Κεφάλαιο 16. Ε. Μαρκάκης Επίκουρος Καθηγητής

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

#2 Αλγόριθµοι, οµές εδοµένων και Πολυπλοκότητα

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

13/5/2015 ΟΥΡΕΣ ΠΡΟΤΕΡΑΙΟΤΗΤΑΣ. Δομές Δεδομένων. Ουρές Προτεραιότητας

Προγραµµατισµός Ι (ΗΥ120)

Transcript:

Αποθήκευση εδοµένων 1 Εισαγωγή Σχεδιασµό και υλοποίηση µιας βάσης δεδοµένων χρησιµοποιώντας ένα Σ Β ΜΕΡΟΣ Β : Σχεδιασµό και υλοποίηση ενός Σ Β -- αποθήκευση δεδοµένων -- ευρετήρια -- υπολογισµός ερωτήσεων 2

Αποθηκευτικές Μονάδες Ηβάση δεδοµένων θα πρέπει να αποθηκευτεί σε κάποιο αποθηκευτικό µέσο Ιεραρχία αποθήκευσης πρωτεύουσα αποθήκευση (primary storage) κύρια µνήµη (main memory) - κρυφή µνήµη (cache) άµεση προσπέλαση από την κύρια ΚΜΕ γρήγορη προσπέλαση περιορισµένη χωρητικότητα αποθήκευσης 3 Αποθηκευτικές Μονάδες ευτερεύουσα αποθήκευση (µαγνητικοί δίσκο, ταινίες, δισκέτες, κλπ) για την επεξεργασία των δεδοµένων απαιτείται µεταφορά δεδοµένων στην πρωτεύουσα αποθήκευση πιο αργή προσπέλαση µεγάλη χωρητικότητα µικρότερο κόστος (για την ίδια ποσότητα χώρου η κύρια µνήµη 100 φορές ακριβότερη από τη δευτερεύουσα) 4

Αποθηκευτικές Μονάδες Οι περισσότερες βάσεις δεδοµένων αποθηκεύονται σε δευτερεύουσες αποθηκευτικές µονάδες κυρίως σε δίσκους πολύ µεγάλες µεγάλο κόστος µόνιµη αποθήκευση (nonvolatile storage) Μαγνητικές ταινίες για τήρηση εφεδρικών αντιγράφων αρχειοθέτηση (archiving) (δεδοµένα που θέλουµε να κρατήσουµε για πολύ καιρό αλλά η προσπέλαση τους είναι σπάνια) 5 Μαγνητικοί ίσκοι Μαγνητικοί ίσκοι Μαγνητισµός µιας περιοχής του δίσκου κατά ορισµένο τρόπο ώστε 1 ή 0 Χωρητικότητα (capacity) σε Kbyte -Mbyte-Gbyte Μαγνητικό υλικό σε σχήµα κυκλικού δίσκου Απλής και διπλής όψης 6

Μαγνητικοί ίσκοι Σε πακέτα δίσκων Οι πληροφορίες σε οµόκεντρους κύκλους διαφορετικής διαµέτρου: άτρακτοι track (συνήθως κάθε άτρακτος την ίδια ποσότητα πληροφορίας) Οµόκεντροι κύκλοι σε διαφορετικές επιφάνειες: κύλινδρος (cylinder) 7 Μαγνητικοί ίσκοι Block (µονάδα µεταφοράς) Τοµέας (sector) Κάθε άτρακτος χωρίζεται σε τόξα που ονοµάζονται τοµείς (sectors) και είναι χαρακτηριστικό του κάθε δίσκου και δε µπορεί να τροποιηθεί Το µέγεθος ενός block τίθεται κατά την αρχικοποίηση του δίσκου και είναι κάποιο πολλαπλάσιο του τοµέα 8

Μαγνητικοί ίσκοι κτένι Κεφαλή ανάγνωσης/εγγραφής Άξονας περιστροφής βραχίονας 9 Μαγνητικοί ίσκοι χρόνος εντοπισµού (seek time) Τοποθέτηση κεφαλής στη σωστή άτρακτο χρόνος περιστροφής (rotational delay ή latency) ώσπου η αρχή του σωστού block να βρεθεί κάτω από την κεφαλή χρόνος µεταφοράς block (block transfer time) χρόνος µεταφοράς δεδοµένων από το δίσκο στη µνήµη Χρόνος προσπέλασης = χρόνος εντοπισµού + χρόνος περιστροφής + χρόνος µεταφοράς Μεταφορά αρκετών γειτονικών block 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 11 Μαγνητικοί ίσκοι Συνήθως µόνο µία κεφαλή τη φορά Disk controller λειτουργίες εγγραφής/ανάγνωσης υπολογισµός αθροίσµατος ελέγχου (checksum) ίαυλος Συστήµατος Disk Controller SCSI 12

Αποθηκευτικές Μονάδες Συµπεράσµατα 1. Τα δεδοµένα πρέπει να βρίσκονται στη µνήµη 2. Η µονάδα µεταφοράς από το δίσκο στη µνήµη είναι ένα block 3. Ο χρόνος προσπέλασης (εγγραφής ή ανάγνωσης) ενός block διαφέρει και εξαρτάται από τη θέση του block 13 Μαγνητικές Ταινίες Μαγνητικές Ταινίες ίσκοι τυχαίας προσπέλασης (random access) Ταινίες σειριακής προσπέλασης (serial access) για να διαβάσουµε το n-οστό block πρέπει να ξεκινήσουµε από την αρχή και να διαβάσουµε και τα n-1 blocks 14

Μεταφορά block σε ενδιάµεση µνήµη Μεταφορά block σε ενδιάµεση µνήµη Ενώ γίνεται η µεταφορά των δεδοµένων από την δευτερεύουσα στην κύρια µνήµη - παράλληλα και ανεξάρτητα η ΚΜΕ µπορεί να επεξεργάζεται δεδοµένα Ένας ανεξάρτητος επεξεργαστής Εισόδου/Εξόδου ή πολλαπλοί επεξεργαστές 15 Μεταφορά block σε ενδιάµεση µνήµη Συνδροµικά (concurrently) και ταυτόχρονα (simulteneously) Συνδροµικά και εναλλασόµενα (interleaved) Χρόνος Χρόνος 16

Μεταφορά block σε ενδιάµεση µνήµη Χρήση διπλής ενδιάµεσης µνήµης 17 Αρχεία Τα δεδοµένα συνήθως αποθηκεύονται σε αρχεία Η µεταφορά δεδοµένων από το δίσκο στη µνήµη και από τη µνήµη στο δίσκο γίνεται σε µονάδες blocks Βασικός στόχος η ελαχιστοποίηση του αριθµού των blocks που µεταφέρονται 18

Αρχεία Τα δεδοµένα συνήθως αποθηκεύονται µε τη µορφή εγγραφών Ένα αρχείο είναι λογικά οργανωµένο σε µια ακολουθία από εγγραφές Οι εγγραφές συνήθως περιγράφουν οντότητες και τα γνωρίσµατά τους Blobs 19 Εγγραφές Εγγραφές σταθερού και µεταβλητού µήκους type film = record branch-name: char(22); account-number: char(20); balance:real; end Έστω κάθε char 1 byte - real 8 bytes Κάθε εγγραφή 50 bytes branch-name account-number balance branch-name account-number balance 20

Εγγραφές Πως προκύπτουν οι εγγραφές µεταβλητού τύπου Εγγραφές του ίδιου τύπου αλλά έχουν ένα ή περισσότερα πεδία µεταβλητού µεγέθους Εγγραφές του ίδιου τύπου αλλά έχουν ένα ή περισσότερα επαναλαµβανόµενα πεδία (πεδία που µπορεί να έχουν πολλές τιµές για µια εγγραφή) Εγγραφές του ίδιου τύπου αλλά έχουν ένα ή περισσότερα προαιρετικά πεδία Ανάµεικτο (mixed) αρχείο: εγγραφές διαφορετικού τύπου 21 Εγγραφές Γιατί είναι προτιµότερες οι εγγραφές σταθερού µήκους: εύκολος ο εντοπισµός ενός πεδίου Εγγραφές µεταβλητού µήκους ως εγγραφές σταθερού µήκους Προαιρετικά πεδία: τιµή null Επαναλαµβανόµενα πεδία: χώρο για κάθε εγγραφή όσο ο µέγιστος αριθµός εγγραφών 22

Εγγραφές Πεδία µεταβλητού µήκους Ειδικούς διαχωριστικούς χαρακτήρες Αποθήκευση του µήκους του πεδίου Προαιρετικά πεδία ζεύγη: <όνοµα-πεδίου, τιµή-πεδίου> ή <τύπος-πεδίου, τιµή-πεδίου> 23 Εγγραφές Επαναλαµβανόµενα πεδία Ένα χαρακτήρα για να διαχωρίζει τις επαναλαµβανόµενες τιµές του πεδίου και ένα για το τέλος της εγγραφής Αρχείο µε εγγραφές διαφορετικού τύπου Ένα πεδίο ενδεικτικό του τύπου της εγγραφής 24

Παράγοντας Οµαδοποίησης Η µονάδα µεταφοράς µεταξύ δίσκου και µνήµης είναι ένα block δίσκου Έστω εγγραφές σταθερού µήκους Όταν Β R περισσότερες από µια εγγραφή ανά block - κάθε εγγραφή σε ένα µόνο block Παράγοντας οµαδοποίησης (blocking factor), όταν Β R bfr = (B / R), όπου Β µέγεθος block σε byte και R µέγεθος εγγραφής σε bytes 25 Εκτεινόµενη καταχώρηση Εκτεινόµενη και µη εκτεινόµενη καταχώρηση εγγραφών Μη εκτεινόµενη (unspanned) οργάνωση:οι εγγραφές δεν επιτρέπεται να διασχίζουν τα όρια ενός block Αχρησιµοποίητος χώρος: Β -bfr * R bytes ανά block Πιο εύκολη η προσπέλαση Εκτεινόµενη (spanned) οργάνωση: αποθήκευση µέρους µιας εγγραφής σε ένα block και το υπόλοιπο σε ένα άλλο block - δείκτης στο τέλος του πρώτου τµήµατος δείχνει στο block που περιέχει το υπόλοιπο 26

Εκτεινόµενη καταχώρηση 27 Εκτεινόµενη καταχώρηση b: Αριθµός blocks για την αποθήκευση ενός αρχείου r εγγραφών: b = (r/bfr) 28

Αρχεία Τοποθέτηση block αρχείου στο δίσκο συνεχόµενη τοποθέτηση (contiguous allocation) τα block του αρχείου τοποθετούνται σε διαδοχικά blocks του δίσκου συνδεδεµένη τοποθέτηση (linked allocation) κάθε block του αρχείου περιλαµβάνει ένα δείκτη προς το επόµενο block του αρχείου Εύκολη επέκταση - πιο αργή ανάγνωση όλου του αρχείου συστάδες διαδοχικών blocks δίσκου (τµήµατα (segments) ή επεκτάµατα (extents) ευρετηριοποιηµένη τοποθέτηση (indexed allocation) 29 Αρχεία Επικεφαλίδες αρχείων Μια επικεφαλίδα ή περιγραφέας αρχείου (file header ή file descriptor) περιέχει πληροφορίες σχετικά µε ένα αρχείου που είναι απαραίτητες στα προγράµµατα που προσπελαύνουν τις εγγραφές του αρχείου Πληροφορίες: για προσδιορισµό διεύθυνσης των blocks αρχείου στο δίσκο περιγραφές µορφοποίησης εγγραφών 30

Οργάνωση Αρχείων Οργάνωση αρχείων: πως είναι τοποθετηµένες οι εγγραφές ενός αρχείου όταν αποθηκεύονται στο δίσκο Αρχεία Σωρού Ταξινοµηµένα Αρχεία Κατακερµατισµένα Αρχεία Β blocks - R εγγραφές ανά block - D εγγραφή/ανάγνωση -C χρόνος επεξεργασίας ανά εγγραφή D = 15 milliseconds -- C = 100 nanoseconds 31 Αρχεία Σωρού Αρχεία Σωρού Αρχείο Σωρού (heap file ή pile file): Οι εγγραφές τοποθετούνται στο αρχείο µε τη σειρά που εισάγονται Μη ταξινοµηµένο αρχείο 1. Εισαγωγή 2 * D + C 2. Αναζήτηση 0.5 * B * (D + R * C) Β blocks R εγγραφές ανά block D χρόνος µεταφοράς block C χρόνος επεξεργασίας ανά εγγραφή 32

Αρχεία Σωρού 3. ιαγραφή εγγραφής Σηµάδι διαγραφής Περιοδική αναδιοργάνωση Χρόνος Αναζήτησης + (C + D) 33 Αρχεία Σωρού 4. Τροποποίηση εγγραφής - εγγραφή µεταβλητού µήκους 5. Ανάγνωση όλων των εγγραφών σε διάταξη Εξωτερική ταξινόµηση συνήθως µια παραλλαγή της ταξινόµησης µε συγχώνευση 34

Ταξινοµηµένα Αρχεία Ταξινοµηµένα Αρχεία Φυσική διάταξη των εγγραφών ενός αρχείου µε βάση την τιµή ενός από τα πεδία του το οποίο λέγεται πεδίο διάταξης (ordering field) ιατεταγµένο ή φυσικό αρχείο Αν το πεδίο διάταξης είναι και κλειδί τότε λέγεται και κλειδί διάταξης 35 Ταξινοµηµένα Αρχεία 1. Εισαγωγή i. Εύρεση της σωστής θέσης της εγγραφής στο αρχείο ii. Μετακίνηση εγγραφών για να κάνουµε χώρο για την εισαγωγή της Κατά µέσο όρο µετακίνηση των µισών εγγραφών Χρόνος αναζήτησης + 2 * (0.5 * Β (D+ R*C)) Β blocks R εγγραφές ανά block D χρόνος µεταφοράς block C χρόνος επεξεργασίας ανά εγγραφή 36

Ταξινοµηµένα Αρχεία 1. Εισαγωγή (συνέχεια) ιατήρηση κάποιου αχρησιµοποίητου χώρου ανά block ηµιουργία ενός προσωρινού µη διατεταγµένου αρχείου (αρχείο υπερχείλισης) - κυρίως αρχείο 37 Ταξινοµηµένα Αρχεία 2. Αναζήτηση εγγραφής αποδοτική αν η συνθήκη αναζήτησης είναι στο πεδίο ταξινόµησης Έστω Β blocks, αναζήτηση της εγγραφής µε τιµή K στο πεδίο διάταξης Υποθέτουµε ότι οι διευθύνσεις των blocks του αρχείου είναι αποθηκευµένες στην επικεφαλίδα του αρχείου 38

Ταξινοµηµένα Αρχεία 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... ανά εγγραφή 39 Ταξινοµηµένα Αρχεία 3. ιαγραφή εγγραφής Μετακίνηση εγγραφών Χρήση σηµαδιού διαγραφής 4. Τροποποίηση εγγραφής 40

Ταξινοµηµένα Αρχεία 5. Ανάγνωση όλων των εγγραφών σε διάταξη 41 Οργάνωση Αρχείων Οργάνωση αρχείων: πως είναι τοποθετηµένες οι εγγραφές ενός αρχείου όταν αποθηκεύονται στο δίσκο Αρχεία Σωρού Ταξινοµηµένα Αρχεία Αρχεία Κατακερµατισµού 42

Αρχεία Κατακερµατισµού Αρχεία Κατακερµατισµού Πεδίο ή κλειδί κατακερµατισµού h: συνάρτηση κατακερµατισµού h(k) = i ιεύθυνση block του δίσκου που είναι αποθηκευµένη Τιµή του πεδίου κατακερµατισµού 43 Εσωτερικός Κατακερµατισµός Εσωτερικός Κατακερµατισµός Πίνακας κατακερµατισµού µε Μ θέσεις - κάδους (buckets) h: συνάρτηση κατακερµατισµού h(k) = i Πεδίο αναζήτησης - Πεδίο κατακερµατισµού Σε ποιο κάδο - τιµή από 0 έως Μ-1 Συνηθισµένη συνάρτηση κατακερµατισµού: h(k) = k mod M 44

Εσωτερικός Κατακερµατισµός Σύγκρουση (collision): όταν µια νέα εγγραφή κατακερµατίζεται σε µία ήδη γεµάτη θέση Καλή συνάρτηση κατακερµατισµού: κατανέµει τις εγγραφές οµοιόµορφα στο χώρο των διευθύνσεων (ελαχιστοποίηση συγκρούσεων και λίγες αχρησιµοποίητες θέσεις) Ευριστικοί: -- αν r εγγραφές, πρέπει να επιλέξουµε το Μ ώστε το r/m να είναι µεταξύ του 0.7 και 0.9 -- όταν χρησιµοποιείται η mod τότε είναι καλύτερα το Μ να είναι πρώτος 45 Εσωτερικός Κατακερµατισµός Επίλυση Συγκρούσεων 1. Ανοιχτή ιευθυνσιοδότηση (open addressing): χρησιµοποίησε την επόµενη κενή θέση 2. Αλυσιδωτή Σύνδεση (chaining): για κάθε θέση µια συνδεδεµένη λίστα µε εγγραφές υπερχείλισης 3. Πολλαπλός Κατακερµατισµός (multiple hashing): εφαρµογή µιας δεύτερης συνάρτησης κατακερµατισµού 46

Εξωτερικός Κατακερµατισµός Εξωτερικός Κατακερµατισµός Κάδος: µια συστάδα από συνεχόµενα blocks του αρχείου h(k) = i Τιµή του πεδίου κατακερµατισµού Σχετική διεύθυνση του κάδου (ποιος κάδος του αρχείου) π.χ., η εγγραφή µε τιµή k στο πεδίο κατακερµατισµού βρίσκεται στον i-οστό κάδο 47 Εξωτερικός Κατακερµατισµός Ένας πίνακας που αποθηκεύεται στην επικεφαλίδα του αρχείου µετατρέπει τον αριθµό κάδου στην αντίστοιχη διεύθυνση block 0 διεύθυνση 1ου block του κάδου στο δίσκο 1 διεύθυνση 1ου block του κάδου στο δίσκο 2 διεύθυνση 1ου block του κάδου στο δίσκο... Μ-1 διεύθυνση 1ου block του κάδου στο δίσκο 48

Εξωτερικός Κατακερµατισµός Συγκρούσεις - αλυσιδωτή σύνδεση - εγγραφές υπερχείλισης ανά κάδο 1. Ανάγνωση όλου του αρχείου (scan) Έστω ότι διατηρούµε κάθε κάδο γεµάτο κατά 80% άρα ένα αρχείο µε µέγεθος Β blocks χρειάζεται 1.25 Β blocks δίσκου 1.25 * Β * (D + R * C) 2. Αναζήτηση Συνθήκη ισότητας και µόνο ένα block ανά κάδο: D + R * C Αν συνθήκη περιοχής: scan! 49 Οργάνωση Αρχείων Κόστος: µεταφορά blocks (I/O) Σωρός Ταξινοµηµένο Κατακερµατισµένο Ανάγνωση του αρχείου Β B 1.25B Αναζήτηση µε συνθήκη ισότητας 0.5 B logb 1 Αναζήτηση µε συνθήκη περιοχής B logb + ταιριάσµατα 1.25 Β Εισαγωγή 2 αναζήτηση + B 2 ιαγραφή αναζήτηση + 1 αναζήτηση + Β αναζήτηση + 1 50

Εξωτερικός Κατακερµατισµός Πρόβληµα: Έστω Μ κάδους και r εγγραφές ανά κάδο - το πολύ Μ * r εγγραφές 51 υναµικός Εξωτερικός Κατακερµατισµός υναµικός Εξωτερικός Κατακερµατισµός υαδική αναπαράσταση του αποτελέσµατος της συνάρτησης κατακερµατισµού, δηλαδή ως µια ακολουθία δυαδικών ψηφίων Κατανοµή εγγραφών µε βάση την τιµή των αρχικών ψηφίων 52

υναµικός Εξωτερικός Κατακερµατισµός Το αρχείο ξεκινά µε ένα µόνο κάδο Μόλις γεµίσει ένας κάδος διασπάται σε δύο κάδους µε βάση την τιµή του 1ου δυαδικού ψηφίου των τιµών κατακερµατισµού - - δηλαδή οι εγγραφές που το πρώτο ψηφίο της τιµής κατακερµατισµού τους είναι 1 τοποθετούνται σε ένα κάδο και οι άλλες (µε 0) στον άλλο Νέα υπερχείλιση ενός κάδου οδηγεί σε διάσπαση του µε βάση το αµέσως επόµενο δυαδικό ψηφίο κοκ 53 υναµικός Εξωτερικός Κατακερµατισµός Παράδειγµα Έτσι δηµιουργείται µια δυαδική δενδρική δοµή που λέγεται κατάλογος (dirtectory) ή ευρετήριο (index) µε δύο ειδών κόµβους εσωτερικούς: που καθοδηγούν την αναζήτηση εξωτερικούς: που δείχνουν σε ένα κάδο 54

υναµικός Εξωτερικός Κατακερµατισµός Αλγόριθµος αναζήτησης h := τιµή κατακερµατισµού t := ρίζα του δέντρου i := 1 while (t εσωτερικός κόµβος) if (i-οστό bit του h είναι 0) t := αριστερά του t else t := δεξιά του t i := i +1 55 υναµικός Εξωτερικός Κατακερµατισµός Που αποθηκεύεται ο κατάλογος στη µνήµη, εκτός αν είναι πολύ µεγάλος αν στο δίσκο απαιτούνται επιπρόσθετες προσπελάσεις υναµική επέκταση αλλά µέγιστος αριθµός επιπέδων (το πλήθος των δυαδικών ψηφίων της συνάρτησης κατακερµατισµού) Ισοζύγιση Συνένωση κάδων (δυναµική συρρίκνωση) 56

Επεκτάσιµος Κατακερµατισµός Επεκτάσιµος Εξωτερικός Κατακερµατισµός Ο κατάλογος είναι ένας πίνακας µε 2 d διευθύνσεις κάδων (d: ολικό βάθος του καταλόγου) 000 Κάδος για τις εγγραφές µε τιµές κατακερµατισµού που αρχίζουν από 000 001 010 011 100 Τα πρώτα d ψηφία της τιµής 101 κατακερµατισµού χρησιµοποιούνται ως 110 δείκτης στον πίνακα 111 57 Επεκτάσιµος Εξωτερικός Κατακερµατισµός ε χρειάζεται ένας διαφορετικός κάδος για κάθε µία από τις 2 d θέσεις - µπορεί η θέση του πίνακα να δείχνει στη διεύθυνση του ίδιου κάδου αν αυτές χωράνε σε ένα κάδο 000 001 010 011 100 101 110 111 Κάδος για τις εγγραφές µε τιµές κατακερµατισµού που αρχίζουν από 00 Για κάθε κάδο, τοπικό βάθος d o αριθµός των δυαδικών ψηφίων στα οποία βασίζεται η χρήση του κάδου 58

Επεκτάσιµος Εξωτερικός Κατακερµατισµός Ητιµή του d µπορεί να αυξάνεται (µέχρι 2 κ, κ: αριθµός δυαδικών ψηφίων της τιµής κατακερµατισµού) ή να µειώνεται Αύξηση της τιµής του d Όταν ένας κάδος µε τιµή d = d υπερχειλίσει ιπλασιασµός του πίνακα Μείωση της τιµής του d Όταν για όλους τους κάδους d < d Μείωση του µεγέθους του πίνακα στο µισό 59 Γραµµικός Κατακερµατισµός Γραµµικός Εξωτερικός Κατακερµατισµός Χρησιµοποιεί µια οικογένεια από συναρτήσεις κατακερµατισµού 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 Όταν συµβαίνει η πρώτη υπερχείλιση ενός κάδου, πάµε στην επόµενη συνάρτηση µέχρι να διασπαστούν όλοι οι κάδοι µε αυτήν τη συνάρτηση Συνεχίζουµε... Σηµείωση: διατηρούµε λίστες υπερχείλισης 60

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

Γραµµικός Εξωτερικός Κατακερµατισµός Βήµα διάσπασης (ποια συνάρτηση χρησιµοποιούµε) j = 1: Πλήθος ιασπάσεων n = m : Όταν συµβεί µια υπερχείλιση σε έναν οποιοδήποτε κάδο, ο κάδος m-1 χωρίζεται σε δύο κάδους: τον αρχικό κάδο m-1 και ένα νέο κάδο m+ κ -1 στο τέλος του αρχείου µε βάση την συνάρτηση h 1 (k) = k mod 2M ηλαδή, σε κάθε υπερχείλιση χωρίζουµε όλους τους κάδους µε τη σειρά ξεκινώντας από τον πρώτο κάδο 63 Γραµµικός Εξωτερικός Κατακερµατισµός Αναζήτηση Εγγραφής ύο περιπτώσεις ο κάδος στον οποίο είναι έχει ή δεν έχει διασπαστεί Κρατάµε µια µεταβλητή το πλήθος n των διασπάσεων Έστω n ο αριθµός διασπάσεων και ότι αναζητούµε το k, βρίσκεται στον κάδο h 0 (k) τότε αν n h 0 (k) o κάδος δεν έχει διασπαστεί ενώ αν n > h 0 (k) o κάδος έχει διασπαστεί και εφαρµόζουµε την h 1 (k) 64

Γραµµικός Εξωτερικός Κατακερµατισµός Όλοι οι κάδοι έχουν διασπαστεί όταν ; n = M Τότε έχουµε 2M κάδους Όταν n = M, µηδενίζουµε το n, n = 0 και για οποιαδήποτε νέα διάσπαση εφαρµόζουµε την h 2 (k) = k mod 4M ιασπώντας πάλι τον κάδο 0, 1,... κ.τ.λ 65 Γραµµικός Εξωτερικός Κατακερµατισµός Γενικά βήµα διάσπασης j (j = 0, 1, 2, ) h j (k) = k mod 2 j M, και την h j+1 (k) για διασπάσεις 66

Γραµµικός Εξωτερικός Κατακερµατισµός Αναζήτηση Εγγραφής (γενικά) Τι χρειάζεται να ξέρουµε για να βρεθεί ο κάδος της εγγραφής k που ψάχνουµε; ποια συνάρτηση χρησιµοποιούµε (δηλαδή, το j) σε ποια διάσπαση βρισκόµαστε (δηλαδή το n) Έστω ότι είµαστε στο βήµα j, Τότε θα πρέπει να κοιτάξουµε είτε το h j (k) αν ο κάδος δεν έχει διασπαστεί ή το h j+1 (k) αν έχει διασπαστεί Πως θα ελέγξουµε αν ο κάδος έχει διασπαστεί ή όχι 67 Γραµµικός Εξωτερικός Κατακερµατισµός Αλγόριθµος Αναζήτησης 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) } σηµαίνει ότι ο κάδος έχει διασπαστεί 68