Transaction
Satu unit kerja database yang harus berhasil semua atau gagal semua (atomic).
Transaction adalah sekumpulan operasi database yang diperlakukan sebagai satu unit kerja — semua berhasil (COMMIT) atau semua dibatalkan (ROLLBACK). Transaction mengikuti prinsip ACID: Atomicity (all or nothing — tidak ada setengah berhasil), Consistency (database tetap dalam state valid), Isolation (transaksi tidak saling mengganggu), Durability (data yang di-commit tetap ada meski sistem crash). Transaction penting untuk operasi finansial (transfer bank — kurangi saldo A dan tambah saldo B harus atomic), inventory management, dan data integrity. Isolation levels: Read Uncommitted, Read Committed, Repeatable Read, Serializable (paling aman, paling lambat).
Contoh Kode
-- Transfer uang dengan transaction
BEGIN;
UPDATE accounts SET balance = balance - 100 WHERE id = 'A';
UPDATE accounts SET balance = balance + 100 WHERE id = 'B';
INSERT INTO transactions (from_acc, to_acc, amount) VALUES ('A', 'B', 100);
COMMIT;
-- Kalau ada error antara BEGIN dan COMMIT:
ROLLBACK; -- Semua perubahan dibatalkan