ACID Melindungi Data Pangkalan Data Anda
Reka bentuk pangkalan data ACID adalah salah satu konsep pangkalan data tertua dan paling penting dalam teori pangkalan data. Ia menetapkan keempat tujuan agar setiap sistem pengurusan pangkalan data harus berusaha untuk mencapai: atom, konsistensi, pengasingan dan ketahanan. Pangkalan data relasi yang gagal memenuhi mana-mana daripada empat matlamat ini tidak boleh dipercayai. Pangkalan data yang mempunyai ciri-ciri ini dianggap mematuhi ACID.
ACID ditakrifkan
Mari kita luangkan sedikit masa untuk memeriksa setiap ciri-ciri ini secara terperinci:
- Atomicity menyatakan bahawa pengubahsuaian pangkalan data harus mengikuti aturan "semua atau tidak". Setiap transaksi dikatakan sebagai "atom." Jika satu bahagian transaksi gagal, keseluruhan transaksi gagal. Adalah penting bahawa sistem pengurusan pangkalan data mengekalkan sifat atom transaksi walaupun terdapat sebarang DBMS, sistem operasi atau kegagalan perkakasan.
- Konsistensi menyatakan bahawa hanya data yang sah akan ditulis ke pangkalan data. Jika, atas sebab tertentu, urus niaga dilaksanakan yang melanggar peraturan konsistensi pangkalan data, keseluruhan urusniaga akan dilancarkan kembali, dan pangkalan data akan dipulihkan kepada negara yang selaras dengan peraturan tersebut. Sebaliknya, jika transaksi berjaya dilaksanakan, ia akan mengambil pangkalan data dari satu negara yang konsisten dengan peraturan ke negara lain yang juga konsisten dengan peraturan.
- Isolasi memerlukan banyak transaksi yang berlaku pada masa yang sama tidak mempengaruhi pelaksanaan masing-masing. Contohnya, jika Joe mengeluarkan transaksi terhadap pangkalan data pada masa yang sama bahawa Mary mengeluarkan transaksi yang berbeza, kedua-dua urus niaga itu harus beroperasi pada pangkalan data secara terpencil. Pangkalan data sama ada melakukan keseluruhan transaksi Joe sebelum melaksanakan Mary, atau sebaliknya. Ini menghalang transaksi Joe daripada membaca data perantaraan yang dihasilkan sebagai kesan sampingan sebahagian daripada transaksi Mary yang tidak akan berkomitmen pada pangkalan data. Perhatikan bahawa harta pengasingan tidak memastikan transaksi mana yang akan dilaksanakan terlebih dahulu - hanya transaksi yang tidak akan mengganggu satu sama lain
- Ketabahan memastikan bahawa sebarang transaksi yang dilakukan ke pangkalan data tidak akan hilang. Ketahanan dipastikan melalui penggunaan sandaran pangkalan data dan log transaksi yang memudahkan pemulihan urus niaga komited meskipun terdapat sebarang kegagalan perisian atau perkakasan.
Bagaimana ACID Bekerja dalam Amalan
Pentadbir pangkalan data menggunakan beberapa strategi untuk menguatkuasakan ACID.
Satu yang digunakan untuk menguatkuasakan atom dan ketahanan adalah penulisan awal (WAL) di mana setiap detail transaksi ditulis terlebih dahulu ke log yang termasuk kedua-dua redo dan membatalkan maklumat. Ini memastikan bahawa, jika kegagalan pangkalan data apa-apa, pangkalan data boleh menyemak log dan bandingkan kandungannya kepada keadaan pangkalan data.
Kaedah lain yang digunakan untuk menangani atom dan ketahanan ialah bayangan yang mana halaman bayangan dibuat apabila data diubah. Kemas kini pertanyaan ditulis ke halaman bayangan dan bukannya data sebenar dalam pangkalan data. Pangkalan data itu sendiri diubah suai apabila penyuntingan selesai.
Satu lagi strategi dipanggil dua fasa protokol komitmen , terutamanya berguna dalam sistem pangkalan data diedarkan. Protokol ini memisahkan permintaan untuk memodifikasi data ke dalam dua fasa: fasa permintaan-permintaan dan fasa komit. Dalam fasa permintaan, semua DBMS di rangkaian yang dipengaruhi oleh transaksi mesti mengesahkan bahawa mereka telah menerimanya dan mempunyai keupayaan untuk melakukan transaksi. Sebaik sahaja pengesahan diterima daripada semua DBMS yang berkaitan, fasa komitmen selesai di mana data sebenarnya diubah suai.