Cara untuk menjaga konsistensi basis data untuk transaksi yang dilakukan secara bersamaan (konkunren) dengan mekanisme SERIALIZABILITY
a. Jelaskan 2 metode untuk menjamin SERIALIZABILITY
Lock Based Protocol
Merupakan suatu cara/metoda yang digunakan untuk tetap menjaga serializability pada data yang diakses oleh lebih dari satu transaksi.
Yaitu, apabila salah satu transaksi mengakses sebuah item data maka tidak akan ada transaksi yang dapat memodifikasi data tersebut.
Metoda yang umum digunakan adalah mengijinkan transaksi terhadap suatu data X apabila transaksi tersebut memegang “kunci” atau “Lock” untuk dapat memodifikasi data X.
Ada dua jenis mode penguncian dasar yang digunakan dalam mekanisme ini yaitu:
– Bersama (Shared). Jika sebuah transaksi Ti dapat melakukan penguncian dengan mode ini (dilambangkan dengan S) terhadap item data Q, maka Ti dapat membaca, tapi tidak dapat mengubah nilai Q tersebut.
– Tunggal (Exclusive). Jika sebuah transaksi Ti dapat melakukan penguncian dengan mode ini (dilambangkan dengan X) terhadap item data Q, maka Ti dapat membaca maupun mengubah nilai tersebut.
| S | X |
S | Compatible | Incompatible |
X | Incompatible | Incompatible |
Two-Phase Lock Protocol
Protocol ini menginginkan bahwa setiap transaksi yang akan menjalankan penguncian dan melepaskan penguncian harus melalui dua fase atau tahapan, yaitu:
• Fase Pertumbuhan (Growing Phase). Sebuah transaksi dapat melakukan sejumlah penguncian tetapi belum satupun melepaskan pengunciannya.
• Fase Pelepasan (Shrinking Phase). Sebuah transaksi dapat melepaskan sejumlah penguncian , tetapi belum melakukan penguncian yang baru.
Pada awalnya, sebuah transaksi akan berada dalam fase pertumbuhan. Transaksi tersebut akan melakukan penguncian sebanyak yang dibutuhkan. Ketika transaksi mulai melepaskan sebuah penguncian, ia akan mulai memasuki fase pelepasan, tanpa ada permintaan penguncian berikutnya
b. Pada Metode Locking untuk transaksi terus menahan suatu kunci sampai dilepaskan secara eksplisit selama eksekusi atau telah selesai, aturannya menggunakan matriks locking. Jelas kerja dari matriks Locking
Matrik Locking Cara kerja dari kunci :
Kita asumsikan terdapat 2 (dua) macam kunci :Kunci X (kunci eksklusif) dan kunci S (kunci yang digunakan bersama-sama)Jika transaksi A menggunakan kunci X pada record R, maka permintaan dari transaksi B harus menunggu sampai nanti transaksi A melepaskan kunciJika transaksi A menggunakan kunci S pada record R, Maka :Bila transaksi B ingin menggunakan kunci X, maka B harus menunggu sampai A melepaskan kunci tersebut.Bila transaksi B ingin menggunakan kuni S, maka B bisa menggunakan kunci S bersama A