Apa hubungan antara ACID dan transaksi basis data?
Apakah ACID memberikan transaksi basis data atau apakah itu hal yang sama?
Bisakah seseorang mencerahkan topik ini.
Apa hubungan antara ACID dan transaksi basis data?
Apakah ACID memberikan transaksi basis data atau apakah itu hal yang sama?
Bisakah seseorang mencerahkan topik ini.
Jawaban:
ACID adalah seperangkat properti yang ingin Anda terapkan saat memodifikasi database.
Transaksi adalah sekumpulan perubahan terkait yang digunakan untuk mencapai beberapa properti ACID. Transaksi adalah alat untuk mencapai properti ACID.
Atomicity berarti Anda dapat menjamin bahwa semua transaksi terjadi, atau tidak ada yang terjadi; Anda dapat melakukan operasi kompleks sebagai satu unit tunggal, semua atau tidak sama sekali, dan kerusakan, kegagalan daya, kesalahan, atau apa pun tidak akan memungkinkan Anda untuk berada dalam keadaan di mana hanya beberapa perubahan terkait yang terjadi.
Konsistensi berarti Anda menjamin bahwa data Anda akan konsisten; tidak ada kendala yang Anda miliki pada data terkait yang akan dilanggar.
Isolasi berarti bahwa satu transaksi tidak dapat membaca data dari transaksi lain yang belum selesai. Jika dua transaksi dieksekusi secara bersamaan, masing-masing akan melihat dunia seolah-olah mereka mengeksekusi secara berurutan, dan jika satu perlu membaca data yang ditulis oleh yang lain, itu harus menunggu sampai yang lain selesai.
Daya tahan berarti bahwa setelah transaksi selesai, dijamin bahwa semua perubahan telah direkam ke media yang tahan lama (seperti hard disk), dan fakta bahwa transaksi telah selesai juga dicatat.
Jadi, transaksi adalah mekanisme untuk menjamin properti ini; mereka adalah cara pengelompokan tindakan terkait bersama sehingga secara keseluruhan, kelompok operasi dapat berupa atom, menghasilkan hasil yang konsisten, diisolasi dari operasi lain, dan direkam secara tahan lama.
ACID adalah sifat yang diinginkan dari setiap mesin pemrosesan transaksi.
DBMS adalah (jika ada gunanya) jenis mesin pengolah transaksi khusus yang memaparkan, biasanya sebagian besar tetapi tidak sepenuhnya sepenuhnya, sifat-sifat tersebut.
Tapi ada mesin lain yang juga bisa mengekspos properti itu. Jenis perangkat lunak yang dulu disebut "monitor TP" menjadi contohnya (saat ini setara dengan kebanyakan server web).
Monitor TP semacam itu dapat mengakses sumber daya selain DBMS (misalnya printer), dan masih menjamin ACID terhadap penggunanya. Sebagai contoh apa arti ACID ketika printer terlibat dalam transaksi:
Saya sedikit memodifikasi contoh printer agar lebih mudah dijelaskan
1 dokumen yang berisi 2 halaman dikirim ke printer
Transaksi - dokumen yang dikirim ke printer
Semoga ini bisa membantu seseorang untuk memahami konsep ACID
Apa hubungan antara ACID dan transaksi basis data?
Dalam database relasional, setiap pernyataan SQL harus dijalankan dalam lingkup transaksi.
Tanpa mendefinisikan batas-batas transaksi secara eksplisit, database akan menggunakan transaksi implisit yang membungkus setiap pernyataan individu.
Transaksi implisit dimulai sebelum pernyataan dieksekusi dan berakhir (komit atau kembalikan) setelah pernyataan dieksekusi. Mode transaksi implisit umumnya dikenal sebagai autocommit.
Sebagaimana dijelaskan dalam artikel ini , transaksi adalah kumpulan operasi baca / tulis yang berhasil hanya jika semua operasi yang terkandung berhasil.
Secara inheren transaksi ditandai oleh empat properti (biasanya disebut ACID):
Apakah ACID memberikan transaksi basis data atau apakah itu hal yang sama?
Untuk sistem basis data relasional, ini benar karena SQL Standard menetapkan bahwa transaksi harus memberikan jaminan ACID:
Atomicity mengambil operasi individu dan mengubahnya menjadi unit kerja semua atau tidak sama sekali, berhasil jika dan hanya jika semua operasi yang terkandung berhasil.
Transaksi mungkin merangkum perubahan negara (kecuali jika itu hanya baca-saja). Suatu transaksi harus selalu meninggalkan sistem dalam keadaan yang konsisten, tidak peduli berapa banyak transaksi bersamaan yang disisipkan pada waktu tertentu.
Konsistensi berarti kendala diberlakukan untuk setiap transaksi yang dilakukan. Itu menyiratkan bahwa semua Kunci, tipe data, Cek dan Pemicu berhasil dan tidak ada pelanggaran kendala dipicu.
Transaksi membutuhkan mekanisme kontrol konkurensi, dan mereka menjamin kebenaran bahkan ketika disisipkan. Isolasi memberi kita keuntungan menyembunyikan perubahan negara yang tidak dikomit dari dunia luar, karena transaksi yang gagal seharusnya tidak pernah merusak kondisi sistem. Isolasi dicapai melalui kontrol konkurensi menggunakan mekanisme penguncian pesimis atau optimis.
Transaksi yang berhasil harus secara permanen mengubah status sistem, dan sebelum mengakhirinya, perubahan status dicatat dalam log transaksi tetap. Jika sistem kami tiba-tiba dipengaruhi oleh crash sistem atau pemadaman listrik, maka semua transaksi yang belum selesai dapat diputar ulang.
Untuk detail lebih lanjut tentang Daya Tahan dan Redo Log, lihat artikel ini .
Properti ACID adalah konsep teori basis data yang sangat tua dan penting. Saya tahu Anda dapat menemukan banyak posting tentang topik ini, tetapi saya masih ingin mulai membagikan jawaban tentang ini karena ini adalah topik yang sangat penting dari RDBMS.
Sistem Database bermain dengan banyak jenis transaksi yang berbeda di mana semua transaksi memiliki karakteristik tertentu. Karakteristik ini dikenal dengan ACID Properties. Properti ACID mengambil penerima untuk semua transaksi basis data untuk menyelesaikan semua tugas.
Atomicity: Baik melakukan semua atau tidak sama sekali.
Konsistensi: Membuat catatan yang konsisten dalam hal memvalidasi semua aturan dan batasan transaksi.
Isolasi: Pastikan dua transaksi tidak saling mengetahui.
Daya tahan: data yang berkomitmen disimpan selamanya. Referensi diambil dari artikel ini:
Mengutip Wikipedia :
ACID (atomicity, konsistensi, isolasi, daya tahan) adalah seperangkat properti yang menjamin transaksi basis data diproses secara andal.
DBMS yang mendukung transaksi akan berusaha untuk mendukung semua properti ini - setiap DBMS komersial (serta beberapa DBMS open-source) menyediakan 'dukungan' ACID penuh - walaupun sering kali mungkin (misalnya, dengan berbagai tingkat isolasi dalam MSSQL) untuk mengurangi ACIDness - sehingga kehilangan jaminan perilaku transaksional penuh.
[Gray] memperkenalkan properti ACD untuk transaksi pada tahun 1981. Pada tahun 1983 [Haerder] menambahkan properti Isolasi. Menurut pendapat saya, properti ACD akan memiliki set properti yang lebih berguna untuk didiskusikan. Satu interpretasi Atomicity (bahwa transaksi harus atomik seperti yang terlihat dari klien mana saja kapan saja) sebenarnya akan menyiratkan properti isolasi. Properti "isolasi" berguna ketika transaksi tidak terisolasi; ketika properti isolasi santai. Dalam ANSI SQL speak: jika level isolasi lebih lemah maka SERIALIZABLE. Tetapi ketika tingkat isolasi SERIALIZABLE, properti isolasi tidak benar-benar menarik.
Saya telah menulis lebih banyak tentang ini di sebuah posting blog: "ACID Tidak Masuk Akal".
http://blog.franslundberg.com/2013/12/acid-does-not-make-sense.html
[Gray] Konsep Transaksi, Jim Gray, 1981. http://research.microsoft.com/en-us/um/people/gray/papers/theTransactionConcept.pdf
[Haerder] Prinsip Pemulihan Basis Data Berorientasi Transaksi, Haerder dan Reuter, 1983. http://www.stanford.edu/class/cs340v/papers/recovery.pdf
Transaksi dapat didefinisikan sebagai kumpulan tugas yang dianggap sebagai unit pemrosesan minimum. Setiap unit pemrosesan minimum tidak dapat dibagi lebih lanjut.
Semua transaksi harus mengandung empat properti yang umumnya dikenal sebagai properti ACID. yaitu ACID adalah kelompok properti dari setiap transaksi.