Junior — Middle
Εξηγήστε τι είναι οι συναλλαγές σε συστήματα διαχείρισης βάσεων δεδομένων και τα βασικά τους χαρακτηριστικά.
sobes.tech AI
Απάντηση από AI
Μια συναλλαγή σε ένα σύστημα διαχείρισης βάσεων δεδομένων (DBMS) είναι μια ακολουθία λειτουργιών που εκτελείται ως μια αδιαίρετη μονάδα. Η κύρια ιδέα είναι ότι όλες οι λειτουργίες της συναλλαγής είτε ολοκληρώνονται με επιτυχία είτε καμία δεν εφαρμόζεται (ατομικότητα).
Τα βασικά χαρακτηριστικά των συναλλαγών περιγράφονται με το ακρωνύμιο ACID:
- Ατομικότητα: η συναλλαγή εκτελείται πλήρως ή καθόλου.
- Συνεπτικότητα: μετά την ολοκλήρωση της συναλλαγής, η βάση δεδομένων παραμένει σε σωστή κατάσταση, ικανοποιώντας όλους τους περιορισμούς.
- Απομόνωση: παράλληλες συναλλαγές δεν επηρεάζουν η μία την άλλη, το αποτέλεσμα είναι σαν να εκτελούνται διαδοχικά.
- Ανθεκτικότητα: μετά την επιβεβαίωση (commit), οι αλλαγές διατηρούνται ακόμα και σε περίπτωση σφαλμάτων συστήματος.
Παράδειγμα σε C# με συναλλαγές σε ADO.NET:
using (var connection = new SqlConnection(connectionString))
{
connection.Open();
using (var transaction = connection.BeginTransaction())
{
try
{
var command = connection.CreateCommand();
command.Transaction = transaction;
command.CommandText = "INSERT INTO Accounts (Name, Balance) VALUES ('User1', 1000)";
command.ExecuteNonQuery();
command.CommandText = "UPDATE Accounts SET Balance = Balance - 100 WHERE Name = 'User2'";
command.ExecuteNonQuery();
transaction.Commit();
}
catch
{
transaction.Rollback();
throw;
}
}
}