Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

1Transaksi Konsep Transaksi Status transaksi Penerapan Atomisitas dand Durabilitas Eksekusi konkuren Serializability Recoverability Penerapan Isolasi Definisi.

Presentasi serupa


Presentasi berjudul: "1Transaksi Konsep Transaksi Status transaksi Penerapan Atomisitas dand Durabilitas Eksekusi konkuren Serializability Recoverability Penerapan Isolasi Definisi."— Transcript presentasi:

1 1Transaksi Konsep Transaksi Status transaksi Penerapan Atomisitas dand Durabilitas Eksekusi konkuren Serializability Recoverability Penerapan Isolasi Definisi transaksi dalam SQL

2 2 Konsep Transaksi Sebuah transaksi adalah sebuah unit dari eksekusi program yang mampu mengakses dan mengupdate berbagai data. Sebuah transaksi akan berhadapan dengan konsistensi database. Selama eksekusi transaksi database mungkin dalam kondisi inkonsisten. Setelah transaksi selesai, database harus kembali konsisten. Dua hal pokok yang mungkin terjadi:  Kerusakan dari beberapa hal seperti kerusakan hardware dan kerusakan sistem  Eksekusi konkurensi dari transaksi berganda

3 3 Properti AKID Atomik. Dimana semua operasi-operasi dalam transaksi dapat bekerja secara utuh atau tidak sama sekali. Konsisten. Eksekusi transaksi dapat menjamin konsistensi database. Isolasi. Pada sejumlah transaksi yang terjadi secara bersamaan, setiap transaksi tidak boleh terpengaruh dengan transaksi yang lain. Hasil transaksi sementara harus terlindung dari eksekusi transaksi yang lain.  Maksudnya, untuk setiap pasangan transaksi T i dan T j, menunjukkan kepada T i bahwa transaksi lain T j, menyelesaikan eksekusi sebelum T i mulai, atau T j mulai eksekusi setelah T i selesai. Durabel (bertahan/permanen). Setelah sebuah transaksi berakhir dengan sukses, perubahan yang terjadi pada sebuah database harus tetap bertahan, meskipun terjadi kerusakan sistem. Untuk menjamin integritas data, sistem database harus bersifat :

4 4 Contoh pada transfer uang Transaksi pengiriman 50 dari rekening A ke rekening B: 1.read(A) 2.A := A – 50 3.write(A) 4.read(B) 5.B := B write(B) Konsistensi yang dibutuhkan – jumlah A dan B tidak terubah oleh eksekusi transaksi. Keatomikan yang diperlukan — jika transaksi terhenti setelah tahap ke 3 sebelum tahap ke 6, sistem harus menjamin bahwa perubahan pada database tidak terjadi samasekali, sebab jika tidak maka ketidak konsistenan akan terjadi.

5 5 Kebutuhan akan daya tahan — seorang user dapat menyelesaikan sebuah transaksi secara lengkap (mis., transfer 50 telah diterima), perubahan nilai pada database harus tetap bertahan, bahkan jika kemudian terjadi crash. Kebutuhan akan keterisolasian — jika diantara langkah ke 3 dan 6, ada transaksi lain mengakses database yang akan diubah, maka akan terjadi ketidak konsistenan data (jumlah A + B akan lebih sedikit dari yang seharusnya). Dapat dijamin bila transaksi akan terjadi secara serial, dimana yang satu berjalan setelah yang lainnya. Bagaimanapun juga eksekusi transaksi secara bersamaan tetap lebih menguntungkan.

6 6 Status Transaksi Aktif, adalah status awal; sebuah transksi akan ada dalam status ini selama eksekusi berlangsung Selesai sebagian, keadaan yang dicapai transaksi tepat setelah instruksi terakhir dalam transksi selesai dikerjakan. Gagal, kedaan dimana eksekusi belum dapat dikerjakan secara utuh (terhenti). Batal, setelah transaksi batal terjadi dan database dikembalikan nilai-nilainya seperti sebelum transaksi. Dua pilihan setelah pembatalan:  Memulai kembali transaksi – hanya jika tidak ada kesalahan lojik  Hentikan transaksi Berhasil (Committed), keadaan setelah transaksi berjalan lengkap.

7 7 Status Transaksi

8 8 Penerapan Atomik dan Durabel Pengelolaan pemulihan sistem database diterapkan untuk mendukung sifat atomik dan ketetapan. Skema database – bayangan :  Asumsikan bahwa hanya satu transaksi yang aktif pada satu waktu.  Sebuah db_pointer selalu menunjukkan konsistensi saat ini dari salinan database.  Semua update dilakukan pada sebuah salinan database, dan db_pointer adalah yang membuat pengubahan spada salinan hanya setelah transaksi berhasil sebagian dan seluruh halaman yang di update akan ditulis dalam disk.  Dalam kasus terjadinya kegagalan transaksi, kopian data lama yang ditunjuk db_pointer dapat digunakan, dan kopian database dihapus.

9 9 Asumsikan bahwa penulisan tidak gagal Sangat bermanfaat untuk pengolah teks, tetapi tidak efisien untuk database yang besar: eksekusi sebuah transaksi tunggal membutuhkan copian database saat ini Skema database bayangan:

10 10 Eksekusi Konkuren Banyak transaksi dapat dijalankan secara bersamaan dalam sebuah sistem. Keuntungannya:  Meningkatkan kinerja prosesor dan disk penyimpanan, untk melakukan transaksi yang lebih baik: sau transaksi dapat menggunakan CPU sementara yang lain membaca atau menulis dalam penyimpan  Mengurangi rata-rata waktu tunggu transaksi: transaksi yang singkat tidak perlu menunggu transaksi lain yang lebih panjang. Skema pengendalian konkurensi – mekanisme untuk mendapatkan isolasi, mis., untuk mengendalikan interaksi antara transaksi konkuren dalam hubungannya menjaga konsistensi database

11 11 Tiga masalah konkurensi Lost update  Transaksi A retrieve nilai t saat w1. Transaksi B retrieve nilai t saat w2. Transaksi B mengubah nilai satu atau record tanpa melihat efek transaksi A. Transaksi B overwrite nilai-nilai hasil transaksi A sehingga adalah mungkin transaksi A tidak melihat efek perubahan yang dilakukan A Transaksi AWaktuTransaksi B Select * from t;w1 w2Select * from t; *update t set id=1 Where id = 2; w3 w4Update t set id = 3 where id = 2; Transaksi A kehilangan perubahan saat w4

12 12 Uncommitted dependency  Masalah muncul jika transaksi diijinkan retrieve record-record yang telah diubah nilainya oleh transaksi lain yang belum save. Arena belum save selalu ada kemungkinan perubahan tersebut akan di-undo (redo) Transaksi AwaktuTransaksi B w1Update t set dept_id=1; Select * from t;w2 w3rollback; Transaksi A dependent ke uncommitted change saat w2 Transaksi AwaktuTransaksi B w1Update t set dept_id=1; Update t set dept_id=11;w2 w3rollback; A mengubah uncommitted change saat w2, kehilangan saat w3,

13 13Penjadwalan Penjadwalan – urutan yang menunjukkan kronologi transaksi yang mana dalam transaksi konkuren di eksekusi  Sebuah jadwal untuk sekelompok transaksi harus patuh pada semua instruksi dari transaksi-transaksi tersebut  Harus menjaga urutan instruksi yang mana yang ditampilkan pada transaksi tunggal.

14 14 Contoh Penjadwalan Transaksi T 1 transfer 50 dari A ke B, dan transaksi T 2 transfer 10% dari saldo rekening A ke rekening B. Berikut adalah jadwalnya secara serial, dimana T 1 diikuti oleh T 2.

15 15 Transaksi T 1 dan T 2 dijalankan secara berselang seling. Penjadwalan berikut bukan penjadwalan serial, tetapi equivalent dengan Jadwal 1. Baik di Skedul 1 dan 2 jumlah dari A dan B benar.

16 16 Berikut adalah penjadwalan secara konkuren yang tidak menghasilkan jumlah A dan B dengan benar.

17 17Serializability Asumsi dasar – Setiap transaksi menjaga konsistensi database. Eksekusi secara serial dari sekumpulan transaksi menjamin konsistensi database. Sebuah (mungkin konkuren) jadwal adalah serializable jika hasilnya sama dengan jadwal serial. Ada dua cara yang dapat dipilih untuk mengetahui ekivalensi antara sebuah skedul konkuren dengan skedul serial: 1.conflict serializability 2.view serializability Kita hanya akan fokus pada instruksi read dan write, dan kita asumsikan bahwa semua operasi terhadap sebuah data yang terjadi diantara operasi read dand write tersebut hanya berlangsung di dalam memori utama (buffer).

18 18 Conflict Serializability Instruksi l i dan l j dari transaksi T i dan T j berdekatan, conflict jika dan hanya jika ada item data Q yang diakses keduanya l i dan l j, dan salah satu dari instruksi adalah melakukan operasi write terhadap Q. 1. l i = read(Q), l j = read(Q). l i dan l j tidak konflik. 2. l i = read(Q), l j = write(Q). Konflik. 3. l i = write(Q), l j = read(Q). Konflik. 4. l i = write(Q), l j = write(Q). Konflik.1 Konflik antara l i dan l j berhubungan dengan urutan (logical) diantaranya. Jika l i dan l j adalah berurutan jadwalnya dan tidak konflik, hasilnya akan sama meskipun jadwalnya di balik.

19 19 Conflict Serializability Jika skedul S dapat ditransformasikan menjadi skedul S´ dengan melakukan serangkaian pertukaran instruksi-instruksi yang tidak memiliki konflik, maka dikatakan bahwa S dan S´ adalah conflict equivalent (memiliki kesamaan konflik) Dikatakan bahwa skedul S adalah conflict serializable jika conflict equivalent adalah skedul serial Contoh skedul yang tidak conflict serializable: T 3 T 4 read(Q) write(Q) write(Q) Kita tidak dapat mempertukarkan instruksi yang ada pada transaksi T3 dan T4. Oleh sebab itu, skedul tidak memiliki kesamaan konflik dengan skedul serial baik yang urutannya, atau yang urutannya.

20 20 Conflict Serializability Skedul berikut dapat ditransformasikan menjadi sebuah skedul serial dimana T 2 diikuti T 1, dengan mempertukarkan instruksi yang tidak konflik. Dengan begitu skedul adalah conflict serializable.

21 21 View Serializability S and S´ adalah dua skedul yang sama. S dand S´ adalah view equivalent jika memenuhi tiga kondisi berikut : 1.Untuk setiap item data Q, jika transaksi T i membaca nilai awal dari Q pada skedul S, maka transaksi T i pada skedul S´, juga harus membaca nilai awal dari Q. 2.Untuk setiap item data Q jika transaksi T i menjalankan operasi read(Q) dalam skedul S, untuk nilai Q yang dihasilkan transaksi T j (jika ada), maka transaksi T i harus ada di skedul S´ yang juga membaca nilai Q yang dihasilkan transaksi T j. 3.Untuk setiap item data Q, jika transaksi menjalankan operasi write(Q) terakhir pada skedul S, pada skedul S´ juga harus menjalankan operasi write(Q) terakhir.

22 22 View Serializability Sebuah skedul S adalah view serializable karena sama dengan skedul serial. Setiap skedul conflict serializable adalah juga view serializable. Skedul berikut — adalah skedul yang view-serializable tetapi tidak conflict serializable. Setiap skedul view serializable yang tidak conflict serializable mempunyai blind writes.

23 23 Contoh lain Serializability Skedul berikut memberikan hasil yang sama dengan skedul serial, yang juga bukan conflict equivalent atau view equivalent. Untuk membedakan beberapa persamaan membutuhkan analisis operasi selain read dan write.

24 24 Pemulihan kembali (Recoverability) Skedul Recoverable — jika sebuah transaksi T j membaca item data sebelum ditulis oleh transaksi T i, kesepakatan operasi T i ditunjukkan sebelum kesepakatan operasi T j. Skedul berikut tidak recoverable jika T 9 segera sepakat setelah read Jika T 8 dibatalkan, T 9 akan membaca data yang tidak konsisten. Dengan demikian database harus yakin bahwa skedul adalah recoverable. Akibat kegagalan transaksi dibutuhkan pengalamatan dimana operasi konkuren berlangsung.

25 25Recoverability Rollback – terjadi jika sebuah transaksi tunggal gagal. Sehubungan dengan skedul berikut dimana tidak ada transaksi yang comitt. JIka T 10 gagal, T 11 dan T 12 harus di roll back. Dapat membatalkan hasil yang sudah ada

26 26 Penerapan Isolasi Skedul harus dibuat conflict atau view serializable, dan recoverable, untuk menjamin konsistensi database, dan penumpukan lebih baik. Kebijakan bahwa hanya satu transaksi yang diperkenankan jalan dalam satu waktu akan menghasilkan antrian, tetapi tingkat konkurennya rendah. Skema pengendalian konkurensi membandingkan antara nilai konkurensi yang dapat terjadi dengan biaya yang muncul sebagai akaibatnya. Bebrapa skema hanya menggunakan prinsip skedul conflict- serializable, sementara yang lain skedul view-serializable yang tidak conflict-serializable.

27 27 Definisi Transaksi dalam SQL Perlunya identifikasi terhadap adanya blok transaksi pada operasi database, maka DML harus pula memiliki perintah untuk mengidentifikasi transaksi.. dalam SQL, awal transaksi diidentifikasi secara implisit. Tetapi identifikasi akhir harus dinyatakan secara eksplisit dengan salah satu perintah berikut :  Commit work atau commit saja, yang berfungsi mengubah transaksi dari status partial-committed ke status committed, sehingga transaksi dapat dianggap berakhir dan siap memulai transaksi baru.  Rollback work atau rollback saja yang menyebabkan terjadinya pembatalan transaksi (aborted). Tingkat spesifikasi konsistensi SQL-92:  Serializable — default  Repeatable read  Read committed  Read uncommitted

28 28 Levels of Consistency in SQL-92 Serializable — default Repeatable read — hanya record yang commit yang akan dibaca, pembacaan ulang pada record yang sama harus menghasilkan nilai sama. Read committed — hanya record yang commit yang akan dibaca, tetapi pembacaan yang pembacaan record berturut- turut mungkin mendapatkan nilai yang berbeda (tetapi committed). Read uncommitted — kejadian pembacan record yang tidak commit.

29 29 Schedule 2 -- A Serial Schedule in Which T 2 is Followed by T 1

30 30 Schedule 5 -- Schedule 3 After Swapping A Pair of Instructions

31 31 Schedule 6 -- A Serial Schedule That is Equivalent to Schedule 3

32 32 Schedule 7

33 33 Precedence Graph for (a) Schedule 1 and (b) Schedule 2


Download ppt "1Transaksi Konsep Transaksi Status transaksi Penerapan Atomisitas dand Durabilitas Eksekusi konkuren Serializability Recoverability Penerapan Isolasi Definisi."

Presentasi serupa


Iklan oleh Google