Αποθήκευση και Οργάνωση αρχείων Βάσεις Δεδομένων Μάθημα 2ο Διδάσκων: Μαρία Χαλκίδη
Αρχιτεκτονική DBMS Βάσεις Δεδομένων, Παν. Πειραιώς 2
Κατηγοριοποίηση των φυσικών μέσων αποθήκευσης Ταχύτητα με την οποία προσπελαύνονται τα δεδομένα Κόστος ανά μονάδα δεδομένων Αξιοπιστία Απώλεια δεδομένων στην περίπτωση διακοπής ρεύματος ή καταστροφή του συστήματος Φυσική αποτυχία των μονάδων αποθήκευσης Μπορούμε να διαφοροποιήσουμε την αποθήκευση σε: Ευμετάβλητη (volatile storage): τα περιεχόμενα χάνονται όταν δεν υπάρχει παροχή ρεύματος Μη- μεταβλητή (non-volatile storage): Το περιεχόμενο παραμένει ακόμα και εάν σταματήσει η παροχή ρεύματος. Περιλαμβάνει δευτερεύουσα και τριτογενή αποθήκευση Βάσεις Δεδομένων, Παν. Πειραιώς 3
Φυσικά μέσα αποθήκευσης Μόνιμη (nonvolatile storage) vs. ευμετάβλητη (volatile storage) αποθήκευση Μόνιμη: το περιεχόμενο παραμένει ακόμη κι όταν σταματήσει η παροχή ρεύματος Μονάδες δευτερεύουσας αποθήκευσης Ευμετάβλητη: υπάρχει απώλεια δεδομένων όταν διακοπεί η παροχή ρεύματος Κύρια μνήμη Άμεση (online access) vs. έμμεση (offline access) προσπέλαση Άμεση: Τα δεδομένα είναι διαθέσιμα ανά πάσα στιγμή Μαγνητικοί δίσκοι Έμμεση: Αργή πρόσβαση στα δεδομένα (προηγείται φόρτωμα) Ταινίες Βάσεις Δεδομένων, Παν. Πειραιώς 4
Κατηγοριοποίηση μέρων αποθήκευσης (2) Βάσεις Δεδομένων, Παν. Πειραιώς 5
Ιεραρχία αποθήκευσης Πρωτεύουσα αποθήκευση Δευτερεύουσα Τριτεύουσα αποθήκευση Βάσεις Δεδομένων, Παν. Πειραιώς 6
Πρωτεύων αποθηκευτικός χώρος Volatile Τα δεδομενα χάνονται σε περίπτωση απώλειας ρεύματος Cache Κρυφή μνήμη ταχύτερη και πιο ακριβή μορφή αποθήκευσης;; Main memory Κύρια μνήμη: Γρήγορη προσπέλαση (τυπική ταχύτητα πρόσβαση 100 nanoseconds;; 1 nanosecond = 10 9 seconds) Περιορισμένη χωρητικότητα Σήμερα χρησιμοποιούνται ευρέως μερικά Gigabytes Βάσεις Δεδομένων, Παν. Πειραιώς 7
Δευτερεύων Αποθηκευτικός χώρος: Flash memory Δεδομένα διατηρούνται μετά από διακοπή ρεύματος Η ανάγνωση γίνεται αρκετά γρήγορά Η εγγραφή και διαγραφή είναι αργές Το κόστος αποθήκευσης είναι σχεδόν συγκρίσιμο με της κύριας μνήμης Ευρέως χρησιμοποιούμενες σε ψηφιακές συσκευές ( digital cameras, phones, and USB keys) Βάσεις Δεδομένων, Παν. Πειραιώς 8
Δευτερεύων Αποθηκευτικός Χώρος: Μαγνητικός Δίσκος Τα δεδομένα παραμένουν αναλλοίωτα σε περίπτωση απώλειας ρεύματος Τα δεδομένα αποθηκεύονται σε περιστρεφόμενους δίσκους Η ανάγνωση και η εγγραφή γίνεται μαγνητικά Πρόσβαση στα δεδομένα, προϋποθέτει μεταφορά από το δίσκο στην κύρια μνήμη Αποθήκευση στο δίσκο σημαίνει μεταφορά δεδομένων από την κύρια μνήμη στο δίσκο Άμεση προσπέλαση Είναι δυνατή η πρόσβαση στα δεδομένα με οποιαδήποτε σειρά (δεν απαιτείται σειριακή πρόσβαση) Σπάνια χάνονται τα δεδομένα, ακόμη και σε περίπτωση καταστροφής του δίσκου Βάσεις Δεδομένων, Παν. Πειραιώς 9
Φυσικά μέσα αποθήκευσης(cont.) Optical storage non-volatile, data is read optically from a spinning disk using a laser CD-ROM (640 MB) and DVD (4.7 to 17 GB) most popular forms Blu-ray disks: 27 GB to 54 GB Write-one, read-many (WORM) optical disks used for archival storage (CD-R, DVD-R, DVD+R) Multiple write versions also available (CD-RW, DVD- RW, DVD+RW, and DVD-RAM) Reads and writes are slower than with magnetic disk Juke-box systems, with large numbers of removable disks, a few drives, and a mechanism for automatic loading/unloading of disks available for storing large volumes of data Βάσεις Δεδομένων, Παν. Πειραιώς 10
Physical Storage Media (Cont.) Tape storage non-volatile, used primarily for backup (to recover from disk failure), and for archival data sequential-access much slower than disk very high capacity (40 to 300 GB tapes available) tape can be removed from drive storage costs much cheaper than disk, but drives are expensive Tape jukeboxes available for storing massive amounts of data hundreds of terabytes (1 terabyte = 10 9 bytes) to even multiple petabytes (1 petabyte = 10 12 bytes) Βάσεις Δεδομένων, Παν. Πειραιώς 11
Τριτεύων Αποθηκευτικός Χώρος: Ταινίες Μόνιμη αποθήκευση δεδομένων Χρησιμοποιείται κυρίως για λόγους backup (αντίγραφο ασφαλείας), recovery (επαναφορά από βλάβη) και αρχειοθέτηση δεδομένων Ακολουθιακή (σειριακή) προσπέλαση Πιο αργή από το δίσκο Δεν επιτρέπει την πρόσβαση σε ένα συγκεκριμένο σημείο της ταινίας Πολύ υψηλή χωρητικότητα Τυπικές τιμές (40 300 GB) Βάσεις Δεδομένων, Παν. Πειραιώς 12
Βάσεις Δεδομένων και Δευτερεύουσες Αποθηκευτικές Μονάδες Οι περισσότερες Βάσεις Δεδομένων αποθηκεύονται σε δευτερεύουσες αποθηκευτικές μονάδες, διότι Είναι πολύ μεγάλες για να χωρέσουν στην κύρια μνήμη Σπάνια οδηγούν σε μόνιμη απώλεια αποθηκευμένων δεδομένων (συγκριτικά με την πρωτεύουσα αποθήκευση) Το κόστος αποθήκευσης είναι κατά μία τάξη μεγέθους μικρότερο για τους δίσκους από ότι για την πρωτεύουσα αποθήκευση Βάσεις Δεδομένων, Παν. Πειραιώς 13
Άτρακτος (track): ένας κύκλος/τροχιά Κύλινδρος (cylinder): άτρακτοι με την ίδια διάμετρο σε διαφορετικές επιφάνειες Μπλοκ (blocks) ή τομείς (sectors): τμήμα της ατράκτου απέναντι από σταθερή γωνία από το κέντρο του δίσκου (τυπικές τιμές 4ΚΒ ή 8ΚΒ) Βάσεις Δεδομένων, Παν. Πειραιώς 14
Μέτρα απόδοσης δίσκων Χρόνος προσπέλαση(access time) ο χρόνος που απαιτείται από τη στιγμή που εκδοθεί ένα αίτημα εγγραφής/διαγραφής μέχρι τα δεδομένα να να αρχίσουν να μεταφέρονται. Αποτελείται Χρόνος αναζήτησης (Seek time) Χρόνος που απαιτείται για να αλλάξει η θέση της κεφαλής πάνω από τη σωστή άτρακτο (track) Λανθάνων χρόνος περιστροφής χρόνος που απαιτείται για τον τομέα που πρόκειται να προσπελαστεί να είναι κάτω από την κεφαλή. Κλίμακα μεταφοράς δεδομένων κλίμακα κατά την οποία τα δεδομένα μπορούν να ανακτηθούν ή να αποθηκευτούν στο δίσκο. Βάσεις Δεδομένων, Παν. Πειραιώς 15
Μέτρα απόδοσης Μέσος χρόνος αποτυχίας (ΜΧΑ) ο μέσος χρόνος που περιμένουμε να λειτουργεί το σύστημα χωρίς αποτυχία. Τυπικά 3 με 5 χρόνια Πιθανότητα αποτυχίας των νέων δίσκων είναι πολύ χαμηλή ΜΧΑ μείωνεται με την ηλικία των δίσκων Βάσεις Δεδομένων, Παν. Πειραιώς 16
Επιπτώσεις στην απόδοση εξαιτίας της δομής του δίσκου Ο χρόνος που απαιτείται για τις λειτουργίες της ΒΔ επηρεάζεται σημαντικά από τον τρόπο που τα δεδομένα είναι αποθηκευμένα στο δίσκο Πρέπει να προσέχουμε πώς τοποθετούμε εγγραφές πάνω στο δίσκο Π.χ. όταν δύο εγγραφές χρησιμοποιούνται μαζί, θα πρέπει να τις αποθηκεύσουμε κοντά στο δίσκο (δηλ. στο ίδιο μπλοκ) Γενικά αφού διαβαστεί μια τροχιά, μια άλλη κεφαλή γίνεται ενεργή και μια άλλη τροχιά στον ίδιο κύλινδρο διαβάζεται ή γράφεται Βάσεις Δεδομένων, Παν. Πειραιώς 17
Οργάνωση Αρχείων Η βάση δεδομένων αποθηκεύεται σαν μία συλλογή αρχείων. Κάθε αρχείο είναι μία συλλογή από εγγραφές. Μία εγγραφή είναι μία ακολουθία από πεδία. Μία προσέγγιση: Το μέγεθος εγγραφής είναι καθορισμένο Κάθε αρχείο έχει εγγραφές ενός συγκεκριμένου τύπου μόνο Διαφορετικά αρχεία χρησιμοποιούνται για διαφορετικές σχέσεις Βάσεις Δεδομένων, Παν. Πειραιώς 18
Σταθερού μήκους εγγραφές Απλή προσέγγιση: Αποθήκευση εγγραφής i ξεκινώντας από το n (i 1), όπου n είναι το μέγεθος κάθε εγγραφής Η προσπέλαση εγγραφών είναι απλή αλλά οι εγγραφές μπορεί να βρίσκονται σε διαφορετικά blocks Τροποποίηση: δεν επιτρέπουμε εγγραφές να αποθηκεύονται σε διαφορετικά blocks Διαγραφή εγγραφής ι εναλλακτικές προσεγγίσεις Μετακίνηση των εγγραφών i + 1,..., n στις θέσεις i,..., n 1 Μετακίνηση της εγγραφής n στην i type deposit = record account-number : char (10);; branch-name : char (22);; balance : real;; end Δεν μετακινούμε τις εγγραφές αλλα συνδέουμε όλες τις ελεύθερες εγγραφές σε μία ελεύθερη λίστα (free list) Βάσεις Δεδομένων, Παν. Πειραιώς 19
File Containing account Records: Record Deleted and All Records Moved Record 2 Deleted and All Records Moved Βάσεις Δεδομένων, Παν. Πειραιώς 20
File Containing account Records: A record deleted and Final Record Moved Record 2 deleted and Final Record Moved Βάσεις Δεδομένων, Παν. Πειραιώς 21
Ελεύθερες Λίστες (Free Lists) Αποθήκευσε τη διεύθυνση της πρώτης διεγραμμένης εγγραφής στην επικεφαλίδα του αρχείου. Χρησιμοποιούμε την πρώτη εγγραφή για να αποθηκεύσουμε τη διεύθυνση της δεύτερης διεγραμμένης εγγραφής κ.ο.κ Βάσεις Δεδομένων, Παν. Πειραιώς 22
Μεταβλητού μήκους εγγραφές Οι μεταβλητού μήκους εγγραφές εμφανίζονται στα συστήματα βάσεων δεδομένων με διάφορους τρόπους: Αποθήκευση πολλαπλών τύπων εγγραφών σε ένα αρχείο. Τύποι εγγραφών που επιτρέπουν μεταβλητού μήκους πεδία. Τύποι εγγραφών που επιτρέπουν επαναλαμβανόμενα πεδία Αναπαράσταση συμβολοσειρών με Byte type account-list = record branch-name : char (22);; account-info : array[1 ] of record account-number;; balance : real;; end Επισύναψη ενός end-of-record ( ) χαρακτήρα ελέγχου στο τέλος της κάθε εγγραφής Δυσκολία με τη διαγραφή Δυσκολία επαναχρησιμοποιήσης του χώρου πριν τη διαγραμμένη εγγραφή Δυσκολία με την αύξηση μήκους εγγραφών Βάσεις Δεδομένων, Παν. Πειραιώς 23
Αναπαράσταση συμβολοσειρών με Byte εγγραφών μεταβλητού μήκους Βάσεις Δεδομένων, Παν. Πειραιώς 24
Μεταβλητού Μήκους Εγγραφές: Δομή Τεμαχισμένων Σελίδων Η επικεφαλίδα στην αρχή κάθε block περιέχει : Αριθμός στοιχείων στην επικεφαλίδα Τέλος ελεύθερου χώρου στο block θέση και μέγεθος κάθε εγγραφής Οι εγγραφές μπορούν να μετακινούνται μέσα στο block για να τις διατηρούμε συνεχείς χωρίς να υπάρχει κενός χώρος ανάμεσα τους. Η είσοδος στην επικεφαλίδα πρέπει να ενημερώνεται. Οι δείκτες δεν δείχνουν κατευθείαν στις εγγραφές δείχνουν στην είσοδο της εγγραφής στην επικεφαλίδα. Βάσεις Δεδομένων, Παν. Πειραιώς 25
Εγγραφές μεταβλητού μήκους (συνέχεια...) Αναπαράσταση σταθερού μήκους: Δεσμευμένος χώρος Δείκτες Μέθοδος δεσμευμένου χώρου μπορούμε να χρησιμοποιήσουμε σταθερού-μήκους εγγραφές με συγκεκριμένο μέγιστο μήκος;; Μη χρησιμοποιούμενος χώρος γεμίζει με null ή το σύμβολο end-of-record. Χρήσιμη όταν οι εγγραφές έχουν μήκος κοντά στο μέγιστο Βάσεις Δεδομένων, Παν. Πειραιώς 26
Μέθοδος δεικτών Μία εγγραφή μεταβλητού μήκους αναπαριστάται από μία λίστα εγγραφών σταθερού μήκους οι οποίες συνδέονται μεταξύ τους μέσω δεικτών. Μπορεί να χρησιμοποιηθεί ακόμα και εάν το μέγιστο μήκος εγγραφών δεν είναι γνωστό Βάσεις Δεδομένων, Παν. Πειραιώς 27
Μέθοδος δεικτών (συνέχεια...) Μειονέκτημα: χάνεται χώρος σε όλες τις εγγραφές εκτός από την πρώτη στην αλυσίδα. Λύση: επιτρέπουμε δύο είδη block σ ένα αρχείο: Anchor block περιέχει την πρώτη εγγραφή της αλυσίδας Overflow block περιέχει άλλες εγγραφές εκτός της πρώτης στην αλυσίδα. Βάσεις Δεδομένων, Παν. Πειραιώς 28
Οργάνωση εγγραφών σε αρχεία Σωρός (Heap) μία εγγραφή μπορεί να τοποθετηθεί οπουδήποτε σε ένα αρχείο όπου υπάρχει χώρος Ακολουθιακή αποθήκευση εγγραφών σε ακολουθιακή σειρά, με βάση την τιμή ενός κλειδιού αναζήτησης από κάθε εγγραφή Κατακερματισμός (Hashing) μία συνάρτηση κατακερματισμού υπολογίζεται πάνω σε κάποιο χαρακτηριστικό κάθε εγγραφής τα αποτελέσματα καθορίζουν σε ποιο block του αρχείου θα πρέπει να τοποθετηθεί η εγγραφή Οι εγγραφές κάθε σχέσης μπορεί να αποθηκευτούν σε ένα ξεχωριστό αρχείο. Σε μία οργάνωση αρχείου συμπλέγματος εγγραφές από διαφορετικές σχέσεις μπορούν να αποθηκευτούν στο ίδιο αρχείο Κίνητρο: αποθήκευση σχετικών εγγραφών στο ίδιο block για να ελαχιστοποιήσουμε I/O Βάσεις Δεδομένων, Παν. Πειραιώς 29
Ακολουθιακή αποθήκευση Κατάλληλο για εφαρμογές που απαιτούν ακολουθιακή επεξεργασία ολόκληρου του αρχείου Οι εγγραφές σε ένα αρχείο ταξινομούνται με βάση ένα κλειδί αναζήτησης Βάσεις Δεδομένων, Παν. Πειραιώς 30
Ακολουθιακή αποθήκευση (συνέχεια) Διαγραφή χρήση της αλυσίδας δεικτών Εισαγωγή στη θέση που η εγγραφή πρόκειται να εισαχθεί Εάν υπάρχει ελεύθερος χώρος η εισαγωγή γίνεται εκεί Εάν δεν υπάρχει χώρος, εισαγωγή της εγγραφής σ ένα block υπερχείλισης Σε κάθε περίπτωση, η αλυσίδα δεικτών πρέπει να ενημερωθεί Απαιτείται αναδιοργάνωση του αρχείου κατά χρονικά διαστήματα για να αποθηκεύσουμε σε ακολουθιακή σειρά Βάσεις Δεδομένων, Παν. Πειραιώς 31
Οργάνωση Αρχείο Συμπλέγματος Απλή δομή αρχείου αποθηκεύει κάθε σχέση σε ένα ξεχωριστό αρχείο Χρησιμοποιώντας οργάνωση αρχείου συμπλέγματος μπορούμε να αποθηκεύσουμε διαφορετικές σχέσεις σ ένα αρχείο π.χ οργάνωση αρχείου συμπλέγματος των customer και depositor: good for queries involving depositor customer, and for queries involving one single customer and his accounts bad for queries involving only customer Βάσεις Δεδομένων, Παν. Πειραιώς 32
The depositor Relation The customer Relation select account-number, customer-name, customer-street, customer-city from depositor, customer where depositor.customer-name = customer.customer-name Βάσεις Δεδομένων, Παν. Πειραιώς 33
Clustering File Structure select account-number, customer-name, customer-street, customer-city from depositor, customer where depositor.customer-name =customer.customer-name Βάσεις Δεδομένων, Παν. Πειραιώς 34
Clustering File Structure With Pointer Chains select * from customer Βάσεις Δεδομένων, Παν. Πειραιώς 35
Αποθήκευση Λεξικού Δεδομένων Το λεξικό δεδομένων (ή κατάλογος συστήματος) αποθηκεύει μεταδεδομένα Πληροφορίες για τις σχέσεις Ονόματα σχέσεων Ονόματα και τύποι χαρακτηριστικών κάθε σχέσης Ονόματα και ορισμοί όψεων Περιορισμοί ακεραιότητας Πληροφορίες για τους λογαριασμούς χρηστών Στατιστικά δεδομένα Αριθμός εγγραφών ανά σχέση Πληροφορίες για τη φυσική οργάνωση των αρχείων Πληροφορίες για αρχεία δεικτοδότησης Βάσεις Δεδομένων, Παν. Πειραιώς 36
Λεξικό Δεδομένων (συνέχεια...) Πιθανή αναπαράσταση ενός λεξικού δεδομένων: Relation-metadata = (relation-name, number-of-attributes, storage-organization, location) Attribute-metadata = (attribute-name, relation-name, domain-type, position, length) User-metadata = (user-name, encrypted-password, group) Index-metadata = (index-name, relation-name, index-type, index-attributes) View-metadata = (view-name, definition) Βάσεις Δεδομένων, Παν. Πειραιώς 37