Thursday, May 1, 2014

Apakah transaksi itu ?
Umumnya merupakan pertukaran antara 2 pihak atau lebih. Pertukaran berupa jasa / barang
Namun transaksi pada sistem basis data merupakan proses / aksi yang dilakukan dalam system database (yang harus melakukan manipulasi data & proses yg terjadi harus berhasil sepenuhnya atau tidak sama sekali, dengan kata lain tak boleh ada transaksi setengah jadi) oleh program aplikasi untuk mengubah atau akses data.

Maksud dari transaksi mencegah hilangnya atau rusaknya data. Di sisi lain transaksi juga memungkinkan untuk merusak integritas data pada system. Karena itu transaksi punya 4 sifat .
a.       Atomicity
Yaitu transaksi berjalan sukses sepenuhnya atau tidak dilakukan sama sekali. Seperti bahasan sebelumnya.
b.      Consistency
Consistency memeiliki makna tetap konsisten, dengan kata lain data yang ada dari awal sampai akhir transaksi data yang ada pada database harus tetap konsisten.
c.       Isolation
Jika ada transaksi yang bersamaan maka tiap transaksi tersebut harus terpisah dan bisa dimulai serta diakhiri.
d.      Durability
Atau biasa kita kenal ketahanan. Jika system mati akibat kesalahan setelah transaksi maka data harus tetap ada(bertahan).
Dalam transaksi juga memiliki 2 aksi guna menentukan hasil akhir dari sebuah transaksi.
a.       Commit
Transaksi sukses di run dan data yang ada sukses di update.
b.      Rollback
Transaksi dibatalkan dan data yang ada dikembalikan ke data sebelum transaksi dilakukan.(transaksi harus dilakukan kembali).

Ada juga yang disebut save point. Mungkin kalian juga pernah atau mungkin sering mendengar kata ini . yaitu titik aman guna menyimpan kondisi database saat kita membuat titik aman tersebut. Hal ini untuk melakukan rollback saat transaksi gagal sehingga transaksi di mulai dari save point bukan dari awal.
Isolasi transaksi untuk mencegah hal-hal berikut :
a.       Dirty read, yaitu membaca data dari hasil transaksi lain yang gagal. Kedua transaksi tsb berjalan bersamaan.
b.      Non-repeatable read, yaitu transaksi membaca ulang data yang telah dibaca sebelumnya. Karena data tsb telah di modif transaksi lain.
c.       Phantom read, yaitu membaca transaksi yang sudah hilang akibat transaksi lainnya.
Pencegahan 3 hal diatas pada oracle dengan 2 level isolasi yaitu :

Read commited , transaksi hanya bisa melihat perubahan data setelah transaksi lain telah commit pada data tersebut
Seralizable,  level isolasi paling ketat. Mengemulasikan aksekusi transaksi secara serial, membuat transaksi di eksekusi setelah pengeksekusian yang lainnya. Tidak secara bersamaan.

Locking protocol
                Teknik unyuk menjaga integritas data.
                                S-Lock / Shared Lock : transaksi dengan s-lock hanya bisa melakukan pemabacaan.
X-Lock / Executive Lock : transaksi dengan s-lock bisa melakukan pemabacaan && pengeditan.

Ada juga table lock, baris lock. Intiny sama mereka tidak bisa diubah / dihapus selama transaksi lain berjalan.

Deadlock merupakan dua atau lebih transaksi yang saling menunggu lock lepas


No comments:

Post a Comment