11 November 2014

TRANSAKSI

Pengertian
Proses yang dilakukan sebuah aplikasi untuk mengakses atau mengubah isi dari database.
Dengan kata lain transaksi sangat terkait dengan program yang melakukan pengaksesan/pengeksekusian data yang terdapat pada database ,Dengan demikian DBMS yang kita gunakan harus bisa menjamin bahwa setiap transaksi yang terjadi harus di kerjakan secara utuh atau bahkan tidak sama sekali di kerjakan agar tidak terjadinya inkonsistensi basis data.
Sifat – Sifat yang harus di miliki Transaksi
Transaksi bertujuan agar tidak adanya data yang hilang ataupun rusak , sebuah transaksi berpeluang untuk mengganggu keintegritasan basis data yang dapat membuat kondisi/hubungan antar data tidak seperti seharusnya. Oleh karena itu maka transaksi harus memenuhi sifat sifat berikut :

a.       Automicity -> Seluruh operasi dapat di kerjakan seluruhnya atau tidak sama sekali.
b.      Consitency -> Eksekusi transaksi harus dapat menjamin data tetap konsisten setelah transaksi selesai.
c.       Isolation  -> Ketika ada transaksi yang bersamaan dalam satu waktu harus dapat dimulai dan dapat berakhir.
d.      Durability ->Jika sebuah transaksi berakhir dengan baik ,maka perubahan datanya harus bisa bertahan bahkan jika seandainya system mati.

Operasi Transaksi
Untuk menjaga ketahanan data dan integritas data pada basis data ketika transaksi berjalan maka adanya dua perintah yang bertugas untuk melakukan hal tersebut.
1.       Commit = Menandakan bahwa transaksi telah selesai di laksanakan.
2.       Rollback = Memberitahukan bahwa transaksi harus diulang karena adanya suatu kegagalan.
 Save Point
                Secara sederhana savepoint merupakan sebuah titik aman , dimana kita telah menyelesaikan satu atau beberapa transaksi , ini di maksudkan ketika kita melakukan transaksi dan ternyata terjadi sebuah eror ketika transaksi gagal maka tidak perlu rollback dari awal kembali namun bisa memulai dari titik savepoint yang telah kita buat sebelumnya.




Isolasi Transaksi
3         hal yang harus di cegah dalam transaksi database :

a.       Dirty Read : Transaksi membaca data dari hasil transaksi lainnya yang gagal. Kedua transaksi tersebut berjalan bersamaan.
b.      Non-Repeatable Read : Transaksi membaca ulang data yang telah di baca sebelumnya karena data tersebut telah di modifikasi oleh transaksi lainnya.
c.       Phantom Read : Transaksi membaca sebuah data yang telah hilang akibat dari transaksi yang lainnya.
Untuk mencegah 3 hal tersebut, maka pada Oracle terdapat 2 level isolasi yang dapat diimplementasikan, yaitu :
1.      Read Commited -> Transaksi hanya dapat melihat perubahan data setelah transaksi lain telah commit pada data tersebut. (Seperti dalam contoh commit)
2.      Serializable -> Adalah level isolasi yang menyediakan isolasi transaksi yang paling ketat. Level ini mengemulasikan eksekusi transaksi secara serial, menjadikan transaksi dieksekusi satu setelah yang lainnya,seperti secara serial, bukan secara bersamaan (pararel). Tetapi aplikasi yang menggunakan level isolasi ini harus bersedia untuk mengulangi transaksi dikarenakan kegagalan pengserialan transaksi.


Pada transaksi database, dikenal istilah locking yang berfungsi untuk menjaga integritas data. Terdapat dua buah metode locking yaitu :
Ø  Shared Lock (S-LOCK)
Jika transaksi memiliki shared lock pada suatu data, transaksi tersebut hanya bisa melakukan pembacaan.
Ø  Exclusive Lock (X-LOCK)

Bagi transaksi yang memiliki exclusive lock pada suatu data, transaksi tersebut dapat melakukan perubahan dan pembacaan terhadap data tersebut.
Untuk shared lock, dapat dimiliki oleh beberapa transaksi dalam satu waktu, namun untuk exclusive lock, hanya dapat dimiliki oleh satu transaksi pada satu waktu.


Penguncian level Tabel

Penguncian yang berfungsi untuk mengunci suatu tabel untuk mencegah perubahan atau

penghapusan tabel selama ada transaksi yang menggunakan tabel tersebut.
Penguncian level baris

Penguncian yang dilakukan pada baris (ROW) yang sedang digunakan oleh suatu transaksi sampai transaksi tersebut selesai dilakukan. Penguncian level baris hanya berlaku untuk operasi UPDATE dan DELETE.

Deadlock

Merupakan situasi dimana dua atau lebih transaksi dalam kondisi wait-state, satu sama lain menunggu Lock dilepas sebelum di mulai.

Tidak ada komentar:

Posting Komentar

Silakkan kritik kekurangan kami