Modul Pratikum Basis Data MODUL V SUB QUERY & VIEW A. TUJUAN Memahami keterhubungan entitas di dalam basis data. Memahami operasi subquery dan jenis-jenisnya di dakam pengambilan data Mampu menyelesaikan kasus-kasus pengambilan data yang kompleks dengan pendekatan subquery 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 B. PETUNJUK C. DASAR TEORI 1. Subquery Subquery (disebut juga subselect atau nested select / query atau inner- select) adalah query yang ada di dalam perintah SQL lain misalnya atau .Keberadaan subquery secara nyata mampu menyederhanakan persoalanpersoalan rumit berkaitan query data. Sebagai contoh, misal terdapat pernyataan sebagai berikut: mahasiswa dengan nim Secara normal, diperlukan dua tahapan untuk menyelesaikan kasus di atas.Pertama adalah mendapatkan alamat dari mahasiswa yang memiliki nim 104. Langkah selanjutnya, baru kita bisa mengetahui data mahasiswa yang alamatnya sama dengan mahasiswa dengan nim 104.Adapun dengan memanfaatkan subquery, maka penyelesaian kasus di atas hanya memerlukan sebuah query (akan dijelaskan nanti). JobsheetTEUM
14
Embed
Modul Pratikum Basis Data MODUL V SUB QUERY & VIEW A ...
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Modul Pratikum Basis Data
MODUL V
SUB QUERY & VIEW
A. TUJUAN
Memahami keterhubungan entitas di dalam basis data. Memahami operasi subquery dan jenis-jenisnya di dakam pengambilan data Mampu menyelesaikan kasus-kasus pengambilan data yang kompleks dengan
pendekatan subquery 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
B. PETUNJUK
C. DASAR TEORI
1. Subquery
Subquery (disebut juga subselect atau nested select / query atau inner- select) adalah
query yang ada di dalam perintah SQL lain misalnya
atau .Keberadaan subquery secara nyata mampu menyederhanakan
persoalanpersoalan rumit berkaitan query data. Sebagai contoh, misal terdapat
pernyataan sebagai berikut:
mahasiswa
dengan nim
Secara normal, diperlukan dua tahapan untuk menyelesaikan kasus di atas.Pertama
adalah mendapatkan alamat dari mahasiswa yang memiliki nim 104. Langkah
selanjutnya, baru kita bisa mengetahui data mahasiswa yang alamatnya sama dengan
mahasiswa dengan nim 104.Adapun dengan memanfaatkan subquery, maka
penyelesaian kasus di atas hanya memerlukan sebuah query (akan dijelaskan nanti).
Jobsh
eetTEUM
Modul Pratikum Basis Data
Pada hakekatnya, subquery sangat berguna ketika sebuah query didasarkan pada nilai-
nilai yang tak diketahui. Sintaks formal subquery diperlihatkan sebagai berikut:
Subquery dapat diklasifikasikan ke dalam tiga jenis : scalar, multiple-row, dan multiple
column.
a. Scalar Subquery
Subquery baris tunggal (scalar) hanya mengembalikan hasil satu baris data. Bentuk
subquery ini diperlihatkan seperti Gambar 1.
Gambar 1 Scalar subquery
Subquery baris tunggal dapat menggunakan operator baris tunggal =, >,>=, <, <=,
atau <>.
b. Multiple-Row Subquery
Subquery baris ganda (multiple-row) mengembalikan lebih dari satu baris data.
Bentuk subquery ini diperlihatkan seperti Gambar 2.
Gambar 2 Multiple-row subquery
Subquery baris ganda dapat menggunakan operator komparasi IN, ANY /SOME,
atau ALL.
c. Multiple-Column Subquery
Subquery kolom ganda (multiple-column) mengembalikan lebih dari satu baris dan
satu kolom data. Bentuk subquery ini diperlihatkan seperti Gambar 3. Jo
bshee
tTEUM
Modul Pratikum Basis Data
Gambar 3 Multiple-column subquery
2. 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:
3. Updatable View
View dapat berisi read-only atau updatable. Kondisi ini sangat dipengaruhi oleh adanya
pendefinisian view itu sendiri. Bagaimanapun, untuk menciptakan updatable view,
pernyataan yang didefinisikan di view harus mengikuti aturan-aturan sebagai
berikut :
Pernyataan tidak boleh merujuk ke lebih dari satu tabel.
Pernyataan tidak boleh menggunakan klausa atau
Pernyataan harus tidak menggunakan .
Pernyataan harus tidak merujuk ke view lain yang tidak updatable.
Pernyataan tidak boleh mengandung ekspresi apa pun, misalnya
fungsi agregat. Jo
bshee
tTEUM
Modul Pratikum Basis Data
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 dan dapat diterapkan pada view.
D. LATIHAN
1. Himpunan Entitas
Dalam latihan ini digunakan kembali tiga buah tabel meliputi mahasiswa,
ambil_mk, dan matakuliah yang telah dibuat sebelumnya, dan ditambah dengan dua buah
tabel baru, yaitu dosen dan jurusan. Untuk itu, terlebih dahulu ciptakan tabel dosen dan
jurusan dengan struktur sebagai berikut :
Data yang digunakan adalah sebagai berikut (sesuaikan agar sama persis) :
Tabel mahasiswa.
nim nama jenis_kelamin Alamat 101 Arif L Jl. Kenangan 102 Budi L Jl. Jombang 103 Wati P Jl. Surabaya 104 Ika P Jl. Jombang 105 Tono L Jl. Jakarta 106 Iwan L Jl. Bandung 107 Sari P Jl. Malang
kode_mk nama_mk sks semester kode_dos PTI447 Praktikum Basis Data 1 3 11 TIK342 Praktikum Basis Data 1 3 11 PTI333 Basis Data Terdistribusi 3 5 10 TIK123 Jaringan Komputer 2 5 33 TIK333 Sistem Operasi 3 5 10 PTI123 Grafika Multimedia 3 5 12 PTI777 Sistem Informasi 2 3 99
Tabel dosen
kode_dos nama_dos alamat_dos 10 Suharto Jl. Jombang 11 Martono Jl. Kalpataru 12 Rahmawati Jl. Jakarta 13 Bambang Jl. Bandung 14 Nurul Jl. Raya Tidar
Tabel jurusan
kode_jur nama_jur kode_dos TE Teknik Elektro 10 TM Teknik Mesin 13 TS Teknik Sipil 23
Himpunan entitas di atas dapat direpresentasikan ke dalam diagram skema (schema
diagram) seperti Gambar 4
Gambar 4 Diagram Skema
Jobsh
eetTEUM
Modul Pratikum Basis Data
2. Scalar Subquery
Contoh subquery baris tunggal adalah mendapatkan data mahasiswa yang Jenis
kelaminnya sama dengan mahasiswa dengan nama Wati
Bisa digambarkan, langkah pertama dari operasi di atas adalah mendapatkan
jenis kelamin mahasiswa dengan nama Wati kemudian hasilnya yakni P akan
digunakan oleh main query.
3. Multiple-Row Subquery
Pada subquery ini, kita menggunakan operator komparasi , atau
a. Operator IN
Operator memiliki arti : sama dengan member di dalam list. Sebagai contoh, kita bisa
menggunakan operator ini untuk mendapatkan data dosen yang mengajar matakuliah
b. Operator ANY / SOME
Operator memiliki arti : membandingkan suatu nilai dengan setiap
nilai yang dikembalikan oleh subquery.
Misalkan kita ingin mendapatkan data matakuliah yang memiliki sks lebih besar dari
sembarang sks matakuliah di semester 3.
Jobsh
eetTEUM
Modul Pratikum Basis Data
Operator = ANY ekuivalen dengan IN.
Operator < ANY ekuivalen dengan MAX (kurang dari maks).
Operator > ANY ekuivalen dengan MIN (lebih dari min).
c. Operator ALL
Operator memiliki arti : membandingkan suatu nilai dengan semua nilai yang
dikembalikan oleh subquery.
Misalkan kita ingin mendapatkan data matakuliah yang memiliki sks lebih besar dari
semua sks matakuliah di semester 3.
Operator < ALL ekuivalen dengan MIN (kurang dari min).
Operator > ALL ekuivalen dengan MAX (lebih dari maks)
4. Multiple-Column Subquery
Subquery kolom ganda (atau tabel) juga menggunakan operator komparasi
, atau . Pada query ini, nilai dari subquery dalam bentuk kolom ganda
dikomparasi main query..Sebagai contoh, misalkan kita ingin menampilkan data Jobsh
eetTEUM
Modul Pratikum Basis Data
matakuliah yang semester dan sksnya sesuai dengan semester dan sks matakuliah
5. Operator EXISTS dan NOT EXISTS
Operator Operator dan digunakan pada correlated subquery
untuk memeriks apakah subquery mengembalikan hasil atau tidak. Apabila subquery
mengembalikan hasil, akan mengembalikan nilai true. Begitu pula sebaliknya, jika
tidak mengembalikan hasil.
Sebagai contoh, pernyataan berikut akan mendapatkan data matakuliah yang diambil oleh
mahasiswa.
Pernyataan berikut akan mendapatkan data matakuliah yang tidak diambil oleh mahasiswa.
6. Menggunakan View
Secara umum, pembuatan view tidak berbeda dengan objek-objek database lainnya.
a. Ketikkan pernyataan pembuatan view vGetMhs berikut di editor teks. Jobsh