Junior — Middle
Μπορείτε να εξηγήσετε τι εννοείται με τη λέξη 'συναλλαγή' στο πλαίσιο των βάσεων δεδομένων;
sobes.tech AI
Απάντηση από AI
Μια συναλλαγή σε βάσεις δεδομένων είναι μια ακολουθία λειτουργιών που εκτελείται ως ενιαία μονάδα. Η συναλλαγή ολοκληρώνεται με επιτυχία ολόκληρη (commit) ή ακυρώνεται πλήρως (rollback) σε περίπτωση σφάλματος. Αυτό διασφαλίζει την ακεραιότητα των δεδομένων και αποτρέπει μερικές ενημερώσεις.
Τα βασικά χαρακτηριστικά των συναλλαγών περιγράφονται με το ακρωνύμιο ACID:
- Ατομικότητα — όλες οι λειτουργίες εντός της συναλλαγής εκτελούνται πλήρως ή καθόλου.
- Συνεπτικότητα — μετά την εκτέλεση της συναλλαγής, η βάση δεδομένων παραμένει σε σωστή κατάσταση.
- Απομόνωση — παράλληλες συναλλαγές δεν επηρεάζουν η μία την άλλη.
- Ανθεκτικότητα — μετά την επιβεβαίωση, οι αλλαγές διατηρούνται ακόμα και σε περίπτωση σφαλμάτων.
Παράδειγμα σε Node.js με τη βιβλιοθήκη pg για PostgreSQL:
const { Client } = require('pg');
async function runTransaction() {
const client = new Client();
await client.connect();
try {
await client.query('BEGIN');
await client.query('INSERT INTO users(name) VALUES($1)', ['Alice']);
await client.query('INSERT INTO accounts(user_id, balance) VALUES($1, $2)', [1, 100]);
await client.query('COMMIT');
} catch (e) {
await client.query('ROLLBACK');
throw e;
} finally {
await client.end();
}
}