ACID Προστατεύει τα δεδομένα της βάσης δεδομένων σας
Το μοντέλο ACID του σχεδιασμού βάσης δεδομένων είναι μία από τις παλαιότερες και πιο σημαντικές έννοιες της θεωρίας της βάσης δεδομένων. Ορίζει τέσσερις στόχους που κάθε σύστημα διαχείρισης βάσεων δεδομένων πρέπει να προσπαθήσει να επιτύχει: ατομικότητα, συνέπεια, απομόνωση και ανθεκτικότητα. Μια σχεσιακή βάση δεδομένων που δεν πληροί κανέναν από αυτούς τους τέσσερις στόχους δεν μπορεί να θεωρηθεί αξιόπιστη. Μία βάση δεδομένων που διαθέτει αυτά τα χαρακτηριστικά θεωρείται ότι είναι συμβατή με το ACID.
Ορισμός ACID
Ας πάρουμε λίγο χρόνο για να εξετάσουμε λεπτομερώς καθένα από αυτά τα χαρακτηριστικά:
- Η ατομικότητα δηλώνει ότι οι τροποποιήσεις βάσης δεδομένων πρέπει να ακολουθούν έναν κανόνα "όλα ή τίποτα". Κάθε συναλλαγή λέγεται ότι είναι "ατομική". Εάν αποτύχει ένα μέρος της συναλλαγής, αποτυγχάνει ολόκληρη η συναλλαγή. Είναι κρίσιμο το σύστημα διαχείρισης βάσεων δεδομένων να διατηρεί την ατομική φύση των συναλλαγών, παρά το βλάβη του ΣΔΒΔ, του λειτουργικού συστήματος ή του υλικού.
- Η συνέπεια δηλώνει ότι μόνο έγκυρα δεδομένα θα εγγραφούν στη βάση δεδομένων. Αν, για κάποιο λόγο, εκτελεσθεί μια συναλλαγή που παραβιάζει τους κανόνες συνέπειας της βάσης δεδομένων, ολόκληρη η συναλλαγή θα επαναληφθεί και η βάση δεδομένων θα αποκατασταθεί σε κατάσταση σύμφωνη με αυτούς τους κανόνες. Από την άλλη πλευρά, αν μια συναλλαγή εκτελείται με επιτυχία, θα πάρει τη βάση δεδομένων από μια κατάσταση που είναι σύμφωνη με τους κανόνες σε μια άλλη κατάσταση που είναι επίσης σύμφωνη με τους κανόνες.
- Η απομόνωση απαιτεί οι πολλαπλές συναλλαγές που συμβαίνουν ταυτόχρονα να μην επηρεάζουν την εκτέλεση του άλλου. Για παράδειγμα, αν ο Joe εκδώσει μια συναλλαγή σε μια βάση δεδομένων ταυτόχρονα με τη Mary που εκδίδει μια διαφορετική συναλλαγή, και οι δύο συναλλαγές θα πρέπει να λειτουργούν στη βάση δεδομένων με μεμονωμένο τρόπο. Η βάση δεδομένων πρέπει είτε να εκτελέσει ολόκληρη τη συναλλαγή του Joe πριν εκτελέσει τη Mary, είτε αντίστροφα. Αυτό εμποδίζει τη συναλλαγή του Joe από την ανάγνωση των ενδιάμεσων δεδομένων που παράγονται ως παρενέργεια ενός μέρους της συναλλαγής της Mary που τελικά δεν θα δεσμευτεί στη βάση δεδομένων. Σημειώστε ότι η ιδιότητα απομόνωσης δεν διασφαλίζει ποια συναλλαγή θα εκτελεστεί πρώτα - απλά ότι οι συναλλαγές δεν θα παρεμβαίνουν μεταξύ τους
- Η ανθεκτικότητα διασφαλίζει ότι δεν θα χαθεί οποιαδήποτε συναλλαγή δεσμεύεται στη βάση δεδομένων. Η ανθεκτικότητα διασφαλίζεται μέσω της χρήσης αντιγράφων ασφαλείας βάσεων δεδομένων και αρχείων καταγραφής συναλλαγών που διευκολύνουν την αποκατάσταση των δεσμευμένων συναλλαγών, παρά τις τυχόν αποτυχίες λογισμικού ή υλικού.
Πώς λειτουργεί το ACID στην πράξη
Οι διαχειριστές βάσεων δεδομένων χρησιμοποιούν διάφορες στρατηγικές για την επιβολή του ACID.
Ένας που χρησιμοποιείται για την επιβολή της ατομικότητας και της ανθεκτικότητας είναι η καταγραφή μπροστά (WAL), στην οποία κάθε λεπτομέρεια της συναλλαγής γράφεται για πρώτη φορά σε ένα αρχείο καταγραφής που περιλαμβάνει και την επαναφορά και την αναίρεση των πληροφοριών. το ημερολόγιο και να συγκρίνετε τα περιεχόμενά του με την κατάσταση της βάσης δεδομένων.
Μια άλλη μέθοδος που χρησιμοποιείται για την αντιμετώπιση της ατομικότητας και της αντοχής είναι η σκίαση σε μια σελίδα σκίασης που δημιουργείται όταν τα δεδομένα πρόκειται να τροποποιηθούν. Οι ενημερώσεις του ερωτήματος είναι γραμμένες στη σκιά και όχι στα πραγματικά δεδομένα της βάσης δεδομένων. Η ίδια η βάση δεδομένων τροποποιείται μόνο όταν ολοκληρωθεί η επεξεργασία.
Μια άλλη στρατηγική ονομάζεται πρωτόκολλο δέσμευσης δύο φάσεων , ιδιαίτερα χρήσιμη σε κατανεμημένα συστήματα βάσεων δεδομένων. Αυτό το πρωτόκολλο χωρίζει ένα αίτημα να τροποποιηθούν τα δεδομένα σε δύο φάσεις: μια φάση αιτήματος δέσμευσης και μια φάση δέσμευσης. Στη φάση της αίτησης, όλα τα ΣΔΒΔ σε ένα δίκτυο που επηρεάζονται από τη συναλλαγή πρέπει να επιβεβαιώνουν ότι τα έχουν λάβει και έχουν την ικανότητα να εκτελούν τη συναλλαγή. Μόλις ληφθεί επιβεβαίωση από όλα τα σχετικά ΣΔΒΔ, ολοκληρώνεται η φάση δέσμευσης, στην οποία τα δεδομένα είναι πραγματικά τροποποιημένα.