0
VC7 Posttest Sistem Basis Data 2
Posted by Fikri Ramadhan
on
19.19
Cara untuk menjaga
konsistensi basis data untuk transaksi yang dilakukan secara bersamaan
(konkunren) dengan mekanisme SERIALIZABILITY
a. Jelaskan 2 metode untuk menjamin SERIALIZABILITY
b. Pada Metode Locking
untuk transaksi terus menahan suatu kunci sampai dilepaskan
secara eksplisit
selama eksekusi atau telah selesai, aturannya menggunakan matriks locking.
Jelaskan cara kerja dari matriks Locking
Jawab:
a.
- Metode Locking
Locking adalah
sebuah prosedur yang digunakan untuk mengendalikan akses bersamaan ke data.
Ketika sebuah transaksi sedang mengakses database, sebuah lock mungkin menolak akses ke transaksi lain untuk
mencegah hasil yang salah ( Connolly, 2005, p587 ). Ada dua macam lock,
yaitu shared lock dan exclusive lock yang
harus digunakan sebelum melakukan akses membaca ataupun menulis terhadap
database. Penggunaan lock ini adalah
untuk menjaga konsistensi data didalam database. Jika sebuah transaksi
mempunyai sebuah shared lock pada sebuah item
data, transaksi tersebut dapat membaca item tapi tidak dapat mengubah datanya (
Connolly, 2005, p588 ). Jika sebuah transaksi mempunyai sebuah exclusive lock pada sebuah item data, transaksi
tersebut dapat membaca dan mengubah item data ( Connolly, 2005, p588 ).
- Metode Timestamping
Salah satu alternatif concurrency
control yang dapat
menghilangkan deadlock adalah timestamping. Secara
umum, timestamping (TS) adalah penanda waktu saat
transaksi terjadi. Hal ini untuk mengurutkan eksekusi transaksi agar
sama dengan eksekusi serial. Time stamp dapat berupa:
a. waktu sistem
saat transaksi dimulai, atau
b. penghitung
logik (logical counter) yang terus bertambah nilainya tiap kali terjadi
transaksi baru.
b. 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.
Matrik Locking Bila suatu transaksi hanya melakukan pembacaan saja,
secara otomatis ia memerlukan kunci S. Bila transaksi tersebut ingin memodifikasi record, maka secara otomatis ia memerlukan kunci
X. Bila transaksi tersebut sudah menggunakan kunci
S, setelah itu ia akan memodifikasi record, maka kunci S akan dinaikkan ke
level kunci X.
Kunci X dan kunci S akan dilepaskan pada saat
Synchpoint (synchronization point). Bila synchpoint ditetapkan maka: semua
modifikasi program menjalankan operasi COMMIT atau ROLLBACK semua
kunci dari record dilepaskan.
PENYELESAIAN MASALAH DENGAN LOCKING
Penyelesaian masalah lost update
Penyelesaian masalah lost update dengan
locking menimbulkan deadlock dimana kedua transaksi sama-sama menunggu.
T1
Waktu
T2
begin_transaction
read(x) ….. kunci S
x=x-10
WAIT
t1 t2 t3 t4 t5
x=x+100
PENYELESAIAN MASALAH DENGAN LOCKING
Penyelesaian masalah uncommited dependency
T1
waktu
T2
begin_transaction
read(x)
WAIT
read(x) ….. kunci S
x=x-10 ….. kunci X
write(x)
commit
t1 t2 t3 t4 t5 t6 t7 t8 t9
t10
x=x+100 … kunci X
rollback
PENYELESAIAN MASALAH DENGAN LOCKING
Penyelesaian masalah inconsistent analysis
Penyelesaian masalah dengan locking juga
menimbulkan masalah deadlock.
T1
Waktu
T2
begin_transaction
read(x) ….. kunci S
x=x-10
WAIT
t1 t2 t3 t4 t5 t6
sum=0
sum=sum+x
Sumber:
Posting Komentar