Sistem Basis Data - Digital library - Perpustakaan Pusat...

20
MANAJEMEN TRANSAKSI Alif Finandhita, S.Kom

Transcript of Sistem Basis Data - Digital library - Perpustakaan Pusat...

Page 1: Sistem Basis Data - Digital library - Perpustakaan Pusat ...elib.unikom.ac.id/files/disk1/470/jbptunikompp-gdl...ð¡Untuk memastikan integritas data tetap terjaga dan transaksi dapat

MANAJEMEN TRANSAKSI

Alif Finandhita, S.Kom

Page 2: Sistem Basis Data - Digital library - Perpustakaan Pusat ...elib.unikom.ac.id/files/disk1/470/jbptunikompp-gdl...ð¡Untuk memastikan integritas data tetap terjaga dan transaksi dapat

Konsep Transaksi State Transaksi Implementasi Atomik dan Durabilitas Eksekusi Konkuren Serializability Recoverability Implementasi Isolasi Definisi Transaksi di SQL Tes Serializability

Konsep Transaksi State Transaksi Implementasi Atomik dan Durabilitas Eksekusi Konkuren Serializability Recoverability Implementasi Isolasi Definisi Transaksi di SQL Tes Serializability

Alif Finandhita, S.Kom 2

Page 3: Sistem Basis Data - Digital library - Perpustakaan Pusat ...elib.unikom.ac.id/files/disk1/470/jbptunikompp-gdl...ð¡Untuk memastikan integritas data tetap terjaga dan transaksi dapat

Transaksi adalah sebuah unit eksekusi dari programyang mengakses dan memungkinkan updateberbagai macam tipe data.

Biasanya suatu transaksi diinisialisasikan olehprogram user yang ditulis dalam bahasapemrograman atau manipulasi data tingkat tinggi(sebagai contoh, SQL, C/C++), yang dibatasi olehstatement (pemanggilan fungsi) dalam bentuk begintransaction dan end transaction.

Transaksi terdiri dari semua operasi yang dieksekusidiantara begin transaction dan end transaction.

Transaksi adalah sebuah unit eksekusi dari programyang mengakses dan memungkinkan updateberbagai macam tipe data.

Biasanya suatu transaksi diinisialisasikan olehprogram user yang ditulis dalam bahasapemrograman atau manipulasi data tingkat tinggi(sebagai contoh, SQL, C/C++), yang dibatasi olehstatement (pemanggilan fungsi) dalam bentuk begintransaction dan end transaction.

Transaksi terdiri dari semua operasi yang dieksekusidiantara begin transaction dan end transaction.

Alif Finandhita, S.Kom 3

Page 4: Sistem Basis Data - Digital library - Perpustakaan Pusat ...elib.unikom.ac.id/files/disk1/470/jbptunikompp-gdl...ð¡Untuk memastikan integritas data tetap terjaga dan transaksi dapat

Pada saat eksekusi transaksi, database bisa sajamenjadi tidak konsisten. Namun pada saattransaksi sampai pada level commited, makadatabasenya harus konsisten.

Dua hal utama yang mungkin akan dihadapipada saat melakukan transaksi : Terjadinya berbagai macam kegagalan, yang bisa

disebabkan karena kegagalan hardware, systemcrash, dll

Eksekusi konkuren (secara bersama) yang melibatkanbanyak transaksi

Pada saat eksekusi transaksi, database bisa sajamenjadi tidak konsisten. Namun pada saattransaksi sampai pada level commited, makadatabasenya harus konsisten.

Dua hal utama yang mungkin akan dihadapipada saat melakukan transaksi : Terjadinya berbagai macam kegagalan, yang bisa

disebabkan karena kegagalan hardware, systemcrash, dll

Eksekusi konkuren (secara bersama) yang melibatkanbanyak transaksi

Alif Finandhita, S.Kom 4

Page 5: Sistem Basis Data - Digital library - Perpustakaan Pusat ...elib.unikom.ac.id/files/disk1/470/jbptunikompp-gdl...ð¡Untuk memastikan integritas data tetap terjaga dan transaksi dapat

Untuk memastikan integritas data tetap terjaga dantransaksi dapat berjalan dengan baik, maka sistemdatabase harus menjaga properti – properti yangterdapat di dalam transaksi.

Properti – properti di dalam transaksi ini dikenaldengan istilah Properti ACID (Atomicity, Consistency,Isolation, Durability).

Properti ACID memastikan perilaku yang dapatdiprediksi dan menguatkan peran transaksi sebagaikonsep all or nothing yang didesain untuk mengurangimanajemen load ketika ada banyak variabel.

Untuk memastikan integritas data tetap terjaga dantransaksi dapat berjalan dengan baik, maka sistemdatabase harus menjaga properti – properti yangterdapat di dalam transaksi.

Properti – properti di dalam transaksi ini dikenaldengan istilah Properti ACID (Atomicity, Consistency,Isolation, Durability).

Properti ACID memastikan perilaku yang dapatdiprediksi dan menguatkan peran transaksi sebagaikonsep all or nothing yang didesain untuk mengurangimanajemen load ketika ada banyak variabel.

Alif Finandhita, S.Kom 5

Page 6: Sistem Basis Data - Digital library - Perpustakaan Pusat ...elib.unikom.ac.id/files/disk1/470/jbptunikompp-gdl...ð¡Untuk memastikan integritas data tetap terjaga dan transaksi dapat

Properti ACID :

Atomicity. Transaksi dilakukan sekali dan sifatnya atomik, artinyamerupakan satu kesatuan tunggal yang tidak dapat dipisah –laksanakan pekerjaannya sampai selesai atau tidak sama sekali

Consistency. Jika basis data awalnya dalam keadaan konsistenmaka pelaksanaan transaksi sendirinya juga harus meninggalkanbasis data tetap dalam status konsisten

Isolation. Isolasi memastikan bahwa secara bersamaan eksekusitransaksi terisolasi dari yang lain

Durability. Begitu transaksi telah dilaksanakan (di-commit) makaperubahan yang dilakukan tidak akan hilang dan tetap terjaga(durable), sekalipun ada kegagalan sistem.

Properti ACID :

Atomicity. Transaksi dilakukan sekali dan sifatnya atomik, artinyamerupakan satu kesatuan tunggal yang tidak dapat dipisah –laksanakan pekerjaannya sampai selesai atau tidak sama sekali

Consistency. Jika basis data awalnya dalam keadaan konsistenmaka pelaksanaan transaksi sendirinya juga harus meninggalkanbasis data tetap dalam status konsisten

Isolation. Isolasi memastikan bahwa secara bersamaan eksekusitransaksi terisolasi dari yang lain

Durability. Begitu transaksi telah dilaksanakan (di-commit) makaperubahan yang dilakukan tidak akan hilang dan tetap terjaga(durable), sekalipun ada kegagalan sistem.

Alif Finandhita, S.Kom 6

Page 7: Sistem Basis Data - Digital library - Perpustakaan Pusat ...elib.unikom.ac.id/files/disk1/470/jbptunikompp-gdl...ð¡Untuk memastikan integritas data tetap terjaga dan transaksi dapat

Transaksi mengakses data dengan operasi :

read(X), mentransfer data item X dari databaseke local buffer yang dimiliki oleh transaksi yangmengeksekusi operasi pembacaan (read).

write(X), mentransfer data item X dari localbuffer dari aksi transaksi yang mengeksekusiperintah penulisan kembali ke database (write)

Transaksi mengakses data dengan operasi :

read(X), mentransfer data item X dari databaseke local buffer yang dimiliki oleh transaksi yangmengeksekusi operasi pembacaan (read).

write(X), mentransfer data item X dari localbuffer dari aksi transaksi yang mengeksekusiperintah penulisan kembali ke database (write)

Alif Finandhita, S.Kom 7

Page 8: Sistem Basis Data - Digital library - Perpustakaan Pusat ...elib.unikom.ac.id/files/disk1/470/jbptunikompp-gdl...ð¡Untuk memastikan integritas data tetap terjaga dan transaksi dapat

Contoh implementasi transaksi, misalkantransaksi transfer uang sebesar $50 darirekening A ke rekening B, maka transaksitersebut dapat didefinisikan sebagai berikut :

1. read(A)2.A := A – 503. write(A)4.read(B)5.B := B + 506.write(B)

Contoh implementasi transaksi, misalkantransaksi transfer uang sebesar $50 darirekening A ke rekening B, maka transaksitersebut dapat didefinisikan sebagai berikut :

1. read(A)2.A := A – 503. write(A)4.read(B)5.B := B + 506.write(B)

Alif Finandhita, S.Kom 8

Page 9: Sistem Basis Data - Digital library - Perpustakaan Pusat ...elib.unikom.ac.id/files/disk1/470/jbptunikompp-gdl...ð¡Untuk memastikan integritas data tetap terjaga dan transaksi dapat

Berdasarkan contoh, ditinjau dari kebutuhan propertiACID-nya, maka :

Kebutuhan Konsistensi (Consistency Requierements) :Total jumlah rekening A + B harus tetap, tidakberubah setelah proses eksekusi transaksi.

Kebutuhan Atomik (Atomicity Requeirements) :Jika transaksi gagal diantara tahap ke-3 dan tahap ke-6, maka sistem harus memastikan bahwa perubahanyang terjadi tidak disimpan ke database, atau akanterjadi inkonsistensi data. Dengan kata lain,selesaikan transaksi atau tidak sama sekali.

Berdasarkan contoh, ditinjau dari kebutuhan propertiACID-nya, maka :

Kebutuhan Konsistensi (Consistency Requierements) :Total jumlah rekening A + B harus tetap, tidakberubah setelah proses eksekusi transaksi.

Kebutuhan Atomik (Atomicity Requeirements) :Jika transaksi gagal diantara tahap ke-3 dan tahap ke-6, maka sistem harus memastikan bahwa perubahanyang terjadi tidak disimpan ke database, atau akanterjadi inkonsistensi data. Dengan kata lain,selesaikan transaksi atau tidak sama sekali.

Alif Finandhita, S.Kom 9

Page 10: Sistem Basis Data - Digital library - Perpustakaan Pusat ...elib.unikom.ac.id/files/disk1/470/jbptunikompp-gdl...ð¡Untuk memastikan integritas data tetap terjaga dan transaksi dapat

Kebutuhan Durabilitas (Durability) :Pada saat eksekusi transaksi selesai dilaksanakan, dan user yangmelakukan transaksi sudah diberitahu bahwa transfer yangdilakukannya sukses, maka harus dipastikan bahwa tidak adakesalahan sistem yang akan terjadi yang menyebabkan hilangnyadata yang berkaitan dengan proses transfer tersebut .

Kebutuhan Isolasi (Isolation) :Jika diantara tahap ke-3 dan tahap ke-6 ada transaksi lain yangdisisipkan, maka akan dapat menyebabkan inkonsistensi terhadapdatabase (jumlah rekening A+B bisa jadi berkurang dari yangseharusnya). Untuk menghindari hal itu, maka transaksi bisadieksekusi secara serial.Tapi walaubagaimanapun, eksekusi banyak transaksi secarabersama – sama (konkuren) memiliki banyak keuntungan.

Kebutuhan Durabilitas (Durability) :Pada saat eksekusi transaksi selesai dilaksanakan, dan user yangmelakukan transaksi sudah diberitahu bahwa transfer yangdilakukannya sukses, maka harus dipastikan bahwa tidak adakesalahan sistem yang akan terjadi yang menyebabkan hilangnyadata yang berkaitan dengan proses transfer tersebut .

Kebutuhan Isolasi (Isolation) :Jika diantara tahap ke-3 dan tahap ke-6 ada transaksi lain yangdisisipkan, maka akan dapat menyebabkan inkonsistensi terhadapdatabase (jumlah rekening A+B bisa jadi berkurang dari yangseharusnya). Untuk menghindari hal itu, maka transaksi bisadieksekusi secara serial.Tapi walaubagaimanapun, eksekusi banyak transaksi secarabersama – sama (konkuren) memiliki banyak keuntungan.

Alif Finandhita, S.Kom 10

Page 11: Sistem Basis Data - Digital library - Perpustakaan Pusat ...elib.unikom.ac.id/files/disk1/470/jbptunikompp-gdl...ð¡Untuk memastikan integritas data tetap terjaga dan transaksi dapat

Supaya transaksi benar – benar sukses dipenuhi(successfully completion), maka sebuah transaksiharus berada di dalam salah satu state sebagai berikut: Active Partially committed Failed Aborted Commited

State tersebut dapat direpresentasikan dalam modeltransaksi abstrak yang sederhana

Supaya transaksi benar – benar sukses dipenuhi(successfully completion), maka sebuah transaksiharus berada di dalam salah satu state sebagai berikut: Active Partially committed Failed Aborted Commited

State tersebut dapat direpresentasikan dalam modeltransaksi abstrak yang sederhana

Alif Finandhita, S.Kom 11

Page 12: Sistem Basis Data - Digital library - Perpustakaan Pusat ...elib.unikom.ac.id/files/disk1/470/jbptunikompp-gdl...ð¡Untuk memastikan integritas data tetap terjaga dan transaksi dapat

Activemerupakan initial state, transaksi tetap berada padastate ini pada saat proses eksekusi

Partially CommittedSetelah statement final telah dieksekusi

FailedSetelah ditelusuri bahwa eksekusi normal tidak dapatdiproses kembali

AbortedSetelah transaksi di-rolled back dan databasedirestore ke kondisi awal sebelum transaksi dimulai

CommittedSetelah transaksi sukses dipenuhi

Activemerupakan initial state, transaksi tetap berada padastate ini pada saat proses eksekusi

Partially CommittedSetelah statement final telah dieksekusi

FailedSetelah ditelusuri bahwa eksekusi normal tidak dapatdiproses kembali

AbortedSetelah transaksi di-rolled back dan databasedirestore ke kondisi awal sebelum transaksi dimulai

CommittedSetelah transaksi sukses dipenuhi

Alif Finandhita, S.Kom 12

Page 13: Sistem Basis Data - Digital library - Perpustakaan Pusat ...elib.unikom.ac.id/files/disk1/470/jbptunikompp-gdl...ð¡Untuk memastikan integritas data tetap terjaga dan transaksi dapat

Diagram state yang menggambarkan prosestransaksi :

Alif Finandhita, S.Kom 13

Page 14: Sistem Basis Data - Digital library - Perpustakaan Pusat ...elib.unikom.ac.id/files/disk1/470/jbptunikompp-gdl...ð¡Untuk memastikan integritas data tetap terjaga dan transaksi dapat

Transaksi dimulai dalam keadaan state active. Pada saat menyelesaikanstatement terakhirnya, transaksi masuk ke kondisi state partiallycommited.

Dalam keadaan state tersebut, transaksi telah selesai dieksekusi, tapimasih mungkin untuk dibatalkan (aborted) hanya jika transaksimemasuki state aborted, karena output yang sesungguhnya masihberada di tempat penyimpanan sementara/main memory, dankarenanya kesalahan pada hardware dapat mempengaruhi kesuksesandari penyelesaian transaksi

Sistem Basis Data kemudian menuliskan informasi yang dibutuhkan(write) ke dalam disk, bahwa perubahan yang dilakukan oleh transaksidapat dibuat kembali pada saat sistem restart jika terjadi kegagalan padasistem.

Pada saat informasi terakhir dituliskan, maka transaksi masuk ke kondisistate commited.

Alif Finandhita, S.Kom 14

Transaksi dimulai dalam keadaan state active. Pada saat menyelesaikanstatement terakhirnya, transaksi masuk ke kondisi state partiallycommited.

Dalam keadaan state tersebut, transaksi telah selesai dieksekusi, tapimasih mungkin untuk dibatalkan (aborted) hanya jika transaksimemasuki state aborted, karena output yang sesungguhnya masihberada di tempat penyimpanan sementara/main memory, dankarenanya kesalahan pada hardware dapat mempengaruhi kesuksesandari penyelesaian transaksi

Sistem Basis Data kemudian menuliskan informasi yang dibutuhkan(write) ke dalam disk, bahwa perubahan yang dilakukan oleh transaksidapat dibuat kembali pada saat sistem restart jika terjadi kegagalan padasistem.

Pada saat informasi terakhir dituliskan, maka transaksi masuk ke kondisistate commited.

Page 15: Sistem Basis Data - Digital library - Perpustakaan Pusat ...elib.unikom.ac.id/files/disk1/470/jbptunikompp-gdl...ð¡Untuk memastikan integritas data tetap terjaga dan transaksi dapat

Sebuah transaksi akan memasuki kondisi state failed jikasetelah sistem melakukan pemeriksaan, transaksi tidakdapat lagi diproses dengan eksekusi normal (misal karenakerusakan hardware atau kesalahan logika).

Jika berada di dalam kondisi tersebut, maka transaksiharus di rolled back, dan kemudian selanjutnya memasukikondisi state aborted (pembatalan transaksi).

Pada titik ini, sistem memiliki dua opsi, ulangi transaksi(restart the transaction) dan hapus transaksi (kill thetransaction)

Alif Finandhita, S.Kom 15

Sebuah transaksi akan memasuki kondisi state failed jikasetelah sistem melakukan pemeriksaan, transaksi tidakdapat lagi diproses dengan eksekusi normal (misal karenakerusakan hardware atau kesalahan logika).

Jika berada di dalam kondisi tersebut, maka transaksiharus di rolled back, dan kemudian selanjutnya memasukikondisi state aborted (pembatalan transaksi).

Pada titik ini, sistem memiliki dua opsi, ulangi transaksi(restart the transaction) dan hapus transaksi (kill thetransaction)

Page 16: Sistem Basis Data - Digital library - Perpustakaan Pusat ...elib.unikom.ac.id/files/disk1/470/jbptunikompp-gdl...ð¡Untuk memastikan integritas data tetap terjaga dan transaksi dapat

Opsi pada state aborted :

Sistem dapat mengulang transaksi (restart thetransaction), tapi hanya jika transaksi dibatalkan yangbisa terjadi karena adanya kerusakan software atauhardware yang tidak diciptakan melalui logika internaldari transaksinya.

Sistem dapat menghapus transaksi (kill thetransaction). Biasanya terjadi karena adanya kesalahlogika internal yang dapat diperbaiki hanya denganmenulis kembali program aplikasinya, atau karenainputan yang tidak baik, atau karena data yangdiinginkan tidak ada di database.

Alif Finandhita, S.Kom 16

Opsi pada state aborted :

Sistem dapat mengulang transaksi (restart thetransaction), tapi hanya jika transaksi dibatalkan yangbisa terjadi karena adanya kerusakan software atauhardware yang tidak diciptakan melalui logika internaldari transaksinya.

Sistem dapat menghapus transaksi (kill thetransaction). Biasanya terjadi karena adanya kesalahlogika internal yang dapat diperbaiki hanya denganmenulis kembali program aplikasinya, atau karenainputan yang tidak baik, atau karena data yangdiinginkan tidak ada di database.

Page 17: Sistem Basis Data - Digital library - Perpustakaan Pusat ...elib.unikom.ac.id/files/disk1/470/jbptunikompp-gdl...ð¡Untuk memastikan integritas data tetap terjaga dan transaksi dapat

Komponen manajemen recovery dari sistembasis data dapat mendukung atomisitas dandurabilitas dengan berbagai macam skema.

Salah satu skema yang dikenal adalah shadowcopy,

Shadow copy adalah salah satu skema yangdigunakan untuk mendukung atomisitas dandurabilitas pada transaksi dengan membuatsalinan / copy dari database yang ada.

Alif Finandhita, S.Kom 17

Komponen manajemen recovery dari sistembasis data dapat mendukung atomisitas dandurabilitas dengan berbagai macam skema.

Salah satu skema yang dikenal adalah shadowcopy,

Shadow copy adalah salah satu skema yangdigunakan untuk mendukung atomisitas dandurabilitas pada transaksi dengan membuatsalinan / copy dari database yang ada.

Page 18: Sistem Basis Data - Digital library - Perpustakaan Pusat ...elib.unikom.ac.id/files/disk1/470/jbptunikompp-gdl...ð¡Untuk memastikan integritas data tetap terjaga dan transaksi dapat

Skema shadow-database :

Mengasumsikan bahwa hanya satu transaksi yang aktifdalam waktu bersamaan (simpel tapi tidak efisien).

Mengasumsikan bahwa database secara sederhanamerupakan sebuah file di dalam disk.

Sebuah pointer yang bernama db-pointer digunakan didalam disk yang selalu mengarah ke salinan konsistendatabase tersebut

Sebelum transaksi mengupdate database, salinan untukdatabase tersebut dibuat terlebih dahulu sepenuhnya

Alif Finandhita, S.Kom 18

Skema shadow-database :

Mengasumsikan bahwa hanya satu transaksi yang aktifdalam waktu bersamaan (simpel tapi tidak efisien).

Mengasumsikan bahwa database secara sederhanamerupakan sebuah file di dalam disk.

Sebuah pointer yang bernama db-pointer digunakan didalam disk yang selalu mengarah ke salinan konsistendatabase tersebut

Sebelum transaksi mengupdate database, salinan untukdatabase tersebut dibuat terlebih dahulu sepenuhnya

Page 19: Sistem Basis Data - Digital library - Perpustakaan Pusat ...elib.unikom.ac.id/files/disk1/470/jbptunikompp-gdl...ð¡Untuk memastikan integritas data tetap terjaga dan transaksi dapat

Skema shadow-database :

Semua update dilakukan di salinan database yang baru,dan db_pointer akan mengarah ke salinan baru tersebutdengan catatan semua transaksi telah mencapai statepartial committed dan semua update pagesnya telah di-flush ke dalam disk.

Salinan database tersebut kemudian menjadi databaseutama, dan database yang lama dapat dihapus.

Jika transaksi gagal, maka db_pointer akan kembalimengarah ke database lama, dan salinan dari databaseyang telah dibuat tersebut dapat dihapus.

Alif Finandhita, S.Kom 19

Skema shadow-database :

Semua update dilakukan di salinan database yang baru,dan db_pointer akan mengarah ke salinan baru tersebutdengan catatan semua transaksi telah mencapai statepartial committed dan semua update pagesnya telah di-flush ke dalam disk.

Salinan database tersebut kemudian menjadi databaseutama, dan database yang lama dapat dihapus.

Jika transaksi gagal, maka db_pointer akan kembalimengarah ke database lama, dan salinan dari databaseyang telah dibuat tersebut dapat dihapus.

Page 20: Sistem Basis Data - Digital library - Perpustakaan Pusat ...elib.unikom.ac.id/files/disk1/470/jbptunikompp-gdl...ð¡Untuk memastikan integritas data tetap terjaga dan transaksi dapat

Skema shadow-database :

• Asumsi transaksi tidak gagal• Berguna untuk teks editor, tapi tidak efisien untuk database

berukuran besar

Alif Finandhita, S.Kom 20

Skema shadow-database :

• Asumsi transaksi tidak gagal• Berguna untuk teks editor, tapi tidak efisien untuk database

berukuran besar