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