Triggers. by: Ahmad Syauqi Ahsan

dokumen-dokumen yang mirip
TRIGGER TRIGGER 5/29/2017 HANI IRMAYANTI, S.KOM

PRAKTIKUM PL/SQL (Trigger) OLEH : WIRATMOKO YUWONO, ST

Basis Data. Bagian IV SQL (3) Fak. Teknik Jurusan Teknik Informatika Universitas Pasundan

Contoh SQL Constraint

Pertemuan VII TRIGGERS

Praktikum Basis Data 2017 TE UM MODUL 8 TRIGGER A. TUJUAN

Bab 5. Database Trigger POKOK BAHASAN: TUJUAN BELAJAR: 5.1. PENDAHULUAN

Mudafiq Riyan Pratama

Kontrak Kuliah. Trigger dan Scheduled Events. Edi Sugiarto, S.Kom, M.Kom

Cara Membuat Trigger di MySQL

Cara Membuat Trigger di MySQL

Computer Science, University of Brawijaya. Putra Pandu Adikara, S.Kom. Trigger. Basis Data 2

Transaction dan Trigger. M. Saefudin SKom, MMSI

Modul 6 Function dan Trigger

Praktikum TRIGGER. Tujuan :

Basis Data II. Pertemuan Ke-9 dan ke-10 (Stored Procedure dan Trigger) Noor Ifada S1 T. Informatika - UTM (2012) 1

TRIGGER. Tujuan Mata Kuliah. Tools yang digunakan. Sesi7 : TRIGGER. Praktikum Pemrograman Client Server Database Hadi Kusumah, S.T.

Contoh SQL Constraint

JobsheetTEUM MODUL VI TRIGGER

LAPORAN PRAKTIKUM MODUL 1 PENGENALAN MYSQL

LAMPIRAN 1 LIST CODE DATABASE TRIGGER

VIEW : Tabel Virtual VIEW 5/29/2017

STRUCTURE QUERY LANGUAGE DDL & DML

STRUCTURED QUERY LANGUAGE (SQL)

IMPLEMENTASI TRIGGER, STORED PROCEDURE, FUNCTION DAN VIEW PADA MYSQL DALAM PERANCANGAN SYSTEM INVENTORY CAFFE BOULEVARD JAYAPURA

Manajemen Data dengan Database MySQL Supriyono, M.Kom

Praktikum Basis Data. By. Rita Wiryasaputra, ST., M. Cs.

Data Manipulation Language (DML)

Basis Data. DDL & Aturan Referential

CONSTRAINT clients_client_num_pk PRIMARY KEY (client_number));

B a s i s D a t a - 1 C H A P T E R. SQL Operasi DML. Copyright 2005 PENS-ITS

SQL. Brigida Arie Minartiningtyas, M.Kom

Database Management System. Program yang memungkinkan item-item dalam suatu database disusun, diolah dan diperbaharui

MODUL 4 INTERNET PROGRAMMING DATABASE

BAB VIII FUNGSI, PL/PGSQL dan TRIGER

PERTEMUAN 9 MANIPULASI DATA

B a s i s D a t a C H A P T E R. SQL Operasi DML. Arif Basofi PENS 2015

INTERNET PROGRAMMING DATABASE

Persiapan Table Untuk Latihan Sebelum kita berkenalan lebih jauh dengan Trigger, mari kita buat terlebih dahulu, struktur table yang dibutuhkan.

TUGAS I PRAKTIKUM SISTEM BASIS DATA. Nama: Krisna Pandu Wibowo( )

PERINTAH DASAR MySQL

STORE PROCEDURE. Pemrograman Client Server Sarji, S.Kom Studi kasus pada

B a s i s D a t a - 1 C H A P T E R. SQL Operasi DML. Copyright 2005 PENS-ITS

Basis Data Spasial Modul 2

Oracle Academic Initiative

5. Database MySQL. Apa Database MySQL Itu? Hirarki Dalam Database. Table

TUGAS PRAKTIKUM SISTEM BASIS DATA

MySQL J A M K E T I G A

Pertemuan 10. Bahasa Query Terapan

Obyek pada Oracle. Manajemen Obyek Basis Data dan Dictionary View. Obyek pada Oracle adalah segala hal yang bisa dibuat di Oracle, seperti:

Praktikum Basis Data 14 Structure Query Language 2

STRUCTURE QUERY LANGUAGE (SQL)

By Mrs Imana Malia Kondou, S.T. missimanakondou.wordpress.com

Untuk mencoba contoh-contoh perintah join, silahkan eksekusi query create+insert dibawah ini:

Transaksi. by: Ahmad Syauqi Ahsan

BERMAIN DATA DENGAN SQL SERVER

TUGAS 1 PRAKTIKUM SISTEM BASIS DATA

SISTEM BASIS DATA. Oleh : Devie Rosa Anamisa

PENGENALAN SINTAKS DASAR DALAM MySQL

DATABASE - MySQL. Muhammad Zen S. Hadi, ST. MSc.

PRAKTIKUM 2 IMPLEMENTASI MODEL DATA(PEMBUATAN DB)

Pertemuan VI F U N C T I O N

TUGAS PRAKTIKUM SISTEM BASIS DATA

Administrasi Basis Data. Integritas Data. Yoannita

BAB 11 SECURITY (KEAMANAN)

MODUL 2 PENGENALAN DATA DEFINITION LANGUAGE (DDL) & DATA MANIPULATION LANGUAGE (DML)

Tahap Instalasi PostgreSQL di Windows

Basis Data. Bagian IV SQL (2) Fak. Teknik Jurusan Teknik Informatika Universitas Pasundan

MODUL V DATA MANIPULATION LANGUAGE (DML) 1

Pengenalan Structured Query Language

15-Jan DATABASE - MySQL. Database. Constraints. Tujuan: Memahami perintah-perintah dasar DDL dan DML

Transaksi Semester Ganjil 2014 Fak. Teknik Jurusan Teknik Informatika. Caca E. Supriana, S.Si.,MT. Si

Bab 3. Query Lanjutan POKOK BAHASAN: TUJUAN BELAJAR:

LAPORAN TUGAS Pemrograman Berbasis Java

Djoni Darmawikarta

Karena VIEW dibentuk tanpa mencantumkan nama kolom baru, maka v1 mewarisi kolom yang yang dipilih pada tabel mahasiswa_xxx.

INTEGRITAS BASIS DATA. OLEH : Slamet Sn Wibowo Wicaksono

MySQL Databases. Dasar-dasar MySQL dan Implementasi MySQL kedalam pemrograman PHP. Jakarta, 16 April 2011 Oleh: M. Awaludin, S.Kom

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LAB SHEET PEMROGRAMAN WEB Semester: 2 MYSQL 200 menit No.: Job: 12 Tgl: Hal.

Transact-SQL (Trigger- Event, Store Procedure)

LATAR BELAKANG IBM San Jose Research Laboratory.

Agenda SQL. Pemakai SQL. Kemampuan SQL 02/12/2010 STRUCTURED QUERY LANGUAGE (SQL) Structured Query Language (SQL) (Pert. 9)

Konsep Sistem Informasi B. BAB 2 - SQL Overview

MODUL 5 INTERNET PROGRAMMING : MySQL

Apakah SQL? Membuat basis data dan struktur tabel Input, update, dan delete data dari tabel Membuat query sederhana dan kompleks SQL

Perangkat Lunak Pengembangan Web

KONSEP MEMBANGUN APLIKASI MULTIPLATFORM DENGAN OPTIMALISASI PENGGUNAAN VIEW, FUNCTION DAN TRIGGER PADA RDBMS POSTGRESQL

DESAIN DATABASE. Pertemuan 06 3 SKS

SEKOLAH TINGGI TEKNOLOGI INDONESIA TANJUNG PINANG

STRUCTURE QUERY LANGUAGE

Modul Pembangunan Aplikasi Basis Data Lanjut 2014

Introduction to SQL. Database Programming. 2 nd Chapter

Structured Query Language

MODUL II SQL A. TUJUAN

LAPORAN PRAKTIKUM IV BASIS DATA (SISTEM BERKAS - LAN)

Instalasi RazorSQL pada Debian Wheezy

TUGAS 1 PRAKTIKUM SISTEM BASIS DATA

Jobsheet SQL Dasar : Hari Zulianto, ST [Year]

BAB 10 NETBEANS DATABASE

Pemrograman Basis Data Berbasis Web

Transkripsi:

04 Triggers by: Ahmad Syauqi Ahsan

Triggers 2 Trigger adalah suatu statement yang dieksekusi secara otomatis ketika terjadi perubahan dalam database. Untuk mendesain mekanisme trigger, kita harus: Mendifinisikan kondisi yang seperti apa yang akan membuat sebuah trigger dieksekusi. Menentukan aksi-aksi apa yang akan dilakukan ketika suatu trigger dieksekusi. Triggers diperkenalkan sebagai standar pada SQL 1999. Sebelum itu trigger sudah disupport oleh sebagian besar database server, walaupun masih menggunakan sintaks yang tidak standart.

Contoh Trigger 3 Ketika ada pemilik account yang menarik uang dengan jumlah yang melebihi saldo yang tersedia pada account simpanannya, daripada membiarkan saldonya jadi negatif, pihak bank memilih untuk melakukan: Mengeset saldo pada account menjadi 0. Membuat account pinjaman dengan nilai sebesar jumlah uang yang diambil terlalu banyak. Memberikan nomer account pinjaman yang sesuai dengan nomer account simpanannya. Kondisi dimana trigger tersebut akan dieksekusi adalah ketika ada update pada account yang akan menghasilkan saldo negatif.

Contoh trigger pada SQL:1999 4 create trigger overdraft-trigger after update on account referencing new row as nrow for each row when nrow.balance < 0 begin atomic insert into borrower (select customer-name, account-number from depositor where nrow.account-number = depositor.accountnumber); insert into loan values (nrow.account-number, nrow.branch-name, nrow.balance); update account set balance = 0 where account.account-number = nrow.account-number end

Triggering Event 5 Trigger dapat dipicu oleh event insert, update, ataupun delete. Triggers pada event update dapat dibatasi ke atribut yang spesifik. Contoh: create trigger overdraft-trigger after update of balance on account Nilai-nilai atribut sebelum dan sesudah update dapat direferensikan referencing old row as : for deletes and updates referencing new row as : for inserts and updates Triggers dapat diaktivasi sebelum event terjadi, dimana trigger dapat berperan sebagai constraint tambahan. Misal: set nilai kosong menjadi null. create trigger setnull-trigger before update on r referencing new row as nrow for each row when nrow.phone-number = set nrow.phone-number = null

Statement Level Triggers 6 Selain mengeksekusi aksi berbeda untuk setiap baris (row) data, satu aksi dapat dieksekusi setelah semua baris terpengaruh oleh sebuah transaksi. Gunakan for each statement menggantikan for each row Gunakan referencing old table atau referencing new table untuk mengacu ke tabel temporary (disebut transition tables) yang berisi baris-baris yang terpengaruh oleh transaksi. Dapat lebih efisien ketika berhadapan dengan statemen-statemen SQL yang meng-update baris-baris dalam jumlah besar.

Hubungan dengan Dunia Luar 7 Kadangkala dibutuhkan trigger yang dapat mengakses dunia luar ketika terjadi update pada database. Contoh: memesan barang yang jumlahnya di gudang tinggal sedikit, atau menyalakan lampu alarm. Trigger tidak dapat digunakan secara langsung untuk mengimplementasikan aksi yang mengakses dunia luar, TAPI: Trigger dapat digunakan untuk mencatat aksi-yang-akan-diambil kedalam tabel yang terpisah Sebuah proses dapat dibuat untuk secara terus menerus me-scan tabel yang terpisah tersebut, menjalankan aksi-yang-akan-diambil, kemudian menghapus catatan aksi-yang-akan-diambil tersebut dari tabel.

Hubungan dengan Dunia Luar (2) 8 Contoh: Misalkan sebuah gudang mempunyai tabel-tabel sebagai berikut: inventory (item, level): Berapa banyak jumlah yang tersimpan dalam gudang untuk setiap item. minlevel (item, level): Berapa jumlah minimum yang diharapkan untuk setiap item. reorder (item, amount): Berapa besar jumlah yang harus di order dalam sekali waktu. orders (item, amount): Daftar order yang akan dilakukan (akan dibaca oleh proses eksternal).

Hubungan dengan Dunia Luar (2) 9 create trigger reorder-trigger after update of amount on inventory referencing old row as orow, new row as nrow for each row when nrow.level <= (select level from minlevel where minlevel.item = orow.item) and orow.level > (select level from minlevel where minlevel.item = orow.item) begin insert into orders (select item, amount from reorder where reorder.item = orow.item) end

Triggers pada MS-SQL Server 10 create trigger overdraft-trigger on account for update as if inserted.balance < 0 begin insert into borrower (select customer-name,account-number from depositor, inserted where inserted.account-number = depositor.account-number) insert into loan values (inserted.account-number, inserted.branch-name, inserted.balance) update account set balance = 0 from account, inserted where account.account-number = inserted.account-number end

Kapan tidak perlu menggunakan Trigger 11 Sebelumnya, trigger digunakan untuk hal-hal seperti berikut: Mengelola data summary (contoh: total gaji untuk tiap departemen) Replikasi database dengan mencatat perubahan kedalam tabel khusus (disebut tabel change atau tabel delta) dan mempunyai proses terpisah yang akan mengaplikasikan perubahan-perubahan tersebut ke replika databasenya. Saat ini ada cara lebih baik untuk melakukan hal-hal tersebut: Saat ini Database menyediakan fasilitas materialized view untuk mengelola data-data summary. Database sudah menyediakan fasilitas untuk melakukan replikasi Dalam banyak kasus, fasilitas Encapsulation dapat digunakan untuk menggantikan trigger: Definisikan method/function untuk meng-update field Masukkan aksi yang sebelumnya dijalankan melalui trigger sebagai bagian dari method/function tersebut.

Tanya Jawab Terima Kasih