Metode Locking Two Phase Locking 2PL

 pada saat ini, mungkin ditemukan transaksi melanggar serializability atau melanggar integrity constraint, maka transaksi harus dibatalkan. Transaksi demikian akan menuju FAILED keadaan gagal dan harus dibatalkan  jika transaksi sukses, beberapa update dapat disimpan secara aman dan transaksi menuju ke keadaan COMMITTED. 3. COMMITTED dilaksanakan 4. FAILED gagal  Terjadi jika transakasi tidak dapat dilaksanakan atau transaksi dibatalkan pada saat ACTIVE keadan aktif.  Kondisi ini terjadi jika user membatalkan transaksi atau protocol concurrency control membatalkan transaksi untuk memastikan serialibility. 5. ABORTED dibatalkan

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.5.2. Two Phase Locking 2PL

Transaksi dapat dilakukan menggunakan protokol 2PL jika semua operasi locking mendahului operasi yang tidak terkunci dalam transaksi tersebut. Protokol 2PL memiliki 2 fase, yaitu : 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 locking. a. The Lost Update Problem, merupakan kejadian dimana data transaksi yang telah diupdate dibaca oleh transaksi yang lain kemudian di update lagi. c. 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. d. 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.5.3. Contoh Penangangan Masalah Concurrency Control