Wednesday, April 23, 2014

Sistem Basis Data: Transaksi

 

 

Pengertian

Transaksi adalah satu atau beberapa aksi yang dilakukan program aplikasi untuk mengakses atau mengubah isi basis data.

Tujuan

Melindungi database dari kehilangan data dan kerusakan.

Elemen  

Atomicity
Semua operasi dalam transaksi dapat dikerjakan seluruhnya atau tidak sama sekali. 

Consistency
Eksekusi transaksi harus dapat menjamin data tetap konsisten setelah transaksi berakhir. 

Isolation
Jika pada sebuah sistem 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
Perubahan data yang terjadi setelah sebuah transaksi berakhir dengan baik, harus dapat bertahan bahkan jika seandainya sistem mati. 

Operasi

Commit 
Menandakan bahwa transaksi telah selesai dilaksanakan.
 
Rollback
Memberitahukan bahwa transaksi harus diulang karena adanya suatu kegagalan.



Hal Yang Harus Dicegah

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.

Level Isolasi

Read Commited
Transaksi hanya dapat melihat perubahan data setelah transaksi lain telah commit pada data tersebut. 

Serializable
Level ini mengemulasikan eksekusi transaksi secara serial.
Untuk mengaplikasikannya: 
SET TRANSACTION ISOLATION LEVEL SERIALIZABLE; 


Lock Protocol

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.


Penguncian Level Tabel

LOCK TABLE [nama tabel];

 

Penguncian Level Baris

Penguncian level baris hanya berlaku untuk operasi UPDATE dan DELETE.

Deadlock

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





----------------------------------------------



Referensi :
- Slide Pak Yudi Wibisono
- Modul Sistem Basis Data 2012
- Modul Sistem Basis Data 2014