View dan Trigger Materi 5

Slides:



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

SQL – DML.
MATA KULIAH : “LOGIKA DAN ALGORITMA”
Dasar-dasar SQL soesanto.
DDL & Aturan Referential
T R I G G E R.
DML Lanjutan Pertemuan Minggu Ke-10.
Sistem Manajemen Basis Data
Manajemen Basis Data menggunakan SQL Server
TRIGGER.
Basis Data Bab 3 Structured Query Language (SQL).
Triggers & Stored Procedure The main reference of this presentation is from book: Peter Rob, Carlos Coronel, “Database systems: Design, Implementation.
Trigger.
DDL & Aturan Referential
DATA MANIPULATION LANGUAGE (DML)
Praktek Pemograman Client-Server
STORED PROCEDURE Achmad Yasid, SKom.
Procedure Siti Mukaromah, S.Kom.
TRIGGER Siti Mukaromah, S.Kom.
TRIGGER.
1 Bab 3 Structured Query Language (SQL) Basis Data
Praktikum Database Subquery Lanjutan dan View Abdul Kadir.
SINTAK STORED PROCEDURE
Triggers & Stored Procedure The main reference of this presentation is from book: Peter Rob, Carlos Coronel, “Database systems: Design, Implementation.
Data Types Data Definition Language Referential Constraint SQL Query
BAHASA QUERY TERAPAN OLEH : HARSITI, ST.
Sistem Basis Data Pertemuan 11 Presented by :
BASIS DATA TERAPAN TINALIAH, S. Kom. Tujuan Perkuliahan  Mahasiswa mempelajari bagaimana mengelola database, mengakses data, mengubah data, membuat stored.
MANAJEMEN BASIS DATA Pertemuan 8 SUBQUERY.
DATA DEFINITION LANGUAGE
SQL Basis Data.
Stored Function Tanpa Parameter
TRIGGER LANJUT.
TRIGGER (Statement & Row Trigger)
Pertemuan after UTS Structure Query Language (SQL)
TRIGGER SYAIFUL HUDA, S.Kom.
FUNGSI-FUNGSI AKSES MySql
TABEL VIRTUAL (VIEW) SYAIFUL HUDA, S.Kom.
STORED PROCEDURE & TRIGGER
Bahasa query terpan.
Konsep Teknologi Informasi B
SQL (Structure Query Language)
VIEW.
Manajemen Basis Data menggunakan SQL Server
SQL (Structured Query Language)
Sistem Basis Data ABU SALAM, M.KOM.
SQL pada basis data client-server
Praktikum Berkas dan Basis Data
TRIGGER.
SQL OVERVIEW.
Sistem Manajemen Basis Data
Created By Amir Ali,S.Kom.,M.Kom
Procedure Siti Mukaromah, S.Kom.
OLEH : Slamet Sn Wibowo Wicaksono
Stored Function Dengan Parameter
BASIS DATA KD 3.6 Query Berjenjang.
BAB ENHANCED DATA MODELS FOR ADVANCED APPLICATIONS
CURSOR.
Trigger.
Oleh : FIRMAN JAYA, S.Pt, M.Kom
Integritas Basis Data Triggers, Store Procedure
Basis Data Bab 3 Structured Query Language (SQL).
DML dan View Oleh : Sri Herawati.
Membuat Query ACCESS Query adalah fasilitas untuk mengakses data dengan cara  yang memungkin bagi kita untuk menampilkan data-data dari database dalam.
12/6/2018 TRIGGER Pemrograman Basis Data Siti Mukaromah, S.Kom.
SUB QUERY DAN VIEW Praktikum SBD – 7 & 8.
Bahasa basis data Safitri Jaya, S.Kom, M.T.I.
ORACLE PL/SQL TRIGGER Program Studi D3 Teknik Informatika -Fakultas Ilmu Terapan.
Pengantar Teknologi SIM 2 (pertemuan 7)
10/14/2019 TRIGGER Pemrograman Basis Data.
Transcript presentasi:

View dan Trigger Materi 5 Sistem Manajemen Basis Data Eko Prasetyo Teknik Informatika Universitas Bhayangkara Surabaya 2012

View View adalah query tersimpan (stored query) yang ketika dipanggil akan menghasilkan result set. View bertindak seperti tabel virtual. Sintaks CREATE [OR REPLACE] VIEW view_name [(column_list)] AS select_statement [WITH [CASCADED | LOCAL] CHECK OPTION] Pernyataan CREATE VIEW akan membuat view Pernyataan REPLACE VIEW akan menindih view yang ada dengan nama yang sama. Pernyataan column_list adalah daftar nama kolom yang didefinisikan sendiri. Pernyataan select_statement berisi perintah query select DML dari tabel basis atau view yang lain. Catatan: VIEW bersifat “frozen”, jika kita membuat view dari query select * from tabel, maka ketika ada kolom baru yang ditambahkan dalam tabel maka dipastikan kolom yang baru tidak akan keluar didalam view.

Contoh: query 1 tabel Query untuk menampilkan mahasiswa yang umurnya tua (>22) select a.name, a.age from students as a where a.age > 22 Dapat dibuatkan view untuk menyederhanakan pemanggilan querynya: create view mahasiswa_tua as select a.name, a.age from students as a where a.age > 22 with check option Untuk mengaksesnya, dapat digunakan perintah query sederhana langsung pada view mahasiswa_tua select * from mahasiswa_tua

Contoh: query 2 tabel Menampilkan nim dan nama mahasiswa, nip dan nama dosen wali select a.sid, a.name, b.lid, b.name as nama_dosen from students as a, lecturer as b where a.lid=b.lid Dapat dibuatkan view untuk menyederhanakan pemanggilan querynya: create view mahasiswa_dosen_wali (nim, nama_mhs, nip, nama_dosen_wali) as select a.sid, a.name, b.lid, b.name as nama_dosen from students as a, lecturer as b where a.lid=b.lid Untuk mengaksesnya, dapat digunakan perintah query sederhana langsung pada view mahasiswa_tua select * from mahasiswa_dosen_wali

View Untuk menghapus view Yang perlu diketahui tentang view: DROP VIEW [IF EXISTS] view_name [, view_name] ... Yang perlu diketahui tentang view: Statement SELECT tidak dapat berisi subquery dalam klausa FROM Statement SELECT tidak dapat merujuk pada system atau user vaiables Tabel atau view yang dirujuk harus ada Tidak dapat merujuk ke tabel temporary, dan tidak boleh membuat view temporary Tidak dapat mengasosiasikan view dengan trigger

Trigger Trigger adalah blok SQL atau prosedur yang berhubungan dengan table, view, skema atau database yang dijalankan secara implicit pada saat terjadi sebuah event. Trigger dibuat sesuai dengan keperluan. Trigger perlu dibuat pada saat : Membentuk sebuah aksi tertentu terhadap suatu event Memusatkan operasi global Prosedur bisa dibuat dalam database, kemudian prosedur tersebut dipanggil pada trigger. Jika penggunaan trigger terlalu berlebihan, maka akan menyebabkan terjadi sifat ketidaktergantungan yang terlalu kompleks sehingga akan mempersulit pemeliharaan dari aplikasi yang besar.

Ilustrasi penggunaan trigger

Komponen trigger 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 Sintak pembuatan Keterangan: CREATE TRIGGER trigger_name trigger_time trigger_event ON tbl_name FOR EACH ROW trigger_body Keterangan: trigger_nama: nama trigger trigger_time: nilainya BEFORE atau AFTER aktivitas dilakukan trigger_event: statement yang mengaktifkan trigger, nilainya INSERT, UPDATE, atau DELETE tbl_name: nama tabel yang akan dibuatkan trigger trigger_body: statemen yang dieksekusi ketika trigger diaktifkan. Gunakan BEGIN … END jika ada lebih dari satu statemen.

Trigger Kita bisa merujuk kolom dalam tabel subjek (yang diasosiasikan dengan trigger) dengan menggunakan OLD dan NEW OLD.nama_kolom merujuk ke kolom dari baris yang lama sebelum di-update atau di-delete. NEW.nama_kolom merujuk ke kolom dari baris baru yang akan dimasukkan atau baris yang ada setelah dilakukan update. Yang perlu diketahui dalam trigger: Action foreign key CASCADE tabel induk tidak mempengaruhi trigger pada tabel anak. Tidak boleh ada dua trigger pada satu tabel yang mempunyai action time dan event yang sama. Misal, kita tidak boleh mempunyai dua trigger BEFORE UPDATE dalam satu tabel. Tapi kita boleh membuat trigger BEFORE UPDATE dan BEFORE INSERT dalam satu tabel, atau trigger BEFORE UPDATE dan AFTER update.

Tabel-tabel yang digunakan lecturer students enrolled Menyimpan jumlah mahasiswa yang menjadi anak walinya faculty grade_scale course

Contoh Trigger yang diinginkan: Nilai kolom s_count di tabel lecturer akan bertambah satu setiap kali satu mahasiswa dimasukkan dalam tabel sesuai dengan dosen wali yang diikutinya. delimiter | CREATE TRIGGER ins_mhs BEFORE INSERT ON students FOR EACH ROW BEGIN UPDATE lecturer SET s_count = s_count + 1 where lid = NEW.lid; END; | delimiter ; Trigger yang diinginkan: Jika mahasiswa dihapus dari tabel students maka jumlah anak wali s_count dosen yang bersangkutan juga akan berkurang satu. CREATE TRIGGER del_mhs AFTER DELETE ON students UPDATE lecturer SET s_count = s_count - 1 where lid = OLD.lid;

Any Question ? To Be Continued … Materi 6