sistem basis data - digital library - perpustakaan pusat...

Post on 28-Mar-2018

223 Views

Category:

Documents

6 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

top related