Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

Collabnet Overview v 1.2 021201 Informatika BAB XIII Menangani Transaksi.

Presentasi serupa


Presentasi berjudul: "Collabnet Overview v 1.2 021201 Informatika BAB XIII Menangani Transaksi."— Transcript presentasi:

1 Collabnet Overview v 1.2 021201 Informatika BAB XIII Menangani Transaksi

2 Informatika 2 Transaksi  ATM : pemasukan kartu ATM, pemasukan PIN, penentuan jumlah uang, pengambilan uang.  Ada 2 kemungkinan dalam transaksi: - transaksi dianggap berhasil, jika semua proses berjalan dengan lancar - transaksi dianggap gagal, kalau ada salah satu bagian proses yang gagal

3 Informatika 3 Menandai awal transaksi  dBase IV : BEGIN TRANSACTION  PostgreSQL : BEGIN WORK  ORACLE : SAVEPOINT

4 Informatika 4 Menyetujui transaksi  Sintaks: COMMIT [WORK];  Contoh: COMMIT; atau COMMIT WORK;

5 Informatika 5 Membatalkan transaksi  Sintaks: ROLLBACK [WORK];  Contoh: ROLLBACK; atau ROLLBACK WORK;

6 Informatika 6 Gambaran COMMIT dan ROLLBACK  Tes 1 : melihat isi pegawai dengan NIP=12345 SELECT nip, nama FROM pegawai WHERE nip = ‘12345’;  Tes 2 : mengawali transaksi BEGIN WORK;  Tes 3 : mengubah gaji & depart UPDATE pegawai SET gaji = 3500000, depart = ‘EDP’ WHERE nip = ‘12345’;

7 Informatika 7 Gambaran COMMIT dan ROLLBACK  Tes 4 : melihat isi baris NIP = 12345 SELECT * FROM pegawai WHERE nip = ‘12345’;  Tes 5 : membatalkan perubahan ROLLBACK;  Tes 6 : melihat isi baris NIP = 12345 SELECT * FROM pegawai WHERE nip = ‘12345’;

8 Informatika 8 Gambaran COMMIT dan ROLLBACK  Tes 7 : mengawali transaksi, mengubah gaji & depart BEGIN WORK; UPDATE pegawai SET gaji = 3500000, depart = ‘EDP’ WHERE nip = ‘12345’;  Tes 8 : Menyetujui perubahan COMMIT;  Tes 9 : melihat isi baris NIP = 12345 SELECT * FROM pegawai WHERE nip = ‘12345’;

9 Informatika 9 Problem pada multiuser  Pemutakhiran yang hilang (lost update)  Pembacaan kotor (dirty read)  Pembacaan yang tidak sama (non-repeatable read)  Penyisipan yang tak dikehendaki (phantom insert)

10 Informatika 10 lost update Transaksi #1 (butuh 4 kursi)Isi basis dataTransaksi #2 (butuh 3 kursi) SELECT kosong FROM kursi WHERE jadwal = 300; Kosong = 10 SELECT kosong FROM kursi WHERE jadwal = 300; UPDATE kursi SET kosong = 6 WHERE jadwal = 300; Kosong = 6 COMMIT WORK;Kosong = 7UPDATE kursi SET kosong = 7 WHERE jadwal = 300; COMMIT WORK;

11 Informatika 11 dirty read Transaksi #1Isi basis dataTransaksi #2 SELECT kosong FROM kursi WHERE jadwal = 300; Kosong = 10 UPDATE kursi SET kosong = 6 WHERE jadwal = 300; Kosong = 6 SELECT kosong FROM kursi WHERE jadwal = 300; ROLLBACK WORK;Kosong = 10

12 Informatika 12 non-repeatable read Transaksi #1Isi basis dataTransaksi #2 Kosong = 10 SELECT kosong FROM kursi WHERE jadwal = 300; UPDATE kursi SET kosong = 6 WHERE jadwal = 300; Kosong = 6 SELECT kosong FROM kursi WHERE jadwal = 300;

13 Informatika 13 phantom insert Transaksi #1keadaan basis dataTransaksi #2 SELECT jadwal, COUNT(kosong) FROM kursi GROUP BY jadwal, kosong; INSERT INTO kursi (kosong, jadwal) VALUES (350, 321); Sebuah baris ditambahkan SELECT jadwal, COUNT(kosong) FROM kursi GROUP BY jadwal, kosong;

14 Informatika 14 Penanganan multiuser  Mekanisme penanganan multiuser disebut penguncian (locking)  Untuk mencegah orang lain mengubah baris sebelum transaksi di-COMMIT, tambahkan FOR UPDATE pada perintah SELECT (PostgreSQL). Misal: SELECT * FROM pegawai WHERE nip = ‘12345’ FOR UPDATE;

15 Informatika 15 Macam level isolasi Level isolasilost updatedirty readnon-repeatable readphantom insert SERIALIZABLETIDAK REPEATABLE READTIDAK YA READ COMMITEDTIDAK YA READ UNCOMMITEDTIDAKYA

16 Informatika 16 Macam level isolasi  SERIALIZABLE, merupakan level kontrolyang paling tinggi. Level isolasi ini memperlakukan sistem seperti kalau berjalan dalam lingkungan single user  REPEATABLE READ, memungkinkan terjadinya kasus panthom insert.  READ COMMITED, memperkenankan query yang dieksekusi beberapa kali memberikan hasil yang berbeda, tetapi hanya bisa membaca transaksi yang telah di-COMMIT  READ UNCOMMITED, memungkinkan pembacaan data yang belum di-COMMIT

17 Informatika 17 Level isolasi  Penentuan level isolasi SET TRANSACTION ISOLATION LEVEL level_isolasi;  Contoh: SET TRANSACTION ISOLATION LEVEL READ COMMITED; SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;

18 Informatika 18 Level isolasi  Default untuk PostgreSQL adalah READ COMMITED  PostgreSQL hanya mendukung READ COMMITED dan SERIALIZABLE

19 Collabnet Overview v 1.2 021201 Informatika Terima Kasih Tanya & Jawab


Download ppt "Collabnet Overview v 1.2 021201 Informatika BAB XIII Menangani Transaksi."

Presentasi serupa


Iklan oleh Google