Bagikan melalui


Transaksi ODBC

Transaksi adalah unit pekerjaan yang dilakukan sebagai operasi tunggal, atom; yaitu, operasi berhasil atau gagal secara keseluruhan. Misalnya, pertimbangkan untuk mentransfer uang dari satu rekening bank ke rekening bank lainnya. Ini melibatkan dua langkah: menarik uang dari akun pertama dan menyetorkannya di langkah kedua. Penting bahwa kedua langkah tersebut berhasil; tidak dapat diterima untuk satu langkah untuk berhasil dan langkah lainnya gagal. Database yang mendukung transaksi dapat menjamin hal ini.

Transaksi dapat diselesaikan dengan diterapkan atau digulung balik. Ketika transaksi dilakukan, perubahan yang dilakukan dalam transaksi tersebut dilakukan secara permanen. Ketika transaksi digulung balik, baris yang terpengaruh dikembalikan ke status mereka sebelum transaksi dimulai. Untuk memperpanjang contoh transfer akun, aplikasi menjalankan satu pernyataan SQL untuk mendebit akun pertama dan pernyataan SQL yang berbeda untuk mengkreditkan akun kedua. Jika kedua pernyataan berhasil, aplikasi kemudian melakukan transaksi. Tetapi jika salah satu pernyataan gagal karena alasan apa pun, aplikasi akan mengembalikan transaksi. Dalam kedua kasus, aplikasi menjamin status yang konsisten di akhir transaksi.

Satu transaksi dapat mencakup beberapa operasi database yang terjadi pada waktu yang berbeda. Jika transaksi lain memiliki akses lengkap ke hasil perantara, transaksi mungkin mengganggu satu sama lain. Misalnya, satu transaksi menyisipkan baris, transaksi kedua membaca baris tersebut, dan transaksi pertama digulung balik. Transaksi kedua sekarang memiliki data untuk baris yang tidak ada.

Untuk mengatasi masalah ini, ada berbagai skema untuk mengisolasi transaksi satu sama lain. Isolasi transaksi umumnya diimplementasikan dengan mengunci baris, yang menghalangi lebih dari satu transaksi menggunakan baris yang sama secara bersamaan. Di beberapa database, mengunci baris juga dapat mengunci baris lain.

Dengan peningkatan isolasi transaksi berkurang konkurensi, atau kemampuan dua transaksi untuk menggunakan data yang sama secara bersamaan. Untuk informasi selengkapnya, lihat Mengatur Tingkat Isolasi Transaksi.

Bagian ini berisi topik berikut.