TRIGGER
A.
Definisi Trigger
Trigger adalah blok PL/SQL atau prosedur yang berhubungan dengan
table, view, skema atau database yang dijalankan secara implicit pada saat
terjadi sebuah event.
Trigger dapat
pula didefinisikan sebagai objek database yang di asosiasikan dengan sebuah tabel dan akan
aktif (terpicu/trigger) ketika sebuah event terjadi pada tabel tersebut Trigger
hanya terjadi ketika ada eksekusi INSERT, DELETE, dan UPDATE pada tabel yang
bersangkutan Waktu eksekusi trigger yang mungkin terjadi terdiri dari 2 yaitu
BEFORE dan AFTER dari statement SQLnya.
Implementasi trigger yang sering ditemui dalam dunia
nyata adalah untuk mengeset dan mengubah nilai kolom dalam suatu tabel sehingga
validasi nilai dari tabel tersebut akan terjaga. Adanya trigger dalam database
akan meringankan kita dalam pembuatan aplikasi karena di dalam aplikasi yang
kita buat kita tidak perlu lagi untuk melakukan validasi data.
Konsep Trigger
·
Trigger
adalah object database yang berisi kumpulan perintah SQL yang akan dieksekusi
atau dijalankan ketika suatu event terjadi.
·
Dalam satu database kita dapat mendefinisikan
lebih dari satu Trigger, asalkan nama dari masing masing trigger berbeda.
·
Trigger
harus berasosiasi dengan tabel tertentu sebagai pemicu trigger untuk menentukan
kapan trigger tersebut dieksekusi.
·
Trigger
memiliki referensi New dan OLD.
B.
Jenis Trigger
Ada
2 jenis trigger yaitu:
·
Application trigger
Terjadi pada saat sebuah kejadian terjadi
dengan aplikasi tertentu.
·
Database trigger
Terjadi pada saat terjadi sebuah perubahan
data seperti DML pada table (INSERT, UPDATE atau DELETE)
C.
Penggunaan Trigger
Trigger
dibuat sesuai dengan keperluan. Ada kalanya trigger perlu dibuat, dan
kadangkala tidak perlu dibuat.
Trigger
perlu dibuat pada saat :
·
embentuk
sebuah aksi tertentu terhadap suatu event
·
Memusatkan
operasi global Trigger tidak perlu dibuat, jika :
·
Fungsionalitas
yang diperlukan suatu ada pada Oracle server
·
Duplikat
atau sama dengan fungsi trigger yang lain.
Prosedur
bisa dibuat dalam database, kemudian prosedur tersebut dipanggil pada
trigger. Jika penggunaan trigger terlalu berlebihan, maka akan
menyebabkan terjadi sifat ketidaktergantungan yang terlalu
kompleks sehingga akan mempersulit pemeliharaan dari aplikasi yang besar.
Pada gambar tersebut, database trigger CHECK_SAL memeriksa nilai
gaji pada saat suatu aplikasi mencoba untuk memasukkan baris baru ke dalam
table EMPLOYEES. Nilai yang terletak pada jangkauan diluar kategori pekerjaan
akan diabaikan.
Sintak penulisan dari database trigger, berisi komponen berikut
:
1. Trigger timing :
a) Untuk tabel : BEFORE,
AFTER
b) Untuk view : INSTEAD
OF
2. Trigger event :
INSERT, UPDATE atau DELETE
3. Nama tabel : yaitu
nama tabel atau view yang berhubungan dengan trigger
4. Tipe trigger : Baris
atau Pernyataan (statement)
5. Klausa WHEN : untuk kondisi pembatasan
6. Trigger body : bagian prosedur yang dituliskan
pada trigger
D.
Komponen Trigger
Komponen dari
sebuah trigger ada 6 (enam), yaitu : trigger timing, trigger event, nama tabel,
tipe trigger, klausa WHEN, dan trigger body.
Berikut ini penjelasan
komponen dari trigger. Trigger timing adalah waktu kapan trigger
diaktifkan. Ada tiga macam trigger
timing, yaitu :
·
BEFORE : trigger dijalankan sebelum DML event pada tabel
·
AFTER : trigger dijalankan setelah DML event pada tabel
·
INSTEAD OF : trigger dijalankan pada sebuah view.
Trigger event
ada 3 kemungkinan : INSERT, UPDATE atau DELETE. Pada saat trigger event UPDATE,
kita dapat memasukkan daftar kolom untuk mengidentifikasi kolom mana yang
berubah untuk mengaktifkan sebuah trigger (contoh : UPDATE OF salary ...
). Jika tidak ditentukan, maka
perubahannya akan berlaku untuk semua kolom pada semua baris.
Tipe trigger
ada 2 macam, yaitu :
·
Statement : trigger dijalankan sekali saja pada saat
terjadi sebuah event. Statement trigger
juga dijalankan sekali, meskipun tidak ada satupun baris yang dipengaruhi oleh
event yang terjadi.
·
Row : trigger dijalankan pada setiap baris yang
dipengaruhi oleh terjadinya sebuah event.
Row trigger tidak dijalankan jika event dari trigger tidak berpengaruh
pada satu baris pun.
Trigger body mendefinisikan tindakan
yang perlu dikerjakan pada saat terjadinya event yang mengakibatkan sebuah
trigger menjadi aktif.
E.
Keuntungan Trigger
Dalam sebuah tabel dapat mempunyai beberapa
trigger. Trigger sangat berguna karena dapat secara otomatis dilaksanakan dalam server, sehingga
menyederhanakanpemorgraman, sekaligus menjaga konsistensi
informasi dalam database.
Keuntungan penggunaan Trigger antara lain :
a)
Standarisasi (penyeragaman) proses. Trigger dibuat satu
kali dan tersimpan dalamdatabase, sehingga semua client yang menggunakan
database tersebut sekaligus adalah pengguna Trigger. Dengan
demikian seluruh client akan menggunakan operasi yang samaterhadap suatu
proses dalam database, karena Trigger yang dipakai sama.
b)
Menyederhanakan pemrograman. Apabila Trigger sudah dibuat
dalam database server, seluruh program dalam bahasa apapun, yang mengakses
database tersebut akan secara otomatis menggunakan Triger yang
ada tanpa perlu membuat perintahnya dalam program
aplikasi.
aplikasi.
c)
Mudah diperbaharui. Apabila Trigger pernah di-update dalam
database server, semua client akan menggunakan perbaruan yang terakhir
d)
Kecepatan dan efisiensi proses. Oleh karena
Trigger disimpan dalam server dalam kode yang sudah terkompilasi, dan
dilaksanakan dalam server sehingga lalu-lintas jaringan menjadi berkurang.
e)
Memudahkan kerja secara tim. Apabila Trigger dan Stored
Procedure sudah dibuat, anggota tim kerja dapat menggunakan bahasa
pemrograman yang berbeda dalam mengaksesnya, karena Trigger disimpan
dan dilaksanakan oleh server, tanpa melihat
bahasa pemrograman apa yang dipakai oleh pengguna database.
bahasa pemrograman apa yang dipakai oleh pengguna database.
Manfaat
menggunakan trigger:
·
Trigger dapat mengubah nilai kolom pada
tabel ini
·
Trigger dapat memperoleh nilai lama dari
baris data yang telah dihapus atau diubah.
PENUTUP
Trigger adalah blok PL/SQL
atau prosedur yang berhubungan dengan table, view, skema atau database yang
dijalankan secara implicit pada saat terjadi
event.
Tipe dari trigger adalah Application trigger
(diaktifkan pada saat terjadi event yang berhubungan dengan sebuah aplikasi)
dan database trigger (diaktifkan pada saat terjadi event yang berhubungan
dengan data). Trigger dibuat pada saat yang tepat jika diperlukan yaitu untuk
membentuk sebuah aksi tertentu terhadap suatu event dan memusatkan operasi
global
Penggunaan trigger yang
terlalu berlebihan akan menyebabkan terjadi sifat ketidaktergantungan yang
terlalu kompleks sehingga akan mempersulit pemeliharaan dari aplikasi yang
besar.Trigger berisi komponen-komponen : trigger timing, trigger event, nama
tabel, tipe trigger, klausa WHEN dan trigger body.
Beberapa event pada
trigger bisa dikombinasikan dalam sebuah trigger dengan menggunakan predikat
kondisional INSERTING, UPDATING dan DELETING. Pada Row Trigger, nilai dari
kolom sebelum dan sesudah perubahan data dapat dirujuk dengan menggunakan OLD
dan NEW qualifier.
terimakasih atas infonya
BalasHapussolder uap portable digital