Trigger

Pengertian
Dalam suatu aplikasi, proses validasi data dapat di lakukan pada level aplikasi. Sebagai contoh jika diinginkan untuk membatasi proses penjualan, jika ternyata stok barang yang tersedia telah habis. Dengan cara ini aturan bisnis ditempatkan sebagai kode program di aplikasi. Namun permasalahannya jika terjadi aturan bisnis maka kode program harus diubah dan didistribusikan ke semua client. Oleh karena itu sangat disarankan untuk menempatkan aturan bisnis dalam database untuk mempermudah pemeliharaan dan pengembangan lebih lanjut. Untuk mengatasi semua permasalahan ini di Oracle tersedia trigger.

Trigger merupakan suatu store-procedure yang otomatis dipanggil oleh Oracle, ketika diberikan perintah manipulasi data terhadap suatu tabel. Perintah manipulasi data ini seperti yang kita kenal berupa INSERT, UPDATE dan DELETE. Kegunaan utama trigger adalah untuk mengeset atau mengubah nilai kolom suatu table, sehingga validasi nilai dari table tersebut tetap terjaga. Adanya trigger dalam database akan meringankan dalam pembuatan database. Trigger juga dapat menentukan apakah perintah tersebut dapat tetap dilakukan atau dibatalkan sesuai aturan bisnis yang berlaku di skema database tersebut

Selain kegunaan diatas trigger juga mempunyai banyak kegunaan lainnya, beberapa diantaranya:
– Menentukan nialai kolom-kolom tertentu secara otomatis
– Menghindari transaksi data yang tidak valid
– Membuat autorisasi sekuriti yang kompleks
– Membuat business rule yang kompleks

Trigger dapat dipasangkan sebelum atau sesudah ( BEFORE atau AFTER ) perintah tersebut. Pemanggilan trigger tidak dilakukan secara eksplisit oleh pemakai, melainkan oleh Oracle pada saat Oracle mendeteksi adanya kejadian (event) yang menjadi syarat pemanggilan trigger.

Karakteristik Trigger

Cacah maksimal trigger yang mungkin diterapkan pada suatu table sebanyak 12, yang merupakan kombinasi dari tiga karakteristik: Aksi, Level dan Waktu.

Sebagai catatan juga trigger tidak hanya dapat digunakan untuk menerapkan aturan bisnis saja, namun dapat juga diterapkan untuk berbagai situasi, sebagai berikut:
a. Menetapkan referential integrity pada system database terdistribusi
b. Menerapkan aturan bisnis yang tidak dapat dinyatakan pada deklaratif constraint check, not null, primary key, foreign key, delete escade dan delete set null.
c. Memvalidasi transaksi data
d. Meng-update data tabel ketika terjadi manipulasi view
e. Membuat log audit dan log suatu event terhadap transaksi yang dikerjakan

Suatu trigger terdiri dari 3 bagian yaitu event atau statement pemicu (triggering event), kondisi untuk menjalankan trigger (trigger restriction) dan body yang berisi statement yang di kerjakan (trigger action).

Tipe Trigger

Dalam pengerjaannya aksinya trigger didasarkan menurut tipe-tipenya yang melekat pada database, schema dan objek. Berdasarkan jumlah aksinya trigger dibedakan atas: trigger row dan trigger statement, sedangkan berdasarkan waktu kejadiannya maka trigger yang dijalankan berdasarkan sebelum (before) dan sesudah (after) event atau statement pemicu.
a. Trigger row. Eksekusi trigger dilakukan untuk setiap baris (row) yang sedang dimanipulasi melalui statement insert, update, delete. Trigger ini mengerjakan aksinya 1 kali untuk setiap baris yang sedang dimanipulasi ditunjukkan dengan klausa for each row.
b. Trigger statement. Eksekusi trigger ini dilakukan 1 kali tanpa memperhatikan jumlah baris tabel. Misalnya jika insert untuk menambahkan beberapa baris maka trigger statement untuk insert itu hanya dilakukan 1 kali saja dan tanpa menggunakan klausa for each row. Trigger ini biasanya digunakan pengecekan akhir sebelum data disimpan ke tabel maupun untuk membuat riwayat transaksi.
c. Trigger before. Menjalankan trigger action sebelum event atau statement pemicu berlangsung. Trigger ini diterapkan pada statement DML dan DDL sebelum statement berlangsung. Oleh karena itu trigger ini banyak digunakan untuk mendeteksi apabila event atau pemicu boleh dilanjutkan maupun untuk menyimpan nilai kolom pada statement DML.
d. Trigger after. Menjalankan trigger action setelah event atau statement berlangsung. Trigger ini diterapkan pada statement DML dan DDL setelah event pemicu berlangsung.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: