Rabu, 27 Juni 2012
LINGKUNGAN DATABASE
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.
Transaksi A
=
Baca R
=
=
=
Modifikasi R
=
=
=
Waktu
t1
t2
t3
T4
Transaksi B
=
=
=
Baca R
=
=
=
Modifikasi R
=
Contoh Lost Update problem
Data transaksi pada rekening bersama (Ika dan Susi)
Waktu
T1
T2
T3
T4
T5
T6
Transaksi Ika
Read Saldo
……….
Saldo:=Saldo-50.000
Write Saldo
……….
………
Transaksi Susi
………
Read Saldo
……..
……..
Saldo:= saldo+100.000
Write Saldo
Saldo
1.000.000
1.000.000
1.000.000
950.000
1.000.000
1.100.000
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).
Transaksi A
-
Baca R
-
-
-
Modifikasi R
-
Waktu
Transaksi B
-
Modifkasi R
-
-
-
Rollback
-
t1
t2
t3
Contoh uncommited Update Problem
Waktu
T1
T2
T3
T4
T5
T6
T7
Transaksi Simpanan
Read Saldo
Saldo:=saldo+1.000.0000
Write Saldo
……….
……….
………
………
Transaksi Bunga
………
………
……..
Read Saldo
Saldo:= saldo*0.15
Write Saldo
RollBack
Saldo
1.000.000
1.000.000
2.000.000
2.000.000
2.000.000
2.300.000
2.300.000
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
Contoh Problem of inconsistency Analysis
Transaksi A menjumlahkan nilai 1, nilai 2 dan nilai 3
Transaksi Bnilai 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
TIMESTAMPING
Adalah salah satu alternatif mekanisme kontrol
konkurensi yang dapat menghilangkan masalah dead
lock
Dua masalah yang timbul pada Timestamping :
1. Suatu transaksi memerintahkan untuk membaca
sebuah item yang sudah di update oleh transaksi yang
belakangan.
2. Suatu transaksi memerintahkan untuk menulis sebuah
item yan nilainya sudah dibaca atau ditulis oleh
transaksi yang belakangan
Langganan:
Posting Komentar (Atom)
Tidak ada komentar:
Posting Komentar