Senin, 21 April 2014

ISOLASI TRANSAKSI

ISOLASI TRANSAKSI 


Dalam transaksi database, ada 3 hal yang harus dicegah :

1.  Dirty Read
         Transaksi membaca data dari hasil transaksi lainnya yang gagal. Kedua transaksi tersebut berjalan      bersamaan.

2.  Non-Repeatable Read
         Transaksi membaca ulang data yang telah di baca sebelumnya karena data tersebut telah di modifikasi oleh transaksi lainnya.

3.  Phantom Read
         Transaksi membaca sebuah data yang telah hilang akibat dari transaksi yang lainnya.


     Untuk mencegah 3 hal tersebut, dalam Oracle terdapat 2 level isolasi yang dapat diimplementasikan, yaitu :

LOCKING pada TRANSAKSI DATABASE

LOCKING PROTOCOL 


Pada transaksi database, ada istilah locking yang berfungsi untuk menjaga integritas data.
Terdapat dua metode locking yaitu :

1.  Shared Lock (S-LOCK)
         Jika transaksi memiliki shared lock, transaksi tersebut hanya bisa melakukan pembacaan.

2.  Exclusive Lock (X-LOCK)
         Bagi transaksi yang memiliki exclusive lock, transaksi tersebut dapat melakukan perubahan dan pembacaan terhadap data tersebut.

Perbedaan S-LOCK dan X-LOCK

TRANSAKSI pada ORACLE

TRANSAKSI pada ORACLE



Transaksi merupakan sebuah proses untuk mengakses atau mengubah isi basis data.
Tujuan transaksi untuk mencegah data dari kehilangan atau kerusakan data.

Untuk menjaga integritas dan ketahanan data, kita bisa melakukan perintah COMMIT dan ROLLBACK
  1. COMMIT, untuk menandai transaksi berhasil
  2. ROLLBACK, transaksi harus diulang karena adanya kegagalan transaksi

Dalam ORACLE, agar kita bisa melakukan ROLLBACK kita perlu menyimpan transaksi pada sebuah SAVEPOINT(cek point), caranya