BAHASA QUERY
Bahasa Query terbagi menjadi dua kelompok yaitu :
1. Prosedural terdiri dari (Aljabar Relasi dan SQL,MySql, oracle dll) 2. Non prosedural (Query By Example)
User Mahir (Casual User) Cara berinteraksi dengan basis data melalui query yang telah disediakan oleh DBMS ( Data Base Management System) :
DBMS Adalah suatu program komputer yang digunakan untuk memasukkan, mengubah, menghapus, memanipulasi dan memperoleh data / informasi secara praktis dan efisien
Contoh produk DBMS:
Oracle (Oracle Corp.)
Informix
Sybase
Dbase
MS SQL, My SQL
Ingres (ASK Group Inc.) dll
o
Operasi Aljabar / Algebra pada aljabar relasi adalah Select Operation, Project Operation, Union Operation, Set Difference Operation, dan Cartesian Product.o
SQL memiliki struktur dasarSelect a1,a2..an , untuk menentukan nama atribut hasil Query
From t1,t2..tn, untuk menentukan nama tabel yang akan dikenakan perintah query
[ Where <Syarat>] ,untuk menentukan predikat (syarat) yang harus dipenuhi untuk memperoleh hasil query. o QBE (Query By Exsample)
Di kembangkan oleh T.J. Watson Research Center tahun 1970 Query dengan QBE dapat dibuat dengan contoh ( by-exsample) ALGEBRA/Aljabar :
1.
Select Operation ( σ )Digunakan untuk mencari baris pada tabel yang memenuhi predikat (kondisi tertentu) Notasi : σ f (R) Dimana f adalah predikat dan R adalah tabel.
2. Project Operation ( Π )
Digunakan untuk memilih atribut tertentu pada tabel untuk ditampilkan
Notasi : Π a1, a2….an (R) Dimana a1, a2..an adalah atribut yang akan ditampilkan.
3. Cartesian Product
Operasi perkalian, digunakan untuk merelasikan semua record dari dua tabel
Notasi : R = R1 x R2 Dimana R akan berisi seluruh kombinasi record2 dan seluruh atribut dari R1 dan R2. 4. Union Operation
Digunakan untuk menggabungkan record2 yang berasal dari dua tabel ( relasi ). Notasi : R = R1 R2
5.Set Difference Operation Notasi : R = R1 - R2
Contoh Soal :
A. Misalnya terdapat empat tabel yaitu film, pelangan, sewa dan detailsewa 1. Tabel FILM : Kdfilm Judul, Sutradara, Actor,Hargai
Kdfilm
Judul Sutradara Actor HargaV-002 The Lost Jacki S Donna 3000
V-003 Vampire Goen Ciblexs 4000
2. Tabel PELANGAN : Kdplgn nmplgn,alamat,kota
Kdplgn
Nmplgn Alamat Kota02011 Amir Jl. Indrapasta II/6 Semarang
02012 Budi Jl. Pemuda I/70 Solo
02013 Dini Jl. Imam Bonjol II No 45 Semarang
3. Tabel Sewa
Nosewa
kdplgn,tglnota,tglsewa,tglkembalNosewa
Kdplgn Tglnota Tglsewa Tglkembali005A 02001 05-01-09 05-01-09 05-01-09
4.Tabel Detailsewa
Nosewa,kdfilm jmlsewa, hrgsewa
Nosewa
Kdfilm
Jmlsewa Hargasewa005A V-002 1 3000
005A V-003 2 4000
Contoh :
2. Tabel PELANGAN : Kdplgn nmplgn,alamat,kota
Kdplgn
Nmplgn Alamat Kota02011 Amir Jl. Indrapasta II/6 Semarang
02012 Budi Jl. Pemuda I/70 Solo
02013 Dini Jl. Imam Bonjol II No 45 Semarang o Tampilkan semua pelangan yang berasal dari kota ”Solo”
1.Aljabar relasi : σ kota=”Solo” ( pelangan )
2. SQL : Select * from pelangan where kota=”Solo” 3. QBE (Queri By Exsample):
Table Pelangan
Kdplgn
Nmplgn Alamat KotaP._x P._y P._z “Solo”
Hasil Query :
Kdplgn
Nmplgn Alamat Kota02012 Budi Jl. Pemuda I/70 Solo
o Tampilkan semua pelangan yang berasal dari kota ”Semarang” atau nama pelangan ”Budi” Aljabar relasi : σ kota=”Semarang ” nama=”Budi” ( pelangan )
SQL : Select * from pelangan where kota=”Semarang” or nama=”Budi” QBE (Queri By Exsample):
Table Pelangan
Kdplgn
Nmplgn Alamat KotaP._x P._z “Semarang”
_x “Budi”
Hasil Query :
Kdplgn
Nmplgn Alamat Kota02012 Budi Jl. Pemuda I/70 Solo 02013 Dini Jl. Imam Bonjol II No 45 Semarang
o Tampilkan semua pelangan yang berasal dari kota ”Semarang” dan bernama ”Amir” Aljabar relasi : σ kota=”Semarang ” nama=”Amir” ( pelangan )
SQL : Select * from pelangan where kota=”Semarang” and nama=”Amir” QBE (Queri By Exsample):
Table Pelangan
Kdplgn
Nmplgn Alamat KotaP._x “Amir” P._z “Semarang”
Hasil Query :
Kdplgn
Nmplgn Alamat Kota02011 Amir Jl. Indrapasta II/6 Semarang
Contoh : Project Operation ( Π )
o Tampilkan nmplgn dan kota pada tabel pelangan yang kota=”Semarang” Aljabar relasi : Π nmplgn, kota (σ kota = “Semarang” (pelangan))
SQL : Select nmplgn, kota from pelangan where kota=”Semarang” QBE (Queri By Exsample):
Table Pelangan
Kdplgn
Nmplgn Alamat KotaP._x “Semarang”
Hasil Query Nmplgn Kota
Amir Semarang
Dini Semarang
Tabel FILM : Kdfilm Judul, Sutradara, Actor,Hargai
Kdfilm
Judul Sutradara Actor HargaV-002 The Lost Jacki S Donna 3000
V-003 Vampire Goen Ciblexs 4000
Tabel Detailsewa
Nosewa,kdfilm jmlsewa, hrgsewa
Nosewa
Kdfilm
Jmlsewa Hargasewa005A V-002 1 3000
005A V-003 2 4000
Contoh soal :
Tampilkan nosewa,kdfilm, judul,jmlsewa, hargasewa dari tabel film dan detailsewa yang hrgsewa > 3000 atau jmlsewa>1. Aljabar relasi :
Π detailsewa.nosewa, detailsewa.kdfilm,film.judul, detailsewa.jmlsewa,detailsewa.hrgsewa
(σ (detailsewa.hrgsewa>3000 detailsewa.jmlsewa>1) ^ deatilsewa.kdfilm=film.kdfilm (film x detailsewa))
SQL : Select detailsewa.nosewa, detailsewa.kdfilm, film.judul, detailsewa.jmlsewa,detailsewa.hrgsewa from film, detailsewa where (detailsewa.hrgsewa>3000 or detailsewa.jmlsewa>1) and deatilsewa.kdfilm=film.kdfilm
QBE :
Tabel FILM
Kdfilm
Judul Sutradara Actor Harga_x P._y
Tabel Detailsewa
Nosewa
Kdfilm
Jmlsewa HargasewaP._x >1
Hasil Queri :
Nosewa Kdfilm
Judul Jmlsewa Hargasewa005A V-003 Vampire 2 4000
Contoh :Union Operation
Tampilkan pelangan yang berasal dari kota ”Semarang” atau yang bernama ”Amir” dari tabel pelangan. Aljabar relasi :
σ kota=”Semarang” ( pelangan )
Hasil Query :
Kdplgn
Nmplgn Alamat Kota02011 Amir Jl. Indrapasta II/6 Semarang
02013 Dini Jl. Imam Bonjol II No 45 Semarang
σ nama=”Amir” ( pelangan)
Hasil Query :
Kdplgn
Nmplgn Alamat Kota02011 Amir Jl. Indrapasta II/6 Semarang
Aljabar relasi :σ kota=”Semarang” ( pelangan ) σ nama=”Amir” ( pelangan )
SQL : (Select * from pelangan where kota=”Semarang” ) union ( Select * from pelangan where nama=”Amir”) QBE : Tabel pelangan
Kdplgn
Nmplgn Alamat KotaP._x P._y “Semarang”
P._x “Amir”
Hasil Query :
Kdplgn
Nmplgn Alamat Kota02011 Amir Jl. Indrapasta II/6 Semarang
02013 Dini Jl. Imam Bonjol II No 45 Semarang
Contoh :Set Difference Operation
Contoh : Tampilkan pelangan yang kota ”Semarang” dan yang bukan namanya ”Amir” dari tabel pelangan. Aljabar relasi :
σ kota=”Semarang” ( pelangan )
Hasil Query :
Kdplgn
Nmplgn Alamat Kota02011 Amir Jl. Indrapasta II/6 Semarang
02013 Dini Jl. Imam Bonjol II No 45 Semarang σ nama<>”Amir” ( pelangan )
Hasil Query :
Kdplgn
Nmplgn Alamat Kota02013 Dini Jl. Imam Bonjol II No 45 Semarang σ kota=”Semarang” ( pelangan ) - σ nama<>”Amir” ( pelangan )
SQL : ( Select * from pelangan where kota=”Semarang”) - (Select * from pelangan where nama<>”Amir” ) QBE : Tabel pelangan
Kdplgn
Nmplgn Alamat KotaP._x - “Amir” P._y “Semarang”
Kdplgn
Nmplgn Alamat Kota02011 Amir Jl. Indrapasta II/6 Semarang
* Query By Example 1. MHS :
Nim Nm_mhs Alamat Kota Kdpos Telpon
A12.2006.00011 AMIR Jl. Pemuda II N0 240 Semarang 50123 70123456 A11.2007.00555 BUDI Jl. Slamet Riyadi I/70 Solo 60001 70133333 2. Matkul :
Kd_mt Nm_mt Sks
MT01 SBD 2
MT02 PASCAL 3
3. KRS / Nilai:
Nim Kd_mt Nil Status
A12.2006.00011 MT01 75 U A11.2007.00555 MT01 95 B A11.2007.00555 MT02 55 B
Kerjakan soal dibawah ini dengan Aljabar Relasi, SQL dan QBE
1.
Tampilkan semua data Mhs yang berasal dari kota ”Solo”Aljabar relasi : σ kota=”Solo” ( mhs ) SQL : Select * from mhs where kota=”Solo”
QBE :
Tabel mhs
Nim Nama Alamat Kota Telpon
P._x P._y P._z ”Solo” P._w
2. Tampilkan Nim, nama dari tabel Mhs yang berasal dari kota ”Solo” atau nama=”Tohri” Aljabar relasi : Π nim,nama (σ kota=”Solo” nama=”Tohri” ( mhs ))
SQL : Select nim,nama from mhs where kota=”Solo” or nama=”Tohri”
QBE :
Tabel mhs
Nim Nama Alamat Kota Telpon
P._x P._y ”Solo”
P._x “Tohri”
3.
Tampilkan nim, nama, nil mahasiswa yang krs yang nil>=70Aljabar relasi : Π krs.nim, mhs.nama , krs.Nil (σ krs.nil>=70 krs.nim=mhs.nim( mhs X krs )) SQL : Select krs.nim,mhs.nama,krs.nil from mhs,krs where krs.nil>=70 and krs.nim=mhs.nim;
QBE :
Tabel mhs
Nim Nama Alamat Kota Telpon
_x P._y
Tabel Krs
Nim Kd_mt Nil Status
4.
Tampilkan nim, nama,nm_mt,sks, nil mahasiswa yang krs yang nil>=70 Aljabar relasi :Π krs.nim,mhs.nama,matkul.nm_mt,matkul.sks ,krs.Nil (σ krs.nil>=70 krs.nim=mhs.nim krs.kd_mt=matkul.kd_mt ( mhs X krs, matkul X krs )
SQL : Select krs.nim,mhs.nama,matkul.nm_mt, matkul.sks,krs.nil from mhs,krs,matkul where krs.nil>=70 and krs.nim=mhs.nim and krs.kd_mt=matkul.kd_mt;
QBE :
Tabel mhsNim Nama Alamat Kota Telpon
_x P._y
Tabel Krs
Nim Kd_mt Nil Status
P._x >=70
._Z
Matkul :
Kd_mt Nm_mt Sks