PenyebabPerceraian DanKiatMengantisipasinya · Allah ber rman, Q ˚ gi˚™¸@ð ...
Sistem Basis Data - Digital library - Perpustakaan Pusat...
Transcript of Sistem Basis Data - Digital library - Perpustakaan Pusat...
MANAJEMEN TRANSAKSI
Alif Finandhita, S.Kom
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
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
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
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
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
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
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
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
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
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
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
Diagram state yang menggambarkan prosestransaksi :
Alif Finandhita, S.Kom 13
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.
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)
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.
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.
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
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.
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