TRIGGER (Statement & Row Trigger)

Slides:



Advertisements
Presentasi serupa
Antonius Wahyu Sudrajat, S. Kom., M.T.I. Trigger.
Advertisements

SQL – DML.
DESAIN & KONFIGURASI DATABASE
MATA KULIAH : “LOGIKA DAN ALGORITMA”
Error Handling (Exception) & INDEX
Pengamanan Basis data.
T R I G G E R.
DML Lanjutan Pertemuan Minggu Ke-10.
Manajemen Basis Data menggunakan SQL Server
TRIGGER.
Triggers & Stored Procedure The main reference of this presentation is from book: Peter Rob, Carlos Coronel, “Database systems: Design, Implementation.
Praktek Pemograman Client-Server
Procedure Siti Mukaromah, S.Kom.
TRIGGER Siti Mukaromah, S.Kom.
TRIGGER.
- Semua resource  kontrol by DBMS - Kondisi yang dibutuhkan agar user dapat mengakses fungsi DBMS - User diberi hak untuk mengakses fungsi - Atau fungsi.
Review DDL Pertemuan ke 2.
Triggers & Stored Procedure The main reference of this presentation is from book: Peter Rob, Carlos Coronel, “Database systems: Design, Implementation.
Tabled Value Parameter. Tabled Value Parameter merupakan tipe data yang dibuat oleh user Tabled Value Parameter digunakan untuk mengirimkan multiple rows.
Antonius Wahyu Sudrajat, S. Kom., M.T.I. Perintah SQL: Data Definition.
Data Types Data Definition Language Referential Constraint SQL Query
FUNGSI & TRIGGER ACHMAD YASID.
Cursor MI2163 Dasar Pemrograman Basis Data. Introduction Cursor merupakan suatu variabel yang digunakan untuk menampung hasil query yang terdiri atas.
Disampaikan Oleh : Wiratmoko Yuwono
SQL Basis Data.
Exception Handling: Non Predefined Exception
PACKAGE.
Outline: Relational Data Model Entity Relationship Diagram
Pendahuluan Nama Mata Kuliah : Dasar Pemrograman Basis Data
Exception Handling: User-defined Exception
Stored Procedure Dengan Parameter
Stored Function Tanpa Parameter
TRIGGER LANJUT.
Tujuan Pembelajaran Mampu menjelaskan dan mendemokan konsep overload pada subprogram; Mampu menjelaskan dan mendemokan cara membangun initialization.
PENJURUSAN DI ORACLE ORACLE DEVELOPER
TRIGGER SYAIFUL HUDA, S.Kom.
DEKLARASI VARIABEL DALAM PL/SQL
STORED PROCEDURE & TRIGGER
PENGANTAR STRUCTURED QUERY LANGUAGE (SQL)
Integritas basis data.
SQL.
View dan Trigger Materi 5
Manajemen Basis Data menggunakan SQL Server
Data Manipulation Languange (DML) Perintah INSERT dan DELETE
Sistem Basis Data ABU SALAM, M.KOM.
TRIGGER.
SQL OVERVIEW.
Pendahuluan Nama Mata Kuliah : Pemrograman Basis Data
TRIGER.
Procedure Siti Mukaromah, S.Kom.
Blok PL/SQL Non Modular dan Modular
PENGANTAR STRUCTURED QUERY LANGUAGE (SQL)
Anonymous Blok PL/SQL dan Tipe Data
Stored Procedure Tanpa Parameter
OLEH : Slamet Sn Wibowo Wicaksono
Stored Function Dengan Parameter
BAB ENHANCED DATA MODELS FOR ADVANCED APPLICATIONS
CURSOR.
Oleh : FIRMAN JAYA, S.Pt, M.Kom
SQL.
Integritas Basis Data Triggers, Store Procedure
FUNGSI & TRIGGER.
Integritas basis data.
12/6/2018 TRIGGER Pemrograman Basis Data Siti Mukaromah, S.Kom.
Stored Procedure D. SINAGA, M.KOM.
PENDAHULUAN MySQL Oleh: Rudianto.
ORACLE PL/SQL TRIGGER Program Studi D3 Teknik Informatika -Fakultas Ilmu Terapan.
PL/SQL CURSOR Program Studi D3 Teknik Informatika -Fakultas Ilmu Terapan.
BAHASA BASIS DATA Data Defenition Languange
10/14/2019 TRIGGER Pemrograman Basis Data.
Transcript presentasi:

TRIGGER (Statement & Row Trigger)

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

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.

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.

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.

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.

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

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

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

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

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

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

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

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

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.

Referensi Feuerstein, Steven, dan Bill Pribyl. Oracle PL/SQL programming. Sebastopol, CA: O'Reilly, 2009. Print. Urman, Scott, Ron Hardman, dan Michael McLaughlin. Oracle Database 10g PL/SQL Programming. New York: McGraw- Hill/Osborne, 2004. 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.