Minggu, 20 April 2014

Transaksi

Transaksi adalah operasi atau aksi yang dilakukan program aplikasi untuk menghasilkan data. Tujuan dari transaksi data adalaha untuk menjaga data dari kehilangan atau kerusakan.

Sifat-sifat yang dimiliki transaksi (biasa disingkat ACID), yaitu: 
  1. Atomicity, adalah transaksi yang dilakukan sekali dan sifatnya otomic all or nothing (seluruhnya atau tidak sama sekali). 
  2. Consistency, dimana transaksi mempertahankan konsistensi data. 
  3. Isolation, dimana transaksi terisolasi datu sama lain.
  4. Durability, setelah transaksi di-commit, maka perubahan yang diakibatan tidak akan hilang atau tahan lama sekalipun ada kegagalan sistem.


Operasi Transakasi: 
  1. Commit, yaitu memberi tanda bahwa transaksi telah selesai dilaksanakan (benar dan berhasil).
  2. Rollback, yaitu memberi tanda bahwa transaksi mengalami kegagalan dan harus diulang.


Save Point

Save point adalah titik aman ketika kita telah menyelesaikan satu atau beberapa transaksi. Jika dalam sebuah game, save point sama dengan check point.
Saat kita ingin rollback atau terdapat transaksi yang gagal, transaksi dimulai kembali dari save point yang telah kita buat, tidak dari awal kembali. Itulah fungsi dari save point.

Membuat save point:
SAVEPOINT [nama save point];
Membuat rollback:
ROLLBACK TO [nama save point];

Isolasi Transaksi

Terdapat tiga hal yang harus dicegah dalam transaksi database:
  1. Dirty Read, yaitu transaksi membaca data dari hasil transaksi lainnya yang gagal dan kedua transaksi tersebut berjalan secara bersamaan.
  2. Non-Repeatable Read, yaitu transaksi membaca ulang data yang telah dibaca sebelumnya karena data tersebut telah dimodifikasi oleh transaksi lainnya.
  3. Phantom Read, yaitu transaksi membaca sebuah data yang telah hilang akibat dari transaksi yang lainnya.

Dalam Oracle, terdapat dua level untuk mencegah tiga hal tersebut, yaitu:
  1. Read Commited, yaitu transaksi hanya melihat perubahan data setelah transaksi lain telah commit pada data tersebut.
  2. Serializable, yaitu level isolasi yang menyediakan isolasi transaksi yang paling ketat.
Berikut perintah untuk mengaplikasikan level serializable :
SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;


Locking Protocol

Terdapat dua buah metode Locking pada transaksi database:
  1. Shared Lock (S-LOCK), yaitu transaksi hanya dapat melakukan pembacaan.
  2. Exclusive Lock (X-LOCK), yaitu transaksi dapat melakukan pembacaan dan perubahan.


Penguncian Level Tabel

Penguncian level tabel ini berfungsi mengunci suatu tabel untuk mencegah perubahan atau penghapusan tabel selama ada transaksi yang menggunakan tabel tersebut.
Perintah yang digunakan:
LOCK TABLE [nama tabel];

Penguncian Level Baris

Penguncian yang dilakukan pada baris yang sedang digunakan oleh suatu transaksi sampai transaksi tersebut selesai dilakukan.

Deadlock

Deadlock adalah situasi dimana dua atau lebih transaksi dalam kondisi wait-state (menunggu lock dilepas).


Tidak ada komentar:

Posting Komentar