Monday, November 30, 2015

Transaksi dan Concurrency

Transaksi
Apa itu transaksi? Transaksi dalam sistem basis data diartikan sebagai unit logic pekerjaan atau unit logic recovery yang terdiri dari 1 atau lebih set instruksi. Intruksi harus dijamin dikerjakan semua untuk menjamin konsistensi. Untuk menjamin transaksi, ada dua operasi penting didalam  transaksi, yaitu commit (memberi tanda bahwa transaksi telah selesai. Update dibuat permanen) dan rollback (memberi tanda bahwa transaksi gagal. Semua update harus di undo).

Ada empat elemen dalam transaksi,yaitu :
-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.


Concurrency
Concurrency adalah banyaknya transaksi yang dijalankan secara bersamaan dalam satu waktu. DBMS mengijinkan banyak transaksi pada saat bersamaan untuk mengakses data yang sama, untuk itu dibutuhkan Concurrency Control Mechanism (CCM) agar transaksi tidak saling mengganggu.

Ada tiga masalah yang muncul pada concurrency:
-Lost Update Problem,masalah ini muncul ketika dia user mengupdate dua buah data yang sama




-Uncommited dependency problem,masalah ini muncul ketika user yang satu meretrieve data dan user yang lainnya merollback data tersebut.




-Inconsistent analysis problem, masalah ini muncul ketika satu user meretrieve data dan user uang lainnya mengupdate data tersebut.


Bagaimana cara mengatasi 3 maslah diatas? Untuk mencegah masalah seperti diatas dilakukanlah Locking. Terdapat 2 jenis lock, yaitu Exclusive Lock (Xlock) dimana transaksi lain bisa melakukan pembacaan dan perubahan data, dan Shared Lock (Slock) dimana transaksi lain hanya bisa melakukan pembacaan data saja.



Reference : Yudi Wibisono. 2015. Transaksi.ppt

No comments:

Post a Comment