c. The Incosistent Analysis Problem, masalah ini timbul karena data diakses oleh 2 transaksi yang bersamaan, transaksi yang pertama
melakukan perubahan dan transaksi yang kedua melakukan analisis sehingga data yang diperoleh menjadi tidak konsisten.
2.2.2.1. Contoh Penangangan Masalah Concurrency Control
Dibawah ini merupakan contoh-contoh untuk menangani masalah concurrency control.
Gambar 2.1Mencegah Lost Update Problem menggunakan 2PL
Keterangan Untuk mencegah terjadinya masalah hilangnya data yang
diubah, maka : pertama- tama T2 meminta exclusive lock pada balₓ
Setelah itu T2 dapat melakukan proses baca nilai balₓ, menambahnya dengan nilai 100, dan menuliskan nilai baru dari
bal ₓ tersebut kedalam basis data.
Saat T1 memulai transaksi, T1 juga meminta suatu exclusivelock
pada balₓ, namun karena balₓ sedang berada dalam posisi exclusivelock
oleh T2, maka permintaan read balₓ tidak segera diberikan kepada T1 dan T1 harus menunggu sampai lock
dilepaskan oleh T2. Hal ini terjadi saat T2 melaksanakan operasi commit atau unlock
balₓ Connoly 2002
Gambar 2.2Mencegah Uncommitted Dependency Problem using 2PL
Keterangan : Untuk mencegah terjadinya masalah ketergantungan
transaksi yang belum dilaksanakan , maka : pertama-tama T4 meminta suatu exclusivelock
pada balₓ Setelah itu, T4 dapat melakukan proses baca nilai balₓ dari dalam basis data,
menambahnya dengan nilai 100, da n meluliskan nilai baru balₓ
tersebut kedalam basis data. rollback dieksekusi , peng-update-an pada transaksi T4 tidak jadi dilakukan dan nilai dalam basis data
dikembalikan ke kondisi semula yaitu 100. Saat T3 memulai transaksi T3 juga meminta suatu exclusive
lock pada balₓ, namun karena balₓ sedang dalam posisi exclusive
lock oleh T4, maka, permintaan tersebut tidak segera diberikan kepada T3, dan T3 harus menunggu sampai lock dilepaskan oleh
T4. Hal ini terjadi saat T4 melaksanakan operasi rollback atau unlock
balₓ, barulah T3 dapat melakukan proses baca nilai balₓ Connoly, 2002
Gambar 2.3Mencegah Inconsistent Analysis Problem using 2PL
Keterangan : Untuk mencegah terjadinya masalah analisis yang tidak
konsisten, maka : T5 mengawali meminta suatu exclusivelock pada balₓ. T5 juga meminta suatu exclusivelock pada balᵧ . Saat T6 ingin
membaca nilai balₓ , ia harus menunggu sampai lock dilepaskan
oleh T5. Hal ini terjadi saat T5 melaksanakan operasi commit atau unlock
balₓ, barulah T6 dapat membaca nilai balₓ Connoly, 2002 Untuk mengatasi masalah diatas, mesin basis data Oracle
XE mempunyai kemampuan mendukung transaksi dengan metode 2PL yang dapat menjaminkonsistensi data.
2.2.3. Perintah For Update