Anda di halaman 1dari 20

CSH2C3/ PEMODELAN BASIS DATA

TRIGGER
TEAM DOSEN PBD GANJIL 2016/2017

OUTLINE
Overview PL/SQL

Overview Trigger
Fungsi dan Kelebihan
Jenis Trigger
Syntax Trigger
Cascading Trigger

Overview PL/SQL

Overview PL/SQL

Anonymous

Sub Program

PL/SQL

Named Block

Fuction
Procedure
Package

Trigger

Struktur Blok PL/SQL

Overview Trigger
Trigger merupakan prosedur yang ditulis dalam
blok PL/SQL yang dijalankan secara otomatis
ketika sebuah tabel atau view dimodifikasi atau
pada saat terjadi aksi-aksi tertentu oleh user atau
sistem database.

Fungsi dan Kelebihan


Mencegah transaksi yang tidak valid.

Dapat menerapkan aturan bisnis yang lebih rumit.


Secara otomatis dapat memberikan nilai pada suatu kolom.
Memperbaiki keamanan database dengan menyediakan
audit yang lebih kompleks mengenai informasi perubahan
database dan user siapa yang melakukan perubahan.
Memperbaiki integritas data dengan membuat integrity
constraint yang kompleks yang tidak mungkin ditangani oleh
sintaks pembuat table.

Jenis Trigger
Row-level dan Statement-level Trigger

Before dan After Trigger


Instead of Trigger modifikasi view
System Event level DBA
User Event Trigger DDL, DML, User Log On/Off

Syntax Trigger

Contoh:
Trigger BEFORE and row-level)

Contoh ( Trigger User Log On)

Trigger instead of
INSTEAD OF triggers merupakan sebuah cara transparant
untuk memodifikasi view yang tidak dapat dimodifikasi
secara langsung lewat perintah UPDATE, INSERT, dan
DELETE
Dengan menggunakan INSTEAD OF trigger, kita dapat
menuliskan perintah UPDATE, INSERT, dan DELETE pada
suatu view, dan INSTEAD OF trigger akan bekerja secara
tranparant di belakang layar untuk melakukan serangkaian
aksi yang tepat.
INSTEAD OF triggers hanya dapat diaktifkan untuk for
each row

Contoh (Trigger Instead Of)

Hasil Eksekusi (Trigger Instead Of)

CASCADING TRIGGER

Mengubah Status Trigger


ALTER TRIGGER nama_trigger DISABLE

ALTER TRIGGER nama_trigger ENABLE


ALTER TABLE nama_tabel DISABLE ALL TRIGGER;
ALTER TABLE nama_tabel ENABLE ALL TRIGGER;
DROP TRIGGER nama_trigger

Latihan
Buatlah sebuah trigger untuk memblok pelayanan
transaksi penjualan (blokir insert data pada tabel
pembelian) oleh PGW001 pada setiap hari
SELASA. ( Asumsi current date : 3 Dec 2013)
Note : Gunakan raise_application_error
Contoh ekseskusi triggering statement :

Pembahasan Pembuatan Trigger


create or replace trigger cekDayPeg
before insert on pembelian
for each row
begin
if to_char(sysdate,'DAY') = 'SELASA' and :new.id_pegawai ='PGW001' then
raise_application_error(-20001,'Maaf, pegawai '||:new.id_pegawai ||'tidak berhak melayani penjualan di
hari Selasa');
end if;
end;
/

Referensi
http://docs.oracle.com

Modul praktikum Basis Data Dept. Informatika

Anda mungkin juga menyukai