Pertemuan 5 - Menyederhanakan Query dan Query Tree
Sebelum masuk materi, Ibu Dine kasih kuis dulu nih..
Cekidot :)
Perhatikan tabel di bawah untuk menjawab pertanyaan !!
Kuis Pertemuan 5
1.
Buat query ‘tampilkan idpel, nmpel, yang
tarifnya <=100
Select idpel, nmpel
From pelanggan, harga, daya_terpasang
Where pelanggan.idpel = daya_terpasang.idpel and harga.gol =
daya_terpasang.gol and tarif <= 100
2.
Cari ap yang tarifnya <> 100
Select ap
From pelanggan, harga, daya_terpasang
Where pelanggan.idpel = daya_terpasang.idpel and harga.gol =
daya_terpasang.gol and tarif <> 100
3.
Dari soal no. 1, buat aljabar relational-nya
π idpel, nmpel (σ
pelanggan.idpel =
daya_terpasang.idpel ˄
daya_terpasang.gol = harga.gol ˄ tarif <=100 (pelanggan х daya_terpasang x harga))
4.
Dari soal no. 2, buat aljabar relational-nya
π ap (σ
pelanggan.idpel =
daya_terpasang.idpel ˄
daya_terpasang.gol = harga.gol ˄ tarif <>100 (pelanggan х daya_terpasang x harga))
5.
Buat query graph dari soal no. 1
ANALISIS
Jika Graph tidak terkoneksi, berarti query salah, contohnya ...
SELECT nmpel, tarif
FROM pelanggan, harga
WHERE ap = “lenteng agung" AND tarif =110
Menyederhanakan Query dengan Aturan Transformasi
Untuk apa query perlu di sederhanakan? Coba perhatikan query berikut..
SELECT ap
FROM pelanggan
WHERE nmpel = “sely”
OR (NOT (ap = “semplak”)
AND (ap= “semplak”
OR ap = “bintaro.”)
AND NOT (ap = “bintaro”))
Bingung bukan, melihatnya ?? Makanya query tersebut perlu disederhanakan dulu dengan aturan transformasi di bawah ini..
FROM pelanggan
WHERE nmpel = “sely” ------------------- nmpel = "sely" dinotasikan P
OR (NOT (ap = “semplak”) --------------- ap = "semplak" dinotasikan Q
AND (ap= “semplak”
OR ap = “bintaro.”) ----------------------- ap = "bintaro" dinotasikan R
AND NOT (ap = “bintaro”))
Untuk apa query perlu di sederhanakan? Coba perhatikan query berikut..
SELECT ap
FROM pelanggan
WHERE nmpel = “sely”
OR (NOT (ap = “semplak”)
AND (ap= “semplak”
OR ap = “bintaro.”)
AND NOT (ap = “bintaro”))
Bingung bukan, melihatnya ?? Makanya query tersebut perlu disederhanakan dulu dengan aturan transformasi di bawah ini..
Sehingga query di atas menjadi :
SELECT apFROM pelanggan
WHERE nmpel = “sely” ------------------- nmpel = "sely" dinotasikan P
OR (NOT (ap = “semplak”) --------------- ap = "semplak" dinotasikan Q
AND (ap= “semplak”
OR ap = “bintaro.”) ----------------------- ap = "bintaro" dinotasikan R
AND NOT (ap = “bintaro”))
Maka dapat ditulis :
P ᴠ
(¬Q ˄
Q ᴠ R) ˄ ¬R
P ᴠ
(False
ᴠ R) ˄ ¬R
P ᴠ
( R )
˄ ¬R
P
ᴠ
False <=>
P
Sehingga, sederhananya :
SELECT ap
FROM pelanggan
WHERE nmpel = “sely”
Query Tree
Adalah suatu diagram
yang menggambarkan Operasional Aljabar Relasional dalam melakukan sebuah
proses, pada tabel dengan atribut yang ada.
Contoh :
Cari nama pelanggan yang
tidak dilayani oleh ap lenteng agung yang mempunyai daya > 1300 dan merupakan
golongan rumah dengan tarif 85
SELECT p.nmpel
FROM pelanggan p ,daya_terpasang
d, harga h
WHERE p.idpel = d.idpel
AND d.gol = h.gol
AND p.Ap <>'lenteng
agung'
AND d.daya >1300
AND h.gol = “rumah”
AND h.tarif=85
select nmpel from
(select *
from pelanggan
natural join
daya_terpasang
natural join harga
where ap<> 'lenteng agung' and daya>1300 and gol=‘rumah’ and
tarif=85)
Latihan ..
Perhatikan tabel di bawah ini untuk menjawab soal !!
1. Buat query untuk menampilkan nama
mahasiswa dan alamatnya yang sekarang berada di semester 6.
Select
nama_mhs, alamat
From
mahasiswa M, nilai N, mata_kuliah MK
Where
M.nim = N.nim and N.kd_mk = MK.kd_mk and semester=”6”
2. Buatlah :
ü Aljabar
relasional
ü Query
graph
ü Query
tree
Dari query yang telah dibuat pada soal no. 1.
π nama_mhs, alamat (σ mahasiswa.nim
= nilai.nim ˄ nilai.kd_mk = mata_kuliah.kd_mk ˄ semester
= “6” (mahasiswa х nilai x mata_kuliah))
3. Gunakan aturan operasi logika normalisasi
untuk menyederhanakan query berikut :
Select nim
From
mahasiswa, nilai
Where
(alamat <> “Depok” or nilai=”B”)
And (not
(nilai=”B”) or jns_kelamin = “Laki-laki”)
And alamat
= “Depok”
And
jns_kelamin = “Perempuan”
(¬P
ᴠ Q ) ˄ (¬Q ᴠ R) ˄ P ˄ ¬R
¬P
˄ ¬Q ᴠ Q ˄ R ˄ P ˄ ¬R
¬P
˄ True ˄ R ˄ P ˄ ¬R
False
˄ R ˄ ¬R ˄ P
False
˄ False ˄ P
False ˄ P
<=>
False
Sumber :
- slide Bu Dine
- www.mdp.ac.id/materi/2013-2014-1/.../SP346-071045-743-18.ppt
0 komentar:
Posting Komentar