- Atomicity: Setiap transaksi harus dijamin untuk dapat sukses dalam melakukan aksinya atau jika gagal, maka tidak berpengaruh apapun terhadap database.
- Consistency: Setiap transaksi adalah sebuah aksi kombinasi secara logikal dari sebuah state database yang konsisten ke state yang lain dengan tetap menjaga kekonsisten-an database tersebut .
- Isolation: Meskipun ada beberapa transaksi yang berlangsung bersamaan, masing-masing transaksi tidak boleh mengetahui transaksi lain yang sedang berlangsung. Hasil transaksi sementara harus disembunyikan dari transaksi lain yang sedang berlangsung . (level transparansi transaksi dapat di set)
- Durability: Setelah sebuah transaksi sukses dilakukan, perubahan-perubahan yang dibuatnya terhadap database bersifat permanen, bahkan jika terjadi kegagalan sistem sekalipun.
Contoh dari penerapan keempat sifat transaksi database
didalam menjalankan sebuah transaksi, terdapat beberapa transaction manager
pada setiap site yang bertugas untuk menjalankan prosedur -prosedur tertentu
untuk menjamin ACID property. 4 Hal pokok yang dilakukan oleh Transaction
Manager yaitu :
- Menjadwalkan operasi dari sebuah transaksi
- Menggunakan mekanisme commit dan rollback untuk menjamin atomicity
- Menggunakan mekanisme lock untuk konsistensi dan pelaksanaan transaksi yang concurrent serta isolation untuk menjamin transparansi transaksi pada level user .
- Sebuah loged digunakan untuk menjamin durability ketika sistem mengalami crash / failure .
- Sebuah transaksi dimulai ketika statement SQL di eksekusi pertama kali .
Transaksi ini berakhir ketika terjadi satu dari 4 hal
berikut :
- Statement COMMIT atau ROLLBACK di isukan, definisi commit dan rollback Selain menggunkan commit juga dapat digunakan save point
- Eksekusi statement DDL atau DCL
- Ketika user keluar dari iSQL*Plus
- Sistem crash
LOCK CONFLICTS
waktu tunggu terhadap session yang lain ketika session
pertama sedang dalam proses transaksi.
Penyebab terjadinya lock conflict :
- Perubahan yang tidak do commit (uncommitted changes)
- Transaksi yang berjalan lama
- Penguncian tingkat tinggi yang tidak diperlukan
Untuk mengatasi lock conflict yang terjadi dapat dilakukan
daengan cara sebagai berikut :
- Session yang memegang kendali terhadap lock tersebut harus melepaskannya dengan cara COMMIT atau ROLLBACK
- Pada keadaan emergency, dimungkinkan bagi administrator untuk mengakhiri session yang sedang memegang kendali lock dengan cara menekan tombol kill session
DEADLOCK
Terjadi bila dua atau lebih session, saling menunggu data
yang sedang saling terkunci (lock) oleh masing masing session. Karena saling
menunggu satu sama lainnya, maka tidak ada satupun diantara mereka dapat
menyelesaikan transaksi mereka untuk mengatasi lock conflict yang terjadi.
Oracle server secara otomatis akan mendeteksi kemungkinan deadlock yang akan
terjadi dan segera mengatasinya dengan cara melakukan perintah ROLLBACK.


0 komentar:
Posting Komentar