Διαχείριση συναλλαγών στο DBMS: Τι είναι οι ιδιότητες ACID;
Τι είναι μια συναλλαγή βάσης δεδομένων;
A Συναλλαγή βάσης δεδομένων είναι μια λογική μονάδα επεξεργασίας σε ένα DBMS που συνεπάγεται μία ή περισσότερες λειτουργίες πρόσβασης στη βάση δεδομένων. Με λίγα λόγια, οι συναλλαγές βάσης δεδομένων αντιπροσωπεύουν πραγματικά γεγονότα οποιασδήποτε επιχείρησης.
Όλοι οι τύποι λειτουργίας πρόσβασης στη βάση δεδομένων που διατηρούνται μεταξύ των δηλώσεων συναλλαγής έναρξης και λήξης θεωρούνται ως μια ενιαία λογική συναλλαγή στο DBMS. Κατά τη διάρκεια της συναλλαγής η βάση δεδομένων είναι ασυνεπής. Μόνο όταν δεσμευτεί η βάση δεδομένων, η κατάσταση αλλάζει από μια συνεπή κατάσταση σε μια άλλη.

Στοιχεία σχετικά με τις συναλλαγές βάσεων δεδομένων
- Μια συναλλαγή είναι μια μονάδα προγράμματος της οποίας η εκτέλεση μπορεί να αλλάξει ή να μην αλλάξει τα περιεχόμενα μιας βάσης δεδομένων.
- Η έννοια της συναλλαγής στο DBMS εκτελείται ως ενιαία μονάδα.
- Εάν οι λειτουργίες της βάσης δεδομένων δεν ενημερώνουν τη βάση δεδομένων αλλά ανακτούν μόνο δεδομένα, αυτός ο τύπος συναλλαγής ονομάζεται συναλλαγή μόνο για ανάγνωση.
- Μια επιτυχημένη συναλλαγή μπορεί να αλλάξει τη βάση δεδομένων από μια ΣΥΝΕΧΗ ΚΑΤΑΣΤΑΣΗ σε μια άλλη
- Οι συναλλαγές DBMS πρέπει να είναι ατομικές, συνεπείς, μεμονωμένες και ανθεκτικές
- Εάν η βάση δεδομένων ήταν σε ασυνεπή κατάσταση πριν από μια συναλλαγή, θα παρέμενε σε ασυνεπή κατάσταση μετά τη συναλλαγή.
Γιατί χρειάζεστε συγχρονισμό στις Συναλλαγές;
Μια βάση δεδομένων είναι ένας κοινόχρηστος πόρος στον οποίο έχετε πρόσβαση. Χρησιμοποιείται από πολλούς χρήστες και επεξεργάζεται ταυτόχρονα. Για παράδειγμα, το τραπεζικό σύστημα, τα συστήματα σιδηροδρομικών και αεροπορικών κρατήσεων, η παρακολούθηση του χρηματιστηρίου, η απογραφή σούπερ μάρκετ και τα ταμεία κ.λπ.
Η μη διαχείριση της ταυτόχρονης πρόσβασης μπορεί να δημιουργήσει προβλήματα όπως:
- Αποτυχία υλικού και σφάλματα συστήματος
- Ταυτόχρονη εκτέλεση της ίδιας συναλλαγής, αδιέξοδο, ή αργή απόδοση
Κατάσταση συναλλαγών
Οι διάφορες καταστάσεις μιας έννοιας συναλλαγής στο DBMS παρατίθενται παρακάτω:
Κατάσταση | Τύποι συναλλαγών |
---|---|
Ενεργός Κατάσταση | Μια συναλλαγή εισέρχεται σε ενεργή κατάσταση όταν ξεκινά η διαδικασία εκτέλεσης. Κατά τη διάρκεια αυτής της κατάστασης μπορούν να εκτελεστούν λειτουργίες ανάγνωσης ή εγγραφής. |
Μερικώς δεσμευμένος | Μια συναλλαγή μεταβαίνει στη μερικώς δεσμευμένη κατάσταση μετά το τέλος μιας συναλλαγής. |
Δεσμευμένο κράτος | Όταν η συναλλαγή έχει δεσμευτεί για κατάσταση, έχει ήδη ολοκληρώσει την εκτέλεσή της με επιτυχία. Επιπλέον, όλες οι αλλαγές του καταγράφονται μόνιμα στη βάση δεδομένων. |
Αποτυχημένη κατάσταση | Μια συναλλαγή θεωρείται αποτυχημένη όταν κάποιος από τους ελέγχους αποτυγχάνει ή εάν η συναλλαγή ματαιώνεται ενώ βρίσκεται σε ενεργή κατάσταση. |
Τερματισμένη κατάσταση | Η κατάσταση συναλλαγής φτάνει σε κατάσταση τερματισμού όταν ορισμένες συναλλαγές που εξέρχονται από το σύστημα δεν μπορούν να επανεκκινηθούν. |
Ας μελετήσουμε α διάγραμμα μετάβασης κατάστασης που υπογραμμίζει τον τρόπο με τον οποίο μια συναλλαγή κινείται μεταξύ αυτών των διαφόρων καταστάσεων.
- Μόλις μια συναλλαγή δηλώσει εκτέλεση, γίνεται ενεργή. Μπορεί να εκδώσει τη λειτουργία READ ή WRITE.
- Μόλις ολοκληρωθούν οι λειτουργίες READ και WRITE, οι συναλλαγές μετατρέπονται σε κατάσταση μερικής δέσμευσης.
- Στη συνέχεια, ορισμένα πρωτόκολλα ανάκτησης πρέπει να διασφαλίζουν ότι μια αποτυχία συστήματος δεν θα οδηγήσει σε αδυναμία μόνιμης καταγραφής αλλαγών στη συναλλαγή. Εάν αυτός ο έλεγχος είναι επιτυχής, η συναλλαγή δεσμεύεται και εισέρχεται στην δεσμευμένη κατάσταση.
- Εάν η επιταγή είναι αποτυχία, η συναλλαγή μεταβαίνει στην κατάσταση Αποτυχία.
- Εάν η συναλλαγή ματαιωθεί ενώ είναι σε ενεργή κατάσταση, μεταβαίνει στην κατάσταση αποτυχίας. Η συναλλαγή θα πρέπει να επαναφερθεί για να αναιρεθεί το αποτέλεσμα των λειτουργιών εγγραφής της στη βάση δεδομένων.
- Η κατάσταση τερματισμού αναφέρεται στη συναλλαγή που εξέρχεται από το σύστημα.
Τι είναι οι Ιδιότητες ΟΞΥ;
Ιδιότητες ΟΞΥ χρησιμοποιούνται για τη διατήρηση της ακεραιότητας της βάσης δεδομένων κατά την επεξεργασία των συναλλαγών. ACID στο DBMS σημαίνει Aτομικότητα, Cεπιμονή, Iλύση, και Dχρηστικότητα.
- Atomπαγετός: Μια συναλλαγή είναι μια ενιαία μονάδα λειτουργίας. Είτε το εκτελείτε εξ ολοκλήρου είτε δεν το εκτελείτε καθόλου. Δεν μπορεί να υπάρξει μερική εκτέλεση.
- Συνέπεια: Μόλις εκτελεστεί η συναλλαγή, θα πρέπει να μετακινηθεί από τη μια συνεπή κατάσταση στην άλλη.
- Απομόνωση: Η συναλλαγή θα πρέπει να εκτελείται μεμονωμένα από άλλες συναλλαγές (χωρίς κλειδαριές). Κατά τη διάρκεια της ταυτόχρονης εκτέλεσης συναλλαγών, τα αποτελέσματα των ενδιάμεσων συναλλαγών από συναλλαγές που εκτελούνται ταυτόχρονα δεν θα πρέπει να διατίθενται μεταξύ τους. (Επίπεδο 0,1,2,3)
- Αντοχή:· Μετά την επιτυχή ολοκλήρωση μιας συναλλαγής, οι αλλαγές στη βάση δεδομένων θα πρέπει να παραμένουν. Ακόμη και σε περίπτωση αστοχίας συστήματος.
Ιδιότητα ACID στο DBMS με παράδειγμα
Παρακάτω είναι ένα παράδειγμα ιδιότητας ACID στο DBMS:
Transaction 1: Begin X=X+50, Y = Y-50 END Transaction 2: Begin X=1.1*X, Y=1.1*Y END
Η συναλλαγή 1 μεταφέρει 50 $ από τον λογαριασμό X στον λογαριασμό Y.
Η συναλλαγή 2 πιστώνει κάθε λογαριασμό με πληρωμή τόκου 10%.
Εάν και οι δύο συναλλαγές υποβληθούν μαζί, δεν υπάρχει καμία εγγύηση ότι η Συναλλαγή 1 θα εκτελεστεί πριν από τη Συναλλαγή 2 ή το αντίστροφο. Ανεξάρτητα από τη σειρά, το αποτέλεσμα πρέπει να είναι σαν οι συναλλαγές να γίνονται σειριακά η μία μετά την άλλη.
Είδη Συναλλαγών
Με βάση τις περιοχές εφαρμογής
- Μη διανεμημένο vs
- Αντισταθμιστικές συναλλαγές
- Χρονοδιάγραμμα συναλλαγών
- On-line έναντι παρτίδας
Βασισμένο σε Δράσεις
- Δύο βήματα
- Περιορισμένος
- Μοντέλο δράσης
Με βάση τη Δομή
- Επίπεδες ή απλές συναλλαγές: Αποτελείται από μια ακολουθία πρωτόγονων πράξεων που εκτελούνται μεταξύ μιας αρχής και μιας λειτουργίας τέλους.
- Ένθετες συναλλαγές: Μια συναλλαγή που περιέχει άλλες συναλλαγές.
- Ροή εργασίας
Τι είναι ένα Πρόγραμμα;
Ένα Χρονοδιάγραμμα είναι μια διαδικασία που δημιουργεί μια ενιαία ομάδα από τις πολλαπλές παράλληλες συναλλαγές και τις εκτελεί μία προς μία. Θα πρέπει να διατηρεί τη σειρά με την οποία εμφανίζονται οι οδηγίες σε κάθε συναλλαγή. Εάν δύο συναλλαγές εκτελούνται ταυτόχρονα, το αποτέλεσμα μιας συναλλαγής μπορεί να επηρεάσει την έξοδο μιας άλλης.
Παράδειγμα
Initial Product Quantity is 10 Transaction 1: Update Product Quantity to 50 Transaction 2: Read Product Quantity
Εάν η Συναλλαγή 2 εκτελεστεί πριν από τη Συναλλαγή 1, θα διαβαστούν παρωχημένες πληροφορίες σχετικά με την ποσότητα του προϊόντος. Ως εκ τούτου, απαιτούνται χρονοδιαγράμματα.
Η παράλληλη εκτέλεση σε μια βάση δεδομένων είναι αναπόφευκτη. Όμως, η παράλληλη εκτέλεση επιτρέπεται όταν υπάρχει σχέση ισοδυναμίας μεταξύ των συναλλαγών που εκτελούνται ταυτόχρονα. Αυτή η ισοδυναμία είναι 3 τύπων.
ΙΣΟΔΥΝΑΜΙΑ ΑΠΟΤΕΛΕΣΜΑΤΟΣ:
Εάν δύο προγράμματα εμφανίζουν το ίδιο αποτέλεσμα μετά την εκτέλεση, ονομάζεται χρονοδιάγραμμα ισοδύναμου αποτελέσματος. Μπορεί να προσφέρουν το ίδιο αποτέλεσμα για κάποια τιμή και διαφορετικά αποτελέσματα για ένα άλλο σύνολο τιμών. Για παράδειγμα, μια συναλλαγή ενημερώνει την ποσότητα του προϊόντος, ενώ μια άλλη ενημερώνει τα στοιχεία του πελάτη.
Προβολή ισοδυναμίας
Η ισοδυναμία προβολής εμφανίζεται όταν η συναλλαγή και στα δύο προγράμματα εκτελεί παρόμοια ενέργεια. Για παράδειγμα, μια συναλλαγή εισάγει λεπτομέρειες προϊόντος στον πίνακα προϊόντων, ενώ μια άλλη συναλλαγή εισάγει λεπτομέρειες προϊόντος στον πίνακα αρχειοθέτησης. Η συναλλαγή είναι ίδια, αλλά οι πίνακες είναι διαφορετικοί.
ΣΥΓΚΡΟΥΣΗ Ισοδυναμία
Σε αυτήν την περίπτωση, δύο συναλλαγές ενημερώνουν/προβάλλουν το ίδιο σύνολο δεδομένων. Υπάρχει σύγκρουση μεταξύ της συναλλαγής καθώς η σειρά εκτέλεσης θα επηρεάσει την έξοδο.
Τι είναι η σειριοποίηση;
Η σειριοποίηση είναι η διαδικασία αναζήτησης ενός ταυτόχρονου χρονοδιαγράμματος που η έξοδος είναι ίση με ένα σειριακό πρόγραμμα όπου οι συναλλαγές εκτελούνται η μία μετά την άλλη. Ανάλογα με τον τύπο των χρονοδιαγραμμάτων, υπάρχουν δύο τύποι σειριοποίησης:
- Σύγκρουση
- Προβολή
Περίληψη
- Η διαχείριση συναλλαγών είναι μια λογική μονάδα επεξεργασίας σε ένα DBMS που συνεπάγεται μία ή περισσότερες λειτουργίες πρόσβασης στη βάση δεδομένων
- Είναι μια συναλλαγή είναι μια μονάδα προγράμματος της οποίας η εκτέλεση μπορεί ή όχι να αλλάξει τα περιεχόμενα μιας βάσης δεδομένων.
- Η μη διαχείριση της ταυτόχρονης πρόσβασης μπορεί να δημιουργήσει ζητήματα όπως αποτυχία υλικού και σφάλματα συστήματος.
- Η ενεργή, η μερική δέσμευση, η δέσμευση, η αποτυχία και ο τερματισμός είναι σημαντικές καταστάσεις συναλλαγής.
- Η πλήρης μορφή του ACID Properties in DBMS is Atomπαγετότητα, συνέπεια, απομόνωση και ανθεκτικότητα
- Τρεις τύποι συναλλαγών DBMS είναι Βάση στις περιοχές εφαρμογής, δράση και δομή.
- Ένα Χρονοδιάγραμμα είναι μια διαδικασία που δημιουργεί μια ενιαία ομάδα από τις πολλαπλές παράλληλες συναλλαγές και τις εκτελεί μία προς μία.
- Η σειριοποίηση είναι η διαδικασία αναζήτησης ενός ταυτόχρονου χρονοδιαγράμματος του οποίου η έξοδος είναι ίση με ένα σειριακό πρόγραμμα όπου οι συναλλαγές εκτελούνται η μία μετά την άλλη.