Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

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

Παρόμοιες παρουσιάσεις


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

21 Ι.Β – Πρωτεύουσες Οργανώσεις Αρχείων Σελίδα 3.21 Διαχείριση Αρχείων – ΦΥΣΙΚΗ ΟΡΓΑΝΩΣΗ ΤΩΝ ΕΓΓΡΑΦΩΝ ΣΕ ΔΙΣΚΟ n Θέματα: –Οργάνωση Πεδίων εντός Εγγραφών –Οργάνωση Εγγραφών εντός Μπλοκ –Ποιες Εγγραφές πάνε σε ποια Μπλοκ (Σημαντικό!) n Πεδία εντός εγγραφών –Σταθερού Μεγέθους (σειριακά) F1F1 F2F2 F3F3 F4F4 F5F5 B : Διεύθυνση Βάσης L1L1 L2L2 L3L3 L4L4 L5L5 Η διεύθυνση F i είναι: B + Ó L k k = 1 i-1

22 Ι.Β – Πρωτεύουσες Οργανώσεις Αρχείων Σελίδα 3.22 Πεδία εντός Εγγραφών (1) –Σταθερού Μεγέθους (σε σωρό με δείκτες) --- Τα πεδία δεν αποθηκεύονται (απαραίτητα) σειριακά --- Υπάρχει ακριβώς ένας δείκτης στην επικεφαλίδα για κάθε πεδίο (ανεξάρτητα αν είναι παρόν ή όχι) F5F5 F3F3 F1F1 F4F4

23 Ι.Β – Πρωτεύουσες Οργανώσεις Αρχείων Σελίδα 3.23 Πεδία εντός Εγγραφών (2) –Μη-σταθερού μεγέθους πεδία ξεχωρίζονται με ειδικά σύμβολα –εναλλακτικά, Μη-σταθερού μεγέθους πεδία ξεχωρίζονται από τα μήκη των L1L1 L2L2 L3L3 L4L4 L5L5 F1F1 F2F2 F3F3 F4F4 F5F5 $$ $$ F1F1 F2F2 F3F3 F4F4 F5F5

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

46 Ι.Β – Πρωτεύουσες Οργανώσεις Αρχείων Σελίδα 3.46 Επεκτατός Κατακερματισμός (3) n Παράδειγμα: Ευρετήριο στο Salary Salaries Rudy 38 Hart 32 Jill 40 Taft h (Salary) Bill 31 Shirl 35 Larry d = d’=

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

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

49 Ι.Β – Πρωτεύουσες Οργανώσεις Αρχείων Σελίδα 3.49 Επεκτατός Κατακερματισμός : Overflow Παράδειγμα: Insert tuples και Hart 32 Jill 40 Taft 33 Peter 37 Rudy 38 Bill 31 Larry 31 Shirl 35 Nat 43 h (Salary)

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


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

Παρόμοιες παρουσιάσεις


Διαφημίσεις Google