Mulailah pekerjaan dengan kata "bisa", kata "tidak bisa" adalah kata lain dari "tidak mencoba".

Senin, 14 April 2014

Pertemuan 5 - Menyederhanakan Query dan Query Tree

LATIHAN











1. Buat query ‘tampilkan idpel, nmpel, yang tarifnya <=100
jawab :
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
jawab :
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
jawab :
π 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
jawab :
π 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

6. Buat query graph dari soal no. 2

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”))

Sehingga query di atas menjadi :
SELECT ap
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”))

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.
Jawab :
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.
Jawab :
π 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”
Jawab :
(¬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 :
www.mdp.ac.id/materi/2013-2014-1/.../SP346-071045-743-18.ppt

0 komentar:

Posting Komentar