- Diterbitkan
Pentingnya Database Transaction
- Authors
- Nama
- Idhamsyah
- @Syahdham
2 min read
Database Transaction adalah salah satu kemampuan SQL atau DBMS untuk mengatur alur transaksi data di suatu database, The power of Database Transaction adalah dapat mengembalikan kondisi database seperti sebelum terjadinya transaksi apabila terdapat kegagalan saat proses.
Biasanya database transaction dilakukan apabila kamu akan melakukan manipulasi data melibatkan lebih dari satu tabel.
Secara konsep, transaksi akan dikatakan berhasil apabila semua transaksi di tabel yang dilibatkan berhasil, dan ketika terdapat satu proses gagal, maka semua transaksi harus dibatalkan.
Harus berhasil semua atau kalau satu gagal, harus gagal semua.
Mari kita ilustrasikan dengan contoh kasus.
Terdapat dua nasabah bank yang akan melakukan transfer dana dari satu rekening ke rekening yang lain.
Alur sederhana yang akan terjadi sebagai berikut :
Lalu, bagaimana jika terjadi kegagalan dan belum terjadi penambahan saldo di rekening penerima, sedangkan telah terjadi pengurangan saldo di rekening pengirim.
Di sinilah pentingnya database transaction, karena dapat membantu menjaga konsistensi data di sistem kita.
Database Transaction terdiri dari :
1. Begin Transaction
Pernyataan bahwa baris code di bawah Begin Transaction akan dibungkus dengan database transaction.
2. Commit
Digunakan untuk memberitahu proses bahwa perubahan data dapat disimpan. Tidak boleh terlewat untuk melakukan commit agar data tersimpan.
3. Rollback
Digunakan untuk membatalkan semua proses yang dibungkus di dalam database transaction, sehingga data perubahan tidak tersimpan.
Pengimplementasian database transaction dengan PHP Framework Laravel
use DB;
DB::beginTransaction();
try {
// Baris code untuk mengurangi saldo pengirim
# code...
// Baris code untuk menambah saldo penerima
# code...
// Semua proses berhasil
// Commit
DB::commit();
} catch (Exception $e) {
// Terdapat error
// Rollback
DB::rollback();
}
}
Jadi, database transaction ini sangat penting digunakan saat melibatkan banyak tabel di dalam proses manipulasi data.