LINGKUNGAN DATABASE
CONCURRENCY (KONKURENSI)
Ada 3 masalah yang disebabkan oleh Concurrency :
1. Masalah kehilangan modifikasi (Lost Update Problem)
Masalah ini timbul jika dua transaksi mengakses item database yang sama yang mengakibatkan nilai dari database tersebut menjadi tidak benar.
Contoh Lost Update problem
Waktu Transaksi Ika Transaksi Susi Saldo
Nilai saldo menjadi tidak benar disebabkan transaksi Susi membaca nilai saldo sebelum transaksi Ika mengubah nilai tersebut dalam database, sehingga nilai yang sudah di update yang dihasilkancdari transaksi Ika menjadi hilang.
2. Masalah Modifikasi Sementara (uncommited Update Problem)
Masalah ini timbul jika transaksi membaca suatu record yang sudah dimodifikasi oleh transaksi lain tetapi belum terselesaikan (uncommited), terdapat kemungkinan kalau transaksi tersebut dibatalkan (rollback).
Nilai saldo menjadi tidak benar disebabkan terjadi RollBack pada T7 yang membatalkan transaksi sebelumnya (T6), sehingga saldo seharusnya tetap 2.000.000
3. Masalah Analisa yang tidak konsisten (Problem of inconsistency Analysis)
Masalah ini timbul jika sebuah transaksi membaca suatu nilai tetapi transaksi yang kedua mengupdate beberapa nilai tersebut selama eksekusi transaksi pertama
Transaksi A menjumlahkan nilai 1, nilai 2 dan nilai 3 Transaksi B >> nilai 1 + 10,
nilai 3 –10
LOCKING adalah salah satu mekanisme pengontrol concurrency
KONSEP DASAR :
Ketika sebuah transaksi memerlukan jaminan kalau record yang diinginkan tidak akan berubah secara mendadak, maka diperlukan kunci untuk record tersebut
FUNGSI
Locking berfungsi untuk menjaga record tersebut agar tidak dimodifikasi oleh transaksi lain.
Jenis- Jenis Lock :
1. Share (S)
Kunci ini memungkinkan pengguna dan para pengguna konkuren yang lain dapat membaca record tetapi tidak mengubahnya.
2. Exclusive (X)
Kunci ini memungkinkan pengguna untuk membaca dan mengubah record. Sedangkan pengguna konkuren lain tidak diperbolehkan membaca ataupun mengubah record tersebut
KASUS CARA KERJA LOCKING
0 Comments