05 July 2011

Tugas BASDAT I MAKALAH TRIGGER, VIEW AND STORE PROCEDURE

MAKALAH MATAKULIAH BASIS DATA 1
TRIGGER, VIEW AND STORE PROCEDURE

Diajukan untuk memenuhi tugas matakuliah Basis Data dari
Ibu. Ai Rosita, ST., MT.











Disusun oleh :
BHAYANG RATU WAHYUNUR
1103051
TEKNIK INFORMATIKA 1B





JURUSAN TEKNIK INFORMATIKA
POLITEKNIK POS INDONESIA
BANDUNG
2011




A. TRIGGER
1.PENGERTIAN TRIGGER
            Trigger merupakan sekumpulan perintah atau sintaks yang akan secara otomatis dijalankan jika terjadi operasi tertentu dalam tabel atau view. Trigger digunakan untuk memanggil satu atau beberapa perintah SQL secara otomatis sebelum atau sesudah terjadi proses INSERT, UPDATE atau DELETE dari suatu tabel. atau dengan kata lain, trigger artinya kode SQL yang dikerjakan oleh DBMS ketika suatu kejadian terjadi.n dalam hal ini jika perintah INSERT, UPDATE, atau DELETE dijalankan di DBMS.Sebagai contoh misalnya kita ingin menyimpan id pelanggan secara otomatis ke tabel ‘log’ sebelum menghapus data di tabel pelanggan. Ataupun kita akan Secara otomatis merekam semua aktivitas MySQL yang gagal membuat Record Baru yang diakibatkan terputusnya Koneksi.

2.  FUNGSI TRIGGER
TRIGGER DIGUNAKAN 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.

3.   MACAM-MACAM  TRIGGER
MACAM-MACAM TRIGGER YAITU :
*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.
4. TIPE TRIGGER TIPE
TRIGGER DIBAGI MENJADI 2, 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 body mendefinisikan tindakan yang perlu dikerjakan pada saat terjadinya
event yang mengakibatkan sebuah trigger menjadi aktif.

5. KAPAN TRIGGER DI BUTUHKAN :
*Membentuk sebuah aksi tertentu terhadap suatu event
*Memusatkan operasi global.

6. KOMPONEN-KOMPONEN PENULISAN SINTAK PADA TRIGGER :
*Trigger timing : Trigger timing adalah waktu kapan trigger diaktifkan
                     a. Untuk tabel : BEFORE, AFTER
                     b. Untuk view : INSTEAD OF
* Trigger event : INSERT, UPDATE atau DELETE
* Nama tabel : yaitu nama tabel atau view yang berhubungan dengan trigger
* Tipe trigger : Baris atau Pernyataan (statement)
* Klausa WHEN : untuk kondisi pembatasan
* Trigger body : bagian prosedur yang dituliskan pada trigger

7. TIMING PADA TRIGGER :
* BEFORE : trigger dijalankan sebelum DML event pada tabel
* AFTER : trigger dijalankan setelah DML event pada tabel
* INSTEAD OF : trigger dijalankan pada sebuah view.

B. VIEW
1. PENGERTIAN VIEW
             View adalah tabel virtual yang berisi data yang ditentukan berdasarkan query yang dibuat. Seperti tabel biasa, sebuah view terdiri dari kolom dan baris data. Namun view tidak menyimpan data dalam database karena view dibuat dari tabel-tabel yang telah ada dalam database. Sehingga data yang dimiliki oleh view adalah data-data yang mereferensi ke tabel lain sesuai dengan query dan akan berubah secara dinamis sesuai dengan isi data yang dijadikan reference-nya.

2. FUNGSI VIEW
             View digunakan untuk membuat tampilan sebuah tabel. Di dalamnya memungkinkan kita untuk bisa membuat, mengupdate dan menghapus tampilan tabel tersebut. Dan tabel yang ditampilkan merupakan tabel hasil dari perintah-perintah MySQL
            Didalamnya akan terlihat adanya baris dan kolom seperti halnya tabel biasa dari sebuah database. Dan tabel yang ditampilkan hanya satu tabel sekalipun merupakan hasil join pada MySQL.

3. CARA MENGGUNAKAN VIEW
Untuk membuat View kita menggunakan perintah CREATE VIEW dengan bentuk sbb:
CREATE VIEW namaview AS
SELECT namakolom
FROM namatabel
WHERE persyaratan
View yang dihasilkan merupakan data yang terupdate karena setiap kita menjalakan kueri CREATE VIEW tersebut, maka database akan mengcreate data terbaru.



Contoh:
CREATE VIEW Mahasiswa Jawa Barat AS
SELECT ID,Nama
FROM Mahasiswa
WHERE Propinsi=Jawa Barat
Hal ini akan menghasilkan tampilan data ID dan nama mahasiswa yang berasal dari propinsi Jawa Barat.
Sedangkan untuk menghapus sebuah view kita menggunakan perintah DROP pada kueri MySQL. Perintahnya adalah sbb:
DROP VIEW Mahasiswa Jawa Barat
Maka view tersebut akan terhapus.
Contoh lain penggunaan view dalam SQL :
set pagesize 500
alter session set nls_date_format = 'DD.MM.YYYY';

create table prices_ (
sku        varchar2(38),
price      number,
valid_from date
);

insert into prices_ values ('4711', 18, '08.01.2003');
insert into prices_ values ('4711', 19, '01.05.2000');
insert into prices_ values ('4711', 20, '18.01.2001');
insert into prices_ values ('4711', 21, '09.01.2000');

insert into prices_ values ('beer', 14, '07.03.2000');
insert into prices_ values ('beer', 15, '10.01.2003');
insert into prices_ values ('beer', 16, '18.01.2001');
insert into prices_ values ('beer', 19, '16.11.2001');
insert into prices_ values ('beer', 17, '19.02.2002');
create view prices_today_ as
select
  sku,
  price,
  valid_from
from
  (select
     sku,
     price,
     valid_from,
     rank() over (partition by sku order by valid_from desc) r
   from
     prices_
  )
where r=1;

select * from prices_today_;

drop table prices_;
drop view prices_today_;

 
C. STORE PROCEDURE
1. PENGERTIAN STORE PROCEDURE
               Store Procedure adalah kumpulan Pre-defined Transact-SQL yang digunakan untuk melakukan tugas/task khusus. Dalam Store Procedure dapat berisi beberapa statement dan setiap statement di kelompokan untuk satu object database.

2. CARA MEMBUAT STORE PROCEDURE
              Untuk membuat store procedure, kita hanya menjalankan perintah “create procedure” diikuti dengan SQL script. Kita bisa meembuat store procedure melalui Query Analyzer pada MS SQL Server, atau dengan menggunakan menu New Procedure pada Enterprise Manager. 
Kerangka sederhana Store Procedure
CREATE PROC procedure_name
    [ { @parameter data_type }
    ]
AS sql_statement  
Store Procedure terdiri dari:
1.      Statemen CREATE PROC {PROCEDURE}
2.      Nama Procedure;
3.      Parameter list
4.      SQL statement.

Banyak option lainnya dalam mendefinisikan store procedure, dalam tulisan ini hanya beberapa saja yang disebutkan, hanya sebagai gambaran awal dalam membuat store procedure.

3. KEUNTUNGAN MENGGUNAKAN STORE PROCEDURE
             Penggunaan store procedure dalam sebuah pemrograman database memiliki beberapa keuntungan atau kelebihan sebagai berikut:
a.  Performance
              Semua perintah SQL, yang kita kirimkan ke database server melalui kumpulan action yang disebut dengan execution. Hal ini menjadikan perintah SQL yang kita kirimkan melalui beberapa proses sebelum data dikembalikan ke client.
User mengirimkan request untuk mengeksekusi store procedure.SQL  Server kemudian mengecek apakah ada syntax error. Mengidentifikasi dan melakukan pengecekan alias pada FROM clausa.Membuat query plan. Meng-compile dan kemudian mengeksekusi query plan untuk kemudian mengembalikan data yang diminta.
b. Security 
             Store Procedure memberikan keuntungan yang baik dalam hal security. Dengan menggunakan store procedure, kita bisa memberikan permission untuk user yang ditunjuk untuk dapat mengakses data, menekan immense coding yang perlu kita lakukan pada Application Client. Ini adalah cara terbaik untuk mengontrol akses ke data.
c. Modifications/Maintenance 
              Jika kita menggunakan store procedure untuk mengakses database, setiap perubahan pada database dapat dipantau berdasarkan client application. Hal ini dimungkinkan karena kita dapat tahu persis dimana data diakses, dan kita juga tahu dimana kita harus melakukan perubahan. Hal ini berarti kita tidak perlu pusing kepala dengan ribuan baris source code pada client application untuk menemukan baris mana yang perlu dirubah.
d. Minimal processing at the client. 
              Ketika membuat aplikasi client/server, normalnya adalah client yang bertanggung jawab mengenai integritas data yang masuk ke dalam database. Mengelola Primary Key,Foreign Key, semuanya dilakukan oleh client, dan database server hanya bertugas menyimpan data yang di berikan client. Dengan menggunakan store proocedure membantu kita untuk membuat batch perintah SQL, yang bisa digunakan untuk memanage transaction,constraints dll. Hanya sedikit daya yang ditulis pada client apllication, menjadikan aplikasi client menjadi lebih ringan. Aplikasi ini akan lebih terfokus pada menampilkan data untuk keperluan user dan aplikasi client tidak tau banyak mengenai database. Sebagai contoh. Jika kita memiliki database yang berisi ribuan rows dan ratusan table. Kita memerlukan beberapa perhitungan sebelum melakukan update pada setiap record. Jika kita mengambil data secara lengkap ke client, dan meminta client computer untuk memproses data secara lengkap, bisa dibayangkan apa yang ditimbulkan. Tetapi jika client bisa mengeksekusi store procedure, ketika kita telah selesai melakukan calculasi untuk melakukan update pada record.Client tidak perlu melakukan proses calculasi. Hal ini juga menekan proses yang terjadi di client, dan server yang menjalankan kalkulasinya.
e. Network traffic 
              Aplikasi pada client selalu me request/ mengirimkan data ke database server. Data ini dikirimkan sebagai packet dan dikirimkan ke jaringan(Network) ke server. penggunaan store procedure. Untuk penjelasan syntax pada penggunaan store procedure akan di bahas pada tulisan berikutnya.


Selengkapnya silahkan download file lengkapnya disini

5 comments :