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