Wednesday, August 3, 2016

Transactions

Transaction adalah unit kerja logical dalam operasi database terhadap data pada suatu database. Transaction merupakan bagian dari SQl yaitu DTL. Transaction dapat kita temui dalam kehidupan sehari-hari. Misalnya dalam kita melakukan pembelian dalam suatu produk seperti headset dan ternyata headset tersebut rusak. Kita pasti komplain ke toko tersebut. Jika stok headset nya telah habis, tentunya kita ingin uang kita dikembalikan.Uang kita akan hilang jika kita tidak melakukan transaksi perjanjian sebelum membelinya, jika kita telah melakukan perjanjian transaksi apabila tersebut rusak maka uang kita akan dikembalikan.


Standar ISO mendefinisikan transaction pada dua pernyataan yaitu COMMIT dan ROLLBACK. Secara default pada DBMS maka akan dilakukan COMMIT jika kita tidak memulai dengan pernyataan BEGIN TRANSACTION



Trasnsaction dinyatakan complete apabila melakukan salah satu dari 4 pernyataan ini :

1. Pernyataan COMMIT dan transaction berakhir sukses, maka perubahan pada database adalah permanen.
2. Pernyataan ROLLBACK dilakukan untuk membatalkan transaction, maka data berubah seperti sebelumnya.
3. Apabila akhir program berhasil dihentikan (terminated), maka akan di COMMIT meski belum diesekusi COMMIT.
4.Program yang abnormal menghentikan transaction.

Sifat trasaction terdiri dari ACID yaitu :
- Atomicity adalah satu transaksi dengan semua perubahan database, entah berhasil dilakukan ataupun belum sama sekali. Contoh perubahan (update) dilakukan untuk 300 baris, maka akan dilakukan sampai 300baris tersebut mengalami perubahan (update), jika suatu perintah pencegahan dilakukan maka DBMS akan melakukan ROLLBACK terhadap transaksi tersebut.

- Consistency adalah satu transaksi dalam keadaan logika yang sama terhadap semua baris, entah transaksi berhasil atau tidak. Contoh : apabila ada memasukkan foreign key yang tidak sesuai, maka DBMS akan memberitahukan bahwa telah terjadi kesalahan. Kita dapat menambahkan logika untuk melakukan ROLLBACK atau tidak.

Isolation adalah perubahan satu transaksi terisolasi dari aktivitas transaksi lainnya. Jika ada dua transaksi yang ingin melakukan perubahan kepada data yang sama, maka harus menunggu sampai transaksi itu selesai. Contoh : salah satu user merubah data  siswa maka ia tidak melihat perubahan uncommited pada data siswa yang dibuat bersama-sama oleh user lainnya. Sehingga user seperti melakukan transaksi serial.

-  Durability adalah suatu transaksi yang disimpan permanen dalam database, tanpa memperdulikan kegagalan yang akan terjadi. Data yang tersimpan dalam keadaan yang benar.

Tiga mode transactions yaitu :
- Autocommit adalah suatu data dengan perintah DDL atau DML dijalankan dan berhasil maka akan autocommit dan jika gagal maka akan diROLLBACK. Ini karena DBMS (SQL Server default adalah autocommit)

- Implicit transaction adalah transaksi yang dimulai dengan menggunakan SET IMPLICIT_TRANSACTIONS ON; . Pengesekusian dilakukan perbaris dan tidak otomatis COMMIT atau ROLLBACK pada suatu statment jadi harus dilakukan COMMIT atau ROLLBACK secara manual

- Explicit transaction adalah transaksi yang dimulai dengan BEGIN TRANSACTION atau bisa menggunakan BEGIN TRAN. Jika esekusi gagal maka akan dilakukan ROLLBACK. Perubahan data yang berhasil dilakukan akan disimpan divirtual memori sehingga terlihat data sudah berubah (terupdate), tetapi sebenarnya  data tersebut masih menunggu perintah COMMIT atau ROOLBACK.


sumber: http://elearning.amikom.ac.id

1 comment :