12/6/2018 TRIGGER Pemrograman Basis Data Siti Mukaromah, S.Kom.

Slides:



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

DESAIN & KONFIGURASI DATABASE
Pertemuan 2 : Dasar-dasar SQL SBD C – Senin, Frank & Rudy
PERINTAH SQL.
Dasar-dasar SQL soesanto.
DDL & Aturan Referential
T R I G G E R.
DML Lanjutan Pertemuan Minggu Ke-10.
Manajemen Basis Data menggunakan SQL Server
TRIGGER.
Pertemuan 4 Database dengan MySQL.
Triggers & Stored Procedure The main reference of this presentation is from book: Peter Rob, Carlos Coronel, “Database systems: Design, Implementation.
Pemrograman Terstruktur
Trigger.
Praktek Pemograman Client-Server
STORED PROCEDURE Achmad Yasid, SKom.
Procedure Siti Mukaromah, S.Kom.
TRIGGER Siti Mukaromah, S.Kom.
TRIGGER.
Microsoft SQL Server DDL dan DML dasar
Data Definition Language dan Data Manipulation Language
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.
Antonius Wahyu Sudrajat, S. Kom., M.T.I. Perintah SQL: Data Definition.
BASIS DATA TERAPAN Pertemuan 2.
Data Types Data Definition Language Referential Constraint SQL Query
SQL (Structure Query Language)
SQL Pertemuan
PENGANTAR TEKNOLOGI SIA 2
Disampaikan Oleh : Wiratmoko Yuwono
SQL Basis Data.
PACKAGE.
TRIGGER LANJUT.
TRIGGER (Statement & Row Trigger)
Pertemuan after UTS Structure Query Language (SQL)
TEMPAT PENYIMPANAN DATA
TRIGGER SYAIFUL HUDA, S.Kom.
DDL, DML.
PENGANTAR SQL MI2143 – Dasar SQL Disusun oleh:
STORED PROCEDURE & TRIGGER
PENGANTAR STRUCTURED QUERY LANGUAGE (SQL)
SQL.
View dan Trigger Materi 5
Structure query language (SQL)
Manajemen Basis Data menggunakan SQL Server
Sistem Basis Data ABU SALAM, M.KOM.
Data Definition Language (DDL)
TRIGGER.
SQL OVERVIEW.
Created By Amir Ali,S.Kom.,M.Kom
Procedure Siti Mukaromah, S.Kom.
Blok PL/SQL Non Modular dan Modular
PENGANTAR STRUCTURED QUERY LANGUAGE (SQL)
Anonymous Blok PL/SQL dan Tipe Data
OLEH : Slamet Sn Wibowo Wicaksono
Pemrograman Internet Database.
Basis Data [TK1064] I. Pengenalan Basis Data
Structure query language (SQL)
Trigger Ilman Kadori,M.Kom.
Nama : Agnessia Mega C.A.S NIM : Kelas : AB-39-06
Oleh : FIRMAN JAYA, S.Pt, M.Kom
SQL.
Integritas Basis Data Triggers, Store Procedure
Structure query language (SQL)
MKA-30 Perancang dan Pemrograman WEB Wilonotomo, S.Kom., M.Si.
PENDAHULUAN MySQL Oleh: Rudianto.
ORACLE PL/SQL TRIGGER Program Studi D3 Teknik Informatika -Fakultas Ilmu Terapan.
BAHASA BASIS DATA Data Manipulation Languange
BAHASA BASIS DATA Data Defenition Languange
10/14/2019 TRIGGER Pemrograman Basis Data.
Transcript presentasi:

12/6/2018 TRIGGER Pemrograman Basis Data Siti Mukaromah, S.Kom

Pendahuluan 12/6/2018 Trigger adalah blok PL/SQL yang disimpan dalam database dan akan diaktivasi ketika Anda melakukan statement-statement SQL (Insert, Update, dan Delete) pada sebuah table. Implementasi: mengeset/mengubah nilai kolom suatu table sehingga validasi nilai dari table tersebut akan terjaga Pemrograman Basis Data

Trigger 12/6/2018 Trigger tersimpan berdiri sendiri, bukan merupakan bagian dari package Trigger tidak mempunyai parameter Dipanggil pada saat DML, database startup/shutdown, dan pada operasi DDL tertentu Pemrograman Basis Data

Jenis-jenis Trigger Trigger digunakan untuk: 12/6/2018 Trigger digunakan untuk: Maintain integritas konstrain yang komplek Informasi auditing (siapa yang melakukan perubahan dan kapan) Memanggil program yang lain Pemrograman Basis Data

DML Triggers 12/6/2018 Dijalankan sebelum (before) atau setelah (after) INSERT, UPDATE, DELETE Pemrograman Basis Data

System Triggers 12/6/2018 Dijalankan setelah operasi system, seperti startup, shutdown, dan pembuatan object. Pemrograman Basis Data

Membuat Trigger 12/6/2018 Oracle telah menyediakan statement CREATE TRIGGER untuk membuat sebuah trigger yang selanjutnya akan diaktivasi berdasarkan event tertentu. Secara umum, event trigger terbagi menjadi dua, yaitu BEFORE (sebelum) dan AFTER (sesudah). Pemrograman Basis Data

Membuat Trigger 12/6/2018 Syntax Trigger: Pemrograman Basis Data

Membuat Trigger Keterangan: 12/6/2018 Keterangan: REPLACE digunakan untuk mengganti isi trigger jika nama trigger yang dibuat sudah ada sebelumnya BEFORE digunakan untuk mendeklarasikan bahwa trigger yang dibuat itu akan dieksekusi sebelum sebuah statement SQL dilakukan AFTER digunakan untuk mendeklarasikan bahwa trigger yang dibuat itu akan dieksekusi setelah sebuah statement SQL dilakukakan Statement yang dimaksud disini adalah statement SQL dalam DML Pemrograman Basis Data

Contoh 12/6/2018 Membuat trigger dengan nama tr_coba yang dapat menampilkan teks ‘Table mhs telah di-update’ setiap kali selesai (AFTER) melakukan update terhadap table mhs. Pemrograman Basis Data

Pengaruh Trigger 12/6/2018 Untuk memeriksa trigger yang telah dibuat tersebut, maka begitu dilakukan update terhadap table mhs, maka hasil yang akan tampak adalah sbb: Pemrograman Basis Data

Membuat DML Triggers Type-type dari DML Trigger Category Values 12/6/2018 Type-type dari DML Trigger Category Values comments Statement INSERT and/or DELETE and/or UPDATE Choose operation(s) Timing BEFORE or AFTER Choose timing Level FOR EACH ROW or statement (omit FOR EACH ROW) Once per DML statement, or once for every row affected Pemrograman Basis Data

Urutan DML trigger dijalankan 12/6/2018 Sebelum statement level trigger Untuk tiap row (for each row) yang terpengaruh Sebelum row-level trigger Operasi Setelah row-level trigger Setelah statement level trigger Pemrograman Basis Data

Alias didalam Trigger 12/6/2018 Dalam trigger dikenal dengan istilah alias atau referensi, yaitu sejenis variable yang menyimpan nilai dari suatu kolom didalam table Alias tersebut terbagi menjadi dua yaitu :new dan :old. Alias dituliskan didepan nama kolom yang akan diambil nilainya Pemrograman Basis Data

Alias didalam Trigger(2) 12/6/2018 Terdapat tiga hal yang perlu dipahami pada saat menggunakan alias didalam trigger: INSERT UPDATE DELETE Pemrograman Basis Data

1. Statement INSERT 12/6/2018 Hanya mempunyai alias :new, yaitu variable yang menyimpan nilai-nilai kolom yang akan dimasukkan kedalam table. Contoh: Maka :new.stok_barang akan bernilai 10 Pemrograman Basis Data

2. Statement UPDATE Mempunyai alias :new dan :old. 12/6/2018 Mempunyai alias :new dan :old. Alias :new akan menyimpan nilai-nilai kolom yang baru Alias :old menyimpan nilai-nilai kolom asli yang terdapat didalam tabel (nilai sebelum di- update) Misalnya didalam table barang, stok yang tersedia untuk lemari es adalah 20, dan kita akan mengganti (meng-update) jumlah stok tersebut dengan nilai 30, maka :new.stok_barang akan bernilai 30, sedangkan :old.stok_barang bernilai 20. Pemrograman Basis Data

3. Statement DELETE 12/6/2018 Hanya mempunyai alias :old, yaitu variable yang menyimpan nilai-nilai kolom dari baris yang dihapus dalam sebuah table Pemrograman Basis Data

Membuat System Triggers 12/6/2018 Syntax system trigger Mengelola DATABASE TRIGGER system privilege diperlukan untuk membuat system trigger Pemrograman Basis Data

Penamaan Trigger 12/6/2018 Object oracle secara umum membagi satu namespace, nama unik (nama package harus bukan nama procedure). Trigger mempunyai namespace sendiri Pemrograman Basis Data

Batasan Trigger 12/6/2018 Trigger hanya dapat digunakan untuk menuliskan statement-statement DML. Tidak dapat mengandung perintah DDL (CREATE, ALTER, DROP), DCL-Data Control Language (COMMIT, ROLLBACK,...) Tidak memanggil code yang lain yang menjalankan perintah kontrol transaksi Tidak bisa declare atau mengacu pada LONG atau LONG RAW data Pemrograman Basis Data

Contoh 12/6/2018 Trigger tersebut tetap akan terbuat ke dalam database, namun akan salah pada saat kita melakukan perubahan data (update) terhadap tabel mhs. Pemrograman Basis Data

Trigger Body Secara umum bentuk trigger adalah PL/SQL procedure. 12/6/2018 Secara umum bentuk trigger adalah PL/SQL procedure. Pengecualian: statement CALL tunggal Digunakan untuk procedure yaitu pembungkus untuk kode C atau Java. Pemrograman Basis Data

Privileges CREATE TRIGGER CREATE ANY TRIGGER ALTER ANY TRIGGER 12/6/2018 CREATE TRIGGER CREATE ANY TRIGGER ALTER ANY TRIGGER DROP ANY TRIGGER ADMINISTER DATABASE TRIGGER Pemrograman Basis Data

Mengaktifkan dan menonaktifkan Trigger 12/6/2018 Secara default trigger dalam keadaan aktif Dalam database Oracle, trigger tidak selalu dijalankan, tergantung pada setting yang dilakukan terhadap trigger itu sendiri. Artinya, eksekusi trigger akan dilakukan hanya apabila tigger diset dalam keadaan aktif (ENABLE) dan akan diabaikan keberadaannya apabila trigger tersebut dalam keadaan non-aktif (DISABLE) Fasfgsagsagsadgsgdsgsdagsadg gadsgsdagsadg Pemrograman Basis Data

Menghapus Trigger 12/6/2018 Pemrograman Basis Data

Soal Latihan: 12/6/2018 Buatlah trigger untuk menambahkan jumlah pasok barang yang ada pada tabel barang setiap kali dilakukakn pemasukan (insert) data pada tabel pasok, dimana jumlah yang ditambahkan ke dalam stok barang tersebut adalah jumlah pasok pada saat pemasokan! Jawaban: Pemrograman Basis Data

12/6/2018 Buatlah trigger untuk mengurangi jumlah stok barang yang ada pada tabel barang setiap kali dilakukan penghapusan (delete) data pada tabel pasok, dimana jumlah yang digunakan untuk pengurangan stok barang tersebut adalah jumlah pasok dari baris yang dihapus pada tabel pasok! Jawaban: Pemrograman Basis Data

12/6/2018 Buatlah trigger untuk mengubah jumlah stok barang yang ada pada table barang setiap kali dilakukan perubahan (update) data pada tabel pasok! Perlu diperhatikan bahwa jika nilai perubahan jumlah pasok pada table pasok lebih besar dari jumlah stok barang yang ada pada tabel barang, maka jumlah stok barang akan bertambah, sedangkan jika lebih kecil maka stok barang akan berkurang. Pemrograman Basis Data

12/6/2018 Buatlah sebuah trigger pada tabel customer agar setiap terjadi proses pemasukan data baru pada tabel tersebut, maka nilai kolom nama_konsumen akan berubah menjadi huruf kapital walaupun pada saat memasukkan data, data yang dimasukkan berupa huruf kecil! Buatlah 3 buah trigger pada tabel pembelian sehingga pada saat memasukkan (insert), mengubah (update) atau menghapus (delete) baris dalam table tersebut, maka jumlah stok barang pada table barang akan ikut berubah sesuai dengan manipulasi data yang dilakukan! Pemrograman Basis Data