Senin, 10 November 2014

Transaksi Sistem Basis Data



Transaksi adalah suatu atau beberapa aksi yang dilakukan program aplikasi untuk mengakses atau mengubah isi basis data. Transaksi bertujuan untuk mencegah dari kehilangan ataupun kerusakan data. Sebuah transaksi berpeluang untuk mengganggu integritas basis data yang dapat membuat kondisi/hubungan antar data tidak seperti seharusnya. Untuk menjamin agar integritas dapat teta terpelihara maka setiap transaksi harus memiliki sifat – sifat:

  • Automicity, dimana semua operasi dalam transaksi dapat dikerjakan seluruhnya atau tidak sama sekali.

  • Consitency, dimana eksekusi transaksi harus dapat menjamin data tetap konsisten setealah transaksi berakhir.

  • Isolation, jika pada sebuah system basis data terdapat sejumlah transaksi yang dilaksanakan secara bersamaan, maka semua transaksi yang dilaksanakan pada saat yang bersamaan tersebut harus dapat dimulai dan bisa berakhir.
  • Durability dimana perubahan data yang terjadi setelah sebuah transaksi berakhir dengan baik, harus dapat bertahan bahkan jika seandainya system mati.  
Didalam transaksi, terdapat dua buah operasi yaitu commit untuk menyelesaikan transaksi dan rollback untuk memberitahukan bahwa transaksi harus diulang karena adanya suatu kegagalan.




ISOLASI TRANSAKSI


Dalam transaksi database ada 4 hal yang harus dicegah, yaitu:
  • Dirty Read, transaksi membaca data dari hasil transaksi lainnya yang gagal. Kedua transaksi tersebut berjalan bersamaan.
  • Non-Repeatable Read
  • Transaksi membaca ulang data yang telah di baca sebelumnya karena data tersebut telah di modifikasi oleh transaksi lainnya.
  • Phantom Read, Transaksi membaca sebuah data yang telah hilang akibat dari transaksi yang lainnya. 
Pada transaksi database, dikenal istilah locking yang berfungsi untuk menjaga integritas data. Locking sendiri bisa pada table maupun kolom sehingga datanya tidak akan bisa dihapus selama melakukan transaksi 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.
DEADLOCK

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



referensi : modul praktikum sistem basis data "transaksi".
                 ppt transaksi pak yudi wibisono.