top of page
Search
Writer's pictureIffat Ainiyyah

Transaction in Database

Updated: Oct 16, 2020

Transaksi, dalam konteks database, adalah unit logis yang dijalankan secara independen untuk pengambilan atau pembaruan data. Para ahli berbicara tentang transaksi database sebagai "unit kerja" yang dicapai dalam lingkungan desain database.


Dalam database relasional, transaksi database harus bersifat atomik, konsisten, terisolasi, dan tahan lama — diringkas sebagai akronim ACID. Engineer harus melihat pembuatan dan penggunaan sistem database untuk mengetahui apakah itu mendukung model ACID atau tidak. Kemudian, karena jenis sistem database yang lebih baru telah muncul, pertanyaan tentang bagaimana menangani transaksi menjadi lebih kompleks.


Dalam desain database relasional tradisional, transaksi diselesaikan oleh pernyataan COMMIT atau ROLLBACK SQL, yang menunjukkan awal atau akhir transaksi. Akronim ACID mendefinisikan properti transaksi database, sebagai berikut:



Atomicity

  • Ini menyatakan bahwa semua operasi transaksi terjadi sekaligus jika tidak, transaksi dibatalkan.

  • Tidak ada pertengahan, yakni transaksi tidak bisa terjadi secara parsial. Setiap transaksi diperlakukan sebagai satu unit dan berjalan hingga selesai atau tidak dieksekusi sama sekali.

Atomicity melibatkan dua operasi berikut:

Batalkan: Jika transaksi dibatalkan maka semua perubahan yang dibuat tidak terlihat.

Commit : Jika transaksi dilakukan maka semua perubahan yang dibuat dapat dilihat.


Contoh: Mari kita asumsikan bahwa transaksi T berikut terdiri dari T1 dan T2. A terdiri dari Rs 600 dan B terdiri dari Rs 300. Transfer Rs 100 dari akun A ke akun B.


T1

Read (A)

A: = A-100

Write (A)

T2

Read (B)

Y: = Y + 100

Write (B)


Setelah transaksi selesai, A terdiri dari Rs 500 dan B terdiri dari Rs 400.

Jika transaksi T gagal setelah penyelesaian transaksi T1 tetapi sebelum transaksi T2 selesai, maka jumlah tersebut akan dikurangkan dari A tetapi tidak ditambahkan ke B. Ini menunjukkan status database yang tidak konsisten. Untuk memastikan kebenaran status database, transaksi harus dijalankan secara keseluruhan.


Konsistensi

  • Batasan integritas dipertahankan sehingga database konsisten sebelum dan sesudah transaksi.

  • Eksekusi transaksi akan meninggalkan database baik dalam kondisi stabil sebelumnya atau kondisi stabil baru.

  • Properti database yang konsisten menyatakan bahwa setiap transaksi melihat instance database yang konsisten.

  • Transaksi digunakan untuk mengubah database dari satu status konsisten ke status konsisten lainnya.

Misalnya: Jumlah total harus dipertahankan sebelum atau sesudah transaksi.

  1. Total sebelum T terjadi =  600 + 300 = 900

  2. Total setelah T terjadi =  500 + 400 = 900

Oleh karena itu, database konsisten. Jika T1 selesai tetapi T2 gagal, maka akan terjadi inkonsistensi.


Isolasi

  • Ini menunjukkan bahwa data yang digunakan pada saat eksekusi transaksi tidak dapat digunakan oleh transaksi kedua hingga transaksi pertama selesai.

  • Secara terpisah, jika transaksi T1 sedang dijalankan dan menggunakan item data X, maka item data tersebut tidak dapat diakses oleh transaksi T2 lainnya hingga transaksi T1 berakhir.

  • Subsistem kontrol konkurensi dari DBMS memberlakukan properti isolasi.

Daya tahan

  • Properti durability digunakan untuk menunjukkan kinerja status konsisten database. Ini menyatakan bahwa transaksi membuat perubahan permanen.

  • Mereka tidak dapat hilang oleh operasi yang salah dari transaksi yang salah atau oleh kegagalan sistem. Ketika transaksi selesai, maka database mencapai keadaan yang dikenal sebagai keadaan konsisten. Keadaan yang konsisten itu tidak dapat hilang, bahkan jika terjadi kegagalan sistem.

  • Subsistem pemulihan DBMS memiliki tanggung jawab atas properti Durability.


Store procedure merupakan sekumpulan perintah-perintah SQL yang tersimpan dengan nama tertentu dan diproses sebagai sebuah kesatuan


Contoh Kasus


Sistem Informasi ini dibuat supaya operator gudang dapat memasukkan data transaksi material dengan lebih detail dan lebih cepat. Selain itu Kepala Unit dapat melihat langsung data stok material melalui laporan- laporan yang telah disediakan.


Sistem informasi ini diharapkan dapat mengatasi permasalahan yang dihadapi oleh PT Mega Andalan kalasan mengenai kehilangan data, karena pada sistem ini diterapkan transaction management untuk menjaga kondisi basis data tetap konsisten. Selain itu sistem yang baru ini melakukan pemrosesan data langsung pada sistem basis data yang terdapat pada komputer server dengan menggunakan metode store procedure. Tujuannya adalah agar mempercepat jalannya proses perhitungan pada aplikasi dan untuk menjalankan perintah-perintah yang mendukung transaction management sehingga diperoleh hasil basis data yang tetap konsisten sehingga data yang dihasilkan dapat dipercaya. Sistem ini juga dilengkapi dengan peringatan-peringatan jika terjadi kegagalan pada saat pemprosesan data.


Store Procedure untuk pemakaian material

Dalam sistem ini terdapat store procedure yang digunakan untuk menambahkan data pemakaian material yang didalamnya terdapat fungsi transaction management yang berguna untuk menjaga data stok di tabel material dalam database sistem inventory Raw Material Gudang Komponen Logam. Store Procedurenya dapat dilihat seperti pada gambar dibawah.


Store procedure yang digunakan untuk mengubah data memiliki kemampuan melakukan transaction management sehingga data stok tetap konsisten.





Dari gambar 4.1 dapat dilihat bagaimana transaction management diterapkan dengan menggunakan perintah yang dicetak tebal. Perintah Set Xact_abort on berfungsi untuk melakukan pembatalan transaksi apabila terjadi kegagalan. Sedangkan perintah untuk Transaction managementnya adalah Set transacton isolation level serializable , dan untuk memulai transaksi digunakan perintah Begin transaction serta untuk mengakhirinya digunakan perintah commit Transaction. Untuk melakukan penguncian pada tabel material adalah dengan melakukan update pada kolom dan baris yang akan diubah yaitu kolom stok dengan kode material tertentu. Perintahnya adalah Update Material set stock =stock where Kodematerial = @Kodematerial. Dengan melakukan perintah ini maka kolom tersebut akan diunci sehingga apabila ada transaksi lain yang akan mengubah kolom tersebut tidak akan diijinkan sampai transaksi yang telah mendapatkan kunci selesai melakukan perubahan data. Untuk mengubah data material digunakan perintah berikut :


Update material

set Stock = @stock - @TotalPakai, TanggalUpdate = @Tanggal where KodeMaterial=@KodeMaterial



Store Procedure untuk penerimaan material

Dalam sistem ini juga terdapat store procedure yang digunakan untuk menambahkan data material yang masuk dalam store procedure ini juga terdapat fungsi transaction management yang berguna untuk menjaga data stok di material. Store Procedurenya dapat dilihat seperti pada gambar 4.2.


Sama dengan yang dilakukan pada transaksi pemakaian material pada transaksi penerimaan material pun terdapat perintah yang dicetak tebal yang berfungsi untuk menerapkan transaction management seperti pada gambar 4.2. Perintah Set Xact_abort on berfungsi untuk melakukan pembatalan transaksi apabila terjadi kegagalan. Sedangkan perintah untuk Transaction managementnya adalah Set transacton isolation level serializable , dan untuk memulai transaksi digunakan perintah Begin transaction serta untuk mengakhirinya digunakan perintah commit Transaction. Untuk melakukan penguncian pada tabel material adalah dengan melakukan update pada kolom dan baris yang akan diubah yaitu kolom stok dengan kode material tertentu. Perintahnya adalah Update Material set stock =stock where Kodematerial = @Kodematerial. Dengan melakukan perintah ini maka kolom tersebut akan diunci sehingga apabila ada transaksi lain yang akan mengubah kolom tersebut tidak akan diijinkan sampai transaksi yang telah mendapatkan kunci selesai melakukan perubahan data. Untuk melakukan perubahan data stok material karena ada transaksi penerimaan material maka digunakan perintah seperti berikut :


select @stock = stock from material where kodematerial

@KodeMaterial

begin

update material set stock=stock+@QTY, TanggalUpdate=@Tanggal where KodeMaterial=@KodeMaterial



Pengujian Transaction Management

Store Procedure yang dibuat adalah Store procedure pada Tabel pemakaian material dimana apabila tabel ini diisi dengan data pemakaian maka data material akan berubah. Agar saling bertabrakan maka diberikan delay sebelum melakukan perubahan data yaitu sebelum data material diubah. Perintahnya dapat dilihat seperti pada gambar 1


Gambar 1 Perintan Delay untuk memberi jeda waktu


Pada saat transaksi input data pemakaian maka strore procedure pemakaian akan dilakukan. Dengan melakukan perintah Execute SP_Pemakaian_stok dimana perintah ini menjalankan nama procedure tersebut diikuti dengan parameter yang berfungsi untuk menyimpan data yang akan dimasukkan ke tabel pemakaian material. Perintah eksekusinya dapat dilihat pada gambar 2



Gambar 2 perintah eksekusi store procedure pemakaian material


Apabila terdapat dua atau lebih transaksi maka transaksi tersebut akan saling menunggu hingga lock dilepaskan. Hal ini dapat dilihat sebagai berikut ketika dilakukan simulasi penambahan data pemakaian material oleh transaksi pemakaian material dan penambahan data penerimaan material oleh transaksi penerimaan material maka transaksi - transaksi tersebut akan saling menunggu hingga transaksi yang pertama yaitu pemakaian material selesai melakukan ubah data stok pada tabel material dan melepaskan lock yang dimilikinya. Hal ini dapat terlihat seperti pada gambar 3 dimana transaksi pertama yaitu pemakaian stok material berhasil melakukan perubahan data tanpa pesan kesalahan.

Gambar 3 contoh transaksi berhasil dilaksankan


Pada gambar berikut dapat dilihat bahwa transaksi isi data material yang pertama yaitu pengurangan data stok pada tabel material dikarenakan ada pemakaian material dapat dilakukan tanpa ada pesan kesalahan dan data stock pada tabel material dapat diubah.yang dapat dilihat seperti pada gambar 4.


Gambar 4 Data material yang stoknya telah berubah


Sedangkan transaksi yang kedua tidak berhasil dilaksankan karena transaksi yang pertama masih memakai lock pada kolom stok di tabel material sehingga transaksi tersebut akan digagalkan yang tampak seperti gambar 5.



Gambar 5 Contoh transaksi yang digagalkan


Karena transaksi kedua digagalkan maka data stock pada tabel material hanya diubah oleh transaksi yang pertama saja. Yang dapat dilihat seperti pada gambar 6. Dan transaksi penerimaan material dapat dilaksanakan apabila dilakukan pengulangan eksekusi terhadap transaksi tersebut.

Gambar 6 Data stok tabel material yang hanya diubah oleh transaksi pemakaian material


- Kelebihan Sistem

Kelebihan dari sistem ini adalah sistem dibuat dengan menggunakan teknologi transaction management sehingga dapat mengatasi permasalahan multi user. Sehingga apabila ada dua pengguna atau lebih yang melakukan perubahan data stok material secara bersamaan maka salah satu transaksi tersebut akan digagalkan dan data stok material tetap terjaga konsistensinya.

- Kekurangan Sistem

Pada sistem ini belum terdapat pesan kesalahan apabila terjadi tabrakan anatara dua tansaksi atau lebih sehingga user tidak tahu bahwa transaksi tersebut saling bertabrakan. Sehingga user perlu mengeksekusi ulang transaksi tersebut.


Dengan adanya Transaction management pada tabel pemakaian material maka ketika melakukan simulasi perubahan data stok pada tabel material oleh dua transaksi atau lebih dapat saling menunggu sesuai urutan yang pertama mendapatkan lock sehingga data stok material tetap konsisten.


Sumber :

IMPLEMENTASI TRANSACTION MANAGEMENT PADA DATABASE SISTEM INVENTORY oleh Caecilia Ika Wahyu A

69 views0 comments

Recent Posts

See All

Comments


Post: Blog2_Post
bottom of page