![]() 19
Nilai
bal
x
yang
dibaca
T3
disebut dirty
data,
yang
berasal dari
nama
alternatifnya, yaitu
masalah
dirty
read.
Bal
x
disebut
sebagai
dirty
data
karena
nilainya
didapatkan dari
transaksi
yang
belum
selesai
dan
belum
commit (Elmasri, 2000, p635).
Alasan
rollback
ini
tidaklah
penting.
Mungkin
masalahnya
adalah
transaksinya gagal
(error),
mungkin
mengurangi
rekening
yang
salah.
Efeknya
adalah
asumsi
T3 yang
menganggap
update
T
4
telah
berhasil
dijalankan,
meskipun
selanjutnya
perubahannya dibatalkan.
Masalah
ini
dapat dihindari dengan mencegah T3
membaca bal
x
sampai keputusan
telah
dibuat, yaitu commit atau abort transaksi T
4
.
Dua
masalah
di
atas
mengkonsentrasikan pada
transaksi
yang
mengubah
database
dan
campur
tangan
mereka
bisa
membuat database
menjadi
corrupt.
Namun,
transaksi
yang
hanya
membaca
database
bisa
juga
memberikan hasil
yang
tidak
akurat
jika
mereka
diijinkan
untuk
membaca hasil
bagian
dari
transaksi
yang
belum
selesai
yang
secara
bersamaan membaca
dan
menulis
database.
Contohnya dijelaskan
pada
masalah inconsistent analysis.
2.4.1.3
Masalah Inconsistent Analysis
Time
T
5
T
6
bal
x
bal
y
bal
z
sum
t1
begin_tran
100
50
25
t2
begin_tran
Sum=0
100
50
25
0
t3
read(bal
x
)
Read(bal
x
)
100
50
25
0
|