Transaksi Database



Pengertian Transaksi Menurut Sunarto Zulkifli (2003:10) dalam bukunya yang berjudul “Dasar-dasar Akuntansi Perbankan Syariah” menyatakan bahwa : "Secara umum transaksi dapat diartikan sebagai kejadian ekonomi/ keuangan yang melibatkan paling tidak 2 pihak (seseorang dengan seseorang atau beberapa orang lainnya) yang saling melakukan pertukaran, melibatkan diri dalam perserikatan usaha, pinjam meminjam atas dasar sama-sama suka ataupun atas dasar suatu ketetapan hukum atau syariah yang berlaku.
Dan pengertian dalam lingkup basisdata atau program komputer ialah satu atau beberapa aksi yang dilakukan program aplikasi untuk mengakses atau mengubah isi basis data dan juga merupakan bagian dari pengeksekusian sebuah program yang melakukan pengaksesan basis data dan bahkan juga melakukan serangkaian perubahan data. DBMS yang kita gunakan harus menjamin bahwa setiap transaksi harus dapat dikerjakan secara utuh atau tidak sama sekali. Tidak boleh ada transaksi yang hanya dikerjakan sebagian, karena dapat menyebabkan inkonsistensi basis data.

Tujuan dari transaksi ialah melindungi database dari kehilangan data dan kerusakan.

Contoh masalah:

·         Sistem crash di tengah eksekusi program yang membuat database dalam state yang tidak diketahui
·         Dua program yang mengakses data yang sama dijalankan bersamaan sehingga saling menggangu.

Dua Operasi Penting Transaksi adalah:

Ø  COMMIT
o   Memberi tanda bahwa transaksi telah selesai. Update dibuat permanen (bahkan jika setelah commit terjadi kegagalan sistem).
Ø  ROLLBACK
o   Memberi tanda bahwa transaksi GAGAL. Semua update harus di-undo.

4 Elemen Transaksi adalah:

v  Atomicity
Semua berhasil atau semua gagal.
v  Consistency
                        Transaksi mempertahankan konsistensi database.
v  Isolation
                        Transaksi terisolasi satu dengan yang lain.
v  Durability
                        Setelah commit update harus survive di database.


Setelah berguling-guling di teori, mari kita langsung ke praktik.

Pertama buat sebuah tabel berikut.


 Kemudian isi tabel nya.


===== COMMIT =====

Buka 2 buah SQL secara bersamaan.


Kemudian isi data baru pada SQL biru. Kemudian coba seleksi tabelnya pada SQL biru.


Sekarang coba Seleksi tabel contoh pada SQL Merah.


Mengapa recordnya belum terupdate? 
karena belum ada commit dari event sebelumnya. Kita baru bisa menampilkan semua record jika sistem sudah melakukan commit. 

Bagaimana sistem tersebut melakukan commit ? 
Dengan cara menutup program SQLnya. maka sistem akan melakukan commit. atau kita lakukan perintah COMMIT langsung pada SQL birunya. Setelah itu coba tampilkan kembali pada SQL merah.



===== ROLLBACK =====

Cobalah menghapus sebuah record (semuanya saja). Kemudian seleksi tabel contoh untuk memastikan tabelnya tidak memiliki record satupun.


Kemudian lakukan perintah ROLLBACK. Maka sistem database akan kembali ke bentuk sebelumnya.


===== SAVEPOINT =====

savepoint sama halnya seperti save dalam suatu game, yakni membuat sebuah titik aman. titik aman disini kita bisa kembali ke situasi disaat kita melakukan savepoint.

1. Pertama kita seleksi tabel contoh untuk memastikan data saat ini. Kemudian lakukan perintah SAVEPOINT [nama_savepoint]. contoh SAVEPOINT X;
2. Kemudian hapus salah satu record dari tabel contoh dan lakukan SAVEPOINT Y;
3. Lalu, seleksi tabel contoh untuk memastikan dan sekarang delete semua record pada tabel contoh.



4. sekarang, lakukan perintah ROLLBACK TO Y; untuk melakukan sistem recovery saat kita melakukan savepoint Y. Seleksi lagi tabel contoh untuk memastikan.


 5. terakhir, coba lakukan ROLLBACK to X; untuk kembali kepada titik aman awal.


*** Suatu ROLLBACK TO hanya bisa dilakukan ke savepoint sebelumnya, tidak bisa dilakukan ke savepoint selanjutnya.


========================== \\ //  ==========================




Tidak ada komentar:

Posting Komentar