TRANSAKSI DAN PENGENDALIAN PERSAINGAN Pengertian n n Transaksi

  • Slides: 21
Download presentation
TRANSAKSI DAN PENGENDALIAN PERSAINGAN

TRANSAKSI DAN PENGENDALIAN PERSAINGAN

Pengertian n n Transaksi merupakan bagian dari pengeksekusian sebuah program yang melakukan pengaksesan basis

Pengertian n n Transaksi merupakan bagian dari pengeksekusian sebuah program yang melakukan pengaksesan basis data dan bahkan juga melakukan serangkaian perubahan data. DBMS yang kita gunakan harus bisa menjamin bahwa setiap satuan transaksi harus dapat dikerjakan secara utuh atau tidak sama sekali.

n n Pelaksanaan sebuah transaksi akan berpeluang untuk mengganggu integritas basis data yang membuat

n n Pelaksanaan sebuah transaksi akan berpeluang untuk mengganggu integritas basis data yang membuat kondisi data atau hubungan antar data berada dalam keadaan salah atau tidak seperti yang seharusnya. Untuk menjamin agar integritas tetap terpelihara, setiap transaksi harus memiliki sifat : atomik, konsisten, terisolasi, bertahan.

Contoh Transaksi n n Sebuah basis data yang mengelola data simpanan nasabah pada sebuah

Contoh Transaksi n n Sebuah basis data yang mengelola data simpanan nasabah pada sebuah bank. Selanjutnya diinginkan sebuah transaksi yang melibatkan dua nasabah sekaligus, dimana nasabah pertama akan melakukan transfer sejumlah dana ke nasabah yang lain. Jika transaksi perbankan ingin diimplementasikan sebuah transaksi basis data, maka kita membutuhkan dua buah operasi elementer yaitu read(X) dan write(X).

Contoh Transaksi n Jika Ti menyatakan sebuah transaksi basis data yang melakukan transfer uang

Contoh Transaksi n Jika Ti menyatakan sebuah transaksi basis data yang melakukan transfer uang sebesar Rp. 100. 000 (seratus ribu rupiah) dari rekening (milik nasabah pertama) ke rekening nasabah B (milik nasabah kedua), maka Ti dapat didefinisikan melalui rincian operasi : Ti : read (A) A ← A – 100000 write (A) read (B) B ← B + 100000 write (B)

Status Transaksi n Secara lengkap, status-status transaksi dapat dicapai oleh sebuah transaksi sejak mulai

Status Transaksi n Secara lengkap, status-status transaksi dapat dicapai oleh sebuah transaksi sejak mulai dilaksanakan hingga selesai atau dibatalkannya transaksi, yaitu : Partially commite d active failed aborted Prepared by Harsiti 2009

Status Transaksi n n Jika transaksi berada dalam status “failed” maka DBMS harus menjalankan

Status Transaksi n n Jika transaksi berada dalam status “failed” maka DBMS harus menjalankan proses rollback. Proses tersebut bisa berupa : Mengulangi pelaksanaan transaksi (restart), yang dapat dilakukan terhadap operasi yang gagal (failed) akibat kemacetan sistem bukan penghentian transaksi secara sengaja oleh user. Mematikan transaksi (kill), yang dilakukan untuk transaksi yang dihentikan sengaja oleh user atau akibat adanya kesalahan logik dalam penulisan aplikasi,

Persaingan Eksekusi Transaksi n n Concurrency : banyak transaksi yang dijalankan secara bersamaan. Hampir

Persaingan Eksekusi Transaksi n n Concurrency : banyak transaksi yang dijalankan secara bersamaan. Hampir semua DBMS adalah multiuser, sehingga berpeluang terjadinya inkonsistensi basis data. Maka perlu adanya pengendalian persaingan eksekusi transaksi (concurrency control). Prepared by Harsiti 2009

Persaingan Eksekusi Transaksi n Alasan mengapa transaksi yang konkuren banyak dipilih dibandingkan transaksi secara

Persaingan Eksekusi Transaksi n Alasan mengapa transaksi yang konkuren banyak dipilih dibandingkan transaksi secara serial: a. Idle time (waktu tunggu) kecil. b. Response time (waktu tanggap) lebih baik Prepared by Harsiti 2009

Contoh Sistem Konkuren n Masih menggunakan contoh yang sama dengan contoh transaksi Saldo Nasabah

Contoh Sistem Konkuren n Masih menggunakan contoh yang sama dengan contoh transaksi Saldo Nasabah A = Rp. 2. 000, Saldo Nasabah B = Rp. 1. 000, Transaksi Pentransferan dana dari rekening A ke rekening B. Prepared by Harsiti 2009

Contoh Sistem Konkuren n T 1 berfungsi untuk mentransfer sebesar Rp. 100. 000, -

Contoh Sistem Konkuren n T 1 berfungsi untuk mentransfer sebesar Rp. 100. 000, - ke rekening B Operasinya : T 1 : read (A) A ← A-100000 write (A) read (B) B ← B + 100000 write (B) Prepared by Harsiti 2009

Contoh Sistem Konkuren n T 2 berfungsi mentransfer dana sebesar 10% dari saldo rekening

Contoh Sistem Konkuren n T 2 berfungsi mentransfer dana sebesar 10% dari saldo rekening A ke rekening B. Operasinya : T 2 : read (A) temp ← 0. 1 * A A ← A – temp write (A) read (B) B ← B + temp write (B) Prepared by Harsiti 2009

Contoh Sistem Konkuren Saldo akhir dari kedua rekening setelah kedua transaksi di atas dikerjakan,

Contoh Sistem Konkuren Saldo akhir dari kedua rekening setelah kedua transaksi di atas dikerjakan, tergantung pada bagaimana urutan pengerjaan (schedule) dari transaksi tersebut. n Jika transaksi T 1 dikerjakan lebih dulu daripada T 2, dan kedua transaksi dikerjaan secara serial demi konsistensi basis data secara keseluruhan, maka bentuk operasi dari kedua transaksi n Prepared by Harsiti 2009

Contoh Sistem Konkuren Schedule 1 n T 1 read (A) A← A-100000 write (A)

Contoh Sistem Konkuren Schedule 1 n T 1 read (A) A← A-100000 write (A) read (B) B ← B + 100000 write (B) T 2 read (A) temp ← 0. 1 * A A ← A – temp write (A) read (B) B ← B + temp write (B) Prepared by Harsiti 2009

Contoh Sistem Konkuren Schedule 2 n Jika T 2 dikerjakan lebih dahulu dari pada

Contoh Sistem Konkuren Schedule 2 n Jika T 2 dikerjakan lebih dahulu dari pada T 1 read (A) A← A-100000 write (A) read (B) B ← B + 100000 write (B) T 2 read (A) temp ← 0. 1 * A A ← A – temp write (A) read (B) B ← B + temp write (B) Prepared by Harsiti 2009

Contoh Sistem Konkuren n Kesimpulanya, bagaimanapun urutan pengerjaan transaksi, selama dikerjakan secara serial maka

Contoh Sistem Konkuren n Kesimpulanya, bagaimanapun urutan pengerjaan transaksi, selama dikerjakan secara serial maka pada akhir transaksi, kondisi konsiste yang baru akan tetap diperoleh. Prepared by Harsiti 2009

Contoh Sistem Konkuren n n Pada database terdistribusi memungkin untuk melakukan transaksi secara bersama

Contoh Sistem Konkuren n n Pada database terdistribusi memungkin untuk melakukan transaksi secara bersama dan tentu saja pilihan urutan pengerjaan transaksi (schedule) akan lebih banyak lagi. Jika terdapat transaksi sebanyak n, akan ada transaksi lebih dari n! buah alternatif schedule. Prepared by Harsiti 2009

Contoh Sistem Konkuren Schedule 3 T 1 read (A) A ← A – 100000

Contoh Sistem Konkuren Schedule 3 T 1 read (A) A ← A – 100000 Write (A) Read (B) B ← B + 100000 Write (B) T 2 read (A) temp ← 0. 1 * A A ← A – temp write (A) read (B) B ← B + temp write (B) Prepared by Harsiti 2009

Contoh Sistem Konkuren Schedule 3 n n Pada Schedule 3 ini, konsistensi hasil transaksi

Contoh Sistem Konkuren Schedule 3 n n Pada Schedule 3 ini, konsistensi hasil transaksi tetap dapat diperoleh kendati kedua transaksi tersebut dikerjakan secara konkuren. Tetapi kondisi di atas belum tentu dapat dipenuhi oleh schedule konkuren lainnya. Prepared by Harsiti 2009

Contoh Sistem Konkuren Schedule 4. T 1 I/O CPU I/O T 2 read (A)

Contoh Sistem Konkuren Schedule 4. T 1 I/O CPU I/O T 2 read (A) A ← A – 100000 write (A) read (B) B ← B + 100000 write (B) CPU I/O I/O I/0 read (A) temp ← 0, 1 * A A ← A -temp write (A) read (B) CPU B ← B + temp write (B) Prepared by Harsiti 2009

Contoh Sistem Konkuren Schedule 4. n n Bagaimana nilai akhir saldo setelah pelaksanaan transaksi

Contoh Sistem Konkuren Schedule 4. n n Bagaimana nilai akhir saldo setelah pelaksanaan transaksi T 1 dan T 2 selesai dikerjakan? Masih tetap konsistenkah saldonya? Prepared by Harsiti 2009