2.2.5.1. Metode Locking
Locking adalah sebuah prosedur yang digunakan untuk melakukan kontrol pada akses bersama pada data. Pada saat satu transaksi melakukan akses ke dalam
database, sebuah lock akan menyebabkan pelarangan akses ke dalam transaksi untuk mencegah hasil yang tidak konsisten. Terdapat 2 jenis lock, yaitu Shared
Lock, dan Exclusive Lock. Jika sebuah transaksi memiliki shared lock pada
sebuah data item, maka transaksi tersebut dapat melakukan pembacaan terhadap sebuah item
tetapi tidak dapat melakukan update. Sedangkan jika sebuah transaksi yang memiliki Exclusivelock pada sebuah data item dapat melakukan pembacaan maupun update
item tersebut.
2.2.5.2. Two Phase Locking 2PL
Transaksi dapat dilakukan menggunakan protokol 2PL jika semua operasilocking mendahului operasi yang tidak terkunci dalam transaksi
tersebut.Protokol 2PL memiliki 2 fase, yaitu Connolly and Beg,2002: a. Growing phase : jika transaksi sudah mendapatkan semua lock, maka
tidak boleh melepas lock. b. Shrinking phase : jika transaksi sudah melepaskan lock, maka tidak
dapat mendapatkan lock baru. Beberapa masalah yang disebabkan oleh proses yang konkurenseperti
dibawah ini
bisa ditangani
dengan menerapkan
protokoltwo phase
locking2PLConnolly and Beg,2002: a.
The Lost Update Problem, merupakan kejadian dimana data transaksi yang telah diupdate dibaca oleh transaksi yang lain kemudian di update
lagi. b.
The Uncommited Dependency Dirty Read Problem, merupakan kejadian dimana data transaksi yang dilakukan dibaca oleh transaksi
yang lain, lalu dibatalkan tanpa adanya penyimpanan terlebih dahulu oleh transaksi yang pertama sehingga menyebabkan data yang tidak
benar. 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.5.3. Contoh Penangangan Masalah Concurrency Control