Αποθήκευση και Οργάνωση αρχείων Βάσεις εδοµένων ΙΙ Μάθηµα 2ο ιδάσκων: Μαρία Χαλκίδη Κατηγοριοποίηση των φυσικών µέσων αποθήκευσης Ταχύτητα µε την οποία προσπελαύνονται τα δεδοµένα Κόστος ανά µονάδα δεδοµένων Αξιοπιστία Απώλεια δεδοµένων στην περίπτωση διακοπής ρεύµατος ήκαταστροφήτουσυστήµατος Φυσική αποτυχία των µονάδων αποθήκευσης Μπορούµε να διαφοροποιήσουµε την αποθήκευση σε: Ευµετάβλητη (volatile storage): τα περιεχόµενα χάνονται όταν δεν υπάρχει παροχή ρεύµατος Μη- µεταβλητή (non-volatile storage): Το περιεχόµενο παραµένει ακόµα και εάν σταµατήσει η παροχή ρεύµατος. Περιλαµβάνει δευτερεύουσα και τριτογενή αποθήκευση Βάσεις εδοµένων ΙΙ, Παν. Πειραιώς 2 1
Φυσικά µέσα αποθήκευσης Cache γρηγορότερη και πιο ακριβή µορφή αποθήκευσης; ευµετάβλητη; η διαχείριση της γίνεται από το σύστηµα του υπολογιστή. Κύρια µνήµη: Γρήγορη προσπέλαση (10s to 100s of nanoseconds; 1 nanosecond = 10 9 seconds) Γενικά περιoσµένης χωρητικότητα (ή πολύ ακριβή) για να αποθηκεύσουµε ολόκληρη η βάση δεδοµένων Χωρητικότητα µέχρι µερικά Gigabytes χρησιµοποιούνται ευρέως σήµερα Ευµετάβλητη τα περιεχόµενα της κύριας µνήµης συνήθως χάνονται εάν υπάρξει διακοπή ρεύµατος ή το σύστηµα κατασταθεί. Βάσεις εδοµένων ΙΙ, Παν. Πειραιώς 3 Φυσικά µέσα αποθήκευσης (συνέχεια...) Flash memory Τα δεδοµένα δεν χάνονται σε διακοπη ρεύµατος Τα δεδοµένα µπορούν να γραφούν σε µία θέση µία µόνο φορά, αλλά η θέση αυτή µπορεί να διαγραφεί και να ξαναγραφεί Η ανάγνωση γίνεται σχεδόν τόσο γρήγορα όσο και στην κύρια µνήµη Αλλά η εγγραφή και διαγραφή είναι αργή Κόστος ανά µονάδα αποθήκευσης είναι σχεδόν ίδιο µε της κύρια µνήµης Ευρέως χρησιµοποιούµενη σε ενσωµατωµένες συσκευές όπως ψηφιακές κάµερες Βάσεις εδοµένων ΙΙ, Παν. Πειραιώς 4 2
Φυσικά µέσα αποθήκευσης (συνέχεια) Μαγνητικός δίσκος Τα δεδοµένα αποθηκεύονται σε περιστρεφόµενο δίσκο και γράφονται/διαβάζονται µαγνητικά Πρωτεύον µέσο για µεγάλης διάρκειας αποθήκευση. Τυπικά αποθηκεύει ολόκληρη τη Β Τα δεδοµένα πρέπει να µετακινούνται από το δίσκο στην κύρια µνήµη για προσπέλαση και να γράφονται πίσω για αποθήκευση. Πίο αργή προσπέλαση από αυτή της κύριας µνήµης Άµεση-προσπέλαση δυνατή ανάγνωση των δεδοµένων από το δίσκο µε οποιαδήποτε σειρά αντίθετα µε τηµαγνητική ταινία Ανθεκτική σε περίπτωση διακοπής ρεύµατος και καταστροφής του συστήµατος Η καταστροφή του δίσκου µπορεί να καταστρέψει τα δεδοµένα αλλα είναι πολύ σπάνιο Βάσεις εδοµένων ΙΙ, Παν. Πειραιώς 5 Φυσικά µέσα αποθήκευσης (συνέχεια) Οπτική αποθήκευση Μη-ευµετάβλητη(non-volatile), τα δεδοµένα διαβάζονται οπτκά από το δίσκο χρησιµοποιώντας laser CD-ROM (640 MB) and DVD (4.7 to 17 GB) πιο διµοφιλής µορφές Write-one, read-many (WORM) οπτικοί δίσκοι χρησιµοποιούνται για αποθήκευση αρχείων(cd-r and DVD- R) Multiple write versions (CD-RW, DVD-RW, and DVD-RAM) Η ανάγνωση και εγγραφή είναι πιο αργή από ότι σε µαγνητικό δίσκο Βάσεις εδοµένων ΙΙ, Παν. Πειραιώς 6 3
Φυσικά µέσα αποθήκευσης (συνέχεια) Ταινία αποθήκευσης(tape storage ) Μη-ευµετάβλητη, χρησιµοποιείται κυρίως για backup (για ανάνηψη από αποτυχία δίσκου), και για αρχειοθέτηση δεδοµένων Ακολουθιακή προσπέλαση πιο αργή από το δίσκο Πολύ υψηλή χωρητικότητα (40 to 300 GB) Βάσεις εδοµένων ΙΙ, Παν. Πειραιώς 7 Ιεραρχία αποθήκευσης Πρωτογενής ευτερογενής Τριτογενής Βάσεις εδοµένων ΙΙ, Παν. Πειραιώς 8 4
Ιεραρχία αποθήκευσης (συνέχεια...) Πρωτεύουσα αποθήκευση: Γρηγορότερα µέσα αλλά ευµετάβλητα (cache, main memory). ευτερεύουσα αποθήκευση: µη µεταβλητή, µέσης ταχύτητα προσπέλαση Καλέιται και on-line storage flash memory, magnetic disks Τριτογενής: µη-µεταβλητή, χαµηλή ταχύτητα προσπέλαση Καλέιται και off-line storage magnetic tape, optical storage Βάσεις εδοµένων ΙΙ, Παν. Πειραιώς 9 Time to access (read/write) a disk block: seek time (moving arms to position disk head on track) rotational delay (waiting for block to rotate under head) transfer time (actually moving data to/from disk surface) Seek time and rotational delay dominate. Seek time varies from about 1 to 20msec Rotational delay varies from 0 to 10msec Transfer rate is about 1msec per 4KB page Βάσεις εδοµένων ΙΙ, Παν. Πειραιώς 10 5
Μέτρα απόδοσης δίσκων Χρόνος προσπέλαση(access time) οχρόνοςπου απαιτείται από τη στιγµή που εκδοθεί ένα αίτηµα εγγραφής/διαγραφής µέχρι τα δεδοµένα να να αρχίσουν να µεταφέρονται. Αποτελείται Χρόνος αναζήτησης (Seek time) Χρόνος που απαιτείται για να αλλάξει η θέση της κεφαλής πάνω απόστόσωστόίχνος(track) Λανθάνων χρόνος περιστροφής χρόνος που απαιτείται για τον τοµέα που πρόκειται να προσπελαστεί να είναι κάτω από την κεφαλή. Κλίµακα µεταφοράς δεδοµένων κλίµακα κατά την οποία τα δεδοµένα µπορούν να ανακτηθούν ή να αποθηκευτούν στο δίσκο. Βάσεις εδοµένων ΙΙ, Παν. Πειραιώς 11 Βάσεις εδοµένων ΙΙ, Παν. Πειραιώς 12 6
Μέτρα απόδοσης Μέσος χρόνος αποτυχίας (ΜΧΑ) ο µέσος χρόνος που περιµένουµε να λειτουργεί το σύστηµα χωρίς αποτυχία. Τυπικά 3 µε 5 χρόνια Πιθανότητα αποτυχίας των νέων δίσκων είναι πολύ χαµηλή ΜΧΑ µειώνεται µε την ηλικία των δίσκων Βάσεις εδοµένων ΙΙ, Παν. Πειραιώς 13 Οργάνωση Αρχείων Η βάση δεδοµένων αποθηκεύεται σαν µία συλλογή αρχείων. Κάθε αρχείο είναι µία συλλογή από εγγραφές. Μία εγγραφή είναι µία ακολουθία από πεδία. Μία προσέγγιση: Το µέγεθος εγγραφής είναι καθορισµένο Κάθε αρχείο έχει εγγραφές ενός συγκεκριµένου τύπου µόνο ιαφορετικά αρχεία χρησιµοποιούνται για διαφορετικές σχέσεις Βάσεις εδοµένων ΙΙ, Παν. Πειραιώς 14 7
Σταθερού µήκους εγγραφές Απλή προσέγγιση: Αποθήκευση εγγραφής i ξεκινώντας από το n (i 1), όπου n έιναι το µέγεθος κάθε εγγραφής Η προσπέλαση εγγραφών είναι απλή αλλά οι εγγραφές µπορεί να βρίσκονται σε διαφορετικά blocks Τροποποίηση: δεν επιτρέπουµε εγγραφές να αποθηκεύονται σε διαφορετικά blocks ιαγραφή εγγραφής ι εναλλακτικές προσεγγίσεις Μετακίνηση των εγγραφών i + 1,..., n στις θέσεις i,..., n 1 Μετακίνηση της εγγραφής n στην i εν µετακινούµε τις εγγραφές αλλα συνδέουµε όλες τις ελεύθερες εγγραφές σε µία ελεύθερη λίστα (free list) type deposit = record account-number number : char (10); branch-name name : char (22); balance : real; end Βάσεις εδοµένων ΙΙ, Παν. Πειραιώς 15 File Containing account Records: Record Deleted and All Records Moved Record 2 Deleted and All Records Moved Βάσεις εδοµένων ΙΙ, Παν. Πειραιώς 16 8
File Containing account Records: A record deleted and Final Record Moved Record 2 deleted and Final Record Moved Βάσεις εδοµένων ΙΙ, Παν. Πειραιώς 17 Ελεύθερες Λίστες (Free Lists) Αποθήκευσε τη διεύθυνση της πρώτης διεγραµµένης εγγραφής στην επικεφαλίδα του αρχείου. Χρησιµποποιούµε την πρώτη εγγραφή για να αποθηκεύσουµε τη διεύθυνση της δεύτερης διεγραµµένης εγγραφής κ.ο.κ Βάσεις εδοµένων ΙΙ, Παν. Πειραιώς 18 9
Μεταβλητού µήκους εγγραφές type account-list = record branch-name name : char (22); account-info : array[1 ] ] of record account-number; number; balance : real; end Οι µεταβλητού µήκους εγγραφές εµφανίζονται στα συστήµατα βάσεων δεδοµένων µε διάφορους τρόπους: Αποθήκευση πολλαπλών τύπων εγγραφών σε ένα αρχείο. Τύποι εγγραφών που επιτρέπουν µεταβλητού µήκους πεδία. Τύποι εγγραφών που επιτρέπουν επαναλαµβανόµενα πεδία Αναπαράσταση συµβολοσειρών µε Byte Επισύναψη ενός end-of-record ( ) χαρακτήρα ελέγχουστο τέλος της κάθε εγγραφής υσκολία µε τηδιαγραφή υσκολία επαναχρησιµοποιήσης του χώρου πριν τη διαγραµµένη εγγραφή υσκολία µε τηναύξησηµήκους Βάσεις εδοµένων ΙΙ, εγγραφών Παν. Πειραιώς 19 Αναπαράσταση συµβολοσειρών µε Byte εγγραφών µεταβλητού µήκους Βάσεις εδοµένων ΙΙ, Παν. Πειραιώς 20 10
Μεταβλητού Μήκους Εγγραφές: οµή Τεµαχισµένων Σελίδων Η επικεφαλίδα στην αρχή κάθε block περιέχει : Αριθµός στοιχείων στην επικεφαλίδα Τέλος ελεύθερου χώρου στο block θέση και µέγεθος κάθε εγγραφής Οι εγγραφές µπορούν να µετακινούνται µέσα στο block για να τις διατηρούµε συνεχείς χωρίς να υπάρχει κενός χώρος ανάµεσα τους; Η είσοδος στην επικεφαλίδα πρέπει να ενηµερώνεται. Οι δείκτες δεν δείχνουν κατευθείαν στις εγγραφές δείχνουν στην είσοδο της εγγραφής στην επικεφαλίδα. Βάσεις εδοµένων ΙΙ, Παν. Πειραιώς 21 Εγγραφές µεταβλητού µήκους (συνέχεια...) Αναπαράσταση σταθερού µήκους: εσµευµένος χώρος είκτες Μέθοδος δεσµευµένου χώρου µπορούµε ναχρησιµοποιήσουµε σταθερού-µήκους εγγραφές µε συγκεκριµένο µέγιστο µήκος; Μη χρησιµοποιούµενος χώρος γεµίζει µε null ή το σύµβολο end-of-record. Χρήσιµη ότανοιεγγαρφέςέχουνµήκος κοντά στο µέγιστο Βάσεις εδοµένων ΙΙ, Παν. Πειραιώς 22 11
Μέθοδος δεικτών Μία εγγραφή µεταβλητού µήκους αναπαριστάται από µία λίστα εγγραφών σταθερού µήκους οι οποίες συνδέονται µεταξύ τους µέσω δεικτών. Μπορεί να χρησιµοποιηθεί ακόµα και εάν το µέγιστο µήκος εγγραφών δεν είναι γνωστό Βάσεις εδοµένων ΙΙ, Παν. Πειραιώς 23 Μέθοδος δεικτών (συνέχεια...) Μειονέκτηµα: χάνεται χώρος σε όλες τις εγγραφές εκτός από την πρώτη στην αλυσίδα. Λύση: επιτρέπουµε δύοείδηblock σ ένα αρχείο: Anchor block περιέχει την πρώτη εγγραφή της αλυσίδας Overflow block περιέχειάλλεςεγγραφέςεκτόςτηςπρώτηςστην αλυσίδα. Βάσεις εδοµένων ΙΙ, Παν. Πειραιώς 24 12
Οργάνωση εγγραφών σε αρχεία Σωρός (Heap) µία εγγραφή µπορεί να τοποθετηθεί οπουδήποτε σε ένα αρχείο όπου υπάρχει χώρος Ακολουθιακή αποθήκευση εγγραφών σε ακολουθιακή σειρά, µε βάση την τιµή ενός κλειδιού αναζήτησης από κάθε εγγραφή Κατακερµατισµός (Hashing) µία συνάρτηση κατακερµατισµού υπολογίζεται πάνω σε κάποιο χαρακτηριστικό κάθε εγγραφής τα αποτελέσµατα καθορίζουν σε ποιο block του αρχείου θα πρέπει να τοποθετηθεί η εγγραφή Οι εγγραφές κάθε σχέσης µπορεί να αποθηκευτούν σε ένα ξεχωριστό αρχείο. Σε µία οργάνωση αρχείου συµπλέγµατος εγγραφές από διαφορετικές σχέσεις µπορούν να αποθηκευτούν στο ίδιο αρχείο Κίνητρο: αποθήκευση σχετικών εγγραφών στο ίδιο block για να ελαχιστοποιήσουµε I/O Βάσεις εδοµένων ΙΙ, Παν. Πειραιώς 25 Οργάνωση Αρχείο Συµπλέγµατος Κατάλληλο για εφαρµογές που απαιτούν ακολουθιακή επεξεργασία ολόκληρου του αρχείου Οι εγγραφές σε ένα αρχείο ταξινοµούνται µε βάση ένα κλειδί αναζήτησης Βάσεις εδοµένων ΙΙ, Παν. Πειραιώς 26 13
Οργάνωση Αρχείο Συµπλέγµατος (συνέχεια) ιαγραφή χρήση της αλυσίδας δεικτών Εισαγωγή στη θέση που η εγγραφή πρόκειται να εισαχθεί Εάν υπάρχει ελεύθερος χώρος η εισαγωγή γίνεται εκεί Εάν δεν υπάρχει χώρος, εισαγωγή της εγγραφής σ ένα block υπερχείλισης Σε κάθε περίπτωση, η αλυσίδα δεικτών πρέπει να ενηµερωθεί Απαιτείται αναδιοργάνωση του αρχείου κατά χρονικά διαστήµατα γιανααποθηκεύσουµε σε ακολουθιακή σειρά Βάσεις εδοµένων ΙΙ, Παν. Πειραιώς 27 Οργάνωση Αρχείο Συµπλέγµατος (συνέχεια) Απλή δοµή αρχείου αποθηκεύει κάθε σχέση σε ένα ξεχωριστό αρχείο Χρησιµοποιώντας οργάνωση αρχείου συµπλέγµατος µπορούµε να αποθηκεύσουµε διαφορετικές σχέσεις σ ένα αρχείο π.χ οργάνωση αρχείου συµπλέγµατος των customer και depositor: good for queries involving depositor customer, and for queries involving one single customer and his accounts bad for queries involving only customer Βάσεις εδοµένων ΙΙ, Παν. Πειραιώς 28 14
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 Βάσεις εδοµένων ΙΙ, Παν. Πειραιώς 29 Clustering File Structure select account-number, customer-name, customer-street, customer-city from depositor, customer where depositor.customer-name =customer.customer-name Βάσεις εδοµένων ΙΙ, Παν. Πειραιώς 30 15
Clustering File Structure With Pointer Chains select * from customer Βάσεις εδοµένων ΙΙ, Παν. Πειραιώς 31 Αποθήκευση Λεξικού εδοµένων Το λεξικό δεδοµένων (ή κατάλογος συστήµατος) αποθηκεύει µεταδεδοµένα Πληροφορίες για τις σχέσεις Ονόµατα σχέσεων Ονόµατα και τύποι χαρακτηριστικών κάθε σχέσης Ονόµατα και ορισµοί όψεων Περιορισµοί ακεραιότητας Πληροφορίες για τους λογαριασµούς χρηστών Στατιστικά δεδοµένα Αριθµός εγγραφών ανά σχέση Πληροφορίες για τη φυσική οργάνωση των αρχείων Πληροφορίες για αρχεία δεικτοδότησης (επόµενο µάθηµα) Βάσεις εδοµένων ΙΙ, Παν. Πειραιώς 32 16
Λεξικό εδοµένων (συνέχεια...) Πιθανή αναπαράσταση ενός λεξικού δεδοµένων: 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) Βάσεις εδοµένων ΙΙ, Παν. Πειραιώς 33 17