Junior — Middle
What is the role of transactions when interacting with database management systems?
sobes.tech AI
Answer from AI
Transactions in database management systems (DBMS) ensure data integrity and consistency when executing multiple operations. They allow grouping several actions into a single logical unit, which either executes completely or not at all (atomicity).
The main properties of transactions are described by the acronym ACID:
- Atomicity: all operations within a transaction are executed as a single unit.
- Consistency: after the transaction is completed, the database remains in a correct state.
- Isolation: parallel transactions do not affect each other.
- Durability: after a transaction is committed, changes are saved even in case of failures.
Example in Java using JDBC:
Connection conn = dataSource.getConnection();
try {
conn.setAutoCommit(false); // Start transaction
// Execute multiple SQL operations
PreparedStatement ps1 = conn.prepareStatement("INSERT INTO users(name) VALUES (?)");
ps1.setString(1, "Ivan");
ps1.executeUpdate();
PreparedStatement ps2 = conn.prepareStatement("UPDATE accounts SET balance = balance - 100 WHERE user_id = ?");
ps2.setInt(1, 1);
ps2.executeUpdate();
conn.commit(); // Commit transaction
} catch (SQLException e) {
conn.rollback(); // Rollback on error
} finally {
conn.setAutoCommit(true);
conn.close();
}
Thus, transactions guarantee reliability and correctness of database operations.