Anda di halaman 1dari 6

Manajemen Transaksi Dalam Basis Data

Nama
Jurusan teknik Informatika, Fakultas Teknik dan Ilmu Komputer, Universitas Komputer Indonesia
Jl. Dipati Ukur No. 112-114-116, Bandung 40132
www.unikom.ac.id

email@gmail.com

Abstrak : Transaksi adalah sebuah aksi atau serangkaian aksi, yang dilakukan oleh user atau aplikasi yang
mengakses atau mengubah isi dari database atau dapat juga dikatakan sebagai unit kerja logical (Logical unit of
work) dari suatu database, sehingga yang dimaksud dengan majemen transaksi (transaction management) adalah
pengaturan transaksi-transaksi yang digunakan/diakses oleh suatu aplikasi/sistem. Transaksi-transaksi ini perlu
diatur untuk mempertahankan ACID (atomicity, consistency, isolation, and durability). Selain transaksi terdapat
pula concurrency control atau konkurensi kontrol, concurrency control atau konkurensi kontrol merupakan suatu
sistem manajemen database ( DBMS ) konsep yang digunakan untuk mengatasi konflik dengan mengakses simultan
atau mengubah data yang dapat terjadi dengan sistem multi-user. Kontrol konkurensi, bila diterapkan ke DBMS,
dimaksudkan untuk mengkoordinasikan transaksi simultan sambil menjaga integritas data banyaknya transaksi yang
dijalankan secara bersamaan dalam satu waktu (waktu bersamaan). Serta ada pula recovery system yakni suatu cara
utuk mengembalikan data yang sudah rusak kembali menjadi benar atau baik.
Kata Kunci - Manajemen Transaksi, Transaksi, Kontrol Konkurensi, Recovery System

I.

PENDAHULUAN
1.1. Latar Belakang
Dalam kehidupan sehari-hari kita tidak akan
pernah lepas bahkan jauh dari yang namanya
manajemen transaksi, karena dimanapun kita
berada pasti kita akan merasakan yang namanya
transaksi misalkan saja apabila kita mau jual beli
pasi kita akan mengadakan yang namanya
manajemen transaksi makanya manajemen
transaksi dan kehidupan tidak bisa dilepaskan.
Manajemen transaksi terjadi bukan hanya
ketika kita jual beli atau dalam kehidupan ril kita
namun manajeman transaksi juga bakal kita
rasakan dalam kehidupan program/aplikasi
terutama pada basis data.

Manajemen transaksi ini dilakukan untuk


mengatur
transaksi-transaksi
yang
digunakan/diakses oleh suatu aplikasi/system.
II. PEMBAHASAN
A. Transaksi
Transaksi adalah sebuah aksi atau serangkaian
aksi, yang dilakukan oleh user atau aplikasi yang
mengakses atau mengubah isi dari database atau
transaksi juga bisa diartikan sebagai pengeksekusian
sebuah program/aplikasi yang melakukan pengaksesan
dan perubahan basis data. Namun apabila kita ingin
melakukan transaksi data setelah melakukan transksi
haruslah tetap konsisten dan DBMS yang kita gunakan
juga 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.
Misalkan ketika kita melakukan
pengubahan,
penambahan atau penghapusan suatu tabel maka akan

berdampak pada isi tabel tersebut dan pada saat


eksekusi transaksi terjadi kagagalan, maka akan
menimbulkan ketidak konsistenan integrasi antar tabel.
Namun Untuk menjamin agar integritas dapat tetap
terpelihara maka setiap transaksi harus memiliki sifatsifat:
1.

Atomik, dimana semua operasi dalam transaksi


dapat dikerjakan seluruhnya atau tidak sama sekali.
2. Konsisten, dimana eksekusi transaksi secara
tunggal harus dapat menjamin data tetap konsisten
setelah transaksi berakhir.
3. Terisolasi, jika pada sebuah sistem basis data
terdapat sejumlah transaksi yang dilaksanakan
secara bersamaan, maka semua transaksi yang
dilaksanakan pada saat yang bersamaan tersebut
harus dapat dimulai dan bisa berakhir.
4. Bertahan, dimana perubahan data yang terjadi
setelah sebuah transaksi berakhir dengan baik,
harus dapat bertahan bahkan jika seandainya sistem
menjadi mati.
Terhentinya suatu transaksi tidak selalu
diakibatkan oleh kegagalan insidental baik dari
perangkat keras (crash) ataupun kemacetan sistem
operasi (hang). Tapi lebih sering terjadi karena user
sengaja
menghentikan transaksi atau karena
penghentian transaksi oleh DBMS akibat adanya
kondisi tak diinginkan, seperti deadlock atau timeout.
Sebuah transaksi
kemungkinan:

dapat

menghasilkan

tentu dengan terlebih dahulu diawali dengan


mengembalikan semua data yang telah diubah ke
nilai-nilai semula. (yang menjadi tanggung jawab
DBMS).
5. Berhasil Sempurna (Committed), keadaan
dimana transaksi telah dinyatakan berhasil
dikerjakan seluruhnya dan basis data telah
merefleksikan perubahan-perubahan yang memang
diinginkan transaksi.
Ketika sebuah transaksi mulai dikerjakan, maka
transaksi itu berada dalam status aktif. Jika terjadi
penghentian sebelum operasi berakhir, maka transaksi
segera beralih ke status gagal/failed. Namun, bila
keseluruhan transaksi selesai dikerjakan, maka transaksi
itu berada pada status berhasil sebagian/partially
committed, dimana perubahan-perubahan data masih
berada di dalam memori utama yang bersifat
volatile/tidak permanen. Transaksi dalam status ini
masih mungkin untuk pindah ke status failed, karena
ada pembatalan transaksi baik sengaja maupun tidak.
Jika tidak beralih ke status failed, maka nilai-nilai data
yang ada di memori utama akan direkam ke dalam disk
yang bersifat permanen. Begitu proses perekaman
selesai, maka transaksi beralih ke status committed.

dua

a.

Jika dilaksanakan lengkap seluruhnya, transaksi


tersebut telah di commit dan basis data mencapai
keadaan konsisten baru.
b. Jika transaksi tidak sukses, maka transaksi
dibatalkan dan basis data dikembalikan ke keadaan
konsisten sebelumnya (rollback).
Transaksi yang sudah di commit tidak dapat
dibatalkan lagi. Jika ada kesalahan, maka harus
dilakukan transaksi lain yang membalik dampak
transaksi sebelumnya
Ketika transaksi dilaksanakan/ dilakukan dari awal
sampai akhir maka terdapat beberapa kemungkinan
yang akan terjadi, yaitu :
1. Aktif (Active), yang merupakan status awal (initial
state) sebuah transaksi yang menunjukkan transaksi
tersebut masih dieksekusi.
2. Berhasil Sebagian (Partially Committed), yaitu
keadaan yang dicapai transaksi tepat pada saat
operasi terakhir dalam transaksi selesai dikerjakan.
3. Gagal (Failed), yang merupakan keadaan dimana
sebuah transaksi terhenti pengeksekusiannya
sebelum tuntas sama sekali.
4. Batal (Aborted), yaitu keadaan dimana sebuah
transaksi dianggap tidak/belum dikerjakan yang

Sementara itu, transaksi yang berada pada status


failed, maka DBMS harus menjalan proses rollback.
Proses tersebut dapat berupa:

Mengulangi pelaksanaan transaksi / restart, yang


dilakukan pada transaksi yang failed akbiat
kemacetan perangkat keras ataupun perangkat
lunak dan bukannya penghentian transaksi secara
sengaja oleh user.
Mematikan transaksi / kill, yang dilakukan untuk
transaksi yang dihentikan secara sengaja oleh user
atau akibat adanya kesalahan lojik dalam penulisan
aplikasi.
Operasi-operasi yang dapat dilakukan oleh
transksi yaitu :
read(x)
mengeksekusi operasi pembacaan (read)
write(x)

mengeksekusi perintah penulisan kembali ke


database (write).
Misalkan Transaksi transfer uang sebesar $50 dari
rekening A ke rekening B, didefinisikan sbg
berikut:
1. read (A)
2. A
A 50
3. write (A)
4. read (B)
5. B
B + 50
6. write (B)
B. Concurrency Control
konkurensi kontrol merupakan suatu sistem
manajemen database ( DBMS ) konsep yang digunakan
untuk mengatasi konflik dengan mengakses simultan
atau mengubah data yang dapat terjadi dengan sistem
multi-user. Kontrol konkurensi, bila diterapkan ke
DBMS, dimaksudkan untuk mengkoordinasikan
transaksi simultan sambil menjaga integritas data
banyaknya transaksi yang dijalankan secara bersamaan
dalam satu waktu (waktu bersamaan).
Ilustrasi : ada dua wisatawan yang pergi ke kios
elektronik pada saat yang sama untuk membeli tiket
kereta api untuk tujuan yang sama pada kereta yang
sama. Hanya ada satu kursi di kiri pelatih, tetapi tanpa
kontrol concurrency, mungkin wisatawan yang baik
akan berakhir membeli tiket untuk satu kursi. Namun,
dengan kontrol concurrency, database ini tidak akan
terjadi.. Kedua wisatawan akan masih dapat mengakses
database kereta tempat duduk, tetapi concurrency
kontrol akan menjaga keakuratan data dan
memungkinkan hanya satu jalan untuk membeli kursi.
Kokurensi ini banyak yang menggunakannya hal
tersebut dikarenakan beberapa fakor, diantarany :

Idle time (waktu menganggur) kecil.


time (waktu tanggap) lebih baik.

Akan tetapi konkurensi juga suka ada masalah, dan


masalah umum yang sering terjadi pada komkurensi
adala
1.
2.
3.

Masalah kehilangan modifikasi


Masalah kehilangan modifikasi sementara
Masalah analisa yang tidak konsisten

Masalah Kehilangan Modifikasi


Contoh:
Transaksi A
Waktu
Transaksi B
=
|
=
Baca R
t1
=
=
|
=

=
t2
Baca R
=
|
=
Modifikasi R
t3
=
=
|
=
=
t4
Modifikasi R
=
|
=
Transaksi A membaca R pada t1, transaksi B
membaca R pada t2.
Transaksi A memodifikasi R pada t3.
Transaksi B memodifikasi record yang sama pada
t4.
Modifikasi dari transaksi A akan hilang karena
transaksi B akan memodifikasi R tanpa
memperhatikan modifikasi dari transaksi A pada t3
Masalah kehilangan modifikasi sementara
Masalah ini timbul jika transaksi membaca suatu
record yang sudah dimodifikasi oleh transaksi lain
tetapi belum terselesaikan (uncommited), terdapat
kemungkinan kalau transaksi tersebut dibatalkan
(rollback).
Contoh:
Transaksi A
Waktu
Transaksi B
=
|
=
=
t1
Modifikasi R
=
|
=
Baca R
t2
=
=
|
=
=
t3
rollback
=
|
=
Transaksi B memodifikasi record R pada t1
Transaksi A membaca R pada t2.
Pada saat t3 transaksi B dibatalkan.
Maka transaksi A akan membaca record yang salah
Transaksi A
Waktu
Transaksi B
=
|
=
=
t1
Modifikasi R
=
|
=
Modifikasi R
t2
=
=
|
=
=
t3
rollback
=
|
=

Pada waktu t2 transaksi A memodifikasi R


Karena transaksi B dibatalkan pada waktu t3, maka
transaksi A memodifikasi record yang salah
Masalah analisa yang tidak konsisten
Contoh :
Nilai 1 = 40
Nilai 2 = 50
Nilai 3 = 30
Transaksi A
=
Baca nilai 1 (40)
Juml = 40
=

Waktu
|
t1
|

Transaksi B
=
=
=
=

Baca nilai 2 (50)


Juml = 90
=
=
=
=

t2

|
t3
|
t4

|
t5
|
t6

=
Baca nilai 3 (30)
=
Modifikasi nilai
3
30 20
=
Baca nilai 1 (40)
=
Modifikasi nilai
1
40 50
=
Commit

|
t7
|
t8

Baca nilai 3 (20)


Juml = 110
(bukan 120)
=
|
Transaksi A menjumlah nilai 1, nilai 2 dan nilai 3.
Transaksi B nilai 1 + 10 ; nilai 3 - 10
Pada waktu t8, transaksi A membaca nilai yang
salah karena nilai 3 sudah
dimodifikasi menjadi 20 (transaksi B sudah
melakukan commit sebelum transaksi A membaca
nilai 3).
Namun ada dua cara atau mekanisme untuk
menyelesaikan masalah-masalah di atas, yaitu :
Locking.
Locking adalah salah satu mekanisasi pengontrolan
konkuren.
Konsep dasarnya adalah: ketika suatu transaksi
memerlukan jaminan kalau record yang diinginkan
tidak akan berubah secara mendadak, maka diperlukan
kunci untuk record tersebut.
Fungsinya kunci (lock) adalah dengan menjaga
record tersebut agar tidak dimodifikasi oleh transaksi
lain.
Cara kerja dari kunci:
1. Pertama kita asumsikan terdapat 2 macam kunci:
Kunci X : kunci yang eksklusif.
Kunci S : kunci yang digunakan bersama-sama.
2. Jika transaksi A menggunakan kunci X pada record
R, maka permintaan dari transaksi B untuk suatu
kunci pada R ditunda, dan B harus menunggu
sampai A melepaskan kunci tersebut.

3. Jika transaksi A menggunakan kunci S pada record


R, maka:
Bila transaksi B ingin menggunakan kunci X,
maka B harus menunggu sampai A melepaskan
kunci tersebut.
Bila transaksi B ingin menggunakan kunci S,
maka B dapat menggunakan kunci S bersama A.
Tabel Kunci:

X
S
-

X
N
N
Y

S
N
Y
Y

X = kunci X
S = kunci S
N = No
Y = Yes

Y
Y
Y

4. - Bila suatu transaksi hanya melakukan pembacaan


saja, secara otomatis ia memerlukan kunci S baca
(S)
- Bila transaksi tersebut ingin memodifikasi record
maka secara otomatis ia memerlukan kunci S
memodifikasi (X)
- Bila transaksi tersebut sudah menggunakan kunci
S, setelah itu ia akan memodifikasi record, maka
kunci S akan dinaikan ke level kunci X.
5. Kunci X dan kunci S akan dilepaskan pada saat
synchpoint (synchronization point). Synchpoint
menyatakan akhir dari suatu transaksi dimana basis
data berada pada state yang konsisten.
Bila
synchpoint ditetapkan maka:

Semua modifikasi program menjalankan


operasi commit atau rollback.
Semua kunci dari record dilepaskan.

Misalkan
untuk
menyelesaikan
kehilangan modifikasi

permasalahan

Transaksi A
=
Baca R
(kunci S)
=
=

Waktu
|
t1

Transaksi B
=
=

|
t2

=
Modifikasi R
(kunci S)
tunggu
=
=

|
t3

=
Baca R
(kunci S)
=
=

|
t4

=
Modifikasi R
(kunci X)

tunggu
|
=
|
=
tunggu
|
tunggu
Pada waktu t3, transaksi A memerlukan kunci X,
maka transaksi A harus menunggu sampai B
melepaskan kunci S.
Transaksi B juga harus menunggu pada t4.
Maka tidak akan ada yang kehilangan modifikasi,
tetapi terdapat keadaan baru yaitu deadlock.
Deadlock, yaitu suatu kondisi dimana ke-2
transaksi dalam keadaan menunggu, sehingga keduanya
tidak akan pernah selesai dieksekusi.
=

ika pelepasan kunci terlalu cepat dilakukan, maka


bisa terjadi inkonsistensi informasi. Tapi bila dilepas di
akhir transaksi, bisa terjadi deadlock.
Hal ini
merupakan kondisi dilematis pada sebuah sistem
konkuren yang memanfaatkan mekanisme locking.

Selain transaksi, item data juga memiliki nilai time


stamp. Untuk setiap item data Q, ada 2 nilai time stamp,
yaitu:

a. Read time stamp atau R-timestamp(Q), yang


b.

menunjukkan nilai TS terbesar dari setiap transaksi


yang berhasil menjalankan operasi read(Q).
Write time stamp atau W-timestamp(Q), yang
menunjukkan nilai TS terbesar dari setiap transaksi
yang berhasil menjalankan operasi write(Q).

Time stamp ini akan selalu diperbarui ketika ada


perintah baru read(Q) atau write(Q) yang dijalankan
Cara pemberian nilai timestamp:
1.
2.

Global (systemwide) monotonically increasing


number
Local (site) monotonically increasing number.

Time Stamping
Salah satu alternatif concurrency control yang
dapat menghilangkan deadlock adalah time stamping.
Secara umum, timestamping (TS) adalah penanda
waktu saat transaksi terjadi. Hal ini untuk mengurutkan
eksekusi transaksi agar sama dengan eksekusi serial.
Time stamp dapat berupa:
a.
b.

waktu sistem saat transaksi dimulai, atau


penghitung logik (logical counter) yang terus
bertambah nilainya tiap kali terjadi transaksi
baru.

Jika time stamp transaksi a lebih kecil dari pada time


stamp transaksi b , atau
TS(Ta) < TS(Tb), maka transaksi a (Ta) selalu
dilaksanakan sebelum transaksi b (Tb).
Contoh:
Misal rekaman pada basis data memuat TS 168, yang
mengidentifikasikan transaksi dengn TS 168 adalah
transaksi yang terkemudian yang sukses mengupdate
rekaman yang bersangkutan. Maka jika ada transaksi
dengan TS 170 mencoba mengupdate rekaman yang
sama, maka update ini akan diijinkan, karena TS yang
dimiliki lebih kemudian dari TS pada rekaman. Saat
transaksi ini dilakukan, TS pada rekaman akan diatur
menjadi 170. Sekarang, jika transaksi yang akan
mengupdate rekaman tersebut memiliki TS 165, maka
update ditolak karena TS-nya < TS di rekaman.

C. Recovery System
Recovery merupakan upaya untuk mengembalikan
basis data ke keadaaan yang dianggap benar setelah
terjadinya suatu kegagalan.
Terdapat beberapa jenis pemulihan :
1.

Pemulihan terhadap kegagalan transaksi :


Kesatuan prosedur alam program yang dapat
mengubah / memperbarui data pada sejumlah
tabel.
2. Pemulihan terhadap kegagalan media :
Pemulihan karena kegagalan media dengan
cara mengambil atau memuat kembali salinan
basis data (backup)
3. Pemulihan terhadap kegagalan sistem : Karena
gangguan sistem, hang, listrik terputus
alirannya.
Mekanisme recovery memiliki dua bagian utama,
yaitu:
1.

2.

Aksi-aksi yang ditempuh selama transaksi


berjalan normal untuk menjamin adanya
informasi yang memadai yang kelak
dibutuhkan oleh mekanisme recovery.
Aksi-aksi yang ditempuh setelah terjadinya
kerusakan/ kegagalan sistem yang dilakukan
untuk memulihkan isi basis data ke suatu
keadaan yang menjamin konsistensi basis data,
keatomikan, dan ketahanan transaksi.

Skema Mekanisme Recovery


Dengan asumsi ruang disk yang dialokasikan
untuk basis data tidak mengalami kerusakan, maka ada

3 pilihan skema untuk menjalankan mekanisme


recovery secara otomatis begitu kerusakan atau
kegagalan sistem telah terjadi. Ketiga skema pilihan itu
adalah:
1.
2.
3.

File Log dengan Penundaan Pengubahan


(Incremental Log With Defered Update)
File Log dengan Pengubahan langsung
(Incremental Log With Immediate Updates)
Page Bayangan (Shadow Paging), yang
memerlukan akses ke disk yang lebih sedikit.

Recovery untuk Transaksi Konkuren


a. Interaksi dengan pengendalian konkurensi
Skema recovery ini akan banyak tergantung
pada skema pengendalian konkurensi yang digunakan.
Untuk menjalankan proses roll back terhadap transaksi
yang gagal/ batal,kita harus membatalkan perubahan
yang telah dilakukan oleh transaksi tersebut.
Jika sebuah transaksi T telah mengubah
sebuah item data Q, tidak boleh ada transaksi lain yang
boleh mengubah item data yang sama hingga T telah dicommit ataupun di-roll back. Kita dapat menjamin hal
ini dengan memanfaatkan Loking Protokol Dua Fase
yang Ketat, yang menerapkan penguncian dengan mode
exclusive hingga akhir transaksi.
b. Restart recovery
Pada saat sistem melakukan pemulihan data, ia
membentuk dua buah daftar. Yang pertama adalah
daftar undo (undo-list) yang terdiri atas transaksitransaksi yang harus dikenai operasi undo dan daftar
redo (redo-list) yang berisi transaksi-transaksi yang
harus dikenai operasi redo.
III. PENUTUP
A. Kesimpulan
Transaksi merupakan sebuah aksi untuk
mengakses atau merubah basis data.
Dalam transaksi terapat dua hasil atau output
yaitu commit atau rollback
Jika transaksi berjalan sukses maka dikatakan
commit, sebaliknya jika transaksi tidak
berjalan sukses maka transaksi dibatalkan dan
kembali ke keadaan semula dikatakan
rollback
Data harus tetap konsisten
Kontrol konkurensi merupakan suatu masalah
yang timbul ketika beberapa proses terjadi
bersamaan

Dua keuntungan apabila menggunakan


konkurensi yaitu Idle time (waktu
menganggur) kecil dan time (waktu tanggap)
lebih baik.

Tiga masalah utama yang sring terjadi di


konkurensi, yait :
o
Masalah kehilangan modifikasi
o
Masalah
kehilangan
modifikasi
sementara
o
Masalah analisa yang tidak konsisten
Dua mekanisme untuk mengatasi masalahmasalah umum dalam konkurensi yaitu :
locking dan time stamping
Recovery
merupakan
upaya
untuk
mengemblikan kembali data yang sudah
rusak
DAFTAR PUSTAKA
http://neni_rid.staff.gunadarma.ac.id/Dow
nloads/files/13582/CONCURRENCY+n+R
ECOVERY_mhs.doc
http://xa.yimg.com/kq/groups/23119406/
1527203292/name/Concurrency+Control.
doc
https://www.google.com/url?sa=t&rct=j&q=
&esrc=s&source=web&cd=5&cad=rja&ved=
0CEoQFjAE&url=http%3A%2F%2Fluqman
hakimnadzari.files.wordpress.com%2F2011
%2F04%2Fbasisdata_14_manajementransaks
i.ppt&ei=a0XWUuegJbGPiAevkYCIDA&us
g=AFQjCNFqaIZItP7LWUNcWVbMEAMn
gRYkAA&sig2=zzgIhnV1e8vpnI3P6Q7m2w
&bvm=bv.59378465,d.aGc
http://neni_rid.staff.gunadarma.ac.id/Dow
nloads/files/13580/Transaksi_mhs.doc

Anda mungkin juga menyukai