Stored Procedure
DefinisiStored procedure adalah prosedur (spt subprogram dalam bhs pemrograman) yang disimpan di dalam database.
MySQL mendukung dua jenis “rutin” (subprogram):
· Stored procedure yang dapat dipanggil,
· Fungsi yang menghasilkan nilai yang dapat dipakai dalam statemen SQL lain.
Mengapa Strored Procedure?Dengan stored procedure maka eksekusi menjadi cepat. Tidak ada kompilasi. Peningkatan kecepatan datang dari reduksi lalu-lintas jaringan. Jika ada pekerjaan pengecekan berulang, looping, multiple statement, dikerjakan dengan pemanggilan tunggal ke prosedur yang telah disimpan ke server.
Stored procedure adalah komponen. Andaikan aplikasi kemudian ditulis dalam bahasa berbeda, tidak ada masalah, karena logika berada didalam database bukan dalam aplikasi.
Trigger
Definisi
Trigger adalah blok PL/SQL atau prosedur yang berhubungan dengan table, view, skema atau database yang dijalankan secara implicit pada saat terjadi sebuah event. Trigger merupakan store procedure yang dijalankan secara automatis saat user melakukan modifikasi data pada tabel. Modifikasi data yang dilakukan pada tabel yaitu berupa perintah INSERT, UPDATE, dan DELETE. INSERT , UPDATE dan DELETE bisa digabung jadi satu trigger yang dinamakan Multiple Trigger.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.
Trigger perlu dibuat pada saat:
· Membentuk sebuah aksi tertentu terhadap suatu event
· Memusatkan operasi global
Trigger tidak perlu dibuat, jika:
· Fungsionalitas yang diperlukan suatu ada pada Oracle server
· Duplikat atau sama dengan fungsi trigger yang lain.
Sintak penulisan dari database trigger, berisi komponen berikut :
1. Trigger timing :
a. Untuk tabel : BEFORE, AFTER
b. Untuk view : INSTEAD OF
2. Trigger event : INSERT, UPDATE atau DELETE
3. Nama tabel : yaitu nama tabel atau view yang berhubungan dengan trigger
4. Tipe trigger : Baris atau Pernyataan (statement)
5. klausa WHEN : untuk kondisi pembatasan
6. trigger body : bagian prosedur yang dituliskan pada trigger
Trigger timing adalah waktu kapan trigger diaktifkan. Ada tiga macam trigger timing, yaitu:
· BEFORE : trigger dijalankan sebelum DML event pada tabel
· AFTER : trigger dijalankan setelah DML event pada tabel
· INSTEAD OF : trigger dijalankan pada sebuah view.
Trigger event ada 3 kemungkinan : INSERT, UPDATE atau DELETE.
Pada saat trigger event UPDATE, kita dapat memasukkan daftar kolom untuk mengidentifikasi kolom mana yang berubah untuk mengaktifkan sebuah trigger (contoh : UPDATE OF salary ... ). Jika tidak ditentukan, maka perubahannya akan berlaku untuk semua kolom pada semua baris.
Tipe trigger ada 2 macam, yaitu :
· Statement : trigger dijalankan sekali saja pada saat terjadi sebuah event. Statement trigger juga dijalankan sekali, meskipun tidak ada satupun baris yang dipengaruhi oleh event yang terjadi.
· Row : trigger dijalankan pada setiap baris yang dipengaruhi oleh terjadinya sebuah event. Row trigger tidak dijalankan jika event dari trigger tidak berpengaruh pada satu baris pun.
Trigger sering digunakan, antara lain untuk:
· Melakukan update data otomatis jika terjadi perubahan. Contohnya adalah dalam sistem penjualan, jika dientri barang baru maka stock akan bertambah secara otomatis.
· Trigger dapat digunakan untuk mengimplementasikan suatu sistem log. Setiap terjadi perubahan, secara otomatis akan menyimpan ke tabel log.
· Trigger dapat digunakan untuk melakukan validasi dan verifikasi data sebelum data tersebut disimpan.
Berikut ini bentuk umum perintah untuk membuat triggers:
CREATE TRIGGER name
[BEFORE|AFTER] [INSERT|UPDATE|DELETE]
ON tablename
FOR EACH ROW statement
Keterangan dari bentuk umum perintah membuat trigger:
· name, Nama trigger mengikuti peraturan penamaan variabel / identifier dalam MySQL
· [BEFORE | AFTER] digunakan untuk menentukan kapan proses secara otomatis akan dieksekusi, sebelum atau sesudah proses.
· [INSERT | UPDATE | DELETE] digunakan untuk menentukan event (proses) yang dijadikan trigger (pemicu) untuk menjalankan perintah-perintah di dalam triggers.
· tablename, merupakan nama tabel dimana trigger berada.
· statement, merupakan sekumpulan perintah atau query yang akan secara otomatis dijalankan jika event / proses yang didefinisikan sebelumnya aktif.
Untuk menghapus trigger, dapat menggunakan perintah DROP TRIGGER dengan diikuti dengan nama tabel dan nama triggernya. Berikut ini bentuk umum dan contoh perintah untuk menghapus trigger.
Bentuk umum dan contoh menghapus trigger:
DROP TRIGGER tablename.triggername;
Contoh menghapus trigger bernama ‘before_insert’ yang ada di tabel pelanggan.
DROP TRIGGER penjualan.before_insert;
Perbedaan Store Procedure dengan Trigger
Trigger adalah fitur dari Database Engine MS SQL Server yang berfungsi untuk mengeksekusi query jika tabel mengalami event seperti ketika di tambah, ketika di edit atau ketika salah satu dari data pada tabel itu dihapus.
Stored Procedure juga merupakan salah satu dari fitur Database Engine MS SQL Server yang digunakan untuk mempercepat proses kerja dari pada pengolahan data.
Dimunculkan Prosedur karena jika pada aplikasi mengirimkan query, maka hal tersebut akan membuat network traffic menjadi semakin sibuk dan jika sudah sibuk, maka akan membuat kerja dari pada server makin bertambah.
dengan adanya SP, maka hal – hal seperti Network Traffic yang terlalu sibuk bisa dihindarkan, kemudian dengan menggunakan SP juga bisa membuat proses pengolahan data bisa terkontrol, sebab kita bisa memberikan otorisasi kepada user yang ada di dalam database engine MS SQL Server.
Sebenarnya trigger maupun SP itu bekerja jika dieksekusi.
Bukan berarti karena trigger g secara langsung bekerja, tetap saja awalnya juga butuh eksekusi query tertentu. Jadi Trigger adalah Event pada tabel dan SP adalah untuk mengolah data dari tabel.
Terimakasih telah mampir di blog ini, semoga bermanfaat. Jika anda punya pertanyaan, silahkan tulis pertanyaan Anda di kolom komentar aja. Dan jika Anda ingin mengetahui informasi tentang Stored Procedure dan Trigger lebih lanjut, Anda bisa mendownload file disini guys.
No comments:
Post a Comment