Mengenal Database Transaction di SQL

Posted by Admin on 4 Oktober 2020, 13:05:13 KATEGORI : Database TAG : database transaction, sql, sql transaction, transaction

Database transaction adalah salah satu subset yang disediakan SQL. Gunanya untuk mengatur alur data transaksi dalam suatu database.

Jika kita ingin membuat catatan atau memperbarui catatan atau menghapus catatan dari tabel, maka kita sedang melakukan transaction di tabel itu. Mengontrol transaksi sangat penting untuk memastikan integritas data dan untuk menangani kesalahan database.

Praktisnya, Kita dapat menggabungkan banyak kueri SQL ke dalam grup dan akan mengeksekusi semuanya secara bersama sebagai bagian dari Transaction. Jika ada kegagalan dalam 1 node (proses), seluruh transaksi (proses input) akan dibatalkan.

Sifat Transaksi

Transaction memiliki empat sifat standar berikut, biasanya disebut dengan singkatan ACID .

  • Atomicity - memastikan bahwa semua operasi dalam unit kerja diselesaikan dengan sukses. Jika tidak, transaksi dibatalkan pada titik kegagalan dan semua operasi sebelumnya dikembali ke keadaan semula.
  • Konsistensi - memastikan bahwa database mengubah status dengan benar pada transaksi yang berhasil dilakukan.
  • Isolasi - memungkinkan transaksi untuk beroperasi secara independen dan transparan satu sama lain.
  • Daya tahan - memastikan bahwa hasil atau efek dari transaction commit tetap ada jika terjadi kegagalan sistem.

Kontrol Transaction

Perintah berikut digunakan untuk mengontrol transaction.

  • COMMIT - untuk menyimpan perubahan.
  • ROLLBACK - untuk mengembalikan perubahan.
  • SAVEPOINT - membuat poin dalam grup transaksi untuk ROLLBACK.
  • SET TRANSAKSI - Menempatkan nama pada transaksi.

Perintah Kontrol Transaksional

Perintah kontrol transaksional hanya digunakan dengan Perintah DML seperti - INSERT, UPDATE dan DELETE saja. Mereka tidak dapat digunakan saat membuat tabel atau menjatuhkannya karena operasi ini secara otomatis dilakukan dalam database.

Perintah COMMIT

Perintah COMMIT adalah perintah transaksional yang digunakan untuk menyimpan perubahan yang dilakukan oleh transaksi ke database. Perintah COMMIT menyimpan semua transaksi ke database sejak perintah COMMIT atau ROLLBACK terakhir.

Sintaks untuk perintah COMMIT adalah sebagai berikut.

COMMIT;

Perintah ROLLBACK

Perintah ROLLBACK adalah perintah transaksional yang digunakan untuk membatalkan transaksi yang belum disimpan ke database. Perintah ini hanya dapat digunakan untuk membatalkan transaksi sejak perintah COMMIT atau ROLLBACK terakhir dikeluarkan.

Sintaks untuk perintah ROLLBACK adalah sebagai berikut -

ROLLBACK;

Perintah SAVEPOINT

SAVEPOINT adalah titik dalam transaksi ketika Anda dapat mengembalikan transaksi ke titik tertentu tanpa memutar balik seluruh transaksi.

Sintaks untuk perintah SAVEPOINT seperti yang ditunjukkan di bawah ini.

SAVEPOINT SAVEPOINT_NAME;

Perintah ini hanya berfungsi dalam pembuatan SAVEPOINT di antara semua pernyataan transaksional. Perintah ROLLBACK digunakan untuk membatalkan sekelompok transaksi.

Sintaks untuk memutar kembali ke SAVEPOINT seperti yang ditunjukkan di bawah ini.

ROLLBACK TO SAVEPOINT_NAME;

Perintah RELEASE SAVEPOINT

Perintah RELEASE SAVEPOINT digunakan untuk menghapus SAVEPOINT yang telah Anda buat.

Sintaks untuk perintah RELEASE SAVEPOINT adalah sebagai berikut.

RELEASE SAVEPOINT SAVEPOINT_NAME;

Setelah SAVEPOINT dirilis, Anda tidak dapat lagi menggunakan perintah ROLLBACK untuk membatalkan transaksi yang dilakukan sejak SAVEPOINT terakhir.

Perintah SET TRANSACTION

Perintah SET TRANSACTION dapat digunakan untuk memulai transaksi database. Perintah ini digunakan untuk menentukan karakteristik transaksi yang mengikuti. Misalnya, Anda dapat menentukan transaksi menjadi hanya baca atau baca tulis.

Sintaks untuk perintah SET TRANSACTION adalah sebagai berikut.

SET TRANSACTION [ READ WRITE | READ ONLY ];

Referensi

 
  • https://www.tutorialspoint.com/sql/sql-transactions.htm
  • https://medium.com/gits-apps-insight/mengenal-konsep-database-transaction-bagian-1-54e66789f75e