2021 / 2022
1. Apa yang anda ketahui tentang trigger? Jelaskan definisi dan kegunaan trigger, event pada trigger,
sintaks dasar, dan contoh trigger! (25)
2. Perhatikan CREATE trigger statement berikut ini
CREATE TRIGGER before_delete_review
BEFORE DELETE
ON reviews FOR EACH ROW
INSERT INTO review_log (review_id, customer_id, content,
date_deleted)
VALUES (OLD.review_id, OLD.customer_id, OLD.content, NOW()
Berdasarkan query di atas, apa yang terjadi jika sebuah event DELETE terjadi pada tabel reviews? (10)
3. Perhatikan CREATE statement berikut ini
CREATE table t1 (
c1 int
c2 int);
Apakah clustered index otomatis dibuat ketika CREATE statement di atas dieksekusi ? Jelaskan alasan
dan analisa anda! (15)
4. Perhatikan ALTER statement berikut ini
ALTER TABLE t1 ADD INDEX(c1);
Apa nama index yang dibuat dari ALTER statement di atas ? (15)
5. Buat masing-masing 1 contoh horizontal view, vertical view, dan view yang dibuatkan berdasarkan
view yang sudah ada! (15)
6. Sebutkan dan jelaskan 5 teknik mengamankan data! (20)
Jawab
1. Trigger adalah sekumpulan kode SQL yang bereaksi pada sebuah aksi tertentu, contohnya ketika
melakukan delete pada sebuah data di suatu table maka secara otomatis akan men-trigger kode SQL
yang telah dibuat seperti menyimpan data yang telah dihapus ke table lain.
Sintak dasar:
Contoh trigger:
2. Sebelum data review dihapus data yang akan dihapus akan disimpan ke dalam table review_log
3. Ya, menurut website MySql setiap table akan memiliki clustered index, terdapat beberapa cara
untuk membuat clustered index
- Ketika kita membuat table dengan PRIMARY KEY maka secara otomatis MySql akan membuat
akan menggunakan PRIMARY KEY sebagai clusterd index
- Jika tidak membuat PRIMARY KEY maka MySql akan menggunakan semua kolom UNIQUE yang
memiliki atribut NOT NULL
- Jika tidak membuat PRIMARY KEY dan kolom UNIQUE yang cocok maka MySQL akan membuat
hidden clustered index bernama GEN_CLUST_INDEX
4. Index bernama c1
5. View
- Horizontal View
CREATE VIEW V_Horizontal
AS
SELECT * FROM user;
- Vertical View
CREATE VIEW V_Vertical
AS
SELECT id,nama FROM user;
- View in View
CREATE VIEW V_viewview
AS
SELECT nama FROM V_Horizontal;