2 Μέσα Αποθήκευσης Ιεραρχία μνήμης Μαγνητικοί δίσκοι Συστοιχίες δίσκων RAID Οπτικοί δίσκοι Μαγνητικές ταινίες Άλλα μέσα αποθήκευσης
11 Φυσική Οργάνωση Βάσεων Δεδομένων Τύποι Εγγραφών Τύποι Σελίδων Ομαδοποίηση Εγγραφών Διαχείριση Χώρου Δίσκου Διαχείριση Απομονωτικής Μνήμης 2
Αρχιτεκτονική ενός υπολογιστικού συστήματος 3
Αρχιτεκτονική ενός υπολογιστικού συστήματος Η επικοινωνία μεταξύ της κύριας μνήμης και των βραδύτερων δευτερευουσών μνημών γίνεται: στα μεγάλα συστήματα με το κανάλι (channel ή I/O processor), στα μικρά συστήματα με το δίαυλο (bus) δεδομένων. Σκοπός είναι η εξομάλυνση του ρυθμού μεταφοράς δεδομένων. 4
Αρχιτεκτονική ενός υπολογιστικού συστήματος Το κανάλι έχει δική του μνήμη, ενώ η βασική του λειτουργία είναι η μετατροπή των λέξεων της κύριας μνήμης σε bytes και το αντίστροφο. Υπάρχουν δύο ειδών κανάλια: Επιλεκτικό κανάλι που εκτελεί πλήρως το πρόγραμμα που αφορά μια συσκευή πριν να αρχίσει να εκτελεί το πρόγραμμα μιας άλλης. Πολυπλεκτικό κανάλι που εκτελεί ταυτόχρονα τα προγράμματα πολλών δευτερευουσών συσκευών. 5
Ιεραρχία Μνήμης Καταχωρητές (CPU registers) Κεφάλαιο 2: Μέσα Αποθήκευσης Κρυφή μνήμη (cache memory, SRAM) Προσωρινή αποθήκευση εντολών και δεδομένων που επεξεργάζεται η ΚΜΕ (CPU) τοπικότητα. Κύρια μνήμη (main memory, DRAM) Μνήμη flash (EEPROM-USB) Electrically Erasable Programmable ROM. Προγραμματίζεται και διαγράφεται πολλές φορές με ηλεκτρικούς παλμούς. 6
Ιεραρχία Μνήμης Μαγνητικός δίσκος (magnetic disk, floppy-hard) Αποθήκευση και Προσπέλαση Δεδομένων με βάση την ανάλογη πόλωση του μαγνητικού υλικού (0 ή 1) Οπτικός δίσκος (optical disk, CD-DVD) Αποθήκευση και Προσπέλαση Δεδομένων με δέσμη laser. Μαγνητική ταινία (magnetic tape) Για Αποθήκευση ιστορικών και εφεδρικών αρχείων 7
Βασικά Κριτήρια Κεφάλαιο 2: Μέσα Αποθήκευσης Μέγεθος χωρητικότητα (capacity) [σε bytes] Ταχύτητα χρόνος προσπέλασης (access time) Κόστος ανά μονάδα δεδομένων Αξιοπιστία συχνότητα εμφάνισης βλαβών στο μέσο αποθήκευσης Πρωτεύουσα αποθήκευση DRAM, Cache Δευτερεύουσα αποθήκευση Δίσκος, Flash Τριτεύουσα αποθήκευση Μαγνητική Ταινία, Οπτικός Δίσκος 8
Βασικά Κριτήρια Ευμετάβλητη Αποθήκευση (Volatile Storage) Το περιεχόμενο χάνεται σε περίπτωση απώλειας ισχύος. Μόνιμη Aποθήκευση (non - Volatile Storage) Το περιεχόμενο διατηρείται σε περίπτωση απώλειας ισχύος. 9
Μαγνητικός Δίσκος Κεφάλαιο 2: Μέσα Αποθήκευσης Το 1956 η IBM κατασκεύασε τον πρώτο δίσκο με την ονομασία RAMAC (random access method for accounting and control) με χωρητικότητα 5 MBytes. Ο RAMAC ήταν αρκετά μεγαλύτερος σε μέγεθος σε σχέση με τους σύγχρονους δίσκους, διότι η σύγχρονη τεχνολογία επιτρέπει την αύξηση του αριθμού των bits που μπορούν να κωδικοποιηθούν ανά μονάδα μαγνητικής επιφάνειας, με αποτέλεσμα να αυξάνει η πυκνότητα αποθήκευσης (storage density) των δίσκων. Ωστόσο, αν και οι σημερινοί δίσκοι είναι ταχύτεροι, μικρότεροι και αποθηκεύουν περισσότερα δεδομένα, στηρίζονται στις ίδιες τεχνολογικές αρχές που 10 βασίστηκε και ο RAMAC.
Μαγνητικός Δίσκος Με τη μορφοποίηση (format) του Δίσκου από το Λειτουργικό Σύστημα, οι άτρακτοι (tracks) υποδιαιρούνται σε σταθερό αριθμό τομέων (sectors). Κάθε τομέας αποθηκεύει μια ενότητα 11 (block) ή σελίδα (page) δεδομένων.
Μαγνητικός Δίσκος Κεφάλαιο 2: Μέσα Αποθήκευσης Η επικοινωνία μεταξύ μαγνητικού δίσκου και CPU επιτυγχάνεται με τη βοήθεια του ελεγκτή (controller). Ο ελεγκτής είναι υπεύθυνος για την ανάγνωση και την αποθήκευση των δεδομένων. Επίσης, είναι υπεύθυνος για τη διαχείριση των κατεστραμμένων τομέων (bad sectors). Η επικοινωνία μεταξύ δίσκου και CPU γίνεται σε διακριτά στάδια ως εξής: 12
Μαγνητικός Δίσκος Κεφάλαιο 2: Μέσα Αποθήκευσης Φάση αναζήτησης (seek), T seek : μετακίνηση των κεφαλών επάνω από την κατάλληλη τροχιά. Φάση περιστροφικής καθυστέρησης (rotational latency), T rot : αναμονή μέχρι ο κατάλληλος τομέας περάσει κάτω από την κεφαλή. Φάση Μεταφοράς (transfer) δεδομένων, T trans : η κεφαλή διαβάζει ή γράφει δεδομένα. Ισχύει: T total = T seek + Τ rot + Τ trans 13
Ο δίσκος συνοδεύεται και από μία ενδιάμεση απόμονωτική μνήμη (buffer) για την προσωρινή τοποθέτηση των δεδομένων για μελλοντική ανάγνωση. Σημαντικοί παράμετροι για την αξιοπιστία του δίσκου είναι: μέσος χρόνος μεταξύ των βλαβών (MTBF Mean Time Between Failures) Το χρονικό διάστημα μεταξύ δύο διαδοχικών δυσλειτουργιών του δίσκου, και μέσος χρόνος για αποκατάσταση (MTTR Mean Time to Repair) Το χρονικό διάστημα που απαιτείται για την αντικατάσταση του Δίσκου και την επαναφορά των δεδομένων. Μαγνητικός Δίσκος 14
Συστοιχίες Δίσκων RAID Κεφάλαιο 2: Μέσα Αποθήκευσης RAID: Redundant Array of Inexpensive/Independent Disks (1988) Χρήση πολλών μονάδων δίσκου για φθηνότερη/ ταχύτερη προσπέλαση δεδομένων. Αύξηση της αξιοπιστίας και της ανοχής σε περιπτώσεις βλάβης του μέσου. 15
RAID level 0 Καθόλου επανάληψη δεδομένων Τα δεδομένα διαχωρίζονται σε blocks και διαμοιράζονται στους διαθέσιμους δίσκους. Το κάθε block αποθηκεύεται σε ένα μόνο δίσκο. 16
RAID level 1 Καθρεπτισμός (mirroring) ή σκίαση (shadowing) Διπλάσιος αριθμός δίσκων Πλεονεκτήματα/μειονεκτήματα σε R/W Κάθε δίσκος Α συνοδεύεται από έναν επιπλέον δίσκο Α, όπου αποθηκεύονται ακριβώς τα ίδια δεδομένα 17
Οπτικός Δίσκος CD (Compact Disk - 700 Mbytes) DVD (Digital Versatile Disk 27 Gbytes) Ο οπτικός δίσκος (optical disk) χρησιμοποιείται κυρίως για την αποθήκευση προγραμμάτων, αρχείων κειμένου, πολυμεσικών αρχείων (ήχου, μουσικής, εικόνων, ταινιών). Χρησιμοποιούνται επίσης και ως ένας εύκολος τρόπος παραγωγής αντιγράφων ασφαλείας. Δεν συνιστάται για αποθήκευση δεδομένων on-line εφαρμογών. 18
Διακρίνουμε δύο τύπους: WORM: write-once read-many [μια εγγραφή πολλές αναγνώσεις] Rewritable: write-many read-many [Επανεγγράψιμοι] Άλλη διάκριση δίσκων: Οπτικός Δίσκος CAV : constant angular velocity Μαγνητικοί Δίσκοι (ΜΔ) CLV : constant linear velocity Οπτικοί Δίσκοι (ΟΔ) Οι οπτικοί δίσκοι περιστρέφονται με σταθερή γραμμική ταχύτητα που είναι συνάρτηση της θέσης του δίσκου, στην οποία προσπελαύνουμε. Στους ΟΔ η πυκνότητα αποθήκευσης δεδομένων είναι σταθερή, ενώ στους ΜΔ έχουμε διαφορετική πυκνότητα στις διάφορες θέσεις του δίσκου. 19
Οπτικός Δίσκος Κεφάλαιο 2: Μέσα Αποθήκευσης Τα δεδομένα αποθηκεύονται σε σπειροειδή τροχιά από το κέντρο του δίσκου προς τα έξω. Η μορφοποίηση θεωρείται με βάση μία ακτίνα του δίσκου, οπότε μία νοερή άτρακτος βρίσκεται μεταξύ δύο διαδοχικών τομών ακτίνας και σπειροειδούς ατράκτου. 20
Οπτικός Δίσκος Κεφάλαιο 2: Μέσα Αποθήκευσης Βασικά χαρακτηριστικά της απόδοσης είναι ο χρόνος προσπέλασης και η ταχύτητα μεταφοράς. Συνήθως μετράται με έναν αριθμό, πχ 52Χ, που δηλώνει ότι ένας συγκεκριμένος δίσκος είναι 52 φορές γρηγορότερος από ένα δίσκο αναφοράς. Συστοιχία οπτικών δίσκων (jukebox) είναι μία συσκευή με πολλούς οπτικούς δίσκους που εναλλάσσονται με ρομποτικούς μηχανισμούς ανάλογα με τη ζήτηση σε μεγάλες ψηφιακές βιβλιοθήκες. Σημαντικός είναι ο χρόνος εναλλαγής δίσκων στο πλατώ. 21
Μαγνητική Ταινία Κεφάλαιο 2: Μέσα Αποθήκευσης Στη δεκαετία του 1950 η μαγνητική ταινία (magnetic tape) ήταν το βασικό μέσο αποθήκευσης των υπολογιστών mainframes. Αν και από τις αρχές τις δεκαετίας του 1960 ο μαγνητικός δίσκος καθιερώθηκε ως το βασικό μέσο αποθήκευσης σε μικρά και μεγάλα υπολογιστικά συστήματα, η μαγνητική ταινία συνεχίζει σήμερα να αποτελεί ένα χαμηλού κόστους βοηθητικό μέσο αποθήκευσης. 22
Μαγνητική Ταινία Κεφάλαιο 2: Μέσα Αποθήκευσης Τα δεδομένα αποθηκεύονται σε 9 παράλληλες ατράκτους. Κάθε άτρακτος παριστά σειρά bits που καταχωρίζονται με πυκνότητα αποθήκευσης συνήθως 6250 bits/ίντσα (bpi). Κατά την ανάγνωση/αποθήκευση δεδομένων η ταινία κινείται με τη λεγόμενη ταχύτητα ανάγνωσης/αποθήκευσης (read/write speed). 23
Κεφάλαιο 2: Μέσα Αποθήκευσης Λογική Εγγραφή Φυσική Εγγραφή Η έννοια της εγγραφής, όπως είναι γνωστή από τον προγραμματισμό, στις μαγνητικές ταινίες (ή στους δίσκους) ονομάζεται λογική εγγραφή (logical record) και χαρακτηρίζεται από το αντίστοιχο μήκος. Οι λογικές εγγραφές ομαδοποιούνται σε μικρά σύνολα και αποτελούν μία φυσική εγγραφή (physical record) ενότητα ή σελίδα με το αντίστοιχο μήκος, η οποία αποθηκεύεται σε ένα τομέα του δίσκου. Επομένως, ένα κενό μεσολαβεί μεταξύ δύο φυσικών εγγραφών. 24
Κεφάλαιο 2: Μέσα Αποθήκευσης Λογική Εγγραφή Φυσική Εγγραφή Το πλήθος των λογικών εγγραφών που περιέχεται σε μία φυσική εγγραφή (ενότητα ή σελίδα) λέγεται παράγοντας ομαδοποίησης (blocking factor - Bfr). Η φυσική εγγραφή πρέπει να είναι όσο το δυνατό μεγαλύτερη, ώστε να ελαχιστοποιηθεί το συνολικό μέγεθος των κενών της ταινίας (ή του δίσκου), αλλά ταυτόχρονα πρέπει να χωρά στις απομονωτικές μνήμες. 25
ΠΠΑΡΑΔΕΙΓΜΑ Θεωρείστε ένα αρχείο (πίνακα) με μήκος λογικής εγγραφής 256 bytes. Κάθε ενότητα (block) ή σελίδα στο δίσκο (φυσική εγγραφή) έχει μήκος 512 bytes (Άρα έχουμε 512/256=2. Άρα Bfr=2). Εάν το αρχείο μας έχει 12 λογικές εγγραφές τότε θα χρειαστεί (256 12) / 512 = 6 ενότητες στο δίσκο. Αν υποθέσουμε ότι η φυσική διεύθυνση της πρώτης ενότητας στο δίσκο είναι 10, τότε το αρχείο θα αποθηκευτεί στις ενότητες 10 μέχρι 15 (δηλαδή 10, 11, 12, 13, 14, 15. 26
Κεφάλαιο 11: Φυσική Οργάνωση Βάσεων Δεδομένων Ανεπάρκειες Λειτουργικών Συστημάτων Ένα ΣΔΒΔ τρέχει επάνω από το Λειτουργικό Σύστημα (ΛΣ) που είναι υπεύθυνο για τη διαχείριση αρχείων στο φυσικό επίπεδο. Μερικές υπηρεσίες των ΛΣ είναι ανεπαρκείς για τις ανάγκες μιας Βάσης Δεδομένων Σε συστήματα των 32 bit, το μεγαλύτερο μέγεθος αρχείου είναι 4 Gb (Υπάρχουν όμως εμπορικές εφαρμογές που απαιτούν μεγαλύτερα αρχεία) 27
Ανεπάρκειες Λειτουργικών Συστημάτων O τρόπος οργάνωσης των αρχείων εξαρτάται από το Λειτουργικό Σύστημα (Περιορίζει την ευελιξία του ΣΔΒΔ). Χρειάζεται προσαρμογή των ΣΔΒΔ ως προς τις ιδιαιτερότητες του κάθε Λειτουργικoύ Συστήματος. Οι κατασκευαστές των ΣΔΒΔ επιθυμούν το προϊόν τους να τρέχει σε διάφορες πλατφόρμες ΛΣ. Έτσι, οι κατασκευαστές των ΣΔΒΔ αναγκάστηκαν να συμπεριλάβουν στα προϊόντα τους υποσυστήματα που να εκτελούν λειτουργίες φυσικού επιπέδου. 28
Τμήματα του ΣΔΒΔ σχετικά με τη φυσική οργάνωση των δεδομένων Διαχειριστής Αρχείων Διαχειριστής Μνήμης Απομόνωσης (Ενδιάμεση Μνήμη Buffer) Διαχειριστής Χώρου Δίσκου Αποθηκευμένα δεδομένα 29
Τμήματα του ΣΔΒΔ σχετικά με τη φυσική οργάνωση των δεδομένων Ο Διαχειριστής Χώρου Δίσκου είναι το υπεύθυνο λογισμικό για την ανάγνωση και την αποθήκευση σελίδων στο δίσκο. Ο Διαχειριστής Μνήμης Απομόνωσης (Ενδιάμεση Μνήμη Buffer) είναι το υπεύθυνο λογισμικό για την κατάτμηση της κύριας μνήμης σε κατάλληλα τμήματα ώστε τα περιεχόμενα των σελίδων να αποθηκεύονται προσωρινά από το δίσκο. O Διαχειριστής Αρχείων είναι ένα σύνολο προγραμμάτων που υλοποιούν διάφορες δομές αρχείων και επίσης είναι υπεύθυνος για την τακτοποίηση των εγγραφών. 30
Τύποι εγγραφών Το μέγεθος κάθε πεδίου μιας εγγραφής εξαρτάται από τον τύπο του. Η γραφική παράσταση της οργάνωσης των πεδίων μιας εγγραφής λέγεται γραμμογράφηση (layout). Οι εγγραφές μιας οντότητας έχουν ίδια μορφή και λέγονται εγγραφές σταθερού μήκους. Στα σχεσιακά μοντέλα καθώς και στα αντικειμενοστραφή συστήματα προκύπτουν εγγραφές μεταβλητού μήκους. 31
Πλεονεκτήματα εγγραφών μεταβλητού μήκους Τα πλεονεκτήματα ως προς την αποθήκευση είναι ιδιαίτερα σημαντικά όταν: υπάρχει μεγάλη απόκλιση των μηκών των εγγραφών από το μέσο μήκος εγγραφής, τα αρχεία είναι ογκώδη, είναι μεγάλη η συχνότητα χρήσης, το υλικό είναι ακριβό. 32
Η μεταβλητότητα των εγγραφών οφείλεται σε πεδία μεταβλητού μήκους συμβολοσειρές, όπως ονόματα, διευθύνσεις κλπ εγγραφές διαφορετικής μορφής Έστω για παράδειγμα, ότι σε μια εταιρεία υπάρχουν υπάλληλοι που πληρώνονται με την Ώρα (Ω) ή με τον Μήνα (Μ). 33
επαναλαμβανόμενες ομάδων πεδίων Πχ. εγγραφή υπαλλήλου με δύο ή τρία παιδιά Η οντότητα Υπάλληλος μπορεί να περιέχει τα χαρακτηριστικά όνομα-προστατευόμενου και ημερομηνία-γέννησης προστατευόμενου. Άρα η εγγραφή ενός υπαλλήλου με δύο ή τρία παιδιά θα περιέχει αντίστοιχα δύο ή τρία στιγμιότυπα των χαρακτηριστικών αυτών. 34
Διαχείριση εγγραφών μεταβλητού μήκους Χρήση ειδικών διαχωριστών μεταξύ των επιμέρους πεδίων Με χρήση ενός μικρού καταλόγου στην αρχή της εγγραφής όπου για κάθε πεδίο αποθηκεύεται η απόστασή του από την αρχή της εγγραφής (απαιτεί περισσότερο χώρο) 35
Πλεονεκτήματα χρήσης καταλόγου (2 η προσέγγιση) 1. Απαιτεί περισσότερο χώρο αλλά είναι χρονικά αποτελεσματικότερη γιατί προσφέρει άμεση προσπέλαση κάθε πεδίου 2. Δεν απαιτείται η αποθήκευση συγκεκριμένου συμβόλου για την τιμή NULL κάποιου πεδίου, αλλά απλώς η απόσταση του επόμενου πεδίου είναι ίση με την απόσταση του συγκεκριμένου πεδίου. 36
Μειονεκτήματα διαχείρισης εγγραφών μεταβλητού μήκους Το κυριότερο πρόβλημα είναι η αύξηση του μεγέθους της εγγραφής κατά την ενημέρωση ενός πεδίου, οπότε αυτό μπορεί να προκαλέσει: την ανάγκη τακτοποίησης του περιεχομένου της σελίδας με την κατάλληλη μετακίνηση (shifting) μερικών εγγραφών. την ανάγκη αποθήκευσης της συγκεκριμένης εγγραφής σε άλλη σελίδα λόγω ανεπάρκειας χώρου. αν η εγγραφή μετακινηθεί, τότε στη θέση της αποθηκεύεται η νέα διεύθυνση ώστε να μη χαθούν δεδομένα. 37
Οργάνωση σελίδων (ενοτήτων) Κάθε σελίδα έχει επικεφαλίδα (page header), που περιέχει σημαντικές πληροφορίες, όπως αριθμός αποθηκευμένων εγγραφών στη σελίδα, διεύθυνση επόμενης σελίδας του αρχείου κλπ. Μία σελίδα είναι ένα σύνολο θέσεων (slots) για την αποθήκευση των εγγραφών. Κάθε εγγραφή μπορεί να χαρακτηρισθεί από το σύστημα με ένα μοναδικό κωδικό εγγραφής (record identifιer - rid), που αποτελείται από το ζεύγος <κωδικός σελίδας, αριθμός θέσης> (<page id, slot number>). 38
Εγγραφές σταθερού μήκους σε σελίδες Υπάρχουν δύο εύκολες λύσεις για τον εντοπισμό των εγγραφών μέσα στη σελίδα 1 η λύση: οι εγγραφές αποθηκεύονται στις πρώτες διαθέσιμες θέσεις της σελίδας, οπότε είναι εύκολος ο υπολογισμός των αποστάσεων (offsets). Σε περίπτωση διαγραφής η τελευταία εγγραφή καταλαμβάνει τη θέση της διαγραφείσας. 39
Εγγραφές σταθερού μήκους σε σελίδες Μειονέκτημα 1 ης λύσης: αν υπάρχουν αλυσίδες εγγραφών, και μία εγγραφή εκτός της συγκεκριμένης σελίδας δείχνει προς τη θέση της τελευταίας εγγραφής, τότε αυτή δεν μπορεί να μετακινηθεί. 2 η λύση: Αποθηκεύεται στην επικεφαλίδα ένας δυαδικός πίνακας με σημαίες που δηλώνουν αν μία θέση είναι κατειλημμένη ή όχι. Κατά την αναζήτηση εξετάζονται μόνο οι θέσεις με αληθείς σημαίες, ενώ η αντίστοιχη σημαία καθίσταται ψευδής κατά τη διαγραφή. 40
Ομαδοποίηση εγγραφών Υποθέτουμε ότι : μονάδα αποθήκευσης είναι ο σκληρός δίσκος, η (λογική) εγγραφή είναι η ελάχιστη λογική μονάδα διακίνησης πληροφορίας, η σελίδα (ή ενότητα) είναι το ελάχιστο φυσικό ποσό δεδομένων που μεταφέρεται μεταξύ του δίσκου και της κύριας μνήμης. 41
Ομαδοποίηση εγγραφών Παράγοντας ομαδοποίησης (blocking factor - Bfr) είναι ο αριθμός των εγγραφών που χωρούν σε μία σελίδα. Αν υποτεθεί ότι αμελητέο μέγεθος επικεφαλίδας της σελίδας και ότι οι εγγραφές είναι σταθερού μήκους, τότε ο παράγοντας ομαδοποίησης ισούται με: όπου: Β είναι το μέγεθος της σελίδας (σε bytes), R είναι το μέγεθος της εγγραφής (σε bytes) 42
Ομαδοποίηση εγγραφών Για παράδειγμα: Εάν το μέγεθος μιας σελίδας είναι 4096 bytes και το μέγεθος μιας εγγραφής είναι 256 bytes έχουμε : Bfr = B/R = 4096 /256 = 16 εγγραφές χωρούν σε μια σελίδα. 43
Διαχείριση απομονωτικής μνήμης Ο σκοπός των απομονωτικών ή ενδιάμεσων μνημών (buffer memories) είναι η ομαλοποίηση της ροής των δεδομένων μεταξύ της γρήγορης κύριας μνήμης και των βραδύτερων περιφερειακών συσκευών, και γενικά διακρίνονται σε δύο τύπους: τις υλικές (hardware buffers), που χρησιμοποιούνται ευρύτατα για τη διαχείριση των ιδιαίτερα αργών περιφερειακών συσκευών, και τις λογισμικές (software buffers), που είναι τμήματα της κύριας μνήμης. 44
Διαχείριση απομονωτικής μνήμης Οι λογισμικές απομονωτικές μνήμες είναι απαραίτητο συστατικό κάθε ΣΔΒΔ. Η απομονωτική μνήμη είναι κομμάτι της κύριας μνήμης όπου τοποθετούνται προσωρινά από το διαχειριστή της απομονωτικής μνήμης τα δεδομένα που έρχονται από το δίσκο μέχρι να γίνει η επεξεργασία τους. 45
Διαχείριση απομονωτικής μνήμης Ο διαχειριστής της απομονωτικής μνήμης είναι υπεύθυνος για τον τεμαχισμό της μνήμης σε ένα σύνολο πλαισίων (frames), όπου το μέγεθος κάθε πλαισίου είναι ίσο προς το μέγεθος της σελίδας, ενώ το σύνολο των πλαισίων ονομάζεται δεξαμενή μνημών (buffer pool). 46
Διαχείριση απομονωτικής μνήμης Τα ανώτερα στρώματα του συστήματος επικοινωνούν με το διαχειριστή της απομονωτικής μνήμης και: του ζητούν κάποια σελίδα, που μπορεί ήδη να βρίσκεται σε κάποιο πλαίσιο, αλλιώς πρέπει να προσπελασθεί από το δίσκο, ή του περνούν ένα μήνυμα ότι δεν χρειάζονται πλέον κάποια σελίδα, οπότε το πλαίσιο μπορεί να ελευθερωθεί, του περνούν ένα μήνυμα για κάποια ενημέρωση που έχει επέλθει σε κάποια σελίδα, οπότε η ενημέρωση αυτή πρέπει να περάσει στην αντίστοιχη σελίδα του δίσκου. 47
15 Διαχείριση Συναλλαγών Συναλλαγές Έλεγχος ταυτοχρονισμού Επανάκτηση δεδομένων 48
Συναλλαγές Ένα σύνολο λειτουργιών το οποίο αποτελεί μία λογική λειτουργική μονάδα καλείται συναλλαγή (transaction). Μια συναλλαγή περιέχει: εντολές ανάγνωσης, εντολές εισαγωγής, εντολές διαγραφής, ή εντολές ενημέρωσης των δεδομένων της ΒΔ. 49
Συναλλαγές Η πολυπλοκότητα των σύγχρονων βάσεων δεδομένων οδηγεί στην ανάπτυξη αξιόπιστων μηχανισμών ελέγχου της ακεραιότητας των δεδομένων πολλές συναλλαγές μπορεί να βρίσκονται σε εξέλιξη, προσπελαύνοντας κοινά δεδομένα Ο έλεγχος ταυτοχρονισμού (concurrency control) διαχειρίζεται τις συναλλαγές έτσι ώστε να αποφεύγονται οι ασταθείς καταστάσεις 50
Συναλλαγές Μια ΒΔ μπορεί να βρεθεί σε ασταθή κατάσταση: από μία βλάβη του συστήματος (βλάβη του φυσικού μέσου αποθήκευσης) ή (άλλου μέρους του συστήματος), μετά την αποκατάσταση της βλάβης πραγματοποιείται έλεγχος των δεδομένων. Υπάρχει ανάγκη ύπαρξης μηχανισμών επανάκτησης (recovery) δεδομένων, ώστε να επανέλθει η ΒΔ στην κανονική της κατάσταση όπου πληρούνται όλοι οι περιορισμοί ακεραιότητας. 51
Συναλλαγές Μία συναλλαγή είναι συνήθως το αποτέλεσμα της εκτέλεσης ενός προγράμματος που είναι γραμμένο σε μία γλώσσα προγραμματισμού υψηλού επιπέδου. Οι εντολές που προσδιορίζουν μια συναλλαγή περικλείονται μεταξύ των εκφράσεων: BEGIN TRANSACTION, και END TRANSACTION. 52
Καταστάσεις Συναλλαγών Μια συναλλαγή μπορεί να έχει τις εξής καταστάσεις: 53
Καταστάσεις Συναλλαγών Ενεργή (active) Κατάσταση: η συναλλαγή εισέρχεται στην ενεργή κατάσταση κατά την αρχή της επεξεργασίας της και παραμένει σε αυτή ενόσω εκτελείται. Κατάσταση Μερικής Δέσμευσης (partial commit): η συναλλαγή θεωρείται μερικώς δεσμευμένη όταν έχει ολοκληρωθεί και η τελευταία εντολή της συναλλαγής. Κατάσταση Αποτυχίας (failed): η συναλλαγή αποτυγχάνει όταν το ΣΔΒΔ αντιληφθεί ότι δεν μπορεί να συνεχίσει την ομαλή επεξεργασία της 54
Καταστάσεις Συναλλαγών Κατάσταση Απόρριψης (aborted): η συναλλαγή βρίσκεται στην κατάσταση αυτή όταν τα δεδομένα έχουν επανέλθει στην προηγούμενη σταθερή κατάσταση, πριν την αρχή της εκτέλεσης της συναλλαγής. στην κατάσταση απόρριψης το ΣΔΒΔ έχει δύο επιλογές: (α) την επανεκκίνηση της συναλλαγής από την αρχή ή (β) την καταστροφή της συναλλαγής. Κατάσταση Δέσμευσης (committed) η συναλλαγή έχει ολοκληρώσει επιτυχώς την εκτέλεσή της. 55
Ιδιότητες Συναλλαγών (ACID) Ατομικότητα (atomicity): αν υπάρχει έστω και μία εντολή της συναλλαγής, η οποία αποτυγχάνει να εκτελεσθεί, τότε ολόκληρη η συναλλαγή αποτυγχάνει επίσης. Απομόνωση (isolation): κάθε συναλλαγή πρέπει να εκτελείται ανεξάρτητα από άλλες συναλλαγές Μονιμότητα (durability): αν μία συναλλαγή ολοκληρωθεί με επιτυχία, τότε οι αλλαγές που έχει επιφέρει καταγράφονται μόνιμα στη ΒΔ και δεν μπορούν να ανακληθούν. 56
Συνέπεια (consistency): Ιδιότητες Συναλλαγών (ACID) η συναλλαγή πρέπει να μετατρέπει τη βάση δεδομένων από μία συνεπή κατάσταση σε μία άλλη συνεπή κατάσταση (τα δεδομένα πρέπει να είναι ορθά). οι μηχανισμοί ακεραιότητας δεδομένων δεν επαρκούν για την εγγύηση της συνέπειας. Θεωρείστε τη μεταφορά ενός ποσού από έναν τραπεζικό λογαριασμό σε άλλον. Η αφαίρεση του ποσού από τον πρώτο πρέπει να συνοδεύεται από την πρόσθεση του ποσού στο δεύτερο. Αν το αφαιρούμενο ποσό διαφέρει από το προστιθέμενο, τότε τα δεδομένα της βάσης δεν έχουν συνέπεια (δεν είναι ορθά). 57
Τρόποι επεξεργασίας Ακολουθιακή ή σειριακή εκτέλεση όπου οι συναλλαγές εκτελούνται η μία μετά την άλλη αλλά εμφανίζονται σημαντικές καθυστερήσεις με αποτέλεσμα να μειώνεται η γενική απόδοση του συστήματος. Ταυτόχρονη εκτέλεση πολλών συναλλαγών όπου ο δίσκος ή η CPU μπορούν να απασχολούνται με άλλη συναλλαγή, οπότε αυξάνεται ο αριθμός των συναλλαγών που ολοκληρώνονται στη μονάδα του χρόνου (throughput). Πλεονέκτημα: μειώνονται οι καθυστερήσεις (waiting time) και ο μέσος χρόνος εκτέλεσης των συναλλαγών (mean response time). Μειονέκτημα: ενδέχεται να επιφέρει προβλήματα στην ακεραιότητα και συνέπεια των δεδομένων της ΒΔ. 58
Έλεγχος ταυτοχρονισμού Ο σωστός συντονισμός των συναλλαγών είναι ευθύνη του ΣΔΒΔ, το οποίο μέσω του μηχανισμών ελέγχου ταυτοχρονισμού εγγυάται την ομαλή εκτέλεση των συναλλαγών. Ο τρόπος συντονισμού και εκτέλεσης ενός συνόλου συναλλαγών καλείται χρονοδιάγραμμα (schedule). Το ΣΔΒΔ πρέπει να επιλέξει ένα χρονοδιάγραμμα που να ικανοποιεί τις απαιτήσεις συνέπειας των δεδομένων. 59