Halo, di tulisan kali ini saya mau nulis sedikit tentang ACID. ACID ini adalah sebuah karakteristik yang terkait dengan transaksi pada basis data relasional.
ACID adalah singkatan dari Atomicity, Consistency, Isolation, dan Durability, yang merupakan serangkaian prinsip untuk memastikan keandalan transaksi pada database relasional. Setiap transaksi dalam database relasional diharapkan mematuhi prinsip ini untuk menjaga integritas data, terutama dalam lingkungan dengan banyak pengguna atau sistem.
ACID menjamin bahwa database dapat menangani transaksi dengan aman, menjaga integritas data meskipun dalam situasi yang rumit, seperti kegagalan sistem atau banyaknya pengguna yang mengakses secara bersamaan.
Lebih detailnya akan dibahas per poin pada bab berikut
Prinsip ini memastikan bahwa suatu transaksi adalah sebuah unit kerja yang tidak dapat dibagi. Artinya, seluruh operasi dalam transaksi harus berhasil sepenuhnya atau tidak ada yang dilakukan sama sekali.
Atau bisa juga kita sebut All or nothing.
Jika terjadi kegagalan selama transaksi, perubahan yang telah dilakukan akan dibatalkan (rolled back) sehingga database kembali ke keadaan awal sebelum transaksi.
Contoh:
Konsistensi memastikan bahwa transaksi membawa database dari satu keadaan yang valid ke keadaan valid lainnya, mengikuti aturan yang ditetapkan (seperti constraints, triggers, dan relasi antar tabel).
Setelah transaksi selesai, database harus memenuhi semua aturan integritas yang ada.
Contohnya, jika ada constraint yang mengatur bahwa saldo rekening tidak boleh negatif, database akan memastikan bahwa tidak ada perubahan dalam transaksi yang melanggar aturan tersebut.
Isolasi memastikan bahwa operasi dari transaksi yang sedang berlangsung tidak akan terpengaruh oleh transaksi lain yang berjalan secara bersamaan. Ini penting untuk menghindari race conditions atau perubahan data yang tidak diinginkan.
Contohnya, dua transaksi yang mengupdate saldo rekening secara bersamaan tidak boleh saling mengganggu hingga masing-masing selesai.
Durability memastikan bahwa setelah transaksi berhasil selesai, perubahan data akan tetap ada meskipun terjadi kegagalan sistem (seperti crash atau mati listrik).
Setelah transfer uang berhasil dan pengguna diberi konfirmasi, data transaksi tersebut akan tetap aman di database meskipun sistem tiba-tiba mati.
Oke mungkin gitu dulu guys. Semoga bermanfaat