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
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”))
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 :
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”))
SELECT ap
FROM pelangganWHERE 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
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))
π 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