Anda di halaman 1dari 9

BasisData_modul12_Manajemen Transaksi(2)

Modul 12 Manajemen Transaksi (1)


Tujuan : Fungsi dan pentingnya transaksi. Sifat-sifat transaksi. Kontrol concurrency : Pengertian dari kemampuan yang berkesinambungan seriali!ability". #agaimana pengun$ian lo$king" dapat memastikan serializability. Terjadinya deadlock dan bagaimana mengatasinya. #agaimana timestamping dapat memastikan serializability. %al-&al yang menyebabkan kerusakan database Kegunaan dari transaksi log file Kegunaan dari checkpointing #agaimana mengatasi kerusakan database yang terjadi

Kontrol recovery

Dukungan Transaksi (Transaction Support) Transaksi adala& sebua& aksi atau serangkaian aksi' yang dilakukan ole& user atau aplikasi yang mengakses atau menguba& isi dari database. (tau dapat juga dikatakan sebagai unit kerja logi$al Logical unit of work" dari suatu database Program aplikasi merupakan serangkaian transaksi tanpa pengola&an database didalamnya. Transaksi selalu meruba& database dari satu stata konsisten ke stata lainnya' )alaupun konsistensi data dapat terganggu selama transaksi berjalan. *onto& transaksi :

Transaksi dapat meng&asilkan sala& satu output berikut Sukses + transaksi dikatakan commited baru,stata berikutnya.
Pusat Pengembangan #a&an (jar - -M#

dan database men$apai stata

Nur Ani, ST BASIS DATA

BasisData_modul12_Manajemen Transaksi(2)

.agal + transaksi dikatakan aborted, dan database &arus dikembalikan ke stata tetap sebelum dilakukannya transaksi. Transaksi seperti ini disebut roll back atau undone. Transaksi yang committed tidak dapat digagalkan. Transaksi yang digagalkan akan dilakukan rollback yang dapat diproses ulang restarted" di)aktu mendatang. State Transition /iagram for Transa$tion

Sifat-sifat Transaksi (Properties of Transactions) Terdapat 0 sifat dasar dari transaksi (*1/' %aerder and 2euter' 1345" : Atomicity keutu&an"' merupakan sifat 6all or not&ing7. Transaksi merupakan unit yang tidak terli&at yang &arus dilakukan se$ara keseluru&an atau tidak sama sekali. %al ini merupakan tanggungja)ab dari sub sistem re$o8ery suatu database untuk memastikan atomicity. Consistency Ketetapan"' transaksi &arus menguba& database dari satu stata konsisten ke stata lainnya, berikutnya. %al ini merupakan tanggung ja)ab dari /#MS dan pembuat aplikasi untuk memastikan konsistensi. /#MS dapat memastikan konsistensi dengan menjalankan semua batasan-batasan seperti batasan integrity dan enterprise. Isolation Pemisa&an"' transaksi dieksekusi se$ara terpisa& dari yang satu dengan yang lainnya. /engan kata lain' akibat terpisa& dari transaksi yang tidak lengkap &arus tidak dapat dili&at ole& transaksi yang lain. %al ini merupakan tanggung ja)ab dari subsistem kontrol concurrency untuk memastikan pemisa&an isolation". urability /aya ta&an"' akibat dari transaksi yang lengkap committed " yaitu se$ara permanen direkam kedalam database dan tidak akan &ilang dikarenakan kegagalan berikutnya. %al tersebut merupakan tanggung ja)ab dari subsistem re$o8ery untuk memastikan durability.

Pusat Pengembangan #a&an (jar - -M#

Nur Ani, ST BASIS DATA

BasisData_modul12_Manajemen Transaksi(2)

Subsistem Transaksi DBMS (DBMS Transaction Subsystem) !ransaction "anager mengkoordinasikan transaksi untuk kepentingan program aplikasi' yang saling berkomunikasi dengan scheduler' yaitu modul yang bertanggung ja)ab mengenai implementasi strategi k&usus untuk kontrol concurrency. #cheduler kadang menga$u kepada lock "anager, jika protokol kontrol concurrency berdasarkan pengun$ian locking". Tujuan dari scheduler adala& memaksimalkan $on$urren$y tanpa memungkinkan transaksi yang sedang dieksekusi untuk mempengaru&i,saling mempengaru&i dengan transaksi lainnya. 9ika terjadi kegagalan' maka database dapat menjadi tidak konsisten. %al tersebut merupakan tugas bagi recovery manager untuk memastikan database dikembalikan ke stata sebelum dilakukannya transaksi. (k&irnya' buffer manager bertanggung ja)ab untuk mengirimkan data antar penyimpanan disk dengan main memory.

Kontrol Konkurensi (Concurrency Control) Concurrency control merupakan proses pengaturan operasi yang simultan pada database tanpa menyebabkan saling mempengaru&i antara satu dengan yang lain. (kses konkuren tidak akan bermasala& jika user &anya melakukan pemba$aan data saja' gangguan akan terjadi jika dua atau lebi& user mengakses database se$ara

Pusat Pengembangan #a&an (jar - -M#

Nur Ani, ST BASIS DATA

BasisData_modul12_Manajemen Transaksi(2)

simultan

dan

sedikitnya

melakukan

satu

peruba&an

update"'

maka

dapat

menyebabkan ketidak-konsistenan inconsistencies ". :alaupun masing-masing transaksi tersebut se$ara terpisa& benar' tetapi se$ara keseluru&an akan meng&asilkan output yang sala&. Terdapat tiga masala& potensial yang disebabkan ole& concurrency : Masala& ke&ilangan modifikasi ;ost -pdates Problem" Masala& modifikasi sementara -n$ommitted /ependen$y Problem" Masala& analisa yang tidak konsisten 1n$onsistent (nalysis Problem" Lost p!ate Problem -pdate yang dilakukan ole& user pertama diuba& ole& user yang lain. *onto& berikut :T1 mengambil <1= dari bal>' yang bernilai a)al <1==. Sedangkan T 2 menyimpan <1== pada 8ariable yang sama. Se$ara serial se&arusnya nilai ak&ir yang didapat adala& <13=. Per&atikan transaksi diba)a& ini :

*onto& diatas menerangkan &ilangnya modifikasi yang dilakukan ole& T 2. Ke&ilangan modifikasi ini dapat diatasi dengan men$ega& T 1 melakukan pemba$aan data sebelum peruba&an T2 selesai dilaksanakan. -n$ommitted /ependen$y Problem Masala& modifikasi sementara terjadi jika satu transaksi transaksi pertama" memba$a &asil dari transaksi lainnya transaksi kedua" sebelum transaksi kedua dinyatakan committed. #iasa dikenal dengan dirty read problem . *onto& transaksi T0 meruba& bal> menjadi <2== tetapi digagalkan' se&ingga bal > &arus dikembalikan ke nilai a)al sebelum transaksi yaitu <1==. Sedangkan transaksi T 5 memba$a nilai &asil modifikasi tadi yaitu' bal> <2==" dan menguranginya dengan <1=' se&ingga memperole& nilai ak&ir <13=' yang se&arusnya <3=.

Pusat Pengembangan #a&an (jar - -M#

Nur Ani, ST BASIS DATA

BasisData_modul12_Manajemen Transaksi(2)

Masala& tersebut dapat di&indari Problem dengan men$ega& T 5 memba$a bal> sebelum T0 dinyatakan committed atau abort. 1n$onsistent (nalysis Problem Terjadi ketika transaksi pertama memba$a beberapa nilai tetapi transaksi kedua melakukan peruba&an ter&adap nilai tersebut selama eksekusi transaksi pertama berlangsung. *onto& transaksi T? menjumla&kan 8ariable bal> <1=="' baly <@="' dan bal! <2@". Pada saat yang &ampir bersamaan transaksi T @ meminda&kan <1= dari bal > ke bal!' se&ingga transaksi T? mendapatkan &asil ak&ir yang sala& yaitu kelebi&an <1=". %al ini disebut dengan nonrepeatable $ or fuzzy% read .

Masala& tersebut dapat di&indari dengan men$ega& transaksi T ? memba$a bal> dan bal! sebelum transaksi T@ lengkap di-update. Seriali!ability Tujuan dari protokol kontrol concurrency adala& menjad)alkan transaksi dengan suatu $ara untuk meng&indari saling mempengaru&i,mengganggu satu dengan yang lain. %al yang paling umum dilakukan adala& menjalankan satu transaksi
Pusat Pengembangan #a&an (jar - -M#

Nur Ani, ST BASIS DATA

BasisData_modul12_Manajemen Transaksi(2)

dalam satu )aktu' tetapi tujuan dari multi user /#MS adala& memaksimalkan tingkat concurrency atau parallelism dalam sistem' se&ingga traksaksi-transaksi dapat dieksekusi se$ara parallel tanpa mengganggu transaksi lainnya. #erializability mengidentifikasi eksekusi-eksekusi dari transaksi dijamin untuk kepastian konsistensi. Penjad)alan indi8idual. #erial #chedule adala& penjad)alan yang dilakukan dimana operasi-operasi disetiap transaksi dieksekusi se$ara berurutan tanpa terjadi penyelakan operasi dari transaksi lainnya. /alam eksekusi serial tidak akan ada interferensi antar transaksi' tetapi tidak menjamin &asil dari keseluru& eksekusi serial dari &impunan transaksi akan sama,identik. &onserial #chedule adala& penjad)alan yang dilakukan dimana operasioperasi dari sekumpulan transaksi konkuren saling berselakan interlea8ed". Tujuan dari serializability adala& menemukan nonserial schedule yang memungkinkan transaksi untuk mengeksekusi se$ara konkuren tanpa mengganggu,interferen yang lainnya dan meng&asilkan state database yang dapat di&asilkan ole& eksekusi serial. /engan kata lain' jika terdapat nonserial schedule yang ekui8alen dengan beberapa serial schedule disebut dengan serializability. /alam serializability' perinta& operasi pemba$aan,penulisan sangat penting konflik dan perinta& tidak diperlukan. 9ika terdapat dua transaksi yang memba$a atau menulis data item yang terpisa&' maka tidak akan terjadi konfilk dan perinta& tidak diperlukan. 9ika satu transaksi menuliskan data item dan transaksi lainnya memba$a atau menulis data item yang sama' maka perinta& eksekusi diperlukan. *onto& konflik dalam Seriali!ability : #chedule" adala& Serangkaian operasi dari sekumpulan transaksi konkuren yang menjaga perinta& dari operasi-operasi dalam setiap transaksi

9ika terdapat dua transaksi &anya memba$a data item' maka tidak akan terjadi

Pusat Pengembangan #a&an (jar - -M#

Nur Ani, ST BASIS DATA

BasisData_modul12_Manajemen Transaksi(2)

a" b" $"

nonserial s$&edule S1 nonserial s$&edule S2' eku8alen dengan S1 serial s$&edule S5' ekui8alen dengan S1dan S2 S$&edule S5 merupakan serial s$&edule dan ketika S1 dan S2 ekui8alen

dengan S5' maka S1 dan S2 merupakan seriali!ability s$&edule. 9enis seriali!ability yang seperti ini dikenal sebagai conflict serializability' yaitu memerinta&kan operasi yang saling bertentangan dengan suatu $ara sama seperti eksekusi serial. /engan constrained write rule transaksi yang menguba& data item berdasarkan pada nilai a)al' yang pertama kali diba$a"' menggunakan precedence or seriali!ability" graph untuk memeriksa serializability. 'recedence (raph merupakan dire$ted grap& . A B'C" yang berisi dari &impunan node B dan edge C' sbb #uat node untuk setiap transaksi #uat edge peng&ubung Ti -D Tj' jika Tj memba$a nilai dari item yang ditulis ole& Ti #uat edge peng&ubung Ti -D Tj' jika Tj menuliskan nilai ke item setela& diba$a ole& Ti #uat edge peng&ubung Ti -D Tj' jika Tj menuliskan nilai ke item setela& ditulis ole& Ti 9ika edge Ti -D Tj terdapat dalam pre$eden$e grap& untuk S' kemudian terdapat serial s$&edule SE yang ekui8alen dengan S' maka Ti &arus ditampilkan sebelum Tj. 9ika pre$eden$e grap& mengandung siklus s$&edule maka tidak akan terjadi $onfli$t seriali!ability.
Pusat Pengembangan #a&an (jar - -M#

Nur Ani, ST BASIS DATA

BasisData_modul12_Manajemen Transaksi(2)

*onto& - Bon-$onfli$t seriali!able s$&edule T3 meminda&kan <1== dari 8ariabel bal > ke 8ariabel baly. T1= mengurangi kedua 8ariabel tersebut sebesar 1=F. Pre$eden$e gra& untuk s$&edule ini memiliki siklus' se&ingga bukan merupakan $onfli$t seriali!ability.

Gie) Seriali!ability Terdapat beberapa jenis seriali!ability yang mena)arkan definisi yang tidak terlalu kaku less stringent definition" dari s$&edule ekui8alen dari pada $onfli$t : seriali!ability. /efinisi yang lebi& sedikit batasannya disebut dengan view schedule . /ua s$&edules S1 dan S2 disebut 8ie) eHui8alent jika &arus memba$a nilai a)al dari > dalam S2. -ntuk setiap pemba$aan atas > ole& Ti dalam S1' jika nilai diba$a ole& > dituliskan ole& Tj' Ti juga &arus memba$a nilai dari > yang di&asilkan ole& T j dalam S2. -ntuk setiap data item >' jika penulisan tersk&ir dari > ditampilkan ole& T i dalam S1' beberapa transaksi &arus menampilkan penulisan ak&ir dari > dalam S2. S$&edule dikatakan 8ie) seriali!able jika 8ie) tersebut ekui8alen dengan serial s$&edule. setiap $onfli$t seriali!able s$&edule merupakan 8ie) seriali!able' )alaupun kebalikannya tidak benar.
Pusat Pengembangan #a&an (jar - -M#

-ntuk setiap data item >' jika T i memba$a nilai a)al dari > dalam S 1' Ti juga

Nur Ani, ST BASIS DATA

BasisData_modul12_Manajemen Transaksi(2)

/apat menampilkan ba&)a

8ie) seriali!able s$&edule yang tidak $onfli$t

seriali!able terdiri dari satu atau lebi& blind writes . *onto& - Gie) Seriali!able s$&edule

2e$o8erability Seriali!ability mengidentifikasikan s$&edule yang memeli&ara konsistensi database' diasumsikan tidak ada transaksi yang gagal. 9uga memeriksa re$o8erability dari transaksi dalan s$&edule. 9ika transaksi gagal' atomi$ity membutu&kan akibat dari transaksi yang &arus diselesaikan. /urability state ketika transaksi $ommit' peruba&annya tidak dapat diselesaikan tanpa menjalankan yang lain' penggantian' transaksi". 2e$o8erable S$&edule merupakan s$&edule yang setiap pasang dari transaksi Ti dan Tj' jika Tj memba$a sebua& data item sebelum dituliskan ole& T i' maka operasi $ommit dari Ti menda&ului operasi $ommit dari Tj.

Pusat Pengembangan #a&an (jar - -M#

Nur Ani, ST BASIS DATA