Database 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.
Tipe dari trigger adalah :
• Application trigger : diaktifkan pada saat terjadi event yang berhubungan dengan
sebuah aplikasi
• Database trigger : diaktifkan pada saat terjadi event yang berhubungan dengan
data (seperti operasi DML) atau event yang berhubungan dengan sistem (semisal
logon atau shutdown) yang terjadi pada sebuah skema atau database.
CONTOH PEMBUATAN TRIGGER
Contoh berikut ini akan mengaktifkan sebuah trigger pada saat sebuah baris
tunggal dimanipulasi pada tabel :
Misal diberikan perintah DML untuk menyisipkan baris baru ke dalam tabel
sebagai berikut :
INSERT INTO departments (department_id, department_name, location_id)
VALUES (400, 'CONSULTING', 2400);
Berikut ini sintak atau cara penulisan untuk pembuatan DML Statement trigger :
CREATE [OR REPLACE] TRIGGER trigger_name
timing
event1 [OR event2 OR event3]
ON table_name
trigger_body
Berikut contoh pembuatan DML Statement trigger :
CREATE OR REPLACE TRIGGER secure_emp
BEFORE INSERT ON employees
BEGIN
IF (TO_CHAR(SYSDATE,'DY') IN ('SAT','SUN')) OR
(TO_CHAR(SYSDATE,'HH24:MI') NOT BETWEEN '08:00' AND '18:00')
THEN RAISE_APPLICATION_ERROR (-20500,'Penyisipan data pada table
EMPLOYEES hanya diperbolehkan selama jam kerja');
END IF;
END;
/
PERINTAH UMUM
Berikut ini perintah-perintah umum yang digunakan pada trigger.
Untuk mengaktifkan atau menonaktifkan database trigger, digunakan perintah :
ALTER TRIGGER trigger_name DISABLE | ENABLE
Untuk mengaktifkan atau menonaktifkan semua trigger yang berlaku untuk
sebuah tabel, digunakan perintah :
ALTER TABLE table_name DISABLE | ENABLE ALL
Untuk melakukan kompilasi ulang sebuah trigger, digunakan perintah :
ALTER TRIGGER trigger_name COMPILE
Untuk menghapus trigger dari database, digunakan perintah :
DROP TRIGGER trigger_name
Catatan : Semua trigger yang berlaku pada sebuah tabel akan dihapus pada saat tabel
tersebut dihapus dari database.
RINGKASAN:
• 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.
Pengertian Stored Prosedure
Adalah program yang disimpan dalam data base seperti halnya data. Hal ini sebenanya cukup tidak umum, karena kita mengharapkan yang disimpan dlam data base adalah data bukan nya program.
Kemampuan utama SQL Server berada pada Store Procedure dan Fungsi (Fungsi hanya terdapat pada SQL Server 2000)
Dengan adanya Store Procedure, maka program SQL yang telah kita buat :
dapat digunakan kapanpun
lebih cepat dan efisien karena bersifat Server Side
mudah dibuat dan dirawat karena kecil tapi ‘Power Full’
Dapat digunakan kapanpun
Seperti halnya pembuatan prosedur pada C++ / Pascal / Java atau pemrograman yang lain, apabila pembuatan program bersifat modular (dibuat kecil untuk setiap maksud/tujuan), akan lebih baik apabila pemrograman tesebut menggunakan banyak prosedur. Dengan dibuat terpisah, kapanpun diinginkan, hanya tinggal memanggil program tersebut.
Lebih cepat dan efisien
Untuk program yang besar, pembuatan program Server Side, terasa lebih mudah dibandingkan Client Side. Dengan Server Side, program lebih bersifat Netral terhadap semua aplikasi. Disisi Programer, ia tidak perlu mengetahui terlalu mendalam terhadap suatu program aplikasi seperti VB, Delphi, Java , C++ Builder, PHP, ASP, J2ME, WAP, SMS dsb. karena tugas–tugas tersebut sebenarnya dapat dilakukan oleh Server (dalam hal ini SQL Server) VB, Delphi, Java , C++ Builder PHP, ASP, J2ME, WAP, SMS dsb tersebut hanyalah User interface/tampilan belaka, yang hanya berfungsi untuk menampilkan data, memasukkan data, serta memberikan parameter-parameter yang dibutuhkan oleh server untuk menghapus , mengubah, skeduling, backup dan sebagainya. Sedangkan program yang sesungguhnya berada pada Server tersebut.
Mudah dibuat dan dirawat karena kecil tapi ‘Power Full’
Kecil dan PowerFull, akan diperlihatkan pada beberapa contoh berikutnya.
Pembuatan Strore Procedure
Syntax :
CREATE PROCEDURE nama_procedure
[@Parameter1 tipe_data_parameter1,……….., [@ParameterN tipe_data_parameterN]
AS
SQL atau TSQL statement
No comments:
Post a Comment