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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Κεφάλαιο 1.6: Συσκευές αποθήκευσης

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

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

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

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

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

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

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

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

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

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

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

Κεφάλαιο 2.4: Εργασία με εικονίδια

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

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

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

Copyright 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση Διαφάνεια 16-1

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

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

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

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

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

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

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

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

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

Εισαγωγή στην επιστήμη των υπολογιστών. Υλικό Υπολογιστών Κεφάλαιο 5ο Οργάνωση υπολογιστών

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

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

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

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

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

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

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

Με τον όρο μνήμη αναφερόμαστε στα μέσα που χρησιμοποιούνται για την αποθήκευση προγραμμάτων και δεδομένων σε έναν υπολογιστή ή άλλη ψηφιακή

Τεχνολογία Πολυμέσων. Ενότητα # 3: Συστήματα πολυμέσων Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

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

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

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

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

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

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

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

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

Κύρια & Περιφερειακή Μνήµη

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

Κεφάλαιο 5. ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ -. Σερπάνος 2. Σημείωση

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

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

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

Κεφάλαιο 7 Ιεραρχία Μνήμης (Memory Hierarchy)

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

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

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

Κύρια μνήμη. Μοντέλο λειτουργίας μνήμης. Ένα τυπικό υπολογιστικό σύστημα σήμερα. Οργάνωση Υπολογιστών (ΙI)

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

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

Κεφάλαιο 5. Το Σχεσιακό Μοντέλο Δεδομένων και Περιορισμοί Σχεσιακών Βάσεων Δεδομένων

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

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

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

Βασικές συσκευές Ε/Ε. Είσοδος Έξοδος στον υπολογιστή. Ένα τυπικό υπολογιστικό σύστημα σήμερα. Οργάνωση Υπολογιστών (IΙI) Μ.

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

i Στα σύγχρονα συστήματα η κύρια μνήμη δεν συνδέεται απευθείας με τον επεξεργαστή

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

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

Transcript:

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

Γιατί θα μιλήσουμε Μονάδες Αποθήκευσης Δίσκων Αρχεία Εγγραφών Πράξεις σε αρχεία Αρχεία Σωρού Ταξινομημένα Αρχεία Αρχεία Αρχεία Κατακερματισμού Τεχνικές Δυναμικού και Επεκτατού Κατακερματισμού Τεχνολογία RAID Δίαβλος, Επιμ. Μ.Χατζόπουλος Διαφάνεια 13-2

Ταξινόμηση των Φυσικών Μονάδων Αποθήκευσης Ταχύτητα προσπέλασης στα δεδομένα Κόστος αποθήκευσης Αξιοπιστία απώλεια δεδομένων σε κατάρρευση του συστήματος ή πτώση τάσης φυσικές αποτυχίες της μονάδας αποθήκευσης Η αποθήκευση μπορεί να διαχωριστεί σε: ασταθής (volatile) αποθήκευση: χάνεται το περιεχόμενο όταν απενεργοποιηθεί η μηχανή σταθερή (non-volatile) αποθήκευση: Τα δεδομένα μένουν σταθερά ακόμη και αν απενεργοποιηθεί η συσκευή Περιλαμβάνει δευτερεύουσα και τριτεύουσα αποθήκευση, καθώς και υποστηριζόμενη από μπαταρία κύρια μνήμη. Δίαβλος, Επιμ. Μ.Χατζόπουλος Διαφάνεια 13-3

Φυσικές Αποθηκευτικές Μονάδες Cache γρήγορη και πιο ακριβή αποθήκευση ασταθής την διαχειρίζεται το υλικό του υπολογιστικού συστήματος. Κύρια μνήμη: γρήγορη προσπέλαση(10 με 100 nanoseconds; 1 nanosecond = 10 9 seconds) γενικά πολύ μικρή (η πολύ ακριβή) για να χωρέσει μια βάση δεδομένων Χωρητικότητα μέχρι λίγα Gigabytes χρησιμοποιούνται ευρέως σήμερα Η χωρητικότητα αυξάνει και το κόστος ανά byte μειώνεται σταθερά και γρήγορα (με ένα παράγοντα περίπου 2 κάθε 2 με 3 χρόνια) Προσωρινή αποθήκευση τα περιεχόμενα της κύριας μνήμης συνήθως χάνονται σε πτώση ρεύματος ή κατάρρευση του συστήματος. Δίαβλος, Επιμ. Μ.Χατζόπουλος Διαφάνεια 13-4

Φυσικές Αποθηκευτικές Μονάδες (συν.) Flash μνήμες Τα δεδομένα διασώζονται σε πτώσεις ρεύματος Τα δεδομένα μπορούν να γραφούν σε μια θέση μόνο μια φορά, αλλά η θέση μπορεί να σβηστεί και να γραφτεί ξανά Μπορούν να υποστηρίξουν περιορισμένο πλήθος κύκλων γράψιμο/ανάγνωση (10K 1M). Το σβήσιμο της μνήμης μπορεί να γίνει μόνο σε ολόκληρο περιοχή της μνήμης Οι αναγνώσεις είναι περίπου γρήγορες όσο και η κύρια μνήμη Αλλά τα γραψίματα είναι αργά (μερικά microseconds), το σβήσιμο είναι πιο αργό Χρησιμοποιούνται ευρέως σε ενσωματωμένες συσκευές όπως ψηφιακές κάμερες, τηλέφωνα, και USB κλειδιά Δίαβλος, Επιμ. Μ.Χατζόπουλος Διαφάνεια 13-5

Φυσικές Αποθηκευτικές Μονάδες (συν.) Μαγνητικοί Δίσκοι Τα δεδομένα αποθηκεύονται σε ένα περιστρεφόμενο δίσκο, με μαγνητικό διάβασμα/γράψιμο Το κυριότερο για μακροχρόνια αποθήκευση δεδομένων. Τυπικά αποθηκεύει ολόκληρη τη βάση δεδομένων. Τα δεδομένα πρέπει να μεταφερθούν από το δίσκο στη κύρια μνήμη για προσπέλαση, και για αποθήκευση να γραφούν ξανά. Πολύ πιο αργή προσπέλαση από ότι η κύρια μνήμη άμεση-προσπέλαση δυνατότητα ανάγνωσης με οποιαδήποτε σειρά, αντίθετα με ότι συμβαίνει με τις ταινίες. Χωρητικότητες μέχρι και 1.5 TB το 2009 Πολύ μεγαλύτερη χωρητικότητα και κόστος/byte από την κύρια/flash μνήμη Όσο προχωράει η τεχνολογία αυξάνουν σταθερά και γρήγορα (με ρυθμό 2 με 3 κάθε 2 χρόνια) Διατηρεί τα δεδομένα σε περίπτωση πτώσης ρεύματος και αποτυχιών του συστήματος Αποτυχία του δίσκου μπορεί να καταστρέψει τα δεδομένα αλλά συμβαίνει σπάνια Δίαβλος, Επιμ. Μ.Χατζόπουλος Διαφάνεια 13-6

Φυσικές Αποθηκευτικές Μονάδες (συν.) Οπτικοί Δίσκοι σταθεροί, η ανάγνωση των δεδομένων γίνεται οπτικά από ένα περιστρεφόμενο δίσκο με χρήση laser CD-ROM (640 MB) και DVD (4.7 to 17 GB) είναι οι πιο δημοφιλείς τύποι Blu-ray δίσκοι: 27 GB μέχρι 54 GB Οπτικοί Δίσκοι γράψιμο μια φορά, διάβασμα πολλές (WORM) χρησιμοποιούνται για αρχειοθέτηση (CD-R, DVD-R, DVD+R) Υπάρχουν επίσης εκδόσεις με πολλαπλά γραψίματα (CD- RW, DVD-RW, DVD+RW, and DVD-RAM) Τα διαβάσματα και τα γραψίματα είναι πιο αργά από ότι στους μαγνητικούς δίσκους Juke-box, με μεγάλο πλήθος κινητών δίσκων, λίγους οδηγούς, και ένα μηχανισμό αυτόματης φόρτωσης και απενεργοποίησης δίσκων για αποθήκευση μεγάλου όγκου δεδομένων Δίαβλος, Επιμ. Μ.Χατζόπουλος Διαφάνεια 13-7

Φυσικές Αποθηκευτικές Μονάδες (συν.) Αποθήκευση σε Ταινίες σταθερές, χρησιμοποιούνται κυρίως για κράτηση αντιγράφων (για ανάκαμψη από αποτυχίες δίσκου), και για δεδομένα αρχειοθέτησης γραμμική προσπέλαση πολύ πιο αργοί από το δίσκο πολύ μεγάλη χωρητικότητα (υπάρχουν ταινίες 40 με 300 GB) η ταινία μπορεί να απομακρυνθεί από τον οδηγό το κόστος αποθήκευσης είναι χαμηλότερο από του δίσκου, αλλά οι οδηγοί είναι ακριβοί Υπάρχουν jukeboxes ταινιών για αποθήκευση μεγάλου όγκου δεδομένων εκατοντάδες terabytes (1 terabyte = 10 9 bytes) μέχρι και πολλά petabytes (1 petabyte = 10 12 bytes) Δίαβλος, Επιμ. Μ.Χατζόπουλος Διαφάνεια 13-8

Ιεραρχία Αποθήκευσης Δίαβλος, Επιμ. Μ.Χατζόπουλος Διαφάνεια 13-9

Ιεραρχία Μνήμης ΚΜΕ ΚΡΥΦΗ ΜΝΗΜΗ ΚΥΡΙΑ ΜΝΗΜΗ ΜΑΓΝΗΤΙΚΟΣ ΔΙΣΚΟΣ ΤΑΙΝΙΑ Πρωτεύων αποθηκευτικός χώρος Δευτερεύων αποθηκευτικός χώρος Τριτεύων αποθηκευτικός χώρος Δίαβλος, Επιμ. Μ.Χατζόπουλος Διαφάνεια 13-10

Φυσικές Αποθηκευτικές Μονάδες (συν.) πρωτεύουσα αποθήκευση : Η γρηγορότερη αλλά δεν είναι μόνιμη (cache, main memory). δευτερεύουσα αποθήκευση: επόμενο επίπεδο στην ιεραρχία, σταθερή, μέτρια ταχύτητα προσπέλασης λέγεται επίσης on-line αποθήκευση Π.χ. flash memory, μαγνητικοί δίσκοι τριτεύουσα αποθήκευση : χαμηλότερο επίπεδο της ιεραρχίας, μόνιμη, αργός χρόνος προσπέλασης Λέγεται και off-line αποθήκευση Π.χ. μαγνητική ταινία, οπτικοί δίσκοι Δίαβλος, Επιμ. Μ.Χατζόπουλος Διαφάνεια 13-11

Αποθηκευτικές Μονάδες Δίσκων Οι δίσκοι προτιμώνται σαν αποθηκευτικές μονάδες λόγω μεγάλης χωρητικότητας και χαμηλού κόστους. Τα δεδομένα αποθηκεύονται σε επιφάνειες μαγνητικών δίσκων σαν μαγνητισμένες περιοχές. Ένα πακέτο δίσκων περιέχει πολλούς μαγνητικούς δίσκους συνδεδεμένων σε ένα περιστρεφόμενο άξονα. Οι δίσκοι χωρίζονται σε ομόκεντρες κυκλικές ατράκτους σε κάθε επιφάνεια του δίσκου. Η χωρητικότητα των ατράκτων ποικίλει από 4 σε 50 Kbytes ή περισσότερο Δίαβλος, Επιμ. Μ.Χατζόπουλος Διαφάνεια 13-12

Μηχανισμός Μαγνητικών Δίσκων Δίαβλος, Επιμ. Μ.Χατζόπουλος Διαφάνεια 13-13

Μαγνητικοί Δίσκοι (συν.) Η πρώτη γενιά δίσκων είχε συχνές καταστροφές των κεφαλών Η επιφάνεια είχε κάλυψη με επίστρωση μεταλλικών οξειδίων που αποσυντίθεντο σε αποτυχία των κεφαλών και κατέσρεφαν όλα τα δεδομένα του δίσκου Οι σύγχρονοι δίσκοι παρουσιάζουν πολύ λιγότερες αποτυχίες, αν και κάποια τμήματα μπορεί να φθείρονται Ελεγκτής δίσκων είναι η διασύνδεση μεταξύ υπολογιστικού συστήματος και μονάδας. δέχεται υψηλού επιπέδου εντολές ανάγνωσης γραψίματος σε ια περιοχή του δίσκου Ενεργοποιεί λειτουργίες όπως η κίνηση του βραχίονα στη σωστή άτρακτο και το διάβασμα ή γράψιμο δεδομένων Υπολογίζει και καταγράφει δείκτες ελέγχου σε κάθε τομέα για να πιστοποιήσει τη σωστή λειτουργία Αν υπάρχει καταστροφή δεδομένων θα βρεθεί με μεγάλη πιθανότητα από τους ελέγχους Εξασφαλίζει επιτυχές γράψιμο διαβάζοντας μετά το γράψιμο Εκτελεί νέα απεικόνιση των κατεστραμμένων τομέων Δίαβλος, Επιμ. Μ.Χατζόπουλος Διαφάνεια 13-14

Υποσύστημα Δίσκων Μέσω ενός ελεγκτή συνδέονται πολλοί δίσκοι σε ένα υπολογιστικό σύστημα Κάποια λειτουργικότητα των ελεγκτών μεταφέρεται στους δίσκους Τυπικές οικογένειες διασυνδέσεων δίσκων ATA (AT adaptor) SATA (Serial ATA) SCSI (Small Computer System Interconnect) SAS (Serial Attached SCSI) Διάφορες παραλλαγές τους Δίαβλος, Επιμ. Μ.Χατζόπουλος Διαφάνεια 13-15

Αποθηκευτικές Μονάδες Δίσκων(συν.) Μια άτρακτος χωρίζεται σε μικρότερα μπλοκ ή τομείς επειδή συνήθως περιέχει μεγάλη ποσότητα πληροφοριών Ο διαμερισμός μιας ατράκτου σε τομείς στην επιφάνεια του δίσκου είναι μόνιμα κωδικοποιημένος και δεν μπορεί να αλλάξει. Ένας τύπος οργάνωσης τομέων είναι αυτός που αποτελούν ένα τμήμα ατράκτου που εκτείνεται σε μια σταθερή γωνία στο κέντρο του τομέα. Μια άτρακτος χωρίζεται σε μπλοκ. Το μέγεθος του μπλοκ B είναι σταθερό για κάθε σύστημα. Τυπικά μεγέθη μπλοκ ποικίλουν από B=512 bytes μέχρι B=4096 bytes. Μεταξύ δίσκου και κύριας μνήμης μεταφέρονται για επεξεργασία ολόκληρα μπλοκ. Δίαβλος, Επιμ. Μ.Χατζόπουλος Διαφάνεια 13-16

Αποθηκευτικές Μονάδες Δίσκων(συν.) Δίαβλος, Επιμ. Μ.Χατζόπουλος Διαφάνεια 13-17

Αποθηκευτικές Μονάδες Δίσκων(συν.) Μια ανάγνωσης-γραφής μετακινείται προς την άτρακτο που περιέχει το μπλοκ για μεταφορά. Η περιστροφική κίνηση του δίσκου μεταφέρει το μπλοκ κάτω από την κεφαλή ανάγνωσης/γραφής για διάβασμα ή γράψιμο. Μια φυσική διεύθυνση μπλοκ (hardware) αποτελείται από: τον αριθμό κυλίνδρου (υποθετική συλλογή ατράκτων της ίδιας ακτίνας από όλες τις επιφάνειες) τον αριθμό ατράκτου ή τον αριθμό της επιφάνειας (στον κύλινδρο) τον αριθμό του μπλοκ (στην άτρακτο). Η ανάγνωση ή το γράψιμο ενός μπλοκ δίσκου απαιτεί χρόνο λόγω του χρόνου εντοπισμού (seek time) s, και της καθυστέρησης περιστροφής (latency) rd. Για επιτάχυνση της μεταφοράς μπορεί να χρησιμοποιηθεί τεχνική διπλής ενδιάμεσης μνήμης (double buffering) για την μεταφορά διαδοχικών μπλοκ. Δίαβλος, Επιμ. Μ.Χατζόπουλος Διαφάνεια 13-18

Αποθηκευτικές Μονάδες Δίσκων(συν.) Δίαβλος, Επιμ. Μ.Χατζόπουλος Διαφάνεια 13-19

Μέτρα απόδοσης των δίσκων Χρόνος Προσπέλασης ο απαιτούμενος χρόνος από το αίτημα για ανάγνωση ή γράψιμο μέχρι να ξεκινήσει η μεταφορά δεδομένων. Αποτελείται από: Χρόνος εντοπισμού χρόνος που απαιτείται για μετακίνηση του βραχίονα στη σωστή άτρακτο. Μέσος χρόνος εντοπισμού είναι 1/2 της χειρότερης περίπτωσης. Θα ήταν 1/3 αν όλες οι άτρακτοι είχαν το ίδιο πλήθος τομέων, και αγνοήσουμε το χρόνο και σταματήματος της κίνησης του βραχίονα 4 με 10 milliseconds σε τυπικούς δίσκους Καθυστέρηση Περιστροφής ο απαιτούμενος χρόνος να βρεθεί κάτω από την κεφαλή ο σωστός τομέας. Ο μέσος χρόνος είναι 1/2 του χειρότερου (πλήρης περιστροφή). 4 με 11 milliseconds σε τυπικούς δίσκους (5400 με 15000 r.p.m.) Ρυθμός Μεταφοράς Δεδομένων ο ρυθμός ανάκτησης των δεδομένων ή το γράψιμο των δεδομένων στο δίσκο. 25 με 100 MB το δευτερόλεπτο μέγιστος ρυθμός Πολλοί δίσκοι μπορεί να χρησιμοποιούν τον ίδιο ελεγκτή, επομένως είναι σημαντικός και ο ρυθμός που μπορεί να χειρισθεί ο ελεγκτής Π.χ. SATA: 150 MB/sec, SATA-II 3Gb (300 MB/sec) Ultra 320 SCSI: 320 MB/s, SAS (3 to 6 Gb/sec) Fiber Channel (FC2Gb or 4Gb): 256 to 512 MB/s Δίαβλος, Επιμ. Μ.Χατζόπουλος Διαφάνεια 13-20

Μέτρα απόδοσης των δίσκων (συν.) Μέσος Χρόνος Αποτυχιών (Mean time to failure (MTTF)) ο μέσος χρόνος για αδιάκοπη λειτουργία του δίσκου. Τυπικά 3 με 5 χρόνια Η πιθανότητα αποτυχίας καινούργιων δίσκων είναι πολύ μικρή, φθάνοντας σε ένα θεωρητικό MTTF 500,000 με 1,200,000 ώρες για καινούργιο δίσκο Π.χ., ένας MTTF 1,200,000 ώρες για ένα καινούργιο δίσκο σημαίνει ότι για 1000 σχετικά νέους δίσκους, κατά μέσο θα έχουμε μια αποτυχία κάθεon 1200 ώρες MTTF ελαττώνεται με την ηλικία του δίσκου Δίαβλος, Επιμ. Μ.Χατζόπουλος Διαφάνεια 13-21

Προσπέλαση στο δίσκο Χρόνος_προσπέλασης=χρόνος_εντοπισμού(seek) +καθυστέρηση_περιστροφής(latency) +χρόνος_μεταφοράς(transfer time) Δίαβλος, Επιμ. Μ.Χατζόπουλος Διαφάνεια 13-22

Παράδειγμα πραγματικού δίσκου 3.5 inches, 14.4 GB Μέσος χρόνος εντοπισμού 9.1 msec. Μέση καθυστέρηση λόγω περιστροφής 4.17msec. Πέντε επιφάνειες διπλής όψης Από άτρακτο στην επόμενη 2.2 msec. Μέγιστος χρόνος εντοπισμού 15.5msec. 7200 περιστροφές το λεπτό Πυκνότητα εγγραφής 2.6 gigabit/in 2 Με αυτά τα δεδομένα μια προσπέλαση στο δίσκο απαιτεί περίπου 10msec. Μια προσπέλαση στη μνήμη απαιτεί λιγότερο από 60 nanoseconds Δίαβλος, Επιμ. Μ.Χατζόπουλος Διαφάνεια 13-23

Διαχείριση των Δίσκων Σελίδες Blocks Διαχείριση Ελεύθερων Block Πολιτική Αντικατάστασης Μπλοκ στη μνήμη (Buffer pool) Διπλή Ενδιάμεση Μνήμη (Double Buffering) Δίαβλος, Επιμ. Μ.Χατζόπουλος Διαφάνεια 13-24

Βελτιστοποίηση των προσπελάσεων στο δίσκο Block μια συνεχόμενη ακολουθία από τομείς από μια άτρακτο η μεταφορά δεδομένων μεταξύ δίσκου και κύριας μνήμης γίνεται σε blocks Τα μεγέθη ποικίλουν από 512 bytes μέχρι μερικά kilobytes Μικρότερα blocks: πιο πολλές μεταφορές από το δίσκο Μεγαλύτερα block: χαμένος χώρος λόγω μερικής κάλυψης των block Τυπικά μεγέθη block από 4 έως 16 kilobytes Αλγόριθμοι δρομολόγησης κίνησης του βραχίονα algorithms order διατάσουν τα αιτήματα στο δίσκο ώστε να ελαχιστοποιείται η κίνηση του βραχίονα Αλγόριθμος του ασανσέρ : R6 R3 R1 R5 R2 R4 Εσωτερική άτρακτος Εξωτερική άτρακτος Δίαβλος, Επιμ. Μ.Χατζόπουλος Διαφάνεια 13-25

Βελτιστοποίηση των προσπελάσεων στο δίσκο Οργάνωση Αρχείων βελτιστοποίηση του χρόνου προσπέλασης σε block στο δίσκο οργανώνοντας τα blocks ώστε να αντιστοιχούν στον τρόπο προσπέλασης Π.χ. Αποθήκευση συσχετιζόμενων πληροφοριών στον ίδιο ή κοντινούς κυλίνδρους. Τα αρχεία με τον καιρό τεμαχίζονται Π.χ. με την εισαγωγή ή τη διαγραφή Ελευθέρα block μπορεί να διασκορπίζονται, και καινούργια αρχεία να διασκορπίζονται στο δίσκο Σειριακή προσπέλαση σε ένα διασκορπισμένο αρχείο έχει σαν αποτέλεσμα αυξημένη κίνηση του βραχίονα Κάποια συστήματα έχουν βοηθητικά προγράμματα για αποκατάσταση του συστήματος αρχείων, για βελτίωση της απόδοσης Δίαβλος, Επιμ. Μ.Χατζόπουλος Διαφάνεια 13-26

Αιτήματα Σελίδων Σελίδα του δίσκου (πλαίσιο) Κύρια Μνήμη Ελεύθερη Θέση (πλαίσιο) Βάση pin_count το πλήθος των χρηστών της σελίδας dirty: boolean αν η σελίδα έχει αλλαχθεί Δίαβλος, Επιμ. Μ.Χατζόπουλος Διαφάνεια 13-27

Η πολιτική που αποφασίζει ποια σελίδα θα αντικατασταθεί λέγεται πολιτική αντικατάστασης (replacement policy) Το λογισμικό που είναι υπεύθυνο για την μεταφορά των σελίδων από το δίσκο προς την μνήμη και αντιστρόφως λέγεται buffer manager. Η διαχείριση της κύριας μνήμης γίνεται με χωρισμό της σε σελίδες. Ο κώδικας στα ψηλότερα επίπεδα του ΣΔΒΔ δεν χρειάζεται να ξέρει αν οι σελίδες βρίσκονται ή όχι στη μνήμη. Ο buffer manager κάνει κάποια λογιστική με δύο μεταβλητές την pin_count και την dirty. Η pin_count καταχωρεί το πλήθος των χρηστών μιας σελίδας ενώ η dirty δείχνει αν η σελίδα έχει τροποποιηθεί. Δίαβλος, Επιμ. Μ.Χατζόπουλος Διαφάνεια 13-28

Δίαβλος, Επιμ. Μ.Χατζόπουλος Διαφάνεια 13-29

Δίαβλος, Επιμ. Μ.Χατζόπουλος Διαφάνεια 13-30

Εγγραφές Εγγραφές σταθερού και μεταβλητού μήκους Οι εγγραφές περιέχουν πεδία που έχουν τιμές συγκεκριμένου τύπου Π.χ., amount, date, time, age Τα πεδία μπορεί να είναι σταθερού ή μεταβλητού μήκους may be fixed Τα πεδία μεταβλητού μήκους μπορεί να αναμειγνύονται σε μια εγγραφή: Για να γίνει επεξεργασία της εγγραφής χρησιμοποιούνται διαχωριστικοί χαρακτήρες ή μήκος πεδίου Δίαβλος, Επιμ. Μ.Χατζόπουλος Διαφάνεια 13-31

Τα δεδομένα αποθηκεύονται με την μορφή εγγραφών struct εργαζομενος{ char ονομα[30]; char αρ_ταυτ[9]; int μισθος; int κωδ_εργασιας; char τμημα[20]; }; Δίαβλος, Επιμ. Μ.Χατζόπουλος Διαφάνεια 13-32

Ομαδοποίηση (blocking) Ομαδοποίηση: Αφορά την αποθήκευση ενός πλήθους εγγραφών σε ένα μπλοκ του δίσκου. Παράγοντας ομαδοποίησης (bfr) είναι το πλήθος των εγγραφών ανά μπλοκ. Σε ένα μπλοκ μπορεί να υπάρχει κενός χώρος αν δεν χωράει στο μπλοκ ένα ακέραιο πλήθος εγγραφών. Εκτεινόμενες (Spanned) Εγγραφές: Είναι οι εγγραφές που ξεπερνούν το μέγεθος ενός ή περισσότερων μπλοκ και επομένως εκτείνονται σε ένα πλήθος από μπλοκ. Δίαβλος, Επιμ. Μ.Χατζόπουλος Διαφάνεια 13-33

Αρχεία Εγγραφών Ένα αρχείο είναι μια ακολουθία εγγραφών, που κάθε εγγραφή είναι μια συλλογή από τιμές δεδομένων. Ένας περιγραφέας αρχείου (ή επικεφαλίδα αρχείου) περιλαμβάνει πληροφορίες που περιγράφουν το αρχείο, όπως τα ονόματα των πεδίων και τους τύπους δεδομένων, και τις διευθύνσεις των μπλοκ του αρχείου στο δίσκο. Οι εγγραφές αποθηκεύονται σε μπλοκ του δίσκου. Ο παράγοντας ομαδοποίησης bfr ενός αρχείου είναι (το μέσο) πλήθος εγγραφών του αρχείου που αποθηκεύονται σε ένα μπλοκ. Ένα αρχείο μπορεί να έχει εγγραφές σταθερού μήκους ή μεταβλητού μήκους. Δίαβλος, Επιμ. Μ.Χατζόπουλος Διαφάνεια 13-34

Αρχεία Εγγραφών(συνεχ.) Οι εγγραφές των αρχείων μπορεί να είναι μη εκτεινόμενες ή εκτεινόμενες Μη εκτεινόμενες: καμιά εγγραφή δεν μπορεί να εκτείνεται σε δύο μπλοκ Εκτεινόμενες: μια εγγραφή μπορεί να αποθηκευθεί σε περισσότερα από ένα μπλοκ Τα φυσικά μπλοκ του δίσκου που διατίθενται για τις εγγραφές ενός αρχείου μπορεί να είναι συνεχόμενα, συνδεδεμένα, ή με ευρετήριο. Σε ένα αρχείο με σταθερού μεγέθους εγγραφές, όλες οι εγγραφές έχουν την ίδια μορφοποίηση. Συνήθως, για τέτοια αρχεία χρησιμοποιείται μη εκτεινόμενη ομαδοποίηση. Αρχεία με μεταβλητού μήκους εγγραφές απαιτούν την αποθήκευση επιπλέον πληροφοριών σε κάθε εγγραφή, όπως χαρακτήρες διαχωρισμού και τύποι πεδίων. Συνήθως, για τέτοια αρχεία χρησιμοποιείται εκτεινόμενη ομαδοποίηση. Δίαβλος, Επιμ. Μ.Χατζόπουλος Διαφάνεια 13-35

Δίαβλος, Επιμ. Μ.Χατζόπουλος Διαφάνεια 13-36

Δίαβλος, Επιμ. Μ.Χατζόπουλος Διαφάνεια 13-37

Δίαβλος, Επιμ. Μ.Χατζόπουλος Διαφάνεια 13-38

Δίαβλος, Επιμ. Μ.Χατζόπουλος Διαφάνεια 13-39

Οι εγγραφές τοποθετούνται σε block που είναι η μονάδα μεταφοράς δεδομένων Ομαδοποίηση bfr= B/R bfr: παράγοντας ομαδοποίησης Ένα αρχείο με r εγγραφές θα χρειασθεί: b= r/bfr blocks Εκτεινόμενη και μη εκτεινόμενη τοποθέτηση εγγραφών Δίαβλος, Επιμ. Μ.Χατζόπουλος Διαφάνεια 13-40

Τοποθέτηση εγγραφών σταθερού μήκους σε σελίδες Packed Unpacked Θέση 1 Θέση 2 Θέση Ν Ελεύθερος Χώρος Θέση 1 Θέση 2 Ν Θέση M 1 0 1M M 3 2 1 Πλήθος εγγραφών Επικεφαλίδα Σελίδας Πλήθος θέσεων Δίαβλος, Επιμ. Μ.Χατζόπουλος Διαφάνεια 13-41

Εγγραφές σταθερού μήκους Απλή προσέγγιση: Αποθήκευση της εγγραφής i ξεκινώντας από το byte n (i 1), όπου n είναι το μήκος κάθε εγγραφής. Η προσπέλαση είναι απλή αλλά μπορεί οι εγγραφές να εκτείνονται σε διαφορετικά blocks Τροποποίηση : να μην επιτρέπεται η έκταση σε διαφορετικά block Διαγραφή της εγγραφής i: εναλλακτικές: Μετατόπιση των εγγραφών i + 1,..., n στις i,..., n 1 Μεταφορά της εγγραφής n στην i Να μηνγίνει μετατόπιση, αλλά σύνδεση των ελεύθερων εγγραφών free list Δίαβλος, Επιμ. Μ.Χατζόπουλος Διαφάνεια 13-42

Διαγραφή της εγγραφής 3 με μεταφορά των άλλων Δίαβλος, Επιμ. Μ.Χατζόπουλος Διαφάνεια 13-43

Διαγραφή της εγγραφής 3 με μεταφορά της τελευταίας Δίαβλος, Επιμ. Μ.Χατζόπουλος Διαφάνεια 13-44

Ελεύθερες λίστες Αποθήκευση της διεύθυνσης της πρώτης διαγραμμένης εγγραφής στην επικεφαλίδα του αρχείου Χρήση αυτής της πρώτης εγγραφής για αποθήκευση της δεύτερης διαγραμμένης εγγραφής κοκ. Αυτές οι αποθηκευμένες διευθύνσεις μπορούν να θεωρηθούν σαν δείκτες σε θέσεις εγγραφών Πιο αποτελεσματική αναπαράσταση του χώρου : επαναχρησιμοποιήση του χώρου Δίαβλος, Επιμ. Μ.Χατζόπουλος Διαφάνεια 13-45

Εγγραφές Μεταβλητού Μεγέθους Οι εγγραφές μεταβλητού μεγέθους εμφανίζονται κατά διαφορετικούς τρόπους στα συστήματα βάσεων δεδομένων : Αποθήκευση πολλαπλών εγγραφών σε ένα αρχείο. Τύποι εγγραφών που επιτρέπουν μεταβλητό μήκος σε ένα ή περισσότερα πεδία όπως strings (varchar) Τύποι εγγραφών που επιτρέπουν επαναλαμβανόμενα πεδία (σε παλαιότερα μοντέλα). Τα πεδία αποθηκεύονται με τη σειρά Τα μεταβλητού μεγέθους με σταθερού μεγέθους πεδία (θέση, μήκος), με τα πραγματικά δεδομένα μετά από τα σταθερού μήκους Δίαβλος, Επιμ. Μ.Χατζόπουλος Διαφάνεια 13-46

Τοποθέτηση εγγραφών μεταβλητού μήκους σε σελίδες Δείκτης στον ελεύθερο χώρο Περιοχή Δεδομένων Σελίδα i rid=(i,n) rid=(i,2) rid=(i,1) Μήκος 20 ΕΛΕΥΘΕΡΟΣ ΧΩΡΟΣ 20 16 24 Ν Ν 2 1 Ευρετήριο θέσεων Πλήθος θέσεων του ευρετηρίου Δίαβλος, Επιμ. Μ.Χατζόπουλος Διαφάνεια 13-47

Τοποθέτηση πεδίων σταθερού μήκους σε εγγραφές F1 F2 F3 F4 L1 L2 L3 L4 Βασική Διεύθυνση (Β) Διεύθυνση=B+L1+L2 Δίαβλος, Επιμ. Μ.Χατζόπουλος Διαφάνεια 13-48

Τοποθέτηση πεδίων μεταβλητού μήκους σε εγγραφές F1 $ F2 $ F3 $ F4 $ F1 F2 F3 F4 Δίαβλος, Επιμ. Μ.Χατζόπουλος Διαφάνεια 13-49

Πράξεις σε αρχεία Οι τυπικές πράξεις στα αρχεία περιλαμβάνουν: OPEN: Ετοιμάζει το αρχείο για προσπέλαση, και δημιουργεί ένα δείκτη που αναφέρεται σε μια τρέχουσα του αρχείου κάθε χρονική στιγμή. FIND: Αναζητεί την πρώτη εγγραφή ενός αρχείου που ικανοποιεί μια συνθήκη, και την καθιστά τρέχουσα εγγραφή του αρχείου. FINDNEXT: Αναζητεί την επόμενη εγγραφή του αρχείου (από την τρέχουσα) που ικανοποιεί κάποια συνθήκη, και την καθιστά τρέχουσα εγγραφή του αρχείου. READ: Αντιγράφει την τρέχουσα εγγραφή του αρχείου σε μια μεταβλητή του προγράμματος. INSERT: Εισάγει μια νέα εγγραφή στο αρχείο & και την καθιστά τρέχουσα. DELETE: Διαγράφει την τρέχουσα εγγραφή από το αρχείο, συνήθως σημαδεύοντας την εγγραφή για να δείξει ότι δεν ισχύει πλέον. MODIFY: Τροποποιεί τις τιμές κάποιων πεδίων της τρέχουσας εγγραφής. CLOSE: Τερματίζει την προσπέλαση στο αρχείο. REORGANIZE: Αναδιοργανώνει τις εγγραφές του αρχείου. Για παράδειγμα, διαγράφονται φυσικά από το αρχείο οι εγγραφές που έχουν σημαδευτεί σαν διαγραμμένες ή δημιουργείται μια νέα οργάνωση των εγγραφών του αρχείου. READ_ORDERED: Διάβασε τα μπλοκ του αρχείου με σειρά τιμής συγκεκριμένου πεδίου. Δίαβλος, Επιμ. Μ.Χατζόπουλος Διαφάνεια 13-50

Οργάνωση Εγγραφών σε Αρχεία Σωρός (Heap) μια εγγραφή μπορεί να τοποθετηθεί οπουδήποτε υπάρχει χώρος σε ένα αρχείο Σειριακά (Sequential) αποθηκεύουν εγγραφές με μια διάταξη, που βασίζεται στην τιμή του κλειδιού αναζήτησης Κατακερματισμός (Hashing) υπολογίζεται μια συνάρτηση κατακερματισμού (hash function) σε κάποιο πεδίο κάθε εγγραφής. Το αποτέλεσμα προσδιορίζει σε ποιο block του αρχείου θα τοποθετηθεί η εγγραφή Στις σχεσιακές βάσεις δεδομένων όπως θα δούμε εγγραφές από διαφορετικές σχέσεις μπορεί να αποθηκεύονται στο ίδιο αρχείο Κίνητρο: τοποθέτηση των εγγραφών που σχετίζονται στο ίδιο block για ελαχιστοποίηση των πράξεων ανάγνωσης/γραψίματος Δίαβλος, Επιμ. Μ.Χατζόπουλος Διαφάνεια 13-51

Μη Ταξινομημένα Αρχεία Ονομάζονται επίσης αρχεία σωρού (heap ή pile). Οι νέες εγγραφές προστίθενται στο τέλος του αρχείου. Για την αναζήτηση μιας εγγραφής είναι απαραίτητη μια γραμμική αναζήτηση των εγγραφών του αρχείου. Αυτό κατά μέσο όρο απαιτεί διάβασμα και αναζήτηση των μισών μπλοκ του αρχείου, και επομένως έχει μεγάλο κόστος. Η εισαγωγή εγγραφών είναι πολύ αποτελεσματική. Η ανάγνωση των εγγραφών με συγκεκριμένη σειρά κάποιου πεδίου απαιτεί ταξινόμηση του αρχείου Δίαβλος, Επιμ. Μ.Χατζόπουλος Διαφάνεια 13-52

Ταξινομημένα Αρχεία Λέγονται και σειριακά αρχεία. Οι εγγραφές στο αρχείο ταξινομημένες με βάση την τιμή ενός πεδίου διάταξης. Η εισαγωγή είναι ακριβή: οι εγγραφές πρέπει να εισαχθούν στη σωστή σειρά. Για βελτίωση της απόδοσης της εισαγωγής συνηθίζεται να υπάρχει ένα μη ταξινομημένο αρχείο για τις νέες εγγραφές, αρχείο υπερχείλισης ή δοσοληψιών (overflow ή transaction) αυτό περιοδικά συγχωνεύεται με το κυρίως ταξινομημένο αρχείο. Για αναζήτηση μιας εγγραφής με τιμή του πεδίου διάταξης μπορεί να χρησιμοποιηθεί δυαδική αναζήτηση. Αυτό απαιτεί, κατά μέσο όρο, ανάγνωση και αναζήτηση log 2 των μπλοκ του αρχείου, μια βελτίωση σε σχέση με τη γραμμική αναζήτηση. Η ανάγνωση των εγγραφών με την σειρά του πεδίου διάταξης είναι πολύ αποτελεσματική. Δίαβλος, Επιμ. Μ.Χατζόπουλος Διαφάνεια 13-53

Σειριακή Οργάνωση Αρχείων Κατάλληλη για εφαρμογές που απαιτούν σειριακή προσπέλαση ολόκληρου του αρχείου Οι εγγραφές είναι ταξινομημένες με βάση κάποιο κλειδί αναζήτησης Δίαβλος, Επιμ. Μ.Χατζόπουλος Διαφάνεια 13-54

Σειριακή Οργάνωση Αρχείων (συν.) Διαγραφή χρήση συνδεδεμένης λίστας Εισαγωγή εντοπισμός της θέσης που θα εισαχθεί η εγγραφή αν υπάρχει ελεύθερη θέση εισάγεται εκεί αν δεν υπάρχει ελεύθερος χώρος, η εγγραφή εισάγεται σε ένα overflow block Σε οποιαδήποτε περίπτωση, πρέπει να ενημερωθεί η συνδεδεμένη λίστα Απαιτείται αναδιοργάνωση του αρχείου κατά καιρούς για να αποκατασταθεί η σειριακή διάταξη Δίαβλος, Επιμ. Μ.Χατζόπουλος Διαφάνεια 13-55

Άτυποι Ορισμοί Κλειδί μιας Σχέσης: Κάθε γραμμή έχει μια τιμή ενός δεδομένου (ή συνόλου δεδομένων) που προσδιορίζει μοναδικά αυτή τη γραμμή στον πίνακα Ονομάζεται το κλειδί Στον πίνακα ΦΟΙΤΗΤΗΣ, το ΑρΤαυτ είναι το κλειδί Μερικές φορές σαν κλειδιά εμφανίζονται ο αριθμός γραμμής ή συνεχόμενοι αριθμοί για το προσδιορισμό των κλειδιών ενός πίνακα. Ονομάζεται τεχνητό κλειδί ή υποκατάστατο κλειδί Δίαβλος, Επιμ. Μ.Χατζόπουλος Διαφάνεια13-5- 56

Περιορισμοί Κλειδιού Υπερκλειδί της R: Είναι ένα σύνολο γνωρισμάτων SK της R με την παρακάτω συνθήκη: Δεν υπάρχουν δυο πλειάδες σε οποιαδήποτε κατάσταση σχέσης r(r) που να έχουν την ίδια τιμή SK Δηλαδή, για οποιεσδήποτε διακριτές πλειάδες t1 και t2 στην r(r), t1[sk] t2[sk] Η συνθήκη αυτή πρέπει να ισχύσει σε κάθε έγκυρη κατάσταση r(r) Κλειδί της R: Ένα ελάχιστο" υπερκλειδί Δηλαδή, ένα κλειδί είναι ένα υπερκλειδί K έτσι που η αποκοπή οποιουδήποτε γνωρίσματος από το K έχει σαν αποτέλεσμα ένα σύνολο γνωρισμάτων που δεν είναι υπερκλειδί (δεν έχει την ιδιότητα της μοναδικότητας του υπερκλειδιού) Δίαβλος, Επιμ. Μ.Χατζόπουλος Διαφάνεια13-5- 57

Περιορισμοί Κλειδιού (συνέχεια) ΠΑράδειγμα: Έστω το σχήμα σχέσης ΑΥΤΟΚΙΝΗΤΟ: ΑΥΤΟΚΙΝΗΤΟ(ΑρΚυκλοφοριας,ΑρΠλαισιου, Κατασκευαστης, Μοντελο, Ετος) Η ΑΥΤΟΚΙΝΗΤΟ έχει δύο κλειδιά: Key1 = {ΑρΚυκλοφοριας} Key2 = {ΑρΠλαισιου} Και τα δύο είναι υπερκλειδιά της ΑΥΤΟΚΙΝΗΤΟ Το {ΑρΠλαισιου, Κατασκευαστής} είναι υπερκλειδί αλλά δεν είναι ένα κλειδί. Γενικά: Κάθε κλειδί είναι ένα υπερκλειδί (αλλά δεν ισχύει το αντίστροφο) Κάθε σύνολο γνωρισμάτων που περιλαμβάνει ένα κλειδί είναι ένα υπερκλειδί Ένα ελάχιστο είναι και κλειδί Δίαβλος, Επιμ. Μ.Χατζόπουλος Διαφάνεια13-5- 58

Περιορισμοί Κλειδιού (συνέχεια) Αν μια σχέση έχει πολλά υποψήφια κλειδιά, επιλέγεται αυθαίρετα ένα σαν πρωτεύον κλειδί. Τα γνωρίσματα του πρωτεύοντος κλειδιού είναι υπογραμμισμένα. Παράδειγμα: Έστω το σχήμα σχέσης ΑΥΤΟΚΙΝΗΤΟ : ΑΥΤΟΚΙΝΗΤΟ(ΑρΚυκλοφοριας,ΑρΠλαισιου, Κατασκευαστης, Μοντελο, Ετος) Επιλέγουμε το ΑρΠλαισιου σαν πρωτεύον κλειδί Η τιμή του πρωτεύοντος κλειδιού χρησιμοποιείται για να προσδιορίζεται μοναδικά identify κάθε πλειάδα της σχέσης Δίνει μια ταυτότητα στην πλειάδα Χρησιμοποιείται επίσης για αναφορά στην πλειάδα από άλλη πλειάδα Γενικός κανόνας: Επιλέξτε σαν πρωτεύον κλειδί το μικρότερο από τα υποψήφια κλειδιά (σε σχέση με το μέγεθος) Δεν εφαρμόζεται πάντα η επιλογή μερικές φορές είναι υποκειμενική Δίαβλος, Επιμ. Μ.Χατζόπουλος Διαφάνεια 13-59

Ταξινομημένα Αρχεία(συν.) Δίαβλος, Επιμ. Μ.Χατζόπουλος Διαφάνεια 13-60

Μέσοι χρόνοι προσπέλασης Ο παρακάτω πίνακας δείχνει το μέσο χρόνο προσπέλασης μιας εγγραφής για ένα τύπο αρχείου ΠΙΝΑΚΑΣ 13.2 ΜΕΣΟΣ ΧΡΟΝΟΣ ΠΡΟΣΠΕΛΑΣΗΣ ΓΙΑ ΒΑΣΙΚΕ ΟΡΓΑΝΩΣΕΙΣ ΑΡΧΕΙΩΝ ΤΥΠΟΣ ΟΡΓΑΝΩΣΗΣ Σωρός διάταξη) (Χωρίς ΜΕΘΟΔΟΣ ΠΡΟΣΠΕΛΑΣΗΣ/ ΑΝΑΖΗΤΗΣΗΣ Γραμμική Σάρωση (Γραμμική Αναζήτηση) ΜΕΣΟΣ ΧΡΟΝΟΣ ΠΡΟΣΠΕΛΑΣΗΣ ΜΙΑΣ ΕΓΓΡΑΦΗΣ b/2 Διατεταγμένο Γραμμική Σάρωση b/2 Διατεταγμένο Δυαδική Αναζήτηση log 2 b Δίαβλος, Επιμ. Μ.Χατζόπουλος Διαφάνεια 13-61

Αρχεία Κατακερματισμού Ο κατακερματισμός για αρχεία στο δίσκο ονομάζεται Εξωτερικός Κατακερματισμός Τα μπλοκ του αρχείου χωρίζονται σε M ίσου μεγέθους κάδους, αριθμημένους κάδος 0, κάδος 1,..., κάδος M-1. Τυπικά, ένας κάδος αντιστοιχεί σε ένα (ή καθορισμένο πλήθος) μπλοκ δίσκου. Ένα από τα πεδία του αρχείου καθορίζεται να είναι το κλειδί κατακερματισμού του αρχείου. Η εγγραφή με κλειδί κατακερματισμού K αποθηκεύεται στον κάδο i, όπου i=h(k), και h είναι η συνάρτηση κατακερματισμού. Η αναζήτηση στο κλειδί κατακερματισμού είναι πολύ αποδοτική. Συμβαίνουν συγκρούσεις όταν μια νέα εγγραφή απεικονίζεται σε ένα κάδο που είναι ήδη γεμάτος. Για αποθήκευση τέτοιων εγγραφών υπάρχει ένα αρχείο υπερχείλισης. Οι εγγραφές υπερχείλισης κάθε κάδου μπορούν να συνδεθούν. Δίαβλος, Επιμ. Μ.Χατζόπουλος Διαφάνεια 13-62

Με χρήση μιας συνάρτησης που ονομάζεται συνάρτηση απεικόνισης ή συνάρτηση κατακερματισμού (hash function) απεικονίζεται η τιμή ενός πεδίου στο χώρο των διευθύνσεων: h(k) A Δίαβλος, Επιμ. Μ.Χατζόπουλος Διαφάνεια 13-63

O στόχος μιας καλής συνάρτησης κατακερματισμού είναι να κατανέμει τις εγγραφές ομοιόμορφα στο χώρο διευθύνσεων ώστε να ελαχιστοποιούνται οι συγκρούσεις χωρίς να μένουν πολλές αχρησιμοποίητες θέσεις. H προσομοίωση αλλά και οι αναλυτικές μέθοδοι έχουν δείξει ότι συνήθως είναι καλύτερα να διατηρείται ένας πίνακας κατακερματισμού γεμάτος σε ποσοστό 70% ως 90%, έτσι ώστε το πλήθος των συγκρούσεων να παραμένει μικρό και να μην σπαταλάμε πάρα πολύ χώρος. Eπομένως, αν περιμένουμε ότι θα πρέπει να αποθηκεύσουμε r εγγραφές στον πίνακα, πρέπει να επιλέξουμε M θέσεις για τον χώρο διευθύνσεων έτσι ώστε το (r/m) να βρίσκεται μεταξύ 0.7 και 0.9. Mπορεί επίσης να είναι χρήσιμο να επιλεγεί ως M ένας πρώτος αριθμός, καθώς έχει δειχθεί ότι αυτό κατανέμει καλύτερα τις διευθύνσεις κατακερματισμού στο χώρο των διευθύνσεων όταν χρησιμοποιείται ως συνάρτηση κατακερματισμού η mod. Δίαβλος, Επιμ. Μ.Χατζόπουλος Διαφάνεια 13-64

Συναρτήσεις Κατακερματισμού Η χειρότερη συνάρτηση κατακερματισμού απεικονίζει όλες τις τιμές του κλειδιού αναζήτησης στην ίδια διεύθυνση. Έτσι ο χρόνος προσπέλασης είναι ανάλογος του πλήθους των τιμών του κλειδιού αναζήτησης. Μια ιδανική συνάρτηση κατακερματισμού είναι ομοιόμορφη, δηλαδή., σε κάθε διεύθυνση απεικονίζεται το ίδιο πλήθος τιμών του κλειδιού αναζήτησης από όλες τις πιθανές τιμές. Η ιδανική συνάρτηση κατακερματισμού είναι τυχαία, έτσι σε κάθε διεύθυνση απεικονίζεται το ίδιο πλήθος εγγραφών ανεξάρτητα από την πραγματική κατανομή of των τιμών του κλειδιού αναζήτησης στο αρχείο. Οι συνήθεις συναρτήσεις κατακερματισμού εκτελούν υπολογισμούς στην εσωτερική δυαδική αναπαράσταση του κλειδιού αναζήτησης. Για παράδειγμα, για ένα κλειδί αναζήτησης string, θα μπορούσαν να προστεθούν οι δυαδικές αναπαραστάσεις όλων των χαρακτήρων του και να υπολογισθεί η διεύθυνση σαν το υπόλοιπο της διαίρεσης με το πλήθος των θέσεων. Δίαβλος, Επιμ. Μ.Χατζόπουλος Διαφάνεια 13-65

Σύγκρουση Mια σύγκρουση (collision) συμβαίνει όταν η τιμή του πεδίου κατακερματισμού μιας νέας εγγραφής που εισάγεται κατακερματίζεται σε μια διεύθυνση που ήδη περιέχει μια διαφορετική εγγραφή. Στην περίπτωση αυτή πρέπει να εισάγουμε τη νέα εγγραφή σε μια άλλη θέση, αφού η διεύθυνση κατακερματισμού της είναι κατειλημμένη. (αυτά τα στοιχεία λέγονται συνώνυμα) Ο κατακερματισμός γενικά δεν διατηρεί την διάταξη. Δίαβλος, Επιμ. Μ.Χατζόπουλος Διαφάνεια 13-66

Αντιμετώπιση των Συγκρούσεων Υπερχείλιση κάδου μπορεί να συμβεί λόγω Μικρός αριθμός κάδων Κακή κατανομή εγγραφών. Μπορεί να συμβεί για δύο λόγους: Πολλές εγγραφές με την ίδια τιμή κλειδιού αναζήτησης Κακή κατά νομή των τιμών του κλειδιού από την συνάρτηση κατακερματισμού Αν και η πιθανότητα υπερχείλισης μπορεί να ελαττωθεί δεν μπορεί να εξαλείφει, αντιμετωπίζεται με κάδους υπερχείλισης. Δίαβλος, Επιμ. Μ.Χατζόπουλος Διαφάνεια 13-67

Αντιμετώπιση των Συγκρούσεων (συν.) Αλυσίδωση Υπερχείλισης οι κάδοι υπερχείλισης συνδέονται σε μια συνδεδεμένη λίστα. Αυτό το σχήμα λέγεται κλειστός κατακερματισμός. Εναλλακτικά χρησιμοποιείται, σχήμα ανοικτού κατακερματισμού, που δεν χρησιμοποιεί κάδους υπερχείλισης, δεν είναι όμως κατάλληλο για εφαρμογές βάσεων δεδομένων. Δίαβλος, Επιμ. Μ.Χατζόπουλος Διαφάνεια 13-68

Αρχεία Κατακερματισμού Υπάρχουν διάφοροι μέθοδοι επίλυσης των συγκρούσεων, συμπεριλαμβανομένων των: Ανοικτή διεθυνσιοδότηση: Ξεκινώντας από την κατειλημμένη θέση που προσδιορίζεται από τη διεύθυνση κατακερματισμού, το πρόγραμμα ελέγχει τις διαδοχικές θέσεις στη σειρά μέχρι να βρεθεί μια αχρησιμοποίητη (κενή) θέση. Αλυσιδωτή σύνδεση: Για τη μέθοδο αυτή διατηρούμε περιοχές θέσεων υπερχείλισης, συνήθως επεκτείνοντας τον πίνακα με έναν αριθμό θέσεων υπερχείλισης. Eπιπλέον, σε κάθε θέση εγγραφής προστίθεται ένα πεδίο δείκτη. Mια σύγκρουση επιλύεται τοποθετώντας τη νέα εγγραφή σε μια αχρησιμοποίητη θέση υπερχείλισης και θέτοντας ως τιμή του δείκτη της κατειλημμένης θέσης κατακερματισμού τη διεύθυνση αυτής της θέσης υπερχείλισης. Πολλαπλός κατακερματισμός: το πρόγραμμα εφαρμόζει μια δεύτερη συνάρτηση κατακερματισμού αν η πρώτη οδηγεί σε σύγκρουση. Aν συμβεί πάλι σύγκρουση το πρόγραμμα χρησιμοποιεί ανοικτή διευθυνσιοδότηση ή εφαρμόζει μια τρίτη συνάρτηση κατακερματισμού και στη συνέχεια χρησιμοποιεί ανοικτή διευθυνσιοδότηση αν είναι απαραίτητο. Δίαβλος, Επιμ. Μ.Χατζόπουλος Διαφάνεια 13-69

Αρχεία Κατακερματισμού(συν.) Δίαβλος, Επιμ. Μ.Χατζόπουλος Διαφάνεια 13-70

Αρχεία Κατακερματισμού(συν.) Για ελάττωση των εγγραφών υπερχείλισης, τυπικά ένα αρχείο κατακερματισμού διατηρείται hash κατά 70-80% γεμάτο. Η συνάρτηση κατακερματισμού h θα πρέπει να κατανέμει ομοιόμορφα τις εγγραφές στους κάδους Διαφορετικά, θα αυξάνει ο χρόνος αναζήτησης επειδή θα υπάρχουν πολλές εγγραφές υπερχείλισης. Τα βασικά μειονεκτήματα του στατικού εξωτερικού κατακερματισμού: Ο προκαθορισμένος αριθμός κάδων M είναι πρόβλημα αν το πλήθος των εγγραφών μεγαλώνει ή συρρικνώνεται. Προσπέλαση με βάση τη διάταξη στο κλειδί κατακερματισμού είναι μη αποτελεσματική (απαιτεί ταξινόμηση των εγγραφών). Δίαβλος, Επιμ. Μ.Χατζόπουλος Διαφάνεια 13-71

Αρχεία Κατακερματισμού - Διαχείριση Υπερχείλισης Δίαβλος, Επιμ. Μ.Χατζόπουλος Διαφάνεια 13-72

Εξωτερικός Κατακερματισμός 0 1 Διεύθυνση Μπλοκ στο δίσκο Μ-2 Μ-1 Κάδος Δίαβλος, Επιμ. Μ.Χατζόπουλος Διαφάνεια 13-73

Στατικός Εξωτερικός Κατακερματισμός κλειδί h 0 1 M-1 Δίαβλος, Επιμ. Μ.Χατζόπουλος Διαφάνεια 13-74

Αρχεία Κατακερματισμού Ανοικτή διεθυνσιοδότηση 0 1 2 3 M-2 M-1 Μ Μ+1 Μ+2.. -1 Μ -1 Μ+2-1 -1 Μ+ 1-1 Μ+5-1 -1-1 Χώρος Διευθύνσεων Χώρος Υπερχείλιση Δίαβλος, Επιμ. Μ.Χατζόπουλος Διαφάνεια 13-75

κάδος 0 Κύριοι κάδοι Κάδοι υπερχείλισης null δείκτης κάδος 1 null δείκτης κάδος Μ-1 null δείκτης Δίαβλος, Επιμ. Μ.Χατζόπουλος Διαφάνεια 13-76

Ευρετήρια Κατακερματισμού Ο κατακερματισμός μπορεί να χρησιμοποιηθεί όχι μόνο σαν οργάνωση αρχείου, αλλά και σαν δομή ευρετηρίου. Ένα ευρετήριο κατακερματισμού οργανώνει τα κλειδιά αναζήτησης, με αντίστοιχους δείκτες στις εγγραφές, σαν μια δομή αρχείου κατακερματισμού. Με την έννοια αυτή, τα ευρετήρια κατακερματισμού είναι πάντα δευτερεύοντα ευρετήρια Αν ένα αρχείο έχει οργανωθεί με κατακερματισμό, δεν χρειάζεται άλλο πρωτεύον ευρετήριο κατακερματισμού στην ίδια τιμή κλειδιού. Όμως, χρησιμοποιούμε τον όρο ευρετήριο κατακερματισμού για να αναφερθούμε και σε ευρετήριο κατακερματισμού και σε οργανώσεις αρχείων κατακερματισμού. Δίαβλος, Επιμ. Μ.Χατζόπουλος Διαφάνεια 13-77

Παράδειγμα Ευρετηρίου Κατακερματισμού Δίαβλος, Επιμ. Μ.Χατζόπουλος Διαφάνεια 13-78

Μειονεκτήματα Στατικού Κατακερματισμού Στο στατικό κατακερματισμό, η συνάρτηση h απεικονίζει τις τιμές του κλειδιού αναζήτησης σε ένα σταθερό σύνολο από B κάδους διευθύνσεις. Όμως οι βάσεις δεδομένων εκτείνονται και συρρικνώνονται δυναμικά στο χρόνο. Αν το αρχικό πλήθος των κάδων είναι πολύ μικρό, και το αρχείο μεγαλώνει, η απόδοση θα πέσει λόγω της μεγάλης υπερχείλισης. Αν πάρει χώρο που να καλύπτει την πιθανή επέκταση, ένα σημαντικό μέρος του χώρου θα είναι αρχικά άχρηστο και οι κάδοι θα είναι άδειοι. Αν η βάση συρρικνωθεί πάλι θα υπάρχει άχρηστος χώρος. Μια λύση: περιοδική αναδιοργάνωση του αρχείου με νέα συνάρτηση κατακερματισμού Ακριβή, διακόπτει τις κανονικές λειτουργίες Καλύτερη λύση: δυναμική τροποποίηση του πλήθους των κάδων. Δίαβλος, Επιμ. Μ.Χατζόπουλος Διαφάνεια 13-79

Το σχήμα αυτό ονομάζεται στατικός κατακερματισμός επειδή διατίθεται ένας σταθερός αριθμός από κάδους M. Αυτό μπορεί να είναι σοβαρό μειονέκτημα για δυναμικά αρχεία. Αν διαθέτουμε M κάδους για το χώρο διευθύνσεων και εστω ότι m είναι το μέγιστο πλήθος εγγραφών που χωρούν σε έναν κάδο τότε, το πολύ (m*m) εγγραφές θα χωρούν στο χώρο που διατέθηκε. Αν τελικά το πλήθος των εγγραφών είναι σημαντικά μικρότερο από (m*m), τότε έχουμε πολύ αχρησιμοποίητο χώρο. Από την άλλη πλευρά, αν το πλήθος των εγγραφών μεγαλώσει πολύ περισσότερο από (m*m), θα προκληθούν πολλές συγκρούσεις και η ανάκτηση θα επιβραδυνθεί λόγω της εμφάνισης μεγάλων λιστών από εγγραφές υπερχείλισης. Δίαβλος, Επιμ. Μ.Χατζόπουλος Διαφάνεια 13-80

Δυναμικά και επεκτεινόμενα αρχεία κατακερματισμού Τεχνικές Δυναμικού και Επεκτατού Κατακερματισμού Οι τεχνικές κατακερματισμού προσαρμόζονται για να υποστηρίζουν δυναμική επέκταση και συρρίκνωση του πλήθους των εγγραφών. Οι τεχνικές αυτές περιλαμβάνουν τις παρακάτω: δυναμικός κατακερματισμός, επεκτατός κατακερματισμός, και γραμμικός κατακερματισμός. Τόσο ο δυναμικός όσο και ο επεκτατός κατακερματισμός χρησιμοποιούν την δυαδική παράσταση της τιμής κατακερματισμού h(k) για προσπέλαση σε ένα ευρετήριο. Στο δυναμικό κατακερματισμό το ευρετήριο είναι ένα δυαδικό δένδρο. Στον επεκτατό κατακερματισμό το ευρετήριο είναι ένας πίνακας μεγέθους 2 d όπου το d ονομάζεται το ολικό βάθος. Δίαβλος, Επιμ. Μ.Χατζόπουλος Διαφάνεια 13-81

Δυναμικά και επεκτεινόμενα αρχεία κατακερματισμού(συν.) Τα ευρετήρια μπορούν να αποθηκευθούν στο δίσκο, επεκτείνονται ή συρρικνώνονται δυναμικά. Οι καταχωρήσεις ευρετηρίου δείχνουν σε μπλοκ δίσκου που περιέχουν τις αποθηκευμένες εγγραφές. Μια εισαγωγή σε γεμάτο μπλοκ δίσκου προκαλεί διάσπαση του μπλοκ σε δύο και οι εγγραφές αναδιανέμονται μεταξύ των δύο μπλοκ. Γίνεται κατάλληλη ενημέρωση του ευρετηρίου. Ο δυναμικός και ο επεκτατός κατακερματισμός δεν χρειάζονται περιοχή υπερχείλισης. Ο γραμμικός κατακερματισμός χρειάζεται περιοχή υπερχείλισης αλλά δεν χρειάζεται και ευρετήριο. Τα μπλοκ διασπώνται με γραμμική σειρά όπως επεκτείνεται το αρχείο. Δίαβλος, Επιμ. Μ.Χατζόπουλος Διαφάνεια 13-82

Δυναμικός Κατακερματισμός (συν.) Καλός για βάσεις δεδομένων που αυξάνονται και συρρικνώνονται Υποστηρίζει δυναμική τροποποίηση της συνάρτησης κατακερματισμού Επεκτατός Κατακερματισμός μια μορφή δυναμικού κατακερματισμού Η συνάρτηση κατακερματισμού δημιουργεί τιμές σε ένα ευρύ πεδίο τυπικά ακέραιους b-bit, με b = 32. Οποιαδήποτε στιγμή χρησιμοποιούμε μόνο ένα πρόθεμα της συνάρτησης κατακερματισμού σαν ευρετήριο σε ένα πίνακα με διευθύνσεις κάδων Έστω ότι το μήκος του προθέματος είναι i bits, 0 i 32. Το μέγεθος του πίνακα διευθύνσεων κάδων είναι = 2 i. αρχικά i = 0 Η τιμή του i αυξάνει και μειώνεται όπως μεγαλώνει και μειώνεται η βάση δεδομένων. Πολλές καταχωρήσεις στον πίνακα διευθύνσεων κάδων δείχνουν σε ένα κάδο (γιατί?) Επομένως, το πραγματικό πλήθος των κάδων είναι < 2 i Επίσης το πλήθος των κάδων μεταβάλλεται δυναμικά λόγω συγχωνεύσεων και διασπάσεων των κάδων. Δίαβλος, Επιμ. Μ.Χατζόπουλος Διαφάνεια 13-83

Γενικά επεκτατός κατακερματισμός Στη δομή αυτή, i 2 = i 3 = i, όπου i 1 = i 1 Δίαβλος, Επιμ. Μ.Χατζόπουλος Διαφάνεια 13-84

Χρήση του επεκτατού κατακερματισμού Κάθε κάδος j αποθηκεύει μια τιμή i j Όλες οι καταχωρήσεις που δείχνουν στον ίδιο κάδο έχουν τις ίδιες τιμές στα πρώτα i j bits. Για να βρούμε τον κάδο που περιέχει το κλειδί αναζήτησης K j : 1. Υπολογίζουμε την h(k j ) = X 2. Χρησιμοποιούμε τα πρώτα i (ψηλότερα) bits του X σαν θέση στον πίνακα διευθύνσεων κάδων, και ακολουθούμε τον δείκτη στον κατάλληλο κάδο Για εισαγωγή μιας εγγραφής με τιμή κλειδιού αναζήτησης K j ακολουθείται η ίδια διαδικασία σαν αναζήτηση και εντοπισμό του κάδου, έστω j. Αν υπάρχει χώρος στον κάδο j εισάγεται η εγγραφή. Διαφορετικά πρέπει να διαχωρισθεί ο κάδος και να επιχειρηθεί πάλι εισαγωγή Σε μερικές περιπτώσεις χρησιμοποιούνται έναντι κάδοι υπερχείλισης Δίαβλος, Επιμ. Μ.Χατζόπουλος Διαφάνεια 13-85

Εισαγωγή σε επεκτατό κατακερματισμό διάσπαση ενός κάδου j όταν εισάγεται μια εγγραφή με κλειδί αναζήτησης K j : Αν i > i j (περισσότεροι από ένας δείκτες στον κάδο j) Εντοπισμός ενός νέου κάδου z, και θέσε i j = i z = (i j + 1) Ενημέρωση των καταχωρήσεων του δεύτερου μισού του πίνακα διευθύνσεων κάδων που αρχικά έδειχναν j, να δείχνουν z Ανακατανομή των εγγραφών που είναι στον j κατάλληλα (στον j ή τον z) Υπολογίζεται ξανά ο νέος κάδος για το K j και εισάγεται η εγγραφή στον κάδο (αν ο κάδος εξακολουθεί να είναι γεμάτος θα χρειασθεί περεταίρω διάσπαση) αν i = i j (μόνο ένας δείκτης στον κάδο j) Αν το i πιάσει κάποιο όριο b, ή έχουν συμβεί πολλές διασπάσεις σε αυτήν την εισαγωγή, δημιούργησε ένα κάδο υπερχείλισης Διαφορετικά Αύξησε το i aκαι διπλασίασε το μέγεθος του πίνακα διευθύνσεων κάδων. Αντικατέστησε κάθε καταχώρηση στον πίνακα με δύο καταχωρήσεις που δείχνουν τον ίδιο κάδο. Υπολογισμός τη νέα διεύθυνση στον πίνακα κάδων για K j τώρα i > i j οπότε χρησιμοποιείται η πρώτη περίπτωση παραπάνω. Δίαβλος, Επιμ. Μ.Χατζόπουλος Διαφάνεια 13-86

Διαγραφή σε επεκτατό κατακερματισμό Για διαγραφή μιας εγγραφής, Εντοπισμός του κάδου και διαγραφή της εγγραφής. Αν ο κάδος μείνει κενός μπορεί να διαγραφεί (με τις κατάλληλες ενημερώσεις στον πίνακα διευθύνσεων κάδων). Μπορεί να γίνει συνένωση κάδων (μπορεί να συνενωθεί μόνο με ένα συντροφικό κάδο ίδια τιμή προθέματος σε i j θέσεις και i j 1 θέσεις, αν υπάρχει) Αν είναι δυνατή μείωση του μεγέθους του πίνακα διευθύνσεων κάδων Σημείωση: η μείωση του μεγέθους του πίνακα διευθύνσεων κάδων είναι μια ακριβή πράξη και πρέπει να γίνεται μόνο αν το πλήθος των κάδων γίνει πολύ μικρότερο από το μέγςθος του πίνακα Δίαβλος, Επιμ. Μ.Χατζόπουλος Διαφάνεια 13-87

Παράδειγμα δομής κατακερματισμού Δίαβλος, Επιμ. Μ.Χατζόπουλος Διαφάνεια 13-88

Παράδειγμα Αρχική δομή του κατακερματισμού μέγεθος κάδου = 2 Δίαβλος, Επιμ. Μ.Χατζόπουλος Διαφάνεια 13-89

Παράδειγμα (συν.) Μετά από εισαγωγή των Mozart, Srinivasan, και Wu Δίαβλος, Επιμ. Μ.Χατζόπουλος Διαφάνεια 13-90

Παράδειγμα (συν). Μετά την εισαγωγή του Einstein Δίαβλος, Επιμ. Μ.Χατζόπουλος Διαφάνεια 13-91

Παράδειγμα (συν). μετά την εισαγωγή των Gold και El Said Δίαβλος, Επιμ. Μ.Χατζόπουλος Διαφάνεια 13-92

Παράδειγμα (συν). Μετά την εισαγωγή του Katz Δίαβλος, Επιμ. Μ.Χατζόπουλος Διαφάνεια 13-93

Παράδειγμα (συν). Μετά την εισαγωγή ένδεκα εγγραφών Δίαβλος, Επιμ. Μ.Χατζόπουλος Διαφάνεια 13-94

Παράδειγμα (συν). Μετά την εισαγωγή του της εγγραφής Kim στην προηγούμενη δομή Δίαβλος, Επιμ. Μ.Χατζόπουλος Διαφάνεια 13-95

Επεκτατός κατακερματισμός Δίαβλος, Επιμ. Μ.Χατζόπουλος Διαφάνεια 13-96

00 01 10 11 Κάδοι Δεδομένων Βάθος 2 Δίαβλος, Επιμ. Μ.Χατζόπουλος Διαφάνεια 13-97

Η επέκταση γίνεται εκθετικά μόνο στο ευρετήριο 000 001 010 011 100 101 110 Αυτός είναι ο κάδος που προστέθηκε 111 Βάθος 3 Δίαβλος, Επιμ. Μ.Χατζόπουλος Διαφάνεια 13-98

Γραμμικός Κατακερματισμός Ο γραμμικός κατακερματισμός είναι μια τεχνική που προσαρμόζεται με επιτυχία σε εισαγωγές και διαγραφές. H ιδέα στην οποία βασίζεται ο γραμμικός κατακερματισμός είναι να επιτρέπουμε σε ένα αρχείο κατακερματισμού να επεκτείνει ή να συρρικνώνει τους κάδους του δυναμικά χωρίς να χρειάζεται κάποιον κατάλογο. Με την μέθοδο αυτή υπάρχει μια ακολουθία συναρτήσεων κατακερματισμού h 0, h 1, h 2,.. με την ιδιότητα το πεδίο τιμών καθεμιάς να είναι διπλάσιο από αυτό της προηγουμένης της. Δίαβλος, Επιμ. Μ.Χατζόπουλος Διαφάνεια 13-99

h i (τιμή)=h(τιμή) mod (2 i N) Συνήθως το Ν είναι δύναμη του 2 Δίαβλος, Επιμ. Μ.Χατζόπουλος Διαφάνεια 13-100

Μπορούμε να θεωρήσουμε γύρους κατακερματισμού. Κατά τον γύρο i χρησιμοποιούνται μόνο οι συναρτήσεις h i και h i+1. Όπως γεμίζουν οι κάδοι διαχωρίζονται ένας από τον πρώτο στον τελευταίο. Δίαβλος, Επιμ. Μ.Χατζόπουλος Διαφάνεια 13-101

Έστω ότι η χωρητικότητα του κάδου Σελίδα Υπερχείλισης είναι 4 Εισαγωγή 43 h1 h0 000 00 32 44 36 _ 001 01 9 25 5 _ 010 10 14 18 10 30 011 11 31 35 7 11 h1 h0 000 00 32 _ 001 01 9 25 5 _ 010 10 14 18 10 30 011 11 31 35 7 11 100 00 44 36 43 Τα κόκκινα πληροφοριακά μόνο Δίαβλος, Επιμ. Μ.Χατζόπουλος Διαφάνεια 13-102

Διάσπαση συμβαίνει όταν γίνει επέκταση στην υπερχείλιση Εισαγωγή 37 h1 h0 000 00 32 _ 001 01 9 25 5 37 010 10 14 18 10 30 011 11 31 35 7 11 100 00 44 36 43 Δίαβλος, Επιμ. Μ.Χατζόπουλος Διαφάνεια 13-103

Εισαγωγή 29 h1 h0 000 00 32 _ 001 01 9 25 010 10 14 18 10 30 011 11 31 35 7 11 100 00 44 36 101 01 5 37 29 43 Δίαβλος, Επιμ. Μ.Χατζόπουλος Διαφάνεια 13-104

Εισαγωγή των 22 66 και 34 h1 h0 000 00 32 _ 001 01 9 25 010 10 66 18 10 34 011 11 31 35 7 11 100 00 44 36 101 01 5 37 29 _ 110 10 14 30 22 _ 43 Δίαβλος, Επιμ. Μ.Χατζόπουλος Διαφάνεια 13-105

Εισαγωγή 50 h1 h0 000 00 32 _ 001 01 9 25 010 10 66 18 10 34 011 11 43 35 11 _ 100 00 44 36 101 01 5 37 29 _ 110 10 14 30 22 _ 111 11 31 7 50 Δίαβλος, Επιμ. Μ.Χατζόπουλος Διαφάνεια 13-106

Αλγόριθμος H διαδικασία αναζήτησης για γραμμικό κατακερματισμό. if (n = 0) then m h j (K) (* το m είναι η τιμή κατακερματισμού της εγγραφής με κλειδί κατακερματισμού K *) else begin m h j (K) ; if (m < n) then m h j+1 (K) end; αναζήτησε τον κάδο που η τιμή κατακερματισμού του είναι m (και την υπερχείλισή του, αν έχει) ; Δίαβλος, Επιμ. Μ.Χατζόπουλος Διαφάνεια 13-107

Μια άλλη πολιτική διάσπασης θα ήταν ο παράγοντας φόρτωσης. Όταν ξεπεράσει μια τιμή να γίνεται διάσπαση. Παράγοντας φόρτωσης l=r/(bfr*n) r: το πλήθος των εγγραφών του αρχείου bfr: το μέγιστο πλήθος εγγραφών στον κάδο N: το τρέχον πλήθος των κάδων Δίαβλος, Επιμ. Μ.Χατζόπουλος Διαφάνεια 13-108

Αν υποθέσουμε ότι κάθε κάδος έχει 3 θέσεις και παράγοντα φόρτωσης του αρχείου 67% 00 01 10 11 56 64 67 43 79 15 27 19 00 01 10 11 56 64 12 33 67 43 79 15 27 19 56=0111000 67=1000011 43=0101011 79=1001111 15=0001111 27=0011011 19=0010011 64=1000000 12=0001100 33=0100001 57=0111101 65=1000001 Στην επόμενη εισαγωγή θα πρέπει να γίνει διάσπαση Δίαβλος, Επιμ. Μ.Χατζόπουλος Διαφάνεια 13-109

000 01 10 11 100 56 64 33 57 65 67 43 79 12 Για την επόμενη εισαγωγή Θα χρειασθεί διάσπαση 000 001 10 11 100 56 64 33 57 65 67 43 79 12 15 27 19 101 15 27 19 Δίαβλος, Επιμ. Μ.Χατζόπουλος Διαφάνεια 13-110

Γενικά μπορούμε να εφαρμόσουμε και την αντίστροφη διαδικασία συρρίκνωσης του αρχείου όταν διαπιστώσουμε μεγάλο αχρησιμοποίητο χώρο. Για παράδειγμα αν ο παράγοντας φόρτωσης πέσει κάτω από μια τιμή. Δίαβλος, Επιμ. Μ.Χατζόπουλος Διαφάνεια 13-111

Παραλληλισμός στην προσπέλαση των δίσκων με τεχνολογία RAID. Η τεχνολογία των μονάδων αποθήκευσης πρέπει να κάνει βήματα για να προφθάσει σε απόδοση και αξιοπιστία την τεχνολογία των επεξεργαστών. Μια σημαντική πρόοδο στην τεχνολογία των δευτερευουσών μονάδων αποθήκευσης εκπροσωπεί η ανάπτυξη RAID, που αρχικά σήμαινε Redundant Arrays of Inexpensive Disks. Ο βασικός στόχος του RAID είναι να αντισταθμίσει την τεράστια διαφορά βελτίωσης της απόδοσης των δίσκων έναντι αυτής της μνήμης και των μικροεπεξεργαστών. Δίαβλος, Επιμ. Μ.Χατζόπουλος Διαφάνεια 13-112

Βελτίωση και της Αξιοπιστίας Κρατάμε περισσότερα από ένα αντίγραφα των δεδομένων για να αντιμετωπίσουμε περίπτωση αστοχίας. Χρησιμοποιείται κατοπτρισμός. Τα δεδομένα γράφονται σε δύο πανομοιότυπους δίσκους που αντιμετωπίζονται σαν ένας λογικός δίσκος Μια άλλη λύση στο πρόβλημα της αξιοπιστίας είναι να αποθηκευθούν επιπλέον πληροφορίες που κανονικά δεν χρειάζονται αλλά μπορούν να χρησιμοποιηθούν για την αναπαραγωγή χαμένων δεδομένων σε περίπτωση αστοχίας. Δίαβλος, Επιμ. Μ.Χατζόπουλος Διαφάνεια 13-113

RAID Τεχνολογία (συν.) Μια φυσική λύση είναι μια μεγάλη διάταξη μικρών ανεξάρτητων δίσκων που λειτουργούν σαν ένας υψηλής απόδοσης λογικός δίσκος. Χρησιμοποιείται μια έννοια που λέγεται διαχωρισμός δεδομένων (data striping), που χρησιμοποιεί παραλληλισμό για βελτίωση της απόδοσης των δίσκων. Ο διαχωρισμός των δεδομένων κατανέμει τα δεδομένα σε πολλαπλούς δίσκους ώστε να εμφανίζονται σαν ένας μεγάλος, γρήγορος δίσκος. Δίαβλος, Επιμ. Μ.Χατζόπουλος Διαφάνεια 13-114

RAID Τεχνολογία (συν.) Έχουν ορισθεί διάφορες οργανώσεις raid που βασίζονται σε διαφορετικούς συνδυασμούς των δύο παραγόντων της λεπτότητας διαχωρισμού των δεδομένων και του πρότυπου που χρησιμοποιείται για τον υπολογισμό των πλεοναζουσών πληροφοριών. Το Raid επιπέδου 0 δεν έχει πλεονάζοντα δεδομένα και επομένως έχει την καλύτερη απόδοση εγγραφής με κίνδυνο απώλειας δεδομένων. Το Raid επιπέδου 1 χρησιμοποιεί κατοπτρικούς δίσκους. Το Raid επιπέδου 2 χρησιμοποιεί πλεονασμούς μνήμης χρησιμοποιώντας κώδικες Hamming, που περιέχουν δυαδικά ψηφία ισοτιμίας για διακριτά υποσύνολα επικαλυπτόμενων συνιστωσών. Το επίπεδο 2 περιλαμβάνει και εξακρίβωση και διόρθωση λαθών. Το Raid επιπέδου 3 χρησιμοποιεί ένα δίσκο ισοτιμίας και βασίζεται στον ελεγκτή του δίσκου για να βρει ποιος δίσκος έχει αποτύχει. Τα Raid επίπεδα 4 και 5 χρησιμοποιούν διαχωρισμό επιπέδου μπλοκ, με το επίπεδο 5 να κατανέμει τα δεδομένα και τις πληροφορίες ισοτιμίας σε όλους τους δίσκους. Το Raid επίπεδο 6 εφαρμόζει το αποκαλούμενο P + Q σχήμα πλεονασμού χρησιμοποιώντας τους Reed-Soloman κώδικές για προστασία επιτρέποντας μέχρι το πολύ δύο δίσκοι να είναι σε αποτυχία χρησιμοποιώντας δύο πλεονάζοντες δίσκους. Δίαβλος, Επιμ. Μ.Χατζόπουλος Διαφάνεια 13-115

Χρήση τηςraid Τεχνολογίας (συν.) Σε διαφορετικές περιπτώσεις χρησιμοποιούνται διαφορετικές raid οργανώσεις Στο Raid επιπέδου 1 (κατοπτρικοί δίσκοι) η ανάκτηση είναι ευκολότερη Χρησιμοποιείται για κρίσιμες εφαρμογές όπως ημερολόγια δοσοληψιών Το Raid επιπέδου 2 χρησιμοποιεί πλεονασμό μνήμης με χρήση κωδίκων Hamming, που περιέχουν δυαδικά ψηφία ισοτιμίας για διακριτά επικαλυπτόμενα υποσύνολα στοιχείων. Το επίπεδο 2περιλαμβάνει εξακρίβωση και διόρθωση λαθών. Το Raid επιπέδου 3 (χρησιμοποιεί ένα δίσκο ισοτιμίας βασιζόμενο στον ελεγκτή του δίσκου για να βρει ποιος δίσκος έχει αποτύχει) και το επιπέδου 5 (διαχωρισμός δεδομένων επιπέδου μπλοκ) προτιμώνται για μεγάλη αποθήκευση, με το επίπεδο 3 να δίνει ταχύτερους ρυθμούς μεταφοράς. Οι πιο δημοφιλείς χρήσεις της τεχνολογίας RAID σήμερα είναι: Επίπεδο 0 (με διαχωρισμό), Επίπεδο 1 (με κατοπτρισμό) και Επίπεδο 5 με μια επιπλέον μονάδα για ισοτιμία. Οι σχεδιαστικές αποφάσεις για το RAID περιλαμβάνουν: Επίπεδο του RAID, πλήθος δίσκων, επιλογή σχημάτων ισοτιμίας, και ομαδοποίηση των δίσκων για διαχωρισμό επιπέδου μπλοκ. Δίαβλος, Επιμ. Μ.Χατζόπουλος Διαφάνεια 13-116

Χρήση της RAID Τεχνολογίας (συν.) Δίαβλος, Επιμ. Μ.Χατζόπουλος Διαφάνεια 13-117

Τάσεις στην τεχνολογία των δίσκων Δίαβλος, Επιμ. Μ.Χατζόπουλος Διαφάνεια 13-118

Δίκτυα Περιοχών Αποθήκευσης (SAN) Οι απαιτήσεις για μεγάλους χώρους αποθήκευσης έχουν αυξηθεί σημαντικά τελευταία. Οι οργανισμοί αισθάνονται την ανάγκη να περάσουν από τη λειτουργία ενός στατικού καθορισμένου κέντρου δεδομένων σε πιο ευέλικτες και δυναμικές υποδομές για την επεξεργασία πληροφοριών. Επομένως προσανατολίζονται σε of Storage Area Networks (SANs). Σε ένα SAN, οι περιφερειακές μονάδες αποθήκευσης διαμορφώνονται σαν κόμβοι σε ένα δίκτυο υψηλής ταχύτητας και μπορούν να προσαρτώνται και να αποπροσαρτώνται από διακομιστές κατά πολύ ευέλικτο τρόπο. Αυτό επιτρέπει σε συστήματα αποθήκευσης να βρίσκονται σε μεγαλύτερες αποστάσεις από διακομιστές να υποστηρίζουν διαφορετικές επιλογές απόδοσης και διασύνδεσης. Δίαβλος, Επιμ. Μ.Χατζόπουλος Διαφάνεια 13-119

Δίκτυα Περιοχών Αποθήκευσης(συν.) Τα πλεονεκτήματα των SANs είναι: Ευέλικτη πολλά-προς-πολλά σύνδεση μεταξύ διακομιστών και μονάδων αποθήκευσης με χρήση οπτικών καναλιών. Μέχρι και 10km απόσταση μεταξύ ενός διακομιστή και ενός συστήματος αποθήκευσης με χρήση κατάλληλων οπτικών ινών. Δυνατότητες καλύτερης απομόνωσης που υποστηρίζει μη διακοπτόμενη προσθήκη νέων περιφερειακών και διακομιστών. Τα SAN αντιμετωπίζουν το πρόβλημα συνδυασμού αποθηκευτικών επιλογών από πολλούς κατασκευαστές και των επερχόμενων πρότυπων λογισμικού και υλικού στη διαχείριση δεδομένων. Δίαβλος, Επιμ. Μ.Χατζόπουλος Διαφάνεια 13-120

Σύνοψη Μονάδες Αποθήκευσης Δίσκων Αρχεία Εγγραφών Πράξεις σε Αρχεία Μη ταξινομημένα Αρχεία Ταξινομημένα Αρχεία Αρχεία Κατακερματισμού Τεχνικές επεκτατού και δυναμικού κατακερματισμού RAID Τεχνολογία Δίαβλος, Επιμ. Μ.Χατζόπουλος Διαφάνεια 13-121