LAPORAN PRAKTIKUM IX VIEW
“
”
Disusun untuk Memenuhi Matakuliah Praktikum Basis Data Yang Dibimbing oleh Ibu Triyanna Widyaningtyas
DisusunOleh: Arina Rosyida
(140533605017) (140533605017)
Ermayanti Eka Pratiwi
(140533605195) (140533605195)
S1 PTI 2014 OFF A
UNIVERSITAS NEGERI MALANG FAKULTAS TEKNIK JURUSAN TEKNIK ELEKTRO PRODI PENDIDIKAN TEKNIK INFORMATIKA APRIL 2015
MODUL IX “
1.
View
”
Tujuan: Memahami konsep dasar view di dalam basis data. Memahami implementasi view, termasuk algoritma dan jenis-jenisnya yang tersedia. Mampu
menyelesaikan kasus-kasus pengambilan data dengan menggunakan
pendekatan view.
2.
Dasar Teori 1. View
View dapat didefinisikan sebagai tabel maya (virtual ) atau logical yang terdiri dari himpunan hasil query. Tidak seperti umumnya tabel di dalam basis data relasional, view bukanlah bagian dari skema fisik. View bersifat dinamis; ia mengandung data dari tabel yang direpresentasikannya. Dengan demikian, ketika tabel — yang menjadi sumber datanya — berubah, data di view juga akan berubah. Merujuk pada dokumentasi MySQL, sintaks pendefinisian view diperlihatkan sebagai berikut:
2. Updatable View
View dapat bersifat read-only atau updatable. Kondisi ini sangat dipengaruhi oleh pendefinisian view itu sendiri. Bagaimanapun, untuk menciptakan updatable view, pernyataan SELECT yang didefinisikan di view harus mengikuti aturan-aturan 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 me nggunakan DISTINCT. • Pernyataan SELECT harus tidak merujuk ke view lain yang tidak updatable. • Pernyataan SELECT tidak boleh mengandung ekspresi apa pun, misalnya fungsi atau agregat. Pada hakekatnya, 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. 3.
Latihan 3.1 Menggunakan View 3.1.1
Langkah-langkah + Print Screen
1. Ketikkan pernyataan pembuatan view vGetMhs berikut di edr teks.
2. Eksekusi file view di atas (sesuaikan path lokasi penyimpanan file). 3. Pemanggilan view tak ubahnya sustu tabel.
4. Apabila diperlukan, kita juga diperkenankan melakukan penyaringan pada view.
Untuk mendapatkan informasi mengenai pendefinisian view, gunakan perintah SHOW CREATE VIEW nama_view.
Sebagaimana objek-objek database lainnya, view dapat dihapus dengan menggunakan perintah DROP.
Apabila diperlukan, view yang sudah terdefinisi juga dapat dimodifikasi dengan menggunakan perintah ALTER VIEW.
3.1.2
Analisis
View di latihan 1 ini membahas cara membuat view yaitu dengan sintaks CREATE VIEW vGetMhs AS SELECT *FROM nama_databases.Cara menghapus view sama seperti menghapus data biasa yaitu dengan sintaks DROP dan untuk memodifikasinya menggunakan ALTER VIEW.
3.2 View Kompleks 3.2.1
Langkah-langkah + Print Screen
Sebagai ilustrasi, view berikut melibatkan join untuk mendapatkan matakuliah yang tidak diambil oleh mahasiswa terdaftar.
Contoh pemanggilan view vJOIN
Pada pendekatan subquery, view di atas dapat kita tuliskan sebagai berikut :
3.2.2
Analisis
View kompleks maksudnya adalah penggabungan dari pernyataan-pern yataan operasi mysql (fungsi agregat,join,atau bahkan subquery). Di dalam latihan 2 ini menggunakan view yang digabung dengan join yang berfungsi untuk mendapatkan matakuliah yang tidak diambil oleh mahasiswa terdaftar. Untuk pemanggilan tetap digunakan sintaks SELECT *FROM vjoin;.
3.3 Nested View 3.3.1
Langkah-langkah + Print Screen
1. Ketikkan pernyataan pembuatan view berikut di editor teks.
2. Eksekusi file view. 3. Buat view baru yang merujuk pada view vMK.
4. Eksekusi file view vMK5. Hasil pemanggilan masing-masing view diperlihatkan sebagai berikut :
3.3.2
Analisis
Nested view (view bersarang) yaitu view dalam view.Di latihan ini dibuat view baru yang merujuk pada view vMK yang terdapat pertambahan semester 5 sehingga akan ditampilkan data matakuliah semua semester 5.
3.4 Updatable View 3.4.1
Langkah-langkah + Print Screen
1. Ketikkan pernyataan view sederhana sebagai berikut.
2. Periksa terlebih dahulu hasil pengambilan data.
3. Lakukan modifikasi pada view vUpdate.
4. Periksa hasil modifikasi di view.
5. Periksa data di tabel _siswa.
3.4.2
Analisis
View dapat bersifat updatable yaitu jika ada kekel iruan dapat dimodifikasi lagi dengan sintaks UPDATE vUpdate set yg ingin dimodifikasi WHERE letak yang perlu dimodifikasi.Pada intinya,perubahan pada view berdampak juga pada data tabel yang bersangkutan.
3.5 Check option 3.5.1
Langkah-langkah + Print Screen
1. Definisikan updatable view sebagai berikut :
2. Definisikan nested view vMkLocal dengan opsi LOCAL.
3. Definisikan nested view vMkCascade dengan opsi CASCADED.
4. Berikan perintah untuk menambah data baru di view vMkLocal.
5. Berikan perintah untuk menambah data baru di view vMkCascade.
3.5.2
Analisis
Pada
latihan-latihan
modul
9
tentang
view
ini
membahas
tentang
menggunakan view dalam mysql, dimana pembuatan dan pemanggilannya hampir sama dengan tabel , yang membedakan hanya jika dalam membuat tabel (create tabel mhs) sedangkan membuat view (create view mhs3) , karena sebenarnya view adalah tabel virtual atau tabel maya dari tabel yang direpresentasikan. Dan jika ingin mencari data juga sama seperti tabel, sperti select *from vgetmhs where jenis_kelamin = ‘P’; dan jika ingin mengetahui informasi pendefinisian view
show
create view nama_view , dan jika ingin
menghapus
drop
view nama_view. Dan jika ingin memodifikasi view yang
sudah terdefinisi dapat dengan perintah alter view. View juga dapat mendefinisikan suatu pernyataan yang kompleks, misalnya melibatkan fungsifungsi agregat, join, atau bahkan subquery. Seperti pada latihan b , melibatkan join dan subquery. Dan view tidak hanya mengacu pada tabel yang direfresentasikan, tapi juga membuat view berbasis view (nested view). Untuk mengganti file pada view bisa dengan langsung mengetikkan perintah sql pada command prompt dengan menggunakan penyataan update. Kemudian pada saat
menciptakan
menspesifikasikan
updatable
view,
MySQL
bagaimana parser
akan
mengaktifkan dengan CHECK OPTION
opsi
mengizinkan
bekerja,
dengan
untuk cara
ini mengakibatkan parser me-
review klausa WHERE ketika memroses pernyataan update di view. Ada dua jenis keyword yang bisa digunakan saat aktivasi check option: LOCAL dan CASCADED, dimana perbedaannnya jika : Keyword local
memeriksa
hanya sebatas pada view yang didefinisikan,
seperti contoh pada latihan 5, penambahan matakuliah bersks 2 bisa dilakukan karena perintah local hanya memeriksa viewnya yang from mkoption where sks > 0 Keyword cascaded
memeriksa semua view yang terkait , contoh pada
nested view. Seperti contoh pada latihan 5, penambahan matakuliah bersks 2 tidak bisa dilakukan karena perintah cascaded memeriksa view yang terkait sebelumnya from matakuliah where sks < 2.
4.
Tugas Praktikum 4.1 Mendefinisi updatable view dengan check option untuk mendapatkan data matakuliah yang sksnya diantara 1 dan 4, dan semesternya lebih dari semester terkecil. 4.1.1
SQL
4.1.2
Print Screen
4.1.3
Analisis
Pada praktikum 1 seperti di latihan 1 dan 2 yaitu yang membahas cara membuat view dan juga view kompleks.Pembuatan view pada praktikum 1 bertujuan untuk memunculkan data matakuliah yang sksnya antara 1 sampai 4 dan lebih besar dari semester terkecil yaitu dengan sintaks : CREATE VIEW vMkOption2 AS SELECT * FROM matakuliah WHERE sks > 1 OR sks < 4 AND semester > 3 WITH CHECK OPTION;
4.2 Mendefinisi nested view untuk mendapatkan data mahasiswa yang jenis kelaminnya L, dengan main view berupa mahasiswa yang mengambil sembarang matakuliah yang sksnya lebih dari sks terkecil. 4.2.1
SQL
4.2.2
Print Screen
4.2.3
Analisis
Pada soal praktikum ini, dibutuhkan 2 sql karena pertama kita harus mengeksekusi main view yang digunakan untuk mencari mahasiswa yang
mengambil sembarang matakuliah yang sksnya lebih dari sks terkecil, dimana pernyataan ini terdiri dari penggunaann join implisit untuk 3 tabel
ambil_mk, mhs, dan matakuliah yang kemudian mencari persamaan atau joinnnya antara ketiga tabel tersebut, dan ditambahakan pernyataan sql sks > (select min(sks) from matakuliah. Kemudian membuat sql yang kedua yang pacuan datanya pada hasil eksekusi sql pertama tadi, dengan menuliskan select *from vmhsi (vmhsi adalah nama view di main view) jenis kelamin = ‘L’ kar ena yang dicari yang berjenis kelamin laki-laki, tapi dikarenakan hasil eksekusi sql view yang pertama, perempuan semua, sehingga menghasilkan empty set pada pengeksekusian sql view yang kedua.
4.3 Mendefinisi updatable view untuk mendapatkan nim dan nama mahasiswa yang mengambil matakuliah di semester 3. 4.3.1
SQL
4.3.2
Print Screen
4.3.3
Analisis
Pada praktikum ini , mencari nim dan nama mahasiswa yang mengambil matakuliah di semester 3, sehingga penulisan sql dengan membuat view terlebih dahulu, kemudian menjoinkan 3 tabel (mhs, ambil_mk, matakuliah) untuk mendapatkan hubungan dari 3 tabel tersebut, kemudian menambahkan pernyataan
and
matakuliah.semester = 3; , sehingga nanti akan muncul
hasil yang diinginkan.
4.4 Mendefinisi view untuk mendapatkan nama dosen yang mengajar matakuliah dengan jumlah siswa terbanyak. 4.4.1
SQL
4.4.2
Print Screen
4.4.3
Analisis
Pada praktikum 4 ini sama dengan praktikum 2 yang membutuhkan 2 sql , karena untuk mencari nama dosen yang mengajar matakuliah dengan jumlah siswa terbanyak, pertama membuat view yang nantinya dijadikan pacuan untuk view yang kedua, Pada view pertama
men-select dosen.nama_dos , dosen.kode_dos dan
dosen.kode_dos di-count sebagai jumlah_siswa yang kemudian menjoinkan 3 tabel (dosen, matakuliah, dan ambil_mk) dan group berdasarkan kode_dos dan order secara descending pada jumlah_siswa dari yang terbesar sampai yang terkecil kemudia mengeksekusi sql tersebut, Pada view kedua
hasil
pada view pertama ada 3 nama dosen yang muncul,
namun dibutuhkan hanya satu nama dosen, yang memiliki siswa terbanyak sehingga dengan men-select nama_dos dimana jumlah_siswa = (select(max)
jumlah_siswa from prak4); (prak4 adalah nama view pada sql pertama. Baru kemudian akan muncul hasil yang diinginkan.
5.
Kesimpulan
View adalah tabel virtual yang isinya didefinisikan oleh query database. View bukanlah sebuah tabel fisik, tetapi sekumpulan instruksi yang menghasilkan sekumpulan data. Penggunaan view sangat bermanfaat apabila kita ingin memfokuskan diri pada informasi tertentu yang terdapat dalam basis data. Bayangkan sebuah database perusahaan yang diakses beberapa user pada departemen berbeda. Informasi yang dibutuhkan oleh setiap departemen pastilah berbeda. Dengan menggunakan view dapat menyediakan informasi yang dibutuhkan saja, baik berasal dari satu tabel a tau lebih dalam database tersebut. View mengijinkan banyak user yang berbeda melihat informasi yang sama dengan fokus yang berbeda. View mengijinkan kombinasi informasi untuk memenuhi kebutuhan user tertentu dan bahkan bisa diekspor ke aplikasi lain.
6.
Daftar Rujukan
1. Tim Asisten Dosen. 2015. Modul IX View. Malang : Universitas Negeri Malang. 2. http://atiknoviana.blogspot.com/2010/01/view-sql-server.html ,diakses pada 02 April 2015 pukul 12:41