Διαχείριση συναλλαγών DBMS: Τι είναι οι ιδιότητες ACID;

Τι είναι η συναλλαγή βάσης δεδομένων;

ΠΡΟΣ ΤΟ Συναλλαγή βάσης δεδομένων είναι μια λογική μονάδα επεξεργασίας σε ένα DBMS που συνεπάγεται μία ή περισσότερες λειτουργίες πρόσβασης στη βάση δεδομένων. Με λίγα λόγια, οι συναλλαγές με βάση δεδομένων αντιπροσωπεύουν γεγονότα του πραγματικού κόσμου οποιασδήποτε επιχείρησης.

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

Σε αυτό το σεμινάριο, θα μάθετε:

Γεγονότα για τις συναλλαγές βάσης δεδομένων

  • Μια συναλλαγή είναι μια μονάδα προγράμματος της οποίας η εκτέλεση μπορεί να αλλάξει ή να μην αλλάξει το περιεχόμενο μιας βάσης δεδομένων.
  • Η έννοια της συναλλαγής στο DBMS εκτελείται ως ενιαία μονάδα.
  • Εάν οι λειτουργίες της βάσης δεδομένων δεν ενημερώνουν τη βάση δεδομένων αλλά ανακτούν μόνο δεδομένα, αυτός ο τύπος συναλλαγής ονομάζεται συναλλαγή μόνο για ανάγνωση.
  • Μια επιτυχημένη συναλλαγή μπορεί να αλλάξει τη βάση δεδομένων από ένα ΣΥΝΕΧΟΜΕΝΟ ΚΡΑΤΟΣ σε άλλο
  • Οι συναλλαγές DBMS πρέπει να είναι ατομικές, συνεπείς, απομονωμένες και ανθεκτικές
  • Εάν η βάση δεδομένων ήταν σε ασυνεπή κατάσταση πριν από μια συναλλαγή, θα παρέμενε σε ασυνεπή κατάσταση μετά τη συναλλαγή.

Γιατί χρειάζεστε ταυτόχρονη συναλλαγή;

Μια βάση δεδομένων είναι ένας κοινόχρηστος πόρος στον οποίο έχετε πρόσβαση. Χρησιμοποιείται από πολλούς χρήστες και επεξεργάζεται ταυτόχρονα. Για παράδειγμα, το τραπεζικό σύστημα, τα συστήματα κρατήσεων σιδηροδρόμων και αεροπορικών εταιρειών, η παρακολούθηση της χρηματιστηριακής αγοράς, η απογραφή των σούπερ μάρκετ και τα ταμεία κ.λπ.

Η μη διαχείριση ταυτόχρονης πρόσβασης μπορεί να δημιουργήσει ζητήματα όπως:

  • Αποτυχία υλικού και σφάλματα συστήματος
  • Ταυτόχρονη εκτέλεση της ίδιας συναλλαγής, αδιέξοδο ή αργή απόδοση

Καταστάσεις συναλλαγών

Οι διάφορες καταστάσεις μιας έννοιας συναλλαγής στο DBMS παρατίθενται παρακάτω:

κατάσταση Τύποι συναλλαγών
Ενεργό κράτοςΜια συναλλαγή εισέρχεται σε ενεργή κατάσταση όταν ξεκινά η διαδικασία εκτέλεσης. Κατά τη διάρκεια αυτής της κατάστασης μπορούν να εκτελεστούν λειτουργίες ανάγνωσης ή εγγραφής.
Εν μέρει δεσμευμένοςΜια συναλλαγή μεταβαίνει σε κατάσταση μερικώς δεσμευμένης μετά το τέλος μιας συναλλαγής.
Δεσμευμένο κράτοςΌταν η συναλλαγή δεσμεύεται να δηλώσει, έχει ήδη ολοκληρώσει την εκτέλεσή της με επιτυχία. Επιπλέον, όλες οι αλλαγές του καταγράφονται μόνιμα στη βάση δεδομένων.
Αποτυχημένη κατάστασηΜια συναλλαγή θεωρείται αποτυχημένη όταν κάποιος από τους ελέγχους αποτύχει ή εάν η συναλλαγή ματαιωθεί ενώ βρίσκεται στην ενεργή κατάσταση.
Τερματισμένο κράτοςΗ κατάσταση συναλλαγής φτάνει σε τερματισμένη κατάσταση όταν δεν είναι δυνατή η επανεκκίνηση ορισμένων συναλλαγών που εξέρχονται από το σύστημα.

Διάγραμμα μετάβασης κατάστασης για συναλλαγή βάσης δεδομένων



Ας μελετήσουμε α διάγραμμα μετάβασης κατάστασης που αναδεικνύει πώς κινείται μια συναλλαγή μεταξύ αυτών των διαφόρων καταστάσεων.

  1. Μόλις μια συναλλαγή δηλώσει την εκτέλεση, γίνεται ενεργή. Μπορεί να εκδώσει λειτουργία ΑΝΑΓΝΩΣΗ ή ΓΡΑΠΤΗ.
  2. Μόλις ολοκληρωθούν οι πράξεις READ και WRITE, οι συναλλαγές γίνονται μερικώς δεσμευμένες.
  3. Στη συνέχεια, ορισμένα πρωτόκολλα ανάκτησης πρέπει να διασφαλίσουν ότι μια αποτυχία συστήματος δεν θα έχει ως αποτέλεσμα την αδυναμία μόνιμης καταγραφής αλλαγών στη συναλλαγή. Εάν αυτός ο έλεγχος είναι επιτυχής, η συναλλαγή δεσμεύεται και εισέρχεται στη δεσμευμένη κατάσταση.
  4. Εάν ο έλεγχος αποτύχει, η συναλλαγή μεταβαίνει σε κατάσταση αποτυχίας.
  5. Εάν η συναλλαγή ακυρωθεί ενώ βρίσκεται σε ενεργή κατάσταση, μεταβαίνει στην αποτυχημένη κατάσταση. Η συναλλαγή πρέπει να ακυρωθεί για να αναιρεθεί η επίδραση των εγγραφών της στη βάση δεδομένων.
  6. Η κατάσταση τερματισμού αναφέρεται στη συναλλαγή που εξέρχεται από το σύστημα.

Τι είναι οι ιδιότητες ACID;

Ιδιότητες ACID χρησιμοποιούνται για τη διατήρηση της ακεραιότητας της βάσης δεδομένων κατά την επεξεργασία συναλλαγών. Το ACID στο DBMS σημαίνει ΠΡΟΣ ΤΟ οσμικότητα, ντο αντοχή, Εγώ ησυχία, και ρε χρηστικότητα

  • Ατομικότητα: Μια συναλλαγή είναι μια ενιαία μονάδα λειτουργίας. Είτε το εκτελείτε εξ ολοκλήρου είτε δεν το εκτελείτε καθόλου. Δεν μπορεί να υπάρξει μερική εκτέλεση.
  • Συνοχή: Μόλις εκτελεστεί η συναλλαγή, θα πρέπει να μετακινηθεί από τη μία συνεπή κατάσταση στην άλλη.
  • Απομόνωση: Η συναλλαγή πρέπει να εκτελείται μεμονωμένα από άλλες συναλλαγές (χωρίς κλειδαριές). Κατά τη διάρκεια ταυτόχρονης εκτέλεσης συναλλαγών, τα ενδιάμεσα αποτελέσματα συναλλαγών από ταυτόχρονες συναλλαγές δεν πρέπει να διατίθενται μεταξύ τους. (Επίπεδο 0,1,2,3)
  • Αντοχή: · Μετά την επιτυχή ολοκλήρωση μιας συναλλαγής, οι αλλαγές στη βάση δεδομένων θα πρέπει να συνεχιστούν. Ακόμα και σε περίπτωση βλάβης του συστήματος.

Ιδιότητα ACID στο DBMS με παράδειγμα:

Παρακάτω είναι ένα παράδειγμα ιδιότητας ACID στο DBMS: | _+_ |

Η συναλλαγή 1 μεταφέρει 50 $ από τον λογαριασμό X στον λογαριασμό Y.

Η συναλλαγή 2 πιστώνει κάθε λογαριασμό με πληρωμή τόκων 10%.

Εάν και οι δύο συναλλαγές υποβληθούν μαζί, δεν υπάρχει καμία εγγύηση ότι η Συναλλαγή 1 θα εκτελεστεί πριν από τη Συναλλαγή 2 ή αντίστροφα. Ανεξάρτητα από τη σειρά, το αποτέλεσμα πρέπει να είναι σαν οι συναλλαγές να γίνονται σειριακά η μία μετά την άλλη.

Τύποι συναλλαγών

Με βάση τις περιοχές εφαρμογής

  • Μη διανεμημένο έναντι διανεμημένου
  • Αποζημίωση συναλλαγών
  • Χρόνος συναλλαγών
  • Σε απευθείας σύνδεση έναντι παρτίδας

Με βάση τις Ενέργειες

  • Δύο βήματα
  • Περιορισμένος
  • Μοντέλο δράσης

Με βάση τη δομή

  • Επίπεδες ή απλές συναλλαγές: Αποτελείται από μια ακολουθία πρωτόγονων πράξεων που εκτελούνται μεταξύ λειτουργιών έναρξης και λήξης.
  • Ένθετες συναλλαγές: Μια συναλλαγή που περιέχει άλλες συναλλαγές.
  • Ροή εργασίας

Τι είναι το Πρόγραμμα;

Ένα Πρόγραμμα είναι μια διαδικασία δημιουργίας μιας ενιαίας ομάδας πολλαπλών παράλληλων συναλλαγών και εκτέλεσης τους μία προς μία. Θα πρέπει να διατηρεί τη σειρά με την οποία εμφανίζονται οι οδηγίες σε κάθε συναλλαγή. Εάν δύο συναλλαγές εκτελούνται ταυτόχρονα, το αποτέλεσμα μιας συναλλαγής μπορεί να επηρεάσει την απόδοση της άλλης.

Παράδειγμα | _+_ |

Εάν η Συναλλαγή 2 εκτελεστεί πριν από τη Συναλλαγή 1, θα διαβαστούν παρωχημένες πληροφορίες σχετικά με την ποσότητα του προϊόντος. Ως εκ τούτου, απαιτούνται χρονοδιαγράμματα.

Η παράλληλη εκτέλεση σε μια βάση δεδομένων είναι αναπόφευκτη. Όμως, η παράλληλη εκτέλεση επιτρέπεται όταν υπάρχει σχέση ισοδυναμίας μεταξύ των ταυτόχρονα εκτελούμενων συναλλαγών. Αυτή η ισοδυναμία είναι 3 τύπων.

ΑΠΟΤΕΛΕΣΜΑΤΙΚΗ ΙΣΟΔΥΝΑΜΙΑ:

Εάν δύο χρονοδιαγράμματα εμφανίζουν το ίδιο αποτέλεσμα μετά την εκτέλεση, ονομάζεται ισοδύναμο πρόγραμμα αποτελεσμάτων. Μπορεί να προσφέρουν το ίδιο αποτέλεσμα για κάποια τιμή και διαφορετικά αποτελέσματα για ένα άλλο σύνολο τιμών. Για παράδειγμα, μία συναλλαγή ενημερώνει την ποσότητα του προϊόντος, ενώ άλλες ενημερώνουν τα στοιχεία του πελάτη.

Προβολή Ισοδυναμίας

Η ισοδυναμία προβολής εμφανίζεται όταν η συναλλαγή και στα δύο προγράμματα εκτελεί παρόμοια ενέργεια. Παράδειγμα, μια συναλλαγή εισάγει λεπτομέρειες προϊόντος στον πίνακα προϊόντων, ενώ μια άλλη συναλλαγή εισάγει λεπτομέρειες προϊόντος στον πίνακα αρχειοθέτησης. Η συναλλαγή είναι η ίδια, αλλά οι πίνακες είναι διαφορετικοί.

ΣΥΓΚΡΟΥΣΗ Ισοδυναμία

Σε αυτήν την περίπτωση, δύο συναλλαγές ενημερώνουν/προβάλλουν το ίδιο σύνολο δεδομένων. Υπάρχει σύγκρουση μεταξύ της συναλλαγής καθώς η σειρά εκτέλεσης θα επηρεάσει την έξοδο.

Τι είναι η σειριοποίηση;

Η σειριακότητα είναι η διαδικασία αναζήτησης ενός ταυτόχρονου χρονοδιαγράμματος που παράγει είναι ίσο με ένα σειριακό πρόγραμμα όπου η συναλλαγή εκτελείται η μία μετά την άλλη. Ανάλογα με τον τύπο των χρονοδιαγραμμάτων, υπάρχουν δύο τύποι σειριακότητας:

  • σύγκρουση
  • Θέα

Περίληψη:

  • Η διαχείριση συναλλαγών είναι μια λογική μονάδα επεξεργασίας σε ένα DBMS που συνεπάγεται μία ή περισσότερες λειτουργίες πρόσβασης στη βάση δεδομένων
  • Είναι μια συναλλαγή είναι μια μονάδα προγράμματος της οποίας η εκτέλεση μπορεί να αλλάξει ή να μην αλλάξει το περιεχόμενο μιας βάσης δεδομένων.
  • Η μη διαχείριση ταυτόχρονης πρόσβασης μπορεί να δημιουργήσει ζητήματα όπως αποτυχία υλικού και σφάλματα συστήματος.
  • Οι ενεργές, μερικώς δεσμευμένες, δεσμευμένες, αποτυχημένες και τερματικές είναι σημαντικές καταστάσεις συναλλαγών.
  • Η πλήρης μορφή των ιδιοτήτων ACID στο DBMS είναι η ατομικότητα, η συνέπεια, η απομόνωση και η ανθεκτικότητα
  • Τρεις τύποι συναλλαγών DBMS είναι Βάση Περιοχών εφαρμογής, Δράσης και Δομής.
  • Ένα Πρόγραμμα είναι μια διαδικασία δημιουργίας μιας ενιαίας ομάδας πολλαπλών παράλληλων συναλλαγών και εκτέλεσης τους μία προς μία.
  • Η σειριοποίηση είναι η διαδικασία αναζήτησης ενός ταυτόχρονου χρονοδιαγράμματος του οποίου η απόδοση είναι ίση με ένα σειριακό πρόγραμμα όπου οι συναλλαγές εκτελούνται η μία μετά την άλλη.