Database Control (SBD2)
Database Control (SBD2)
1.Pengertian Transaksi
Cat: Transaksi adalah satu atau beberapa aksi program aplikasi yang
mengakses/mengubah isi basis data.
Transaksi merupakan bagian dari pengeksekusian sebuah program yang
melakukan pengaksesan basis data dan bahkan juga melakukan serangkaian
perubahan data. DBMS yang kita gunakan harus menjamin bahwa setiap
transaksi harus dapat dikerjakan secara utuh atau tidak sama sekali. Tidak
boleh ada transaksi yang hanya dikerjakan sebagian, karena dapat
menyebabkan inkonsistensi basis data. Untuk itu transaksi selalu merubah basis
data dari satu kondisi konsisten ke kondisi konsisten lain.
Sebuah transaksi berpeluang untuk mengganggu integritas basis data yang
dapat membuat kondisi!hubungan antar data tidak seperti seharusnya. Untuk
menjamin agar integritas dapat tetap terpelihara maka setiap transaksi harus
memiliki si"at#si"at$
%. Atomik, dimana semua operasi dalam transaksi dapat dikerjakan seluruhnya
atau tidak sama sekali.
&. Konsisten, dimana eksekusi transaksi secara tunggal harus dapat menjamin
data tetap konsisten setelah transaksi berakhir.
'. Terisolasi, jika pada sebuah sistem basis data terdapat sejumlah transaksi
yang dilaksanakan secara bersamaan, maka semua transaksi yang
dilaksanakan pada saat yang bersamaan tersebut harus dapat dimulai dan
bisa berakhir.
(. Bertahan, dimana perubahan data yang terjadi setelah sebuah transaksi
berakhir dengan baik, harus dapat bertahan bahkan jika seandainya sistem
menjadi mati.
Terhentinya suatu transaksi tidak selalu diakibatkan oleh kegagalan insidental
baik dari perangkat keras )crash* ataupun kemacetan sistem operasi )hang*.
Tapi lebih sering terjadi karena user sengaja menghentikan transaksi atau
karena penghentian transaksi oleh DBMS akibat adanya kondisi tak diinginkan,
seperti deadlock atau timeout.
Sebuah transaksi dapat menghasilkan dua kemungkinan$
a. +ika dilaksanakan lengkap seluruhnya, transaksi tersebut telah di commit dan
basis data mencapai keadaan konsisten baru.
b. +ika transaksi tidak sukses, maka transaksi dibatalkan dan basis data
dikembalikan ke keadaan konsisten sebelumnya )rollback*.
Pengontrolan Berbasis Komputer
1/18
Transaksi yang sudah di commit tidak dapat dibatalkan lagi. +ika ada kesalahan,
maka harus dilakukan transaksi lain yang membalik dampak transaksi
sebelumnya.
Status#status yang dapat dicapai oleh sebuah transaksi sejak mulai dilaksanakan
hingga selesai atau batal adalah$
%. Akti !A"ti#e$, yang merupakan status awal )initial state* sebuah transaksi
yang menunjukkan transaksi tersebut masih dieksekusi.
&. Berhasil Se%agian !Partiall& 'ommitte($, yaitu keadaan yang dicapai
transaksi tepat pada saat operasi terakhir dalam transaksi selesai dikerjakan.
'. Gagal !)aile($* yang merupakan keadaan dimana sebuah transaksi terhenti
pengeksekusiannya sebelum tuntas sama sekali.
(. Batal !A%orte($* yaitu keadaan dimana sebuah transaksi dianggap
tidak!belum dikerjakan yang tentu dengan terlebih dahulu diawali dengan
mengembalikan semua data yang telah diubah ke nilai#nilai semula. )yang
menjadi tanggung jawab DBMS*.
,. Berhasil Sem+,rna !'ommitte($* keadaan dimana transaksi telah
dinyatakan berhasil dikerjakan seluruhnya dan basis data telah mere"leksikan
perubahan#perubahan yang memang diinginkan transaksi.
Diagram berikut ini menunjukkan aliran dan siklus peralihan status )state* dari
sebuah transaksi$
-etika sebuah transaksi mulai dikerjakan, maka transaksi itu berada dalam
status akti. +ika terjadi penghentian sebelum operasi berakhir, maka transaksi
segera beralih ke status gagal-aile(. .amun, bila keseluruhan transaksi selesai
dikerjakan, maka transaksi itu berada pada status %erhasil se%agian-+artiall&
"ommitte(, dimana perubahan#perubahan data masih berada di dalam memori
utama yang bersi"at volatile!tidak permanen. Transaksi dalam status ini masih
mungkin untuk pindah ke status "ailed, karena ada pembatalan transaksi baik
sengaja maupun tidak. +ika tidak beralih ke status "ailed, maka nilai#nilai data
yang ada di memori utama akan direkam ke dalam disk yang bersi"at permanen.
Begitu proses perekaman selesai, maka transaksi beralih ke status "ommitte(.
Sementara itu, transaksi yang berada pada status "ailed, maka DBMS harus
menjalan proses rollback. /roses tersebut dapat berupa$
Pengontrolan Berbasis Komputer
2/18
active
partially
committed committed
failed
aborted
Mengulangi pelaksanaan transaksi ! restart, yang dilakukan pada transaksi
yang "ailed akbiat kemacetan perangkat keras ataupun perangkat lunak dan
bukannya penghentian transaksi secara sengaja oleh user.
Mematikan transaksi ! kill, yang dilakukan untuk transaksi yang dihentikan
secara sengaja oleh user atau akibat adanya kesalahan lojik dalam penulisan
aplikasi.
Begitu salah satu dari pilihan proses tersebut selesai dilakukan, maka transaksi
berpindah ke status batal )aborted*. Status berhasil sempurna!committed
maupun batal!aborted merupakan status terminasi, yaitu status akhir dalam
pelaksanaan transaksi.
.. Se",rit& /ata%ase
0dalah proteksi terhadap perusakan data oleh pemakai yang tidak berwenang
)kerusakan yang disengaja*
Authorization
/emberian hak akses yang mengi1inkan sebuah subyek mempunyai akses
secara legal terhadap sebuah sistem atau obyek.
Subyek $ user atau program
2byek $ database table, view, application, procedure, atau obyek lainnya yang
dibuat di dalam sebuah system
+enis#jenis hak akses )privileges*
/enggunaan nama database yang spesi"ik
elect )retrieve* data
Membuat tabel )obyek lainnya*
!pdate data, delete data, insert data )bisa untuk kolom#kolom tertentu*
Menghasilkan output yang tidak terbatas dari operasi "uery )user tidak
dibatasi untuk mengakses record tertentu*
Menjalankan prosedur khusus dan utilitas program
Membuat database
Membuat )dan memodi"ikasi* DBMS user identi#iers dan authorized identi#iers
jenis lainnya
0nggota dari sebuah kelompok atau kelompok#kelompok user
$iews %ubschemas&
3asil yang dinamik dari satu atau lebih operasi relasi yang beroperasi pada relasi
dasar untuk menghasilkan relasi lainnya. $iew merupakan virtual relation yang
tidak secara nyata ada di dalam sebuah database, tetapi dihasilkan atas
permintaan user secara khusus.
Pengontrolan Berbasis Komputer
3/18
Backing !p
/roses yang secara periodik menyalin database dan menjurnal )dan
memprogram* ke dalam media penyimpanan o##line
'ournaling
/roses penyimpanan dan pemeliharaan sebuah jurnal atau log seluruh
perubahan terhadap database agar dapat merecover secara e"ekti" jika terjadi
kegagalan.
(heckpointing
Titik temu sinkronisasi antara database dan transaksi log #ile. Seluruh data yang
disimpan di tempat sementara akan disimpan di media penyimpanan kedua.
)ntegrity
/engontrolan integritas juga membantu memelihara sistem database yang aman
dengan mencegah data dari in4alid
*ncryption
/enyandian )encoding* data dengan menggunakan algoritma khusus yang
merubah data menjadi tidak dapat dibaca oleh program apapun tanpa
mendeskripsikannya.
Se",rit& (ilak,kan +a(a %e%era+a tingkatan$
%. 5isik $ lokasi tempat sistem computer harus aman dan terlindung dari
orang#orang yang tidak berwenang.
&. Manusia $ otoritas user harus dibatasi dan diberikan secara berhati#hati.
3al ini untuk mengurangi penyalahgunaan wewenang.
'. Sistem 2perasi $ bagaimanapun juga keamanan basis data tergantung
dari pengamanan yang diterapkan oleh system operasi. /engamanan
yang longgar akan memperlemah aspek security.
(. Sistem Database $ pemberian otoritas sebagian atau seluruhnya pada
objek#objek basis data.
,. +aringan $ perlu mekanisme pengamanan so"tware dan hardware jaringan,
untuk mengatasi pembobolan jaringan.
/ada tingkatan system database, pada dasarnya ada & jenis otoritas untuk
mengakses basis data bagi setiap user, yaitu$
%. Disabling permission ! ketidakbolehan
&. 6nabling permission ! kebolehan
-eduanya diberikan pada objek#objek basis data sbb$
Tabel ! relasi $ user boleh!tidak membuat table!relasi, atau mengakses
langsung suatu table!relasi )lihat, tambah, hapus, ubah data*
7ndeks $ user boleh!tidak membuat atau menghapus indeks table.
Pengontrolan Berbasis Komputer
4/18
8iew $ user boleh!tidak mengakses kemunculan data di suatu 4iew.
.ote $ 8iew adalah objek basis data yang berisi perintah 9uery ke basis data.
Tiap kali 4iew diakti"kan, user akan melihat hasil 9uery#nya. Berbeda dengan
table, data yang ditampilkan dalam 4iew tidak bisa diubah.
Bentuk#bentuk otoritas!wewenang yang dapat dimiliki user pada setiap objek
basis data$
Boleh Tidak boleh
%. :ead authori1ation $ Baca 3apus
&. 7nsert authori1ation $ Tambah Ubah
'. Update authori1ation $ Ubah 3apus
(. Delete authori1ation $ 3apus
Selain itu juga ada otoritas yang menyangkut pende"inisian ; pengubahan
skema basis data$
,. 7nde< authori1ation $ Boleh buat ; hapus indeks
=. :esource authori1ation $ Boleh buat ; hapus table baru
>. 0lteration authori1ation $ Ubah skema tabel )tambah ; hapus atribut*
?. Drop authori1ation $ 3apus objek basis data.
PEMBERIAN OTORITAS
/emberian otoritas pertama kali dilakukan oleh DB0. Selanjutnya user yang
telah punya otoritas dari DB0 dapat memberikan otoritas yang sama atau lebih
rendah pada user lainnya. /embatalan otoritas pada seorang user juga secara
otomatis membatalkan pemberitan otoritas yang diberikan user tersebut ke user
lain.
Pengontrolan Berbasis Komputer
5/18
PERINTA0 S1L UNTUK SE'URIT2 BASIS /ATA3
@:0.T Apri4ilege listB 2. Anama relasi!4iewB T2 Apemakai!/UBC7DB
:682-6 Apri4ilege listB 2. Anama relasi!4iewB 5:2M ApemakaiB
@:0.T$ perintah untuk memberikan hak pemakai.
:682-6$ digunakan untuk mencabut hak pemakai.
/ri4elege list dapat berupa bentuk authoritas seperti$ +*A,- ).*+T- ,+/P-
,*0*T*- ).,*1- A0T*+AT)/. dan +*/!+(*.
@:0.T 2/T72. $ memberikan "asilitas pada users untuk dapat melakukan
@:0.T pada users lain.
Dontoh$
User U% $ @:0.T S6C6DT 2. S T2 U&
E7T3 @:0.T 2/T72.
User U& $ @:0.T S6C6DT 2. S T2 U'
E7T3 @:0.T 2/T72.
User U' $ @:0.T S6C6DT 2. S T2 U(
E7T3 @:0.T 2/T72.
Bila User U% $ :682-6 S6C6DT 2. S 5:2M U&
Maka @:0.T untuk U& ke U', @:0.T U' ke U( akan di#:682-6 secara
otomatis.
/engontrolan atau "asilitas keamanan berbasis computer$
0turan otorisasi ! authori1ation $ mengidenti"ikasi user dan membatasi aksi#
aksi user terhadap basis data
Pengontrolan Berbasis Komputer
Update (all tabel)
Insert (x)
Delete
(x)
D B A
Read (all) Insert + delete (X) Update (all tabel)
E
D
C B A
Update (all
tabel)
6/18
8iew $ yang membatasi basis data tertentu yang dapat dilihat dan dimodi"ikasi
user.
Back up, penjadwalan, penentuan check point.
6nkripsi $ yang merubah bentuk awal data menjadi bentuk lagin yang tidak
dapat dikenali user )disandikan*.
4. 'on",rren"&
(oncurrency $ banyak transaksi yang dijalankan secara bersamaan.
3ampir semua DBMS adalah multiuser, sehingga berpeluang terjadinya
inkonsistensi basis data. Maka perlu adanya pengendalian persaingan eksekusi
transaksi )concurrency control*.
0lasan mengapa transaksi yang konkuren banyak dipilih dibandingkan transaksi
secara serial$
a. 7dle time )waktu menganggur* kecil.
0kti4itas transaksi terbagi &, yaitu$
0kti4itas 7 ! 2, seperti pengaksesan disk, penulisan ke monitor.
0kti4itas D/U, seperti proses perhitungan, pembandingan.
2perasi 7 ! 2 dan D/U bisa dikerjakan secara paralel, dan bisa terjadi dari
transaksi yang berbeda. +ika keparalelan ini bisa dioptimalkan, maka akan
meningkatkan per"ormansinya, atau dengan kata lain waktu pakai perangkat
D/U dan 7!2 lebih berdaya guna, karena idle time#nya kecil.
b. :esponse time )waktu tanggap* lebih baik.
Transaksi pada suatu sistem ada banyak!beragam. 0da yang singkat dan
ringan, dan ada pula yang berat. Semua transaksi itu berbeda waktu
prosesnya. +ika transaksi#transaksi itu dikerjakan secara serial maka dapat
terjadi situasi dimana transaksi yang ringan dan butuh waktu singkat harus
menunggu selesainya transaksi yang berat dan panjang, sehingga response
time#nya menjadi rendah dan tidak dapat diprediksi.
Masalah ,m,m &ang ter5a(i +a(a sistem &ang konk,ren3
%. Masalah kehilangan modi"ikasi
Pengontrolan Berbasis Komputer
7/18
&. Masalah kehilangan modi"ikasi sementara
'. Masalah analisa yang tidak konsisten
1. MASALA0 KE0ILANGAN MO/I)IKASI
Transaksi A 6akt, Transaksi B
F G F
Baca : t% F
F G F
F t& Baca :
F G F
Modi"ikasi : t' F
F G F
F t( Modi"ikasi :
F G F
Transaksi 0 membaca : pada t%, transaksi B membaca : pada t&.
Transaksi 0 memodi"ikasi : pada t'.
Transaksi B memodi"ikasi record yang sama pada t(.
Modi"ikasi dari transaksi 0 akan hilang karena transaksi B akan memodi"ikasi
: tanpa memperhatikan modi"ikasi dari transaksi 0 pada t'.
.. MASALA0 MO/I)IKASI SEMENTARA
Masalah ini timbul jika transaksi membaca suatu record yang sudah dimodi"ikasi
oleh transaksi lain tetapi belum terselesaikan )uncommited*, terdapat
kemungkinan kalau transaksi tersebut dibatalkan )rollback*.
Transaksi A 6akt, Transaksi B
F G F
F t% Modi"ikasi :
Pengontrolan Berbasis Komputer
8/18
F G F
Baca : t& F
F G F
F t' rollback
F G F
Transaksi B memodi"ikasi record : pada t%
Transaksi 0 membaca : pada t&.
/ada saat t' transaksi B dibatalkan.
Maka transaksi 0 akan membaca record yang salah.
Transaksi A 6akt, Transaksi B
F G F
F t% Modi"ikasi :
F G F
Modi"ikasi : t& F
F G F
F t' rollback
F G F
/ada waktu t& transaksi 0 memodi"ikasi :
-arena transaksi B dibatalkan pada waktu t', maka transaksi 0 memodi"ikasi
record yang salah.
4. MASALA0 ANALISA 2ANG TI/AK KONSISTEN
.ilai % F (H .ilai & F ,H .ilai ' F 'H
Transaksi A 6akt, Transaksi B
F G F
Baca nilai % )(H*
+uml F (H
t% F
F
F G F
Baca nilai & ),H*
+uml F IH
t& F
F G F
F t' Baca nilai ' )'H*
F G F
Pengontrolan Berbasis Komputer
9/18
F t( Modi"ikasi nilai '
'H &H
F G F
t, Baca nilai % )(H*
G F
t= Modi"ikasi nilai %
(H ,H
G F
t> Dommit
G
Baca nilai ' )&H*
+uml F %%H
)bukan %&H*
t?
F G
Transaksi 0 menjumlah nilai %, nilai & dan nilai '.
Transaksi B nilai % J %H K nilai ' # %H
/ada waktu t?, transaksi 0 membaca nilai yang salah karena nilai ' sudah
dimodi"ikasi menjadi &H )transaksi B sudah melakukan commit sebelum
transaksi 0 membaca nilai '*.
.ote:
(ommit adalah operasi yang menyatakan bahwa suatu transaksi sudah
terselesaikan ! sukses )success#ul end2o#2transaction*.
+ollback adalah operasi yang menyatakan bahwa suatu transaksi dibatalkan
)unsuccess#ull end2o#2transaction*.
Dengan adanya masalah di atas, maka dibutuhkan suatu concurrency control.
Mekanisme (oncurrency (ontrol$
%. Cocking.
&. Time Stamping
1. LO'KING
0ocking adalah salah satu mekanisasi pengontrolan konkuren.
-onsep dasarnya adalah$ ketika suatu transaksi memerlukan jaminan kalau
record yang diinginkan tidak akan berubah secara mendadak, maka diperlukan
kunci untuk record tersebut.
5ungsinya kunci )lock* adalah dengan menjaga record tersebut agar tidak
dimodi"ikasi oleh transaksi lain.
Dara kerja dari kunci$
%. /ertama kita asumsikan terdapat & macam kunci$
-unci L $ kunci yang eksklusi".
Pengontrolan Berbasis Komputer
10/18
-unci S $ kunci yang digunakan bersama#sama.
&. +ika transaksi 0 menggunakan kunci L pada record :, maka permintaan dari
transaksi B untuk suatu kunci pada : ditunda, dan B harus menunggu sampai
0 melepaskan kunci tersebut.
'. +ika transaksi 0 menggunakan kunci S pada record :, maka$
Bila transaksi B ingin menggunakan kunci L, maka B harus menunggu
sampai 0 melepaskan kunci tersebut.
Bila transaksi B ingin menggunakan kunci S, maka B dapat menggunakan
kunci S bersama 0.
Tabel -unci$
7 S 8 L F kunci L
7 . . M S F kunci S
S . M M . F .o
8 M M M M F Mes
(. # Bila suatu transaksi hanya melakukan pembacaan saja, secara otomatis ia
memerlukan kunci S baca )S*
# Bila transaksi tersebut ingin memodi"ikasi record maka secara otomatis ia
memerlukan kunci S memodi"ikasi )L*
# Bila transaksi tersebut sudah menggunakan kunci S, setelah itu ia akan
memodi"ikasi record, maka kunci S akan dinaikan ke le4el kunci L.
,. -unci L dan kunci S akan dilepaskan pada saat synchpoint )synchroni1ation
point*. Synchpoint menyatakan akhir dari suatu transaksi dimana basis data
berada pada state yang konsisten. Bila synchpoint ditetapkan maka$
Semua modi"ikasi program menjalankan operasi commit atau rollback.
Semua kunci dari record dilepaskan.
MASALA0 KE0ILANGAN MO/I)IKASI
Transaksi A 6akt, Transaksi B
F G F
Baca : t% F
Pengontrolan Berbasis Komputer
11/18
)kunci S*
F G F
F t& Baca :
)kunci S*
F G F
Modi"ikasi :
)kunci S*
tunggu
t' F
F G F
F t( Modi"ikasi :
)kunci L*
tunggu
F G F
G F
tunggu G tunggu
/ada waktu t', transaksi 0 memerlukan kunci L, maka transaksi 0 harus
menunggu sampai B melepaskan kunci S.
Transaksi B juga harus menunggu pada t(.
Maka tidak akan ada yang kehilangan modi"ikasi, tetapi terdapat keadaan
baru yaitu deadlock.
MASALA0 MO/I)IKASI SEMENTARA
Transaksi A 6akt, Transaksi B
F G F
F t%
G
Modi"ikasi :
)kunci L*
F G F
Baca :
-unci )S*
tunggu
t&
G
G
F
F G F
F t'
G
Synchpoint
)kunci L dilepas*
tunggu G F
Baca : kembali
)kunci S*
T( F
G F
Transaksi A 6akt, Transaksi B
F G F
F t%
G
Modi"ikasi :
)kunci L*
F G F
Pengontrolan Berbasis Komputer
12/18
Modi"ikasi :
)kunci L*
tunggu
t&
G
F
F G F
F
tunggu
t'
G
Synchpoint
)kunci L dilepas*
Modi"ikasi :
)kunci L*
G
G
F
F
Transaksi 0 pada t& tidak dapat dijalankan langsung, tetapi harus menunggu
sampai B melepas kunci L.
Bila B sudah mencapai synchpoint, maka kunci L dilepaskan dan 0 dapat
meneruskan prosesnya.
Maka transaksi 0 tidak akan terjadi kesalahan dalam membaca, karena
sudah mencapai synchpoint.
MASALA0 ANALISA 2ANG TI/AK KONSISTEN
.ilai % F (H .ilai & F ,H .ilai ' F 'H
Transaksi A 6akt, Transaksi B
F G F
Baca nilai % )(H*
)kunci S*
+uml F (H
t%
G
G
F
F
F G F
Baca nilai & ),H*
)kunci S*
+uml F IH
t&
G
G
F
F
F
F G F
F t'
G
Baca nilai ' )'H*
)kunci S*
F G F
F t(
G
G
Modi"ikasi nilai '
)kunci L*
'H &H
F G F
t,
G
Baca nilai % )(H*
)kunci S*
G F
t=
G
G
Modi"ikasi nilai %
)kunci L*
tunggu
G F
Baca nilai ' )&H* t> F
Pengontrolan Berbasis Komputer
13/18
)kunci S*
tunggu
G
G
F
tunggu
Transaksi B pada t= tidak diijinkan, karena memerlukan kunci L maka B
harus menunggu sampai 0 melepaskan kunci S kepada nilai %.
/ada t> transaksi 0 juga tidak dapat langsung dilaksanakan, karena B
menggunakan kunci L pada nilai '. Maka 0 harus menunggu B melepaskan
kunci L pada nilai '.
Transaksi 0 akan membaca nilai yang benar, tapi timbul masalah baru yaitu
deadlock.
Dengan menggunakan locking, maka tidak ada transaksi yang akan kehilangan
modi"ikasi. Tapi, terdapat keadaan ! masalah baru yaitu Deadlock, yaitu suatu
kondisi dimana ke#& transaksi dalam keadaan menunggu, sehingga keduanya
tidak akan pernah selesai dieksekusi.
+ika pelepasan kunci terlalu cepat dilakukan, maka bisa terjadi inkonsistensi
in"ormasi. Tapi bila dilepas di akhir transaksi, bisa terjadi deadlock. 3al ini
merupakan kondisi dilematis pada sebuah sistem konkuren yang meman"aatkan
mekanisme locking.
.. TIME STAMPING
Salah satu alternati" concurrency control yang dapat menghilangkan deadlock
adalah time stamping. Secara umum, timestamping )TS* adalah penanda waktu
saat transaksi terjadi. 3al ini untuk mengurutkan eksekusi transaksi agar sama
dengan eksekusi serial.
Time stamp dapat berupa$
a. waktu sistem saat transaksi dimulai, atau
b. penghitung logik )logical counter* yang terus bertambah nilainya tiap kali
terjadi transaksi baru.
+ika timestamp transaksi a lebih kecil daripada timestamp transaksi b , atau
TS)Ta* A TS)Tb*, maka transaksi a )Ta* selalu dilaksanakan sebelum transaksi
b )Tb*.
Dontoh$
Misal rekaman pada basis data memuat TS %=?, yang mengidenti"ikasikan
transaksi dengn TS %=? adalah transaksi yang terkemudian yang sukses
mengupdate rekaman yang bersangkutan. Maka jika ada transaksi dengan TS
%>H mencoba mengupdate rekaman yang sama, maka update ini akan diijinkan,
karena TS yang dimiliki lebih kemudian dari TS pada rekaman. Saat transaksi ini
dilakukan, TS pada rekaman akan diatur menjadi %>H. Sekaran, jika transaksi
yang akan mengupdate rekaman tersebut memiliki TS %=,, maka update ditolak
karena TS#nya A TS di rekaman.
Pengontrolan Berbasis Komputer
14/18
Selain transaksi, item data juga memiliki nilai time stamp. Untuk setiap item data
N, ada & nilai time stamp, yaitu$
a. :ead time stamp atau :#timestamp)N*, yang menunjukkan nilai TS terbesar
dari setiap transaksi yang berhasil menjalankan operasi read)N*.
b. Erite time stamp atau E#timestamp)N*, yang menunjukkan nilai TS terbesar
dari setiap transaksi yang berhasil menjalankan operasi write)N*.
Timestamp ini akan selalu diperbarui ketika ada perintah baru read)N* atau
write)N* yang dijalankan.
Time8stam+ing Or(ering Proto"ol
/rotokol ini menjamin bahwa tiap operasi read dan write yang memiliki kon"lik
dieksekusi sesuai urutan TS.
%. Untuk transaksi Ta yang menjalankan operasi read)N*
a. +ika TS)Ta* A E#TS)N* maka transaksi Ta perlu membaca kembali nilai N
yang telah ditulis dan transaksi Ta akan dibatalkan )rollback*.
b. +ika TS)Ta* O E#TS)N* maka operasi read dieksekusi, dan :#TS)N* diisi
dengan nilai terbesar diantara TS)Ta* dan :#TS)N*.
&. Untuk transaksi Ta yang menjalankan operasi write)N*$
a. jika TS)Ta* A :#TS)N* maka nilai N yang baru dihasilkan Ta tidak akan
diman"aatkan lagi, dan sistem berasumsi bahwa nilai tersebut tidak
pernah dihasilkan. -arena itu operasi write ditolak, dan transaksi Ta di
rollback.
b. jika TS)Ta* A E#TS)N* maka itu berarti transaksi Ta sedang berusaha
melakukan penulisan nilai N yang kadaluarsa. Maka operasi wrwite ini
akan ditolak dan transaksi Ta akan di rollback.
c. Di luar kondisi a dan b di atas, operasi write dieksekusi dan E#TS)N*
diberi nilai baru yang sama dengan TS)Ta*.
Terhadap transaksi Ta yang di rollback, akan diberikan sebuah timestamp yang
baru dan diulang kembali.
/roperti timestamp$
%. Uni9ueness $ masing#masing timestamp suatu transaksi adalah unik.
&. Monotonicity $ & timestamp yang dihasilkan transaksi yang sama
meningkat secara monoton.
Pengontrolan Berbasis Komputer
15/18
Dara pemberian nilai timestamp$
%. @lobal )systemwide* monotonically increasing number
&. Cocal )site* monotonically increasing number.
9. Re"o#er&
Recovery Facilities
Sebuah DBMS sebaiknya menyediakan "asilitas#"asilitas berikut ini untuk
membantu reco4ery $
Backup mechanism
Melakukan backup secara periodik terhadap database yang ada
0ogging #acilities
Mencatat transaksi#transaksi dan perubahan#perubahan yang terjadi terhadap
database. DBMS memelihara "ile khusus yang disebut Cog )+ournal* yang
menyediakan in"ormasi mengenai seluruh perubahan yang terjadi pada
database.
(heckpoint #acility
Mengi1inkan update terhadap database yang akan menjadi database yang
/ermanent
+ecovery manager
Mengi1inkan sistem untuk restore database ke keadaan sebelum terjadi
-erusakkan
Recovery Techniques
/rosedur reco4ery yang digunakan tergantung dari kerusakkan yang terjadi pada
database. Terdapat & kasus kerusakkan $
1. +ika database rusak secara "isik seperti $ disk head crash dan
menghancurkan database, maka yang terpenting adalah melakukan restore
backup database yang terakhir dan mengaplikasikan kembali operasi#operasi
update transaksi yang telah commit dengan menggunakan log #ile. Dengan
asusmsi bahwa log #ilenya tidak rusak.
2. +ika database tidak rusak secara "isik tetapi menjadi tidak konsisten, sebagai
contoh $ sistem crashed sementara transaksi dieksekusi, maka yang perlu
dilakukan adalah membatalkan perubahan#perubahan yang menyebabkan
database tidak konsisten. Mengulang beberapa transaksi sangat diperlukan
juga untuk meyakinkan bahwa perubahan#perubahan yang dilakukan telah
disimpan di dalam secondory storage. Disini tidak perlu menggunakan
salinan backup database, tetapi dapat me#restore database ke dalam
keadaan yang konsisten dengan menggunakan be#ore2 dan a#ter2image yang
ditangani oleh log #ile.
Pengontrolan Berbasis Komputer
16/18
Teknik recover berikut ini dilakukan terhadap situasi dimana database tidak
rusak tetapi database dalam keadaan yang tidak konsisten.
1. Deferred Update
Update tidak dituliskan ke database sampai sebuah transaksi dalam keadaan
commit. +ika transaksi gagal sebelum mencapai keadaan ini, transaksi ini tidak
akan memodi"ikasi database dan juga tidak ada perubahan#perubahan yang
perlu dilakukan.
/enulisan dilakukan secara initial hanya terhadap log dan log record yang
digunakan untuk actual update terhadap database. +ika sistem gagal, sistem
akan menguji log dan menentukan transaksi mana yang perlu dikerjakan ulang,
tetapi tidak perlu membatalkan semua transaksi.
2. Immediate Update
Update diaplikasikan terhadap database tanpa harus menunggu transaksi dalam
keadaan commit. Update dapat dilakukan terhadap database setiap saat setelah
log record ditulis. Cog dapat digunakan untuk membatalkan dan mengulang
kembali transaksi pada saat terjadi kerusakkan.
/ea(lo"k /ete"tion : Re"o#er&
Bertanggung jawab terhadap pendeteksian kegagalan dan mengembalikan basis
data ke keadaan konsisten.
Mang harus dilakukan sistem$
mendapat in"ormasi tentang pengalokasian data pada transaksi
menggunakan algoritma yang menggunakan in"ormasi tersebut untuk
menentukan apakah sistem berada dalam keadaan deadlock.
menghilangkan keadaan#keadaan deadlock jika algoritma mendeteksi
adanya deadlock tersebut.
Deadlock dapat digambarkan dengan meman"aatkan graph, yang disebut graph
wait2#or.
Simpul untuk menyatakan transaksi.
Busur berarah untuk menunjukkan suatu transaksi Ta sedang menunggu
transaksi Tb untuk melepaskan penguncian data.
Pengontrolan Berbasis Komputer
17/18
t1
t2
t4
t3
t1 sedang menngg t2 dan t3
t2 sedang menngg t4
t3 sedang menngg t2
-arena graph ini tidak memiliki siklus, maka sistem tidak berada dalam dalam
kondisi deadlock.
-apankah harus menjalankan algoritma pendeteksian deadlockP
Tergantung & "aktor$
a. seberapa sering deadlock terjadi
b. seberapa banyak transaksi yang terkena dampak deadlock
+ika sering terjadi, maka algoritma tersebut harus sering diakti"kan. Data yang
dialokasi untuk transaksi#transaksi yang deadlock tidak akan diperoleh oleh
transaksi lain, hingga kondisi deadlock tersebut diatasi. Dalam kondisi terburuk,
dimana siklus bisa saja bertambah, maka kita dapat mengakti"kan algoritma
pendeteksian deadlock ini setiap kali sebuah permintaan data tidak dapat
dipenuhi dengan segera.
Re"o#er& (ari /ea(lo"k
Dara umum yang digunakan adalah dengan proses rollback transaksi untuk
lepas dari deadlock.
Tiga langkah yang harus dilakukan$
a. Selecting 8ictim ! pemilihan korban
-ita memilih transaksi mana saja yang akan di rollback, dan me#rollback
transaksi yang memiliki minimum cost.
5aktor yang menentukan cost$
berapa lama transaksi telah dilaksanakan dan berapa lama lagi
transaksi selesai.
berapa banyak item data yang digunakan
berapa banyak item data lagi yang digunakan sampai selesai.
berapa banyak transaksi yang akan ikut di rollback.
b. :ollback
Setelah menentukan transaksi mana yang di rollback, kita tentukan
se3auh mana rollback dilakukan. Dara yang paling sederhana adalah total
rollback kemudian restart. .amun lebih e"ekti" me#rollback transaksi
sejauh deadlock dapat dihilangkan.
Pengontrolan Berbasis Komputer
18/18
t1
t2
t4
t3
t1 sedang menngg t2 dan t3
t2 sedang menngg t4
t3 sedang menngg t2
t4 menngg t3
t2! t3! t4 berada dalam "ondisi deadloc"
c. Star4ation
Dalam selecting 4ictim, bisa saja terjadi sebuah transaksi selalu dipilih
sebagai korban. 0kibatnya transaksi tersebut tidak pernah bisa selesai.
Situasi ini disebut tarvation.
Untuk menghindarinya, sebuah transaksi boleh dipilih sebagai 4ictim
hanya beberapa kali saja, atau dalam jangka waktu terbatas. Daranya,
dengan melibatkan jumlah rollback yang dialami sebuah transaksi sebagai
suatu biaya/cost.
Pengontrolan Berbasis Komputer
19/18