Sobes.tech
Principal

Τι είναι οι συναλλαγές σε βάσεις δεδομένων; Ποια είναι τα επίπεδα απομόνωσης των συναλλαγών, ποιο είναι το νόημά τους και ποια είναι η βασική διαφορά;

sobes.tech AI

Απάντηση από AI

Μια συναλλαγή σε μια βάση δεδομένων είναι μια λογικά συνδεδεμένη ακολουθία λειτουργιών που εκτελείται ως μια ενιαία μονάδα. Τα βασικά χαρακτηριστικά των συναλλαγών περιγράφονται με το ακρωνύμιο ACID:

  • Ατομικότητα — όλες οι λειτουργίες της συναλλαγής εκτελούνται πλήρως ή καθόλου.
  • Συνεπτικότητα — η συναλλαγή μεταφέρει τη βάση δεδομένων από μια σωστή κατάσταση σε μια άλλη σωστή κατάσταση.
  • Απομόνωση — παράλληλες συναλλαγές δεν επηρεάζουν η μία την άλλη.
  • Ανθεκτικότητα — μετά από μια επιβεβαίωση (commit), οι αλλαγές διατηρούνται ακόμη και σε περίπτωση σφαλμάτων.

Επίπεδα απομόνωσης συναλλαγών καθορίζουν το βαθμό ορατότητας των αλλαγών μιας συναλλαγής σε άλλες και επηρεάζουν πιθανές ανωμαλίες:

  1. Read Uncommitted — μια συναλλαγή μπορεί να δει μη επιβεβαιωμένες αλλαγές άλλων (βρώμικη ανάγνωση).
  2. Read Committed — εμφανίζονται μόνο επιβεβαιωμένες αλλαγές, αλλά μπορεί να συμβούν μη επαναλαμβανόμενες αναγνώσεις.
  3. Repeatable Read — διασφαλίζει ότι η επανάληψη ανάγνωσης των ίδιων δεδομένων θα δώσει το ίδιο αποτέλεσμα, αλλά μπορεί να συμβούν φανταστικές αναγνώσεις (νέες γραμμές).
  4. Serializable — το πιο αυστηρό επίπεδο, οι συναλλαγές εκτελούνται σαν να ήταν σειριακές, εξαλείφοντας όλες τις ανωμαλίες.

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