PRAKTIKUM VIEW
Bismillah, hai teman-teman!
Kali ini kita saya akan menunjukkan praktikum view menggunakan Laragon dan phpMyAdmin.
Di dalam MySQL, View dapat didefenisikan sebagai ‘tabel
virtual’. Tabel ini bisa berasal dari tabel lain, atau
gabungan dari beberapa tabel.
Tujuan dari pembuatan VIEW adalah untuk kenyamanan
(mempermudah penulisan query), untuk keamanan
(menyembunyikan beberapa kolom yang bersifat rahasia),
atau dalam beberapa kasus bisa digunakan untuk
mempercepat proses menampilkan data (terutama jika
kita akan menjalankan query tersebut secara berulang).
View dapat berisi read-only atau updatable. Kondisi ini sangat dipengaruhi oleh
adanya pendefinisian view itu sendiri. Bagaimanapun, untuk menciptakan
updatable view, pernyataan SELECT yang didefinisikan di view harus mengikuti
aturan-aturan sebagai berikut:
- Pernyataan SELECT tidak boleh merujuk ke lebih dari satu tabel.
- Pernyataan SELECT tidak boleh menggunakan klausa GROUP BY atau HAVING.
- Pernyataan SELECT harus tidak menggunakan DISTINCT.
- Pernyataan SELECT harus tidak merujuk ke view lain yang tidak updatable.
- Pernyataan SELECT tidak boleh mengandung ekspresi apa pun, misalnya fungsi agregat.
Pada hakikatnya, jika sistem database mampu menentukan pemetaan balik dari
skema view ke skema tabel dasar, maka view memungkinkan untuk di update.
Dalam kondisi ini, operasi-operasi INSERT, UPDATE dan DELETE dapat
diterapkan pada view.
Latihan:
1. Masuk ke command promt dan membuat membuat database beserta tabel-tabel sesuai perintah.
3. Membuat view pada phpMyAdmin. Masuk ke localhost/phpmyadmin. Kemudian masuk pada tabel mahasiswa yang telah dibuat sebelumnya. Pilih create view, kemudian isikan nama view vGetMhs dan isikan sebagai SELECT * FROM 'mahasiswa'; dan tekan Go.
4. Menghapus view vgetmhs. Dengan membuka view dan pilih Drop.
5. Membuat view vjoin. SELECT m.kode_mk, m.nama_mk, m.sks, m.semester, m.kode_dos FROM matakuliah m LEFT JOIN ambil_mk a ON m.kode_mk = a.kode_mk WHERE a.kode_mk IS NULL
7. Membuat view vmk5. SELECT * FROM vmk WHERE semester = 5
8. Membuat updateable view dengan nama view vupdate. SELECT * FROM mahasiswa; dan melakukan perubahan update pada view vupdate. UPDATE 'vupdate' SET alamat = "Jl. Mangga" WHERE nim = "107"
10. Mendefinisikan updatable view pada view vmkoption dengan penggunaan check option. SELECT * FROM matakuliah WHERE sks < 2
11. Mendefinisikan nested view pada view vmklocal dengan local check option. jangan lupa check optionnya pilih yang local ya ges! SELECT * FROM vmkoption WHERE sks > 0
12. Mendefinisikan nested view pada view vmkcascaded dengan cascaded check option. jangan lupa check optionnya pilih yang cascaded ya ges! SELECT * FROM vmkoption WHERE sks > 0
13. Kemudian eksekusi perintah insert pada vmklocal dengan value kode_mk (PTI999), nama_mk (Statistika), sks (2), semester (4), kode_dos (12).
14. Kemudian eksekusi perintah insert pada vmkcascaded dengan value kode_mk (PTI998), nama_mk (Workshop Jaringan Komputer), sks (3), semester (5), kode_dos (14).
15. Hasilnya akan error. Penambahan pada view vMkCascade gagal dilaksanakan karena terhambat oleh
rule opsi CASCADED dimana view induk (vMkOption) menyaratkan bahwa
sks harus kurang dari 2.
Tugas Praktikum:
1. Mendefinisikan view untuk mendapatkan data mahasiswa yang hanya mengambil sks lebih dari 2 sks.
2. Mendefinisikan dosen yang mengajar mahasiswa beserta jumlah mahasiswa yang diajar.
3. Mendefinisikan nested view dari tugas praktikum nomor 2 hanya dosen yang mengajar mahasiswa terbanyak.
(mohon maaf, karena ini masih berhubungan dengan soal nomor dua. insya Allah akan segera diatasi kembali).
Tugas Rumah:
1. Mendefinisikan nested view untuk mendapatkan data mahasiswa yang jenis kelaminnya laki-laki dengan main view berupa mahasiswa yang mengambil sembarang matakuliah yang sksnya lebih dari sks terkecil.
2. Mendefinisikan updateable view dengan local check option untuk mendapatkan data matakuliah dengan sks diantara 1 dan 4.
Terima kasih! ^^
.png)
.png)
.png)
.png)
.png)
.png)
.png)
.png)
.png)
.png)
.png)
.png)
.png)
.png)
.png)
.png)
.png)
.png)
.png)
.png)
.png)
.png)
.png)
.png)
.png)
.png)
.png)
.png)
.png)
.png)
.png)
Komentar
Posting Komentar