Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

TRIGGER LANJUT.

Presentasi serupa


Presentasi berjudul: "TRIGGER LANJUT."— Transcript presentasi:

1 TRIGGER LANJUT

2 Tujuan Pembelajaran Mampu membuat database or system event trigger
Mampu menjelaskan dan mendemokan mutating table pada trigger Mampu menjelaskan dan mendemokan Instead of Trigger

3 System Event Trigger Penggunaan trigger dapat dikelompokkan menurut event yang terjadi: System events Pada saat database startup & shutdown Server error message events, yaitu pada saat terjadi error User events, yaitu Pada saat seorang user melakukan login atau logoff pada schema atau database User operation a.          DDL statements (CREATE, ALTER, and DROP) b.         DML statements (INSERT, DELETE, and UPDATE)

4 Contoh Trigger On System Event
Buatlah trigger bernama TRG_SCHEMA_LOGIN. Trigger ini akan mencatat user aktifitas login pada schema OE, waktu login, dan keterangan loginnya. Jalankan SQLPlus Login ke Schema OE Terlebih dahulu buatlah tabel catat_log (id_user, tgl_log, aksi) untuk menyimpan data akses schema OE. Buat Trigger Uji trigger dengan login ke schema OE Tampilkan data tabel catat_log Dilewat dulu ini untuk videonya

5 Mutating Table Error mutating table terjadi pada saat membuat row trigger dimana pada isi/ body dari trigger yang dibuat terdapat proses yang melibatkan objek (biasanya ) yang sama dengan objek tabel pada event pemicunya . Salah satu hal penting yang harus diperhatikan pada saat menggunakan trigger adalah penanganan error mutating table. Error mutating table terjadi karena secara default trigger tidak diijinkan untuk membaca data yang tidak konsisten saat terjadi operasi DML. Transaksi yang terjadi pada trigger biasanya merupakan transaksi yang bergantung pada transaksi lain sehingga ketika terjadi kegagalan pada transaksi induk maka transaksi yang ada pada trigger akan di-rollback.

6 Mengatasi Error Mutating Table
Beberapa cara yang dapat dilakukan untuk mengatasi error mutating table antara lain: Menggunakan statement trigger jika memungkinkan Menyimpan nilai summary data yang dibutuhkan pada trigger body ke dalam tabel yang terpisah dengan memastikan nilai summary data tersebut tetap up-to-date. Menyimpan summary data yang dibutuhkan pada package. Solusi ini dapat dilakukan jika kita mengunakan statement trigger dengan timing BEFORE Menggunakan compound trigger. Compoud trigger merupakan fitur baru pada oracle 11g yang memungkinkan kita untuk mengkombinasikan lebih dari satu timing pada satu trigger. Bahkan kita dapat membuat row trigger dan statement trigger dalam satu trigger.

7 Contoh Mutating Table Buatlah trigger bernama TRG_TES_MUTATING dimana trigger ini akan menampilkan jumlah data yang terdapat pada tabel departments setelah dilakukan operasi DML di tabel departments Jalankan SQLPlus Login ke HR Ketikan set serveroutput on Buat row trigger berikut Jalankan perintah insert pada tabel departments Akan tampil error mutating table Atasi dengan statement trigger Jalankan kembali perintah insert pda tabel departments Trigger berhasil dijalankan Dilewat dulu ini untuk videonya

8 Trigger Timing Dalam pembuatan sebuah trigger kita dapat menentukan trigger timing yaitu apakah trigger body akan dieksekusi sebelum atau sesudah triggering statement dieksekusi. Before trigger menjalankan trigger body sebelum event atau triggering statement. Oleh karena itu, trigger ini cocok digunakan untuk mendeteksi bagaimana event boleh dilanjutkan maupun tidak. After trigger menjalankan trigger action setelah event terjadi. Before dan After trigger tidak dapat diimplementasikan pada view Instead Of Trigger Instead of  trigger hanya akan dieksekusi pada view dan diaktivasi jika terjadi perubahan pada tabel asal. Proses yang akan dilakukan oleh triggering statement akan digantikan oleh aksi pada trigger body. Dilewat dulu ini untuk videonya

9 Contoh Instead of Trigger
Buatlah Trigger yang digunakan untuk keamanan data, sehingga jika ada yang berusaha menghapus isi tabel rekam, maka akan proses penghapusan akan digagalkan dan dalam tabel rekam dicatat "berusaha menghapus rekaman data" Pertama, sebelum kita membuat triggernya, kita terlebih dahulu membuat sebuah VIEW CREATE VIEW v_rekaman  as select pelaku, tanggal, aksi from rekaman; kemudian kita membuat triggernya Lakukan penghapusan pada vrekam Maka trigger akan muncul dan data di vrekam tidak terhapus Dilewat dulu ini untuk videonya

10 Referensi Feuerstein, Steven, dan Bill Pribyl. Oracle PL/SQL programming. Sebastopol, CA: O'Reilly, Print. Urman, Scott, Ron Hardman, dan Michael McLaughlin. Oracle Database 10g PL/SQL Programming. New York: McGraw- Hill/Osborne, Print. Srivastava, Tulika, dan Glenn Stokol. Oracle Database 10g: Develop PL/SQL Program Units 2nd Edition. Boston: Oracle Publisher, 2006. Dedy Rahman Wijaya. Modul Praktikum Pemrograman Basis Data. Universitas Telkom, 2014.


Download ppt "TRIGGER LANJUT."

Presentasi serupa


Iklan oleh Google