Transaksi Database dengan MySQL

Posted: 12 November 2010 in Basis Data, Kuliah TI, Materi Kuliah, MySQL

Transaksi Basis Data

Pada suatu hari, Tono ingin mentransfer uang ke rekening adiknya, Tini,
sebesar 9.000.000. Bisa diilustrasikan secara sederhana, proses yang
terjadi adalah sebagai berikut:
1. Saldo Tono dikurangi sebesar 9.000.000.
2. Saldo Tini ditambah sebesar 9.000.000.

Begitu kedua tahap di atas terlaksana dengan baik, Tono akan merasa
lega, dan Tini pun bersuka cita karena sebentar lagi dapat memiliki laptop
baru yang telah lama diimpikannya.

Namun, pertimbangkan jika di antara langkah 1 dan 2 terjadi hal-hal
buruk yang tak diinginkan, misal mesin ATM crash, listrik padam dan
UPS gagal up, disk di server penuh, atau ada cracker yang merusak
infrastruktur jaringan. Bisa dipastikan, saldo Tono berkurang tetapi saldo
Tini tidak bertambah. Sesuatu yang tidak kita harapkan.

Dari ilustrasi di atas, bisa disimpulkan bahwa solusi yang tepat adalah
memperlakukan perintah-perintah sebagai satu kesatuan operasi.
Sederhananya, lakukan semua operasi atau tidak sama sekali—biasa juga
dikenal dengan jargon all or nothing.

Uniknya, konsep penyelesaian di atas sudah dikemukakan oleh para ahli
sejak puluhan tahun silam. Konsep yang disebut transaksi basis data
(database transaction) ini sebenarnya cukup sederhana: tandai bagian
awal dan akhir himpunan perintah, dan putuskan di bagian akhir untuk
mengeksekusi (commit) atau membatalkan (rollback) semua perintah.

Properti Transaksi Basis Data

Dalam transaksi basis data, terdapat properti-properti yang menjamin
bahwa transaksi dilaksanakan dengan baik. Properti-properti ini dikenal
sebagai ACID (Atomicity, Consistency, Isolation, Durability).

  • Atomicity: Transaksi dilakukan sekali dan sifatnya atomic, artinya merupakan satu kesatuan tunggal yang tidak dapat dipisah—baik itu pekerjaan dilaksanakan semua atau tidak satu pun.
  • Consistency: Jika basis data pada awalnya dalam keadaan konsisten, maka pelaksanaan transaksi dengan sendirinya juga harus meninggalkan basis data tetap dalam status konsisten.
  • Isolation: Isolasi memastikan bahwa secara bersamaan (konkuren) eksekusi transaksi terisolasi dari yang lain.
  • Durability: Begitu transaksi telah dilaksanakan (di-commit) maka perubahan yang diakibatkan tidak akan hilang atau tahan lama (durable), sekalipun ada kegagalan sistem.

Properti ACID memastikan perilaku yang dapat diprediksi dan menguatkan peran transaksi sebagai konsep all or nothing yang didesain untuk mengurangi manajemen load ketika ada banyak variabel.

Untuk tutorial selengkapnya disertai praktek koding di MySQL silahkan download disini.

The post is brought to you by lekhonee v0.7

Iklan
Komentar
  1. husein berkata:

    semoga sukses tugas praktiknya :)) ,.. salam kenal !!

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout /  Ubah )

Foto Google+

You are commenting using your Google+ account. Logout /  Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout /  Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout /  Ubah )

Connecting to %s