Definisi Tingkat Isolasi - Amazon Neptune

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 standar membuat perbendaharaan kata untuk menerangkan tingkat isolasi. Ini mendefinisikan tiga jenis interaksi (yang disebut fenomena) yang dapat terjadi antara dua transaksi bersamaan, Tx1 dan Tx2:

  • Dirty read – Hal ini terjadi ketika Tx1 memodifikasi item, dan kemudian Tx2 membaca item tersebut sebelum Tx1 telah melakukan perubahan. Kemudian, jika Tx1 tidak pernah berhasil melakukan perubahan, atau kembali, Tx2 telah membaca nilai yang tidak pernah berhasil masuk ke dalam database.

  • Non-repeatable read – Hal ini terjadi ketika Tx1 membaca item, maka Tx2 memodifikasi atau menghapus item tersebut dan melakukan perubahan, kemudian Tx1 mencoba membaca ulang item tersebut. Tx1 sekarang membaca nilai yang berbeda dari sebelumnya, atau menemukan bahwa item tidak lagi ada.

  • Phantom read – Hal ini terjadi ketika Tx1 membaca satu set item yang memenuhi kriteria pencarian, dan kemudian Tx2 menambahkan item baru yang memenuhi kriteria pencarian, kemudian Tx1 mengulangi pencarian. Tx1 sekarang 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.