Model ACID desain database adalah salah satu konsep tertua dan terpenting dari teori basis data. Ini menetapkan empat tujuan yang harus dicapai oleh setiap sistem manajemen basis data: atomicity, konsistensi, isolasi, dan daya tahan. Database relasional yang gagal memenuhi salah satu dari keempat sasaran ini tidak dapat dianggap dapat dipercaya. Database yang memiliki karakteristik ini dianggap sesuai ACID.
ACID Ditetapkan
Mari luangkan waktu sejenak untuk memeriksa masing-masing karakteristik ini secara terperinci:
- Atomicity menyatakan bahwa modifikasi basis data harus mengikuti aturan "semua atau tidak sama sekali". Setiap transaksi dikatakan "atom." Jika salah satu bagian dari transaksi gagal, seluruh transaksi gagal. Sangat penting bahwa sistem manajemen basis data mempertahankan sifat atom transaksi meskipun ada DBMS, sistem operasi, atau kegagalan perangkat keras.
- Konsistensi menyatakan bahwa hanya data yang valid yang akan ditulis ke database. Jika, karena alasan tertentu, transaksi dijalankan yang melanggar aturan konsistensi basis data, seluruh transaksi akan dibatalkan, dan basis data akan dipulihkan ke keadaan yang konsisten dengan aturan tersebut. Di sisi lain, jika transaksi berhasil dijalankan, maka akan mengambil basis data dari satu negara yang konsisten dengan aturan ke negara lain yang juga konsisten dengan aturan.
- Isolasi mengharuskan beberapa transaksi terjadi pada saat yang bersamaan tidak memengaruhi eksekusi satu sama lain. Sebagai contoh, jika Joe mengeluarkan transaksi terhadap database pada saat yang sama ketika Mary mengeluarkan transaksi yang berbeda, kedua transaksi tersebut harus beroperasi pada basis data secara terpisah. Database harus melakukan seluruh transaksi Joe sebelum mengeksekusi Mary's, atau sebaliknya. Ini mencegah transaksi Joe dari membaca data menengah yang dihasilkan sebagai efek samping dari sebagian transaksi Mary yang pada akhirnya tidak akan dilakukan ke basis data. Perhatikan bahwa properti isolasi tidak memastikan transaksi mana yang akan dieksekusi terlebih dahulu - hanya saja transaksi tidak akan saling mengganggu
- Daya tahan memastikan bahwa setiap transaksi yang dilakukan terhadap basis data tidak akan hilang. Ketahanan dipastikan melalui penggunaan backup database dan log transaksi yang memfasilitasi pemulihan transaksi berkomitmen terlepas dari perangkat lunak atau perangkat keras kegagalan berikutnya.
Bagaimana ACID Bekerja dalam Praktek
Administrator basis data menggunakan beberapa strategi untuk menegakkan ACID.
Salah satu yang digunakan untuk menegakkan atomicity dan daya tahan adalah pencatatan log-depan (WAL), di mana detail transaksi apa pun pertama kali ditulis ke log yang mencakup baik mengulang dan membatalkan informasi. Ini memastikan bahwa, dengan adanya kegagalan basis data, database dapat memeriksa log dan membandingkan isinya dengan keadaan database.
Metode lain yang digunakan untuk mengatasi atomicity dan daya tahan adalah bayangan-paging, di mana halaman bayangan dibuat ketika data akan dimodifikasi. Pemutakhiran kueri ditulis ke halaman bayangan dan bukan ke data asli dalam basis data. Basis data itu sendiri dimodifikasi hanya ketika pengeditan selesai.
Strategi lain disebut dua fase komit protokol, terutama berguna dalam sistem basis data terdistribusi. Protokol ini memisahkan permintaan untuk mengubah data menjadi dua fase: fase commit-request dan fase commit. Dalam fase permintaan, semua DBMS pada jaringan yang dipengaruhi oleh transaksi harus mengkonfirmasi bahwa mereka telah menerimanya dan memiliki kapasitas untuk melakukan transaksi. Setelah konfirmasi diterima dari semua DBMS yang relevan, fase komitmen selesai di mana data benar-benar diubah.