TRANSAKSI DAN PENGENDALIAN PERSAINGAN Pengertian   Transaksi merupakan bagian dari pengeksekusian sebuah program yang melakukan pengaksesan basis data dan bahkan juga melakukan serangkaian perubahan data. DBMS yang kita.

Download Report

Transcript TRANSAKSI DAN PENGENDALIAN PERSAINGAN Pengertian   Transaksi merupakan bagian dari pengeksekusian sebuah program yang melakukan pengaksesan basis data dan bahkan juga melakukan serangkaian perubahan data. DBMS yang kita.

TRANSAKSI DAN
PENGENDALIAN PERSAINGAN
Pengertian


Transaksi merupakan bagian dari
pengeksekusian sebuah program yang
melakukan pengaksesan basis data dan
bahkan juga melakukan serangkaian
perubahan data.
DBMS yang kita gunakan harus bisa
menjamin bahwa setiap satuan
transaksi harus dapat dikerjakan secara
utuh atau tidak sama sekali.


Pelaksanaan sebuah transaksi akan
berpeluang untuk mengganggu integritas
basis data yang membuat kondisi data atau
hubungan antar data berada dalam keadaan
salah atau tidak seperti yang seharusnya.
Untuk menjamin agar integritas tetap
terpelihara, setiap transaksi harus memiliki
sifat : atomik, konsisten, terisolasi, bertahan.
Contoh Transaksi


Sebuah basis data yang mengelola data
simpanan nasabah pada sebuah bank.
Selanjutnya diinginkan sebuah transaksi yang
melibatkan dua nasabah sekaligus, dimana
nasabah pertama akan melakukan transfer
sejumlah dana ke nasabah yang lain.
Jika transaksi perbankan ingin
diimplementasikan sebuah transaksi basis
data, maka kita membutuhkan dua buah
operasi elementer yaitu read(X) dan write(X).
Contoh Transaksi

Jika Ti menyatakan sebuah transaksi basis data
yang melakukan transfer uang sebesar Rp.
100.000 (seratus ribu rupiah) dari rekening (milik
nasabah pertama) ke rekening nasabah B (milik
nasabah kedua), maka Ti dapat didefinisikan
melalui rincian operasi :
Ti : read (A)
A ← A – 100000
write (A)
read (B)
B ← B + 100000
write (B)
Status Transaksi

Secara lengkap, status-status transaksi dapat dicapai
oleh sebuah transaksi sejak mulai dilaksanakan
hingga selesai atau dibatalkannya transaksi, yaitu :
Partially
commite
d
commite
d
active
failed
aborted
Prepared by Harsiti 2009
Status Transaksi


Jika transaksi berada dalam status “failed” maka DBMS harus
menjalankan proses rollback.
Proses tersebut bisa berupa :
Mengulangi pelaksanaan transaksi (restart), yang dapat dilakukan
terhadap operasi yang gagal (failed) akibat kemacetan sistem
bukan penghentian transaksi secara sengaja oleh user.
Mematikan transaksi (kill), yang dilakukan untuk transaksi yang
dihentikan sengaja oleh user atau akibat adanya kesalahan logik
dalam penulisan aplikasi,
Persaingan Eksekusi Transaksi


Concurrency : banyak transaksi yang
dijalankan secara bersamaan.
Hampir semua DBMS adalah multiuser,
sehingga berpeluang terjadinya
inkonsistensi basis data. Maka perlu
adanya pengendalian persaingan
eksekusi transaksi (concurrency
control).
Prepared by Harsiti 2009
Persaingan Eksekusi Transaksi

Alasan mengapa transaksi yang
konkuren banyak dipilih dibandingkan
transaksi secara serial:
a. Idle time (waktu tunggu) kecil.
b. Response time (waktu tanggap) lebih
baik
Prepared by Harsiti 2009
Contoh Sistem Konkuren

Masih menggunakan contoh yang sama
dengan contoh transaksi
Saldo Nasabah A = Rp. 2.000.000,Saldo Nasabah B = Rp. 1.000.000,Transaksi Pentransferan dana dari
rekening A ke rekening B.
Prepared by Harsiti 2009
Contoh Sistem Konkuren

T1 berfungsi untuk mentransfer sebesar
Rp. 100.000,- ke rekening B
Operasinya :
T1 : read (A)
A ← A-100000
write (A)
read (B)
B ← B + 100000
write (B)
Prepared by Harsiti 2009
Contoh Sistem Konkuren

T2 berfungsi mentransfer dana sebesar
10% dari saldo rekening A ke rekening B.
Operasinya :
T2 : read (A)
temp ← 0.1 * A
A ← A – temp
write (A)
read (B)
B ← B + temp
write (B)
Prepared by Harsiti 2009
Contoh Sistem Konkuren


Saldo akhir dari kedua rekening setelah
kedua transaksi di atas dikerjakan,
tergantung pada bagaimana urutan
pengerjaan (schedule) dari transaksi
tersebut.
Jika transaksi T1 dikerjakan lebih dulu
daripada T2, dan kedua transaksi
dikerjaan secara serial demi konsistensi
basis data secara keseluruhan, maka
bentuk operasi dari kedua transaksi
Prepared by Harsiti 2009
Contoh Sistem Konkuren
Schedule 1

T1
read (A)
A← A-100000
write (A)
read (B)
B ← B + 100000
write (B)
T2
read (A)
temp ← 0.1 * A
A ← A – temp
write (A)
read (B)
B ← B + temp
write (B)
Prepared by Harsiti 2009
Contoh Sistem Konkuren
Schedule 2

Jika T2 dikerjakan lebih dahulu dari pada T1
T1
read (A)
A← A-100000
write (A)
read (B)
B ← B + 100000
write (B)
T2
read (A)
temp ← 0.1 * A
A ← A – temp
write (A)
read (B)
B ← B + temp
write (B)
Prepared by Harsiti 2009
Contoh Sistem Konkuren

Kesimpulanya, bagaimanapun urutan
pengerjaan transaksi, selama dikerjakan
secara serial maka pada akhir transaksi,
kondisi konsiste yang baru akan tetap
diperoleh.
Prepared by Harsiti 2009
Contoh Sistem Konkuren


Pada database terdistribusi memungkin
untuk melakukan transaksi secara
bersama dan tentu saja pilihan urutan
pengerjaan transaksi (schedule) akan
lebih banyak lagi.
Jika terdapat transaksi sebanyak n,
akan ada transaksi lebih dari n! buah
alternatif schedule.
Prepared by Harsiti 2009
Contoh Sistem Konkuren
Schedule 3
T1
read (A)
A ← A – 100000
Write (A)
Read (B)
B ← B + 100000
Write (B)
T2
read (A)
temp ← 0.1 * A
A ← A – temp
write (A)
read (B)
B ← B + temp
write (B)
Prepared by Harsiti 2009
Contoh Sistem Konkuren
Schedule 3


Pada Schedule 3 ini, konsistensi hasil
transaksi tetap dapat diperoleh kendati
kedua transaksi tersebut dikerjakan
secara konkuren.
Tetapi kondisi di atas belum tentu dapat
dipenuhi oleh schedule konkuren
lainnya.
Prepared by Harsiti 2009
Contoh Sistem Konkuren
Schedule 4.
T1
I/O
CPU
I/O
I/O
CPU
I/O
T2
read (A)
A ← A – 100000
write (A)
read (B)
B ← B + 100000
write (B)
CPU
CPU
I/O
I/O
I/O
I/0
read (A)
temp ← 0,1 * A
A ← A -temp
write (A)
read (B)
CPU
B ← B + temp
write (B)
Prepared by Harsiti 2009
Contoh Sistem Konkuren
Schedule 4.


Bagaimana nilai akhir saldo setelah
pelaksanaan transaksi T1 dan T2 selesai
dikerjakan?
Masih tetap konsistenkah saldonya?
Prepared by Harsiti 2009