Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Definisi Tingkat Isolasi
“I” di ACID singkatan dari Isolasi. Tingkat isolasi transaksi menentukan berapa banyak atau sedikit transaksi bersamaan lainnya dapat mempengaruhi data yang beroperasi.
SQL:1992 standarTx1 dan Tx2:
Dirty read– Hal ini terjadi ketikaTx1memodifikasi item, dan kemudianTx2membaca item tersebut sebelumTx1telah melakukan perubahan. Kemudian, jikaTx1tidak pernah berhasil melakukan perubahan, atau kembali,Tx2telah membaca nilai yang tidak pernah berhasil masuk ke dalam database.Non-repeatable read– Hal ini terjadi ketikaTx1membaca item, makaTx2memodifikasi atau menghapus item tersebut dan melakukan perubahan, kemudianTx1mencoba membaca ulang item tersebut.Tx1sekarang membaca nilai yang berbeda dari sebelumnya, atau menemukan bahwa item tidak lagi ada.Phantom read– Hal ini terjadi ketikaTx1membaca satu set item yang memenuhi kriteria pencarian, dan kemudianTx2menambahkan item baru yang memenuhi kriteria pencarian, kemudianTx1mengulangi pencarian.Tx1sekarang memperoleh satu set item yang berbeda daripada sebelumnya.
Masing-masing dari tiga jenis interaksi dapat menyebabkan inkonsistensi dalam data yang dihasilkan dalam database.
SQL:1992 standar mendefinisikan empat tingkat isolasi yang memiliki jaminan yang berbeda dalam hal tiga jenis interaksi dan inkonsistensi yang dapat mereka hasilkan. Pada keempat tingkat, transaksi dapat dijamin untuk mengeksekusi sepenuhnya atau tidak sama sekali:
READ UNCOMMITTED– Memungkinkan semua tiga jenis interaksi (yaitu, dirty reads, non-repeatable reads, dan phantom reads).READ COMMITTED– Dirty reads sifatnya tidak mungkin, tapi nonrepeatable dan phantom reads mungkin.REPEATABLE READ– Tidak satupun dari dirty read dan nonrepeatable read sifatnya mungkin, tetapi phantom read masih mungkin.SERIALIZABLE– Tak satu pun dari tiga jenis fenomena interaksi dapat terjadi.
Multiversion concurrency control (MVCC) memungkinkan satu jenis lain dari isolasi, yaitu SNAPSHOT isolasi. Ini menjamin bahwa transaksi beroperasi pada snapshot data seperti saat transaksi dimulai, dan bahwa tidak ada transaksi lain dapat mengubah snapshot itu.