Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

TRIGGER (Statement & Row Trigger)

Presentasi serupa


Presentasi berjudul: "TRIGGER (Statement & Row Trigger)"— Transcript presentasi:

1 TRIGGER (Statement & Row Trigger)

2 Tujuan Pembelajaran Mampu menjelaskan statement dan row level trigger
Mampu mendemokan cara membangun statement dan row level trigger Mampu menjelaskan dan mendemokan manajemen trigger

3 Pendahuluan Trigger merupakan blok PL/SQL yang memiliki fungsi hampir sama dengan procedure maupun function. Hanya saja, jika procedure atau function dijalankan secara eksplisit lewat pemanggilan procedure atau function tersebut, sedangkan untuk trigger, dijalankan secara implisit melalui operasi insert, delete atau update.

4 Manfaat Trigger Mengatur integritas dari constraint yang kompleks yang tidak mungkin ditangani oleh sintaks-sintaks pembuatan tabel. Mencegah transaksi yang tidak valid Memperbaiki keamanan database dengan menyediakan audit yang lebih kompleks mengenai informasi perubahan database dan user siapa yang melakukan perubahan. Secara otomatis memberi sinyal program lain untuk melakukan sesuatu jika isi tabel diubah.

5 Keterbatasan Trigger Tidak dapat menggunakan perintah commit dan rollback, selain itu juga tidak dapat memanggil procedure, function atau package yang menggunakan perintah commit dan rollback. Tidak dapat diimplementasikan pada kolom pada suatu tabel yang memiliki constraint, jika pada akhirnya akan menyebabkan pelanggaran constraint. Biasanya terjadi akibat modifikasi pada primary key.

6 Jenis-jenis Trigger Application trigger: dibangkitkan ketika terjadi event pada aplikasi (Oracle Form Developer) Database Trigger: dibangkitkan ketika terjadi event pada data (contoh: DML) atau event pada system (contoh: logon, shutdown, dll) pada schema database.

7 DML trigger DML trigger merupakan jenis trigger yang dieksekusi ketika terjadi operasi DML (insert, update, delete), dibagi menjadi dua yaitu : Row-level Trigger Dieksekusi untuk setiap row yang dimanipulasi pada suatu transaksi. Artinya tidak akan dieksekusi jika tidak ada row data yang berubah Penerapan trigger ini ditunjukkan oleh adanya klausa FOR EACH ROW. Statement Trigger Statement-level trigger dieksekusi satu kali pada saat transaksi, tanpa memperhatikan jumlah row yang terlibat. Secara default trigger yang dibuat adalah statement-level trigger. Akan selalu dieksekusi walaupun tidak ada row data yang berubah

8 Struktur Dasar Trigger
Trigger timing CREATE [or replace] TRIGGER nama_trigger ( BEFORE|AFTER ) ( INSERT|UPDATE [OF nama_kolom,..]|DELETE )ON nama_table [FOR EACH ROW] [WHEN (kondisi)] DECLARE Deklarasi tipe data BEGIN Trigger body END; Trigger event Trigger type Trigger restriction

9 Penjelasan Struktur Dasar Trigger
Bagian Trigger Keterangan Nilai yang mungkin Trigger timing Menunjukkan kapan trigger akan dieksekusi relatif terhadap suatu event. BEFORE AFER INSTEAD OF Trigger event Jenis manipulasi data pada tabel/view yang menyebabkan trigger terpacu. INSERT UPDATE DELETE CREATE ALTER DROP STARTUP SHUTDOWN LOGOFF LOGON SERVERERROR SUSPEND Trigger restriction (optional) Batasan yang mengizinkan pengeksekusian trigger. When (boolean value) Trigger type Berapa kali body trigger dieksekusi. ROW-level STATEMENT-level Trigger body Berisi algoritma aksi yang akan dilakukan. Blok PL/SQL

10 Contoh Statement Trigger
Buatlah trigger bernama TRG_DEPARTMENT_NAME_UPDATE untuk mencegah perubahan data department name di tabel departments pada saat hari dan jam kerja. Asumsikan hari kerja adalah senin s.d jumat. Jalankan SQLPlus Login ke hr Definisinikan nama trigger yang akan dibuat! Tentukan trigger timing dan event-nya Tuliskan isi/ body dari trigger Dilewat dulu ini untuk videonya

11 Referensi Nilai Kolom di Trigger
Dalam trigger, dikenal istilah alias atau referensi, yaitu sejenis variabel yang menyimpan nilai dari suatu kolom dalam tabel. Alias terbagi menjadi dua, yaitu: Untuk mendapatkan data baru pada sebuah tabel di dalam trigger body, dapat dilakukan dengan perintah sebagai berikut: :new.nama_kolom Untuk mendapatkan data lama pada sebuah tabel di dalam trigger body, perintah yang digunakan: :old.nama_kolom

12 Contoh Row Trigger Buat trigger TRG_DML_WARNING untuk menampilkan warning pada saat terjadi proses DML pada tabel kota dengan menampilkan detail perubahan datanya (data lama dan baru) dengan memanfaatkan referensi (OLD dan NEW)! Login ke system Definisinikan nama trigger yang akan dibuat! Tentukan trigger timing dan event-nya Tambahkan perintah FOR EACH ROW setelah trigger timing dan event Tuliskan isi/ body dari trigger Dilewat dulu ini untuk videonya

13 Manajemen Trigger Ada 4 cara untuk mengaktifkan (enable) dan me-nonaktifkan (disable) suatu trigger di database Oracle, yaitu: Mengaktifkan (enable) sebuah trigger Mengaktifkan semua (enable all) trigger Menonaktifkan (disable) sebuah trigger Menonaktifkan semua (disable all) trigger

14 Mengaktifkan (enable) Sebuah Trigger
Sintak dasar untuk mengaktifkan sebuah (satu) trigger di database Oracle: ALTER TRIGGER nama_trigger ENABLE; Contoh: ALTER TRIGGER before_insert_dep ENABLE; Perintah di atas akan meng-aktifkan trigger BEFORE_INSERT_DEP Sintak dasar untuk mengaktifkan semua trigger disebuah tabel di database ALTER TABLE nama_table ENABLE ALL TRIGGERS; Contoh : ALTER TABLE dept ENABLE ALL TRIGGERS; Perintah di atas akan mengaktifkan semua trigger di tabel dept

15 Menonaktifkan (disable) Sebuah Trigger
Sintak dasar untuk menonaktifkan sebuah (satu) trigger disebuah tabel di database Oracle: ALTER TRIGGER nama_trigger DISABLE; Contoh: ALTER TABLE dept DISABLE ALL TRIGGERS; Perintah diatas menonaktifkan semua trigger di tabel DEPT Sintak dasar untuk me-nonaktifkan semua trigger di sebuah tabel di database Oracle: ALTER TABLE nama_table DISABLE ALL TRIGGERS; Contoh : Perintah diatas menonaktifkan semua trigger di tabel DEPT.

16 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 (Statement & Row Trigger)"

Presentasi serupa


Iklan oleh Google