SBD2 VC7
Pretest
Terdapat beberapa
masalah umum yang muncul pada konkurensi yaitu:
- Lost update problem (Masalah hilangnya data yang diupdate).
- Uncommited dependency problem /
dirty real (Masalah kebergantungan
terhadap transaksi yang belum commit).
- Inconsistent analysis
problem (masalah analisa yang tidak
konsisten).
Jelas ke 3 masalah tersebut secara singkat
Jawaban :
Lost Update Problem :
Masalah operasi update yang sukses dari seorang pengguna
kemudian diikuti oleh operasi update dari pengguna lain. Masalah ini muncul
ketika sebuah transaksi membaca beberapa nilai dari database tapi transaksi
kedua mengubah beberapa darinya ketika eksekusi transaksi yang pertama.
Uncommited Dependency Problem :
Masalah terjadi saat suatu transaksi membaca data dari
transaksi lain yang belum di commit. Masalah muncul jika transaksi diizinkan
retrieve record-record yang telah diubah nilainya oleh transaksi lain yang
belum terekam, sehingga ada kemungkinan perubahan tersebut aka di undo (redo),
dikenal dengan dirty read problem.
Inconsistent Analysis Problem :
Masalah terjadi saat satu transaksi membaca beberapa nilai
tetapi transaksi kedua pada waktu yang sama memodifikasi nilai tersebut.
Terjadi ketka transaksi pertama membaca beberapa nilai tetapi transaksi kedua
melakukan perubaha terhadap nilai tersebut selama eksekusi transaksi pertama
berlangsung. Hal ini disebut denan nonrepeatable or fuzzy read.
Posttest
Cara untuk menjaga
konsistensi basis data untuk transaksi yang dilakukan secara bersamaan
(konkunren) dengan mekanisme SERIALIZABILITY
a. Jelaskan 2 metode untuk menjamin SERIALIZABILITY
a. Jelaskan 2 metode untuk menjamin SERIALIZABILITY
Jawaban :
1.
Metode Locking
Locking adalah sebuah prosedur yang digunakan untuk
mengendalikan akses bersamaan ke data. Ketika sebuah transaksi sedang mengakses
database, sebuah lock akan menolak akses ke transaksi lain untuk mencegah hasil
ayng salah. Hal ini dilakukan untuk memastikan serializable pada
transaksi-transaksi yang sedang berjalan. Ada dua macam lock, yaitu shared lock
dan exclusive lock yang harus digunakan sebelum melakukan akses membaca ataupun
menulis terhadap database.
2.
Timestamping
Salah satu alternative concurrency control yang dapat
menghilangkan deadlock adalah timestamping. Secara umum, timestamping (TS)
adalah penanda waktu saat transaksiu terjadi. Hal ini untuk mengurutkan
eksekusi transaksi agar sama dnegan eksekusi serial. Time stamp dapat berupa :
o
Waktu system saat
transaksi dimulai, atau
o
Penghitung logic
(logical counter) yang terus bertambah nilainya tiap kali terjadi transaksi
baru,
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
jawaban :
·
Transaksi apapun yang
membutuhkan akses pada sebuah item data harus melakukan lock terhada[ item
tersebut: meminta shared lock untuk akses membaca saja atau sebuah exclusive
lock untuk akses membaca dan menulis.
·
Jika item belum
dikunci oleh transaksi lain, maka lock tersebut akan dikabulkan.
·
Jika item sedang
dikunci, DBMS menentukan apakaha permintaan ini compatible dnegan lock saat
ini. Jika diminta shared lock oleh transaksi lain, sementara transaksi yang
pertama sudah mengunci shared lock, maka kedua transaksi dapat menggunakan
shared lock tersebut secara bersamaan. Apabila transaksi kedua meminta
exclusive lock, sementara exclusive lock ini masih digunakan oleh transaksi
pertama, maka transaksi kedua harus menunggu sampai transaksi pertama
melepaskan exclusive lock.
·
Shared lock dan
exclusive lock akan dilepaskan pada saat synchpoint (synchronization point).
Synchpoint menyatakan akhir dari suatu transaksi dimana basis data berada pada
keadaan yang konsisten. Bila synchpoint ditetapkan maka semua modifikasi
program menjalakan operasi commit atau rollback dan semua kunci dari record
dilepaskan
Komentar
Posting Komentar