• Tidak ada hasil yang ditemukan

TRANSAKSI materi Sistem Basis Data UNISKA

N/A
N/A
Misorak Pemindo

Academic year: 2025

Membagikan "TRANSAKSI materi Sistem Basis Data UNISKA"

Copied!
30
0
0

Teks penuh

(1)

DATABASE CONTROL

(Pengontrolan Terhadap

Basis Data)

(2)

1. TRANSAKSI

(3)

Apa itu TRANSAKSI?

Transaksi merupakan bagian dari

pengeksekusian sebuah program yang melakukan pengaksesan basis data.

Transaksi juga melakukan serangkaian perubahan data.

Umumnya terdiri atas sejumlah operasi yang membentuk satuan kerja lojik.

(4)

Apa itu TRANSAKSI?

DBMS harus menjamin bahwa setiap satuan transaksi harus dapat dikerjakan utuh atau tidak sama sekali

Tidak boleh ada transaksi yang hanya

dikerjakan sebagian (dapat mengakibatkan inkonsistensi data)

(5)

Apa itu TRANSAKSI?

Pada bahasa pemrograman, biasanya ada fasilitas untuk menyatakan adanya transaksi secara eksplisit yang dinyatakan melalui blok perintah yang diawali dengan begin

transaction dan diakhiri dengan end transaction

Satu kesatuan operasi yang terdapat didalam blok perintah tersebut merupakan sebuah

transaksi

(6)

Sebuah transaksi yang dilaksanakan akan berpeluang ‘mengganggu’ integritas basis data

Akibatnya kondisi data atau hubungan antar data berada dalam keadaan salah atau tidak seperti yang seharusnya

Agar integritas tersebut terpelihara, maka transaksi harus memiliki sifat-sifat ACID

(7)

SIFAT TRANSAKSI (ACID)

1. Atomik (Atomicity)

Semua operasi-operasi dalam transaksi dapat dikerjakan seluruhnya atau tidak sama sekali.

2. Konsisten (Consistency)

setiap eksekusi transaksi secara tunggal

harus dapat menjamin data tetap konsisten setelah transaksi berakhir.

(8)

SIFAT TRANSAKSI (ACID)

3. Terisolasi (Isolation)

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.

(9)

SIFAT TRANSAKSI (ACID)

4. Bertahan (Durability)

Perubahan data yang terjadi setelah sebuah transaksi berakhir dengan baik, harus dapat bertahan (permanen) bahkan jika seandainya sistem menjadi mati.

(10)

Contoh Kasus

(basis data pada sebuah Bank)

Misal sebuah transaksi yang melibatkan dua nasabah sekaligus, dimana nasabah pertama akan melakukan transfer sejumlah dana ke nasabah yang lain  saldo nasabah pertama akan berkurang sebesar jumlah yang

ditransfer dan menambah saldo nasabah kedua dengan jumlah yang sama

(11)

Contoh Kasus

(basis data pada sebuah Bank)

Jika diimplementasikan sebagai sebuah

transaksi basis data, maka dibutuhkan dua buah operasi elementer terhadap basis data berikut ini :

a. read(X b. Write(X)

(12)

Contoh Kasus

(basis data pada sebuah Bank)

a. read(X)

berupa operasi untuk membaca nilai X dari basis data (dalam disk) dan menampungnya pada sebuah lokasi (buffer) di memori

b. write(X)

berupa operasi untuk mengambil nilai X ddari sebuah lokasi (buffer) di memori dan kemudian menuliskannya di basis data

(13)

Contoh Kasus

(basis data pada sebuah Bank)

Jika Ti menyatakan sebuah transaksi basis data yang melakukan transfer uang sejumlah Rp.100000 dari rekening A (milik nasabah

pertama) ke rekening B (milik nasabah

kedua), maka rincian operasi sebagai berikut:

Ti: read (A)

A A – 100000 write (A)

read (B)

B B + 100000 write (B)

(14)

Kaitan kasus (transfer dana) dengan sifat ACID

Keatomikan

sebelum transaksi dilaksanakan, rek. A = Rp.2000000 dan rek. B = Rp.1000000.

Jika pada saat operasi write(A) baru saja

dikerjakan terjadi kemacetan/kegagalan sistem, maka kondisi nilai untuk A telah berubah dari Rp.2000000 menjadi Rp.1900000 tetapi nilai B belum mengalami perubahan, tetap Rp.1000000.

(kondisi salah)

(15)

Kaitan kasus (transfer dana) dengan sifat ACID

Keatomikan

Maka sistem akan mengembalikan nilai-nilai yang telah berubah akibat dieksekusinya

transaksi diatas kepada nilai-nilai awalnya. Jadi transaksi tersebut dianggap belum dilakukan

sama sekali (sesuai kaidah sifat Atomik,

dikerjakan seluruhnya (utuh) atau tidak sama sekali).

(16)

Kaitan kasus (transfer dana) dengan sifat ACID

Konsistensi

Transaksi dikatakan telah konsisten jika total saldo rekening A dan saldo rekening B setelah terjadinya transaksi harus sama dengan total saldo keduanya rekening setelah transaksi dieksekusi.

(17)

Kaitan kasus (transfer dana) dengan sifat ACID

Isolasi

Pada saat operasi write(A) baru dikerjakan, nilai A+B pada saat itu berbeda dengan nilai A+B mula- mula. Jika pada saat tersebut ada transaksi lain, misal Tj yang juga sedang dieksekusi dan

melakukan pembacaan nilai A dan B, maka

transaksi Tj tidak mendapatkan informasi yang benar/konsisten basis data menjadi tidak konsisten

(18)

Kaitan kasus (transfer dana) dengan sifat ACID

Isolasi

Solusi agar kedua transaksi tersebut dapat selesai : - menerapkan suatu mekanisme kendali persaingan pengaksesan data (concurency control) untuk

menjamin terpeliharanya konsistensi basis data secara keseluruhan,

- mekanisme ini membuat eksekusi setiap transaksi tidak terganggu oleh eksekusi transaksi yang lain.

(19)

Kaitan kasus (transfer dana) dengan sifat ACID

Ketahanan

Jika transaksi pentransferan dana dari rekening A ke rekening B telah selesai dikerjakan, harus dapat dijamin agar nilai-nilai baru untuk A dan B (semua data yang telah berubah) dapat terus

bertahan.

(20)

STATUS TRANSAKSI

Terhentinya atau tidak sempurnanya pelaksanaan sebuah transaksi dapat diakibatkan oleh:

- kemacetan sistem operasi (hang), keputusan

penghentian transaksi oleh DBMS akibat adanya kondisi yang tak diinginkan, misal terlewatinya batas waktu (time out) pelaksanaan transaksi yang telah ditetapkan, dll

- insiden pada perangkat keras, matinya daya listrik, kerusakan harddisk (bad sector), dll

- aksi user itu sendiri, misalnya sengaja menghentikan eksekusi transaksi

(21)

STATUS TRANSAKSI

1. Aktif (Active)

merupakan status awal (initial state) sebuah transaksi yang menunjukkan transaksi

tersebut masih berlangsung (dieksekusi) 2. Berhasil sebagian (Partially Committed)

yaitu keadaan yang dicapai transaksi tepat pada saat operasi/instruksi terakhir dalam transaksi selesai dikerjakan

(22)

STATUS TRANSAKSI

3. Gagal (Failed)

merupakan keadaan dimana sebuah transaksi terhenti pengeksekusiannya sebelum tuntas sama sekali.

(23)

STATUS TRANSAKSI

4. Batal (Aborted)

yaitu keadaan dimana sebuah transaksi

dianggap tidak/belum dikerjakan yang tentu dengan terlebih dahulu diawali dengan

mengembalikan semua data yang telah

diubah oleh transaksi tersebut ke nilai-nilai semula (yang menjadi tanggung jawab

DBMS).

(24)

STATUS TRANSAKSI

5. Berhasil sempurna (Committed)

merupakan keadaan dimana transaksi telah dinyatakan berhasil dikerjakan seluruhnya dan basis data telah merefleksikan

perubahan-perubahan yang memang diinginkan transaksi.

(25)

Diagram Status Transaksi

active

aborted committed

failed partially committed

(26)

Keterangan :

Ketika sebuah transaksi mulai dikerjakan, maka

transaksi tersebut segera berada dalam status aktif (active).

Jika terjadi penghentian sebelum operasi terakhir dalam transaksi, maka transaksi segera beralih ke status baru, yaitu gagal (failed).

Jika keseluruhan operasi dalam transaksi selesai

dikerjakan, maka transaksi tersebut dinyatakan berada dalam status berhasil sebagian (partially committed), dimana perubahan-perubahan data masih berada

didalam memori utama yang bersifat volatile (tidak permanen)

(27)

Keterangan :

Transaksi dalam status partially committed masih

memiliki kemungkinan untuk berpindah ke status failed (karena ada pembatalan transaksi baik sengaja atau tidak sengaja).

Jika status partially committed tidak beralih ke status

failed, maka nilai-nilai data yang baru yang masih ada di memori utama akan disalin//direkam ke dalam disk yang bersifat permanen. Begitu proses perekaman selesai

dikerjakan, maka transaksi beralih ke status baru, yaitu berhasil sempurna (committed).

(28)

Keterangan :

Untuk transaksi yang berada dalam status failed, maka DBMS harus menjalankan proses rollback, berupa :

- mengulangi pelaksanaan transaksi (restart), yang dapat dilakukan terhadap transaksi yang gagal akibat

kemacetan sistem (hardware ataupun software) - mematikan transaksi (kill), yang dilakukan untuk

transaksi yang dihentikan secara sengaja oleh user atau akibat adanya kesalahan lojik dalam penulisan aplikasi.

Begitu salah satu dari pilihan proses tersebut selesai dilakukan, maka transaksi berpindah ke status batal (aborted).

(29)

EVALUASI

1. Jelaskan apa yang dimaksud dengan transaksi dalam basis data

2. Sebutkan sifat-sifat (ACID) yang harus dimiliki oleh sebuah transaksi agar

integritas basis data tetap terpelihara.

Jelaskan satu diantaranya

3. Jelaskan secara singkat apa yang akan terjadi jika sebuah transaksi tidak

dilaksanakan secara utuh

(30)

EVALUASI

4. Sebutkan hal atau kejadian apa saja yang dapat mengakibatkan pelaksanaan

transaksi terhenti atau tidak sempurna

5. Gambarkan diagram status transaksi dan jelaskan secara singkat mengenai status berhasil sebagian (partially committed)

Referensi

Dokumen terkait