-->

Monday, December 1, 2014

Mengapa Perlu Transaksi Database


Database server secara sederhana merupakan sebuah media penyimpanan data penting dan penyimpanan didesain sesuai kebutuhan memiliki  5 operasi dasar Insert , Update, Delete, Search data.  Apa  yang dimaksud  Teknik transaksi database  dan mengapa perlu  teknik transaksi ? Transaksi  merupakan suatu cara menjaga data tetap aman dan konsisten terhadap permintaan perubahan data sampai permintaan perubahan data selesai dilakukan.

Transaksi database didesain memiliki  beberapa  sifat dasar 4 diantaranya:
  1. Atomicity   : data dalam Database harus tetap aman dalam adanya permintaan perubahan data yang dihasilkan dari transaksi jika permintaan melibatkan beberapa table database maka jika terjadi kegagalan dalam 1 field saja maka data akan dikembalikan pada posisi semula atau ditolak
  2. Konsistensi : Integritas data harus tetap terjaga
  3. Isolasi         : Setiap permintaan data transaksi dilakukan maka data akan dilock sampai proses    selesai dieksekusi oleh datatabase
  4. Daya Tahan    : database dapat menghidari kegagalan jika pada saat transaksi dilakukan terjadi  deadlock     maupun listrik mati

Kapan  transaksi database digunakan ?  
Transaksi  dapat digunakan pada saat terjadi permintaan dari user untuk melakukan eksekusi perintah insert ,  update, delete yang melibatkan satu table maupun beberapa table yang akan dilakukan perubahan  secara simultan.  
Database Apa yang mendukung transaksi ?  Setiap database server mendukung teknik transaksi contoh produk database populer baik yang free maupun berbayar yang mendukung transaksi 4 diantaranya :
  1. Mysql
  2. Firebird
  3. Ms. SQL Server
  4. Oracle
Dara 4 contoh database popular diatas 1 hal yang harus diperhatikan,  pada saat berkeja dengan database mysql,  transaksi yang didukung hanya menggunakan engine InnoDb. Transaksi database tidak didiukung  pada engine MyISAM .
Bagaimana Cara menggunakan Transaksi database ?
Sebagai contoh menggunakan transaksi dengan database mysql dapat dilakukan seperti berikut
Syntax:
START TRANSACTION [WITH CONSISTENT SNAPSHOT] | BEGIN [WORK]
COMMIT [WORK] [AND [NO] CHAIN] [[NO] RELEASE]
ROLLBACK [WORK] [AND [NO] CHAIN] [[NO] RELEASE]
SET autocommit = {0 | 1}

Contoh penggunaan transaksi pada table  
START TRANSACTION;
SELECT @A:=SUM(salary) FROM table1 WHERE type=1;
UPDATE table2 SET summary=@A WHERE type=1;
COMMIT;
ROLLBACK;

START TRANSACTION : Sebagai langkah awal transaksi baru
COMMIT                          : perintah untuk melakukan perubahan data secara permanen
ROLLBACK                     : Perintah untuk melakukan pembatalan perubahan data dan   mengembalikan data pada keadan semula sebelum dilakukan perubahan

Apa dampak  jika transaksi database tidak dilakukan ? 
Dalam aktivitas lingkup database jika transaksi tidak diterapkan akan beresiko pada inkonsistensi data pada saat server database memiliki permintaan user secara bersamaan. Jika terjadai error pada sat eksekusi permintaan perubahan maupun insert data yang melibatkan beberapa table maka bias berakibat missing information pada saat user melakukan query sebagai permintaan reporting data.
Jadi singkatnya transaksi database digunakan sebagai  control terhadap perubahan data terhadap pada saat data digunakan secara bersamaan maupun pada saat terjadi hal-hal yang tidak wajar seperti pemadaman listrik,maupun deadlock pada database untuk mencegah inkonsistensi data.

No comments: