Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

TRANSAKSI DAN PENGENDALIAN PERSAINGAN

Presentasi serupa


Presentasi berjudul: "TRANSAKSI DAN PENGENDALIAN PERSAINGAN"— Transcript presentasi:

1 TRANSAKSI DAN PENGENDALIAN PERSAINGAN
PART 2

2 Serializability Cara yang alamiah untuk memelihara konsistensi dalam sistem yang mengakomodasi pelaksanaan transaksi secara bersamaan (concurency system) adalah mengupayakan agar hasil pemrosesan sekumpulan transaksi yang sedang bersaing (dieksekusi bersama-sama) dalam satu kesatuan proses sama saja dengan yang dihasilkan dengan menjalankan transaksi-transaksi tersebut secara berurutan/serial dengan urutan tertentu.

3 Serializability (cont…)
Kemampuan untuk mengupayakan terjadinya kesamaan antara schedule yang konkuren dengan schedule yang serial disebut Serializability. Yang harus diperhatikan adalah operasi read dan write. Operasi read dan write hanya akan terjadi pada ruang memori utama (buffer) dan tidak mengakibatkan adanya perubahan terhadap isi basis data di dalam disk.

4 Contoh Schedule 3 yang disederhanakan. T1 T2 read (A) write (A)
read (B) write (B)

5 Serializability (cont….)
Ada dua cara yang dapat dipilih untuk mengetahui ekivalensi antara sebuah schedule konkuren dengan schedule serial,yaitu : 1. Conflict Serializability 2. View Serializability

6 Conflict Serializalibility
Pada kasus dimana terjadi overlapping (ada transaksi yang dijalankan ketika transaksi lain sedang berjalan) dalam pengeksekusian transaksi-transaksi yang ada, maka penjadwalan tersebut disebut penjadwalan non-serial. Penjadwalan demikian tidak selalu menghasilkan hasil eksekusi yang salah (bisa benar bila hasilnya sama dengan hasil penjadwalan serial). Penjadwalan non-serial yang menghasilkan eksekusi yang benar disebut conflict serializable

7 Conflict Serializalibility
Konflik terjadi bila: Ada dua operasi Oi dan Oj pada penjadwalan S dimana keduanya mengakses data yang sama, dan Setidaknya ada satu operasi yang melakukan write()

8 Contoh Penjadwalan Non-Serial ( Concurrent Serializable Schedule)
T0 T1 Read (A) Write (A)   Read (A)  Write (A) Read (B)  Write (B)   Write (B)

9 Conflict Serializalibility
Pada contoh tersebut, write(A) pada T0 mengalami konflik dengan read(A) pada T1 karena keduanya mengakses data yang sama (A) dan terdapat operasi write(A). Namun, write(A) pada T1 tidak mengalami konflik dengan read(B) pada T0, karena walaupun ada operasi write(A) tetapi keduanya mengakses data yang berbeda.

10 Conflict Serializalibility
Dalam kasus dimana tidak terjadi konflik antar dua operasi, maka dapat dilakukan swapping sehingga terbentuk penjadwalan baru S' yang urutannya sama dengan penjadwalan serial Pada contoh tersebut swapping yang dapat dilakukan adalah:

11 Conflict Serializalibility
Swap write(A) pada T1 dengan read(B) pada T0 Swap read(B) pada T0 dengan read(A) pada T1 Swap write(B) pada T0 dengan write(A) pada T1 Swap write(B) pada T0 dengan read(A) pada T1

12 Conflict Serializalibility
Maka, akan didapat penjadwalan baru S' yang merupakan penjadwalan serial. Penjadwalan demikian dinamakan conflict serializable, sedangkan proses penyusunan penjadwalan baru yang serial disebut serialisasi.

13 View Serializabilty Bentuk ekivalensi dalam pendekatan ini lebih longgar dibandingkan pendekatan sebelumnya (conflict serializability), walaupun analisanya masih tetap didasarkan pada dua operasi utama (read dan write). Menurut pendekatan ini, jika S merupakan schedule serial, maka S’ untuk himpunan transaksi yang dapat dikatakan view equivelant dengan S jika ketiga ketentuan dibawah ini terpenuhi :

14 View Serializabilty Untuk setiap item data Q, jika transaksi Ti membaca nilai awal dari Q pada schedule S, maka transaksi Ti pada schedule S’ juga harus membaca nilai awal dari Q. Untuk setiap item data Q, jika transaksi Ti menjalankan operasi read(Q) di schedule S untuk nilai Q yang telah ditulis oleh transaksi Tj, maka hal itu juga terjadi di schedule S’ Untuk setiap item data Q, jika transaksi Ti menjalankan operasi write(Q) terakhir pada schedule S, maka transaksi Ti pada schedule S’ juga harus menjalankan operasi write(Q) terakhir.

15 Identifikasi Transaksi dalam SQL
Pentingnya identifikasi adanya blok transaksi pada sekumpulan operasi basis data, khususnya dalam melakukan perubahan isi basis data, maka bahasa basis data (query language) mesti memiliki perintah (command) yang berhubungan dengan blok transaksi.

16 Identifikasi Transaksi dalam SQL
Dalam bahasa SQL, awal transaksi diidentifikasikan secara implisit (yang dimulai dari adanya perintah SQL), tetapi identifikasi akhir transaksi harus dinyatakan secara eksplisit dengan menggunakan salah satu dari kedua perintah berikut :

17 Identifikasi Transaksi dalam SQL
Commit Work atau Commit saja, berfungsi untuk mengubah transaksi dari status berhasil sebagian (partially commited) ke status berhasil sempurna (commited), sehingga transaksi dianggap berakhir dan siap memulai transaksi yang baru. Rollback Work atau Rollback saja, yang menyebabkan terjadinya pembatalan transaksi (transaksi berpindah ke status batal / aborted).

18 Pengendalian Konkurensi (Concurency Control)
Salah satu karakteristik dasar dari sebuah transaksi yang harus dipenuhi adalah Isolasi, yang menjamin tereksekusinya semua transaksi pada sebuah sistem konkuren dengan benar sehingga konsistensi basis data dapat tetap terpelihara. Sangatlah penting untuk mengendalikan interaksi antara transaksi-transaksi yang sedang bersaing (konkuren), melalui sebuah mekanisme yang disebut dengan mekanisme pengendalian konkuren (Concurency Control).

19 Concurency-Control 1.Lock Based Protocol
Salah satu cara menjamin serializabiliy adalah dengan mensyaratkan bahwa akses item-item data harus dilakukan dengan menerapkan eksklusivitas. Artinya, selama sebuah transaksi sedang mengakses sebuah item data, maka tidak ada transaksi lain yang boleh melakukan perubahan terhadap item data tersebut. Metode yang umum digunakan untuk mengimplementasikan hal ini adalah dengan kewajiban melakukan penguncian pada suatu item data sebelum data tersebut diakses.

20 Mode Penguncian Dasar Bersama (Shared).
Jika sebuah transaksi Ti dapat melakukan penguncian dengan mode ini (dilambangkan dengan S) terhadap item data Q, maka Tj dapat membaca, tapi tidak dapat mengubah nilai Q tersebut. Tunggal (Exclusive). Jika sebuah transaksi Tj dapat melakukan penguncian dengan mode ini (dilambangkan dengan X) terhadap item data Q, maka Ti dapat membaca maupun mengubah nilai Q tersebut.

21 Mode Penguncian Dasar (cont…1)
Setiap transaksi harus mengajukan permintaan penguncian (locking) dengan mode tertentu terhadap data Q, sesuai jenis operasi yang akan dilakukan transaksi. Permintaan ini akan dilayani oleh modul Concurency-Control dalam sebuah DBMS. Transaksi tersebut baru dapat melanjutkan/mengerjakan operasi terhadap item data Q tersebut, jika modul ini telah menyerahkan hak penguncian terhadap item data Q kepada transaksi tersebut.

22 Tabel Kunci X S N Y

23 Mode Penguncian Dasar (cont…2)
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.

24 Mode Penguncian Dasar (cont…3)
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.

25 Contoh Lock Based Protocol
Dua buah transaksi T1 dan T2 . T1 berfungsi melakukan pentransferan dana dari rekening B ke rekening A sebesar Rp ,-. Dengan menyertakan perintah-perintah penguncian, maka operasi dalam transaksi T1 dapat kita sajikan sbb :

26 Contoh Lock Based Protocol
T1 : lock-X(B) read(B) B ← B – write(B) unlock(B) lock-X (A) read(A) A ← A write(A) unlock(A)

27 Contoh Lock Based Protocol
Transaksi T2 hanya menampilkan total saldo dari kedua rekening tersebut, A dan B kita nyatakan : T2 : lock-S(A) read(A) unlock(A) lock-S(B) read(B) write(B) display (A+B)

28 Contoh Lock Based Protocol
T1 T2 Modul Concurency Control lock-X (B) grant-X(B, T1 Read(B) B ← B – Write(B) Unlock (B) Lock-S(A) grant-S (A, T2) read (A) unlock(A) lock-S(B) grant-S (B, T2) read(B) unlock(B) display (A+B) Lock-X(A) grant-X(A, T1) Read(A) A ← A Write(A) Unlock(A)

29 Keterangan : Schedule di atas menunjukkan aksi-aksi dan juga dilaksanakan oleh kedua transaksi tsb dan juga titik dimana hak penguncian diberikan oleh modul Concurency Control dalam DBMS. Schedule konkuren di atas menghasilkan informasi yang tidak akurat, maka kita akan melakukan perubahan pada letak perintah pelepasan penguncian (unlock) dengan menundanya hingga akhir transaksi.

30 Transaksinya menjadi T3 dan T4 T3 : lock-X(B)
read(B) B ← B – write(B) Lock-X(A) read(A) A ← A write (A) unlock (B) unlock (A)

31 T4 : lock-S (A) read (A) lock-S (B) read (B) write (B) unlock (A) unlock (B) display (A+B)

32 Jika kedua transaksi tersebut dieksekusi secara konkuren dengan potongan schedule sbb:
T3 T4 lock-X(B) read(B) B ← B – write(B) lock-S (A) read (A) lock-S (B) lock-X (A)

33 Secara teoritis, schedule ini akan memberikan hasil yang akurat sesuai dengan hasil yang diberikan oleh schedule serial. Schedule di atas tidak dapat dilakukan dengan tuntas, karena mengalami kondisi deadlock

34 2. 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.

35 Time Stamping (cont….) Time stamp dapat berupa:
1. waktu sistem saat transaksi dimulai, 2. penghitung logik (logical counter) yang terus bertambah nilainya tiap kali terjadi transaksi baru.

36 Time Stamping (cont….1) Jika timestamp transaksi a lebih kecil daripada timestamp transaksi b , atau TS(Ta) < TS(Tb), maka transaksi a (Ta) selalu dilaksanakan sebelum transaksi b (Tb).

37 Contoh Time Stamping 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 Sekarang, jika transaksi yang akan mengupdate rekaman tersebut memiliki TS 165, maka update ditolak karena TS-nya < TS di rekaman.

38 Time Stamping (cont….2) Selain transaksi, item data juga memiliki nilai time stamp. Untuk setiap item data Q, ada 2 nilai time stamp, yaitu: Read time stamp atau R-timestamp(Q), yang 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).

39 Time-stamping Ordering Protocol
Protokol ini menjamin bahwa tiap operasi read dan write yang memiliki konflik dieksekusi sesuai urutan TS. 1. Untuk transaksi Ta yang menjalankan operasi read(Q) Jika TS(Ta) < W-TS(Q) maka transaksi Ta perlu membaca kembali nilai Q yang telah ditulis dan transaksi Ta akan dibatalkan (rollback). Jika TS(Ta) ≥ W-TS(Q) maka operasi read dieksekusi, dan R-TS(Q) diisi dengan nilai terbesar diantara TS(Ta) dan R-TS(Q).

40 Time-stamping Ordering Protocol (cont…1)
2.Untuk transaksi Ta yang menjalankan operasi write(Q): jika TS(Ta) < R-TS(Q) maka nilai Q yang baru dihasilkan Ta tidak akan dimanfaatkan lagi, dan sistem berasumsi bahwa nilai tersebut tidak pernah dihasilkan. Karena itu operasi write ditolak, dan transaksi Ta di rollback. TS(Ta) < W-TS(Q) maka itu berarti transaksi Ta sedang berusaha melakukan penulisan nilai Q yang kadaluarsa. Maka operasi wrwite ini akan ditolak dan transaksi Ta akan di rollback. Di luar kondisi a dan b di atas, operasi write dieksekusi dan W-TS(Q) diberi nilai baru yang sama dengan TS(Ta).

41 Time-stamping Ordering Protocol (cont…2)
Terhadap transaksi Ta yang di rollback, akan diberikan sebuah timestamp yang baru dan diulang kembali. Properti timestamp: 1. Uniqueness : masing-masing timestamp suatu transaksi adalah unik. 2. Monotonicity : 2 timestamp yang dihasilkan transaksi yang sama meningkat secara monoton.

42 Time-stamping Ordering Protocol (cont…3)
Cara pemberian nilai timestamp: 1. Global (systemwide) monotonically increasing number 2. Local (site) monotonically increasing number.

43 Time-stamping Ordering Protocol (cont…3)
Untuk menggambarkan protokol ini, kita memperhatikan transaksi T7 dan T8. Transaksi T7 menampilkan nilai saldo rekening A dan B dan didefinisikan sbb: T7 : read (B) read (A) display (A+B)

44 Time-stamping Ordering Protocol (cont…4)
Transaksi T8 yang mentrasfer dari rekening A ke rekening B dan kemudian menampilkan isi keduanya. T8 : read (B) B ← B – write (B) read (A) A ← A write (A) display (A+B)

45 Time-stamping Ordering Protocol (cont…5)
Dalam menentukan schedule dengan protokol timestamp, kita mengasumsikan bahwa sebuah transaksi diberikan sebuah timestamp segera sebelum instruksi pertama. Karena itu, dalam schedule berikut ini, TS(T7) < Ts(T8) dan schedule ini mungkin dieksekusi dengan menggunakan protokol Timestamping Ordering.

46 Time-stamping Ordering Protocol (cont…6)
T7 T8 read (B) B ← B – write (B) read (A) Display (A+B) A ←A write (A) display (A+B)


Download ppt "TRANSAKSI DAN PENGENDALIAN PERSAINGAN"

Presentasi serupa


Iklan oleh Google