Anda di halaman 1dari 9

TUGAS 6

NAMA : M. ARIF RAHMAN


KELAS : TELEMATIKA 2013
NIM
: 135874082
4.3 Pertimbangkan Skema Berikut :
Suppliers (sid : integer, sname : string, address : string)
Parts (pid : integer, pname : string, color : string)
Catalog (sid : integer, pid : integer, cost : real)

Fields key digarisbawahi, dan domain dari masing-masing field didaftar setelah nama field. Oleh karena
itu, sid merupakan key dari Field Suppliers, pid merupakan key dari Field Parts, dan sid dan pid merupakan
key dari Field Catalog. Hubungan Catalog yaitu biaya yang dikenakan untuk Suppliers. Tulislah query
berikut dalam Aljabar Relasional, Tupel Kalkulus Relasional, dan Domain Kalkulus Relasional :
1. Cari nama-nama Suppliers yang memasok/menyuplai beberapa Part merah.
2. Cari sids Suppliers yang memasok/menyuplai beberapa Part merah atau hijau.
3. Cari sids Suppliers yang memasok/menyuplai beberapa Part merah atau yang berada di 221
Packer Ave.
4. Cari sids Suppliers yang memasok/menyuplai beberapa Part merah dan beberapa Part Hijau.
5. Cari sids Suppliers yang memasok/menyuplai setiap Part.
6. Cari sids Suppiers yang memasok/menyuplai setiap Part merah.
7. Cari sids Suppliers yang memasok/menyuplai setiap Part merah atau Part Hijau.
8. Cari sids Suppliers yang memasok/menyuplai setiap Part merah atau memasok/menyuplai setiap
Part Hijau
9. Cari pasangan dari sids sehingga Supplier dengan sid pertama membayar lebih untuk beberapa
Part dibandingkan dengan Supplier dengan sid kedua.
10. Cari pid Part yang disuplai oleh minimal dua Suppliers berbeda.
11. Cari pid Part yang paling mahal yang disuplai oleh Supplier yang bernama Yosemite Sham.
12. Cari pid Part yang disuplai oleh setiap Suppliers kurang dari $ 200. (Jika Suppliers tidak menyuplai
Part atau biaya lebih dari $ 200 untuk itu, Part tidak dipilih.)

JAWAB :
1. - Aljabar Relasional

sname,color (color = red (Suppliers X Parts))


- Tupel Kalkulus Relasional
{ T | T Suppliers X PartsT [color] = red }
- Domain Kalkulus Relasional
{ <sid, sname, address, pid, pname, color> | <sid, sname, address, pid, pname, color> Suppliers
X Partscolor = red }

2. - Aljabar Relasional

sid,color (color = red v color = green(Suppliers X Parts))


- Tupel Kalkulus Relasional
{ T | T Suppliers X PartsT [color] = red v T [color] = green }
- Domain Kalkulus Relasional
{ <sid, sname, address, pid, pname, color> | <sid, sname, address, pid, pname, color> Suppliers
X Partscolor = red v color = green }
3. - Aljabar Relasional

sid,address (color = red v address = 221 Packer Ave(Suppliers X Parts))


- Tupel Kalkulus Relasional
{ T | T Suppliers X PartsT [color] = red v T [address] = 221 Packer Ave }
- Domain Kalkulus Relasional
{ <sid, sname, address, pid, pname, color> | <sid, sname, address, pid, pname, color> Suppliers
X Partscolor = red v address = 221 Packer Ave }

4. - Aljabar Relasional

sid,color (color = redcolor = green(Suppliers X Parts))


- Tupel Kalkulus Relasional
{ T | T Suppliers X PartsT [color] = red T [color] = green }

- Domain Kalkulus Relasional


{ <sid, sname, address, pid, pname, color> | <sid, sname, address, pid, pname, color> Suppliers
X Partscolor = red color = green }

5. - Aljabar Relasional
sid,pid (Suppliers X Parts))
- Tupel Kalkulus Relasional
{ T | T Suppliers X PartsT [sid] }
- Domain Kalkulus Relasional
{ <sid, sname, address, pid, pname, color> | <sid, sname, address, pid, pname, color> Suppliers
X Partssid }

6. - Aljabar Relasional

sid,color (color = red (Suppliers X Parts))


- Tupel Kalkulus Relasional
{ T | T Suppliers X PartsT [color] = red }
- Domain Kalkulus Relasional
{ <sid, sname, address, pid, pname, color> | <sid, sname, address, pid, pname, color> Suppliers
X Partscolor = red }

7. - Aljabar Relasional

sid,color (color = red v color = green(Suppliers X Parts))


- Tupel Kalkulus Relasional
{ T | T Suppliers X PartsT [color] = red v T [color] = green }
- Domain Kalkulus Relasional
{ <sid, sname, address, pid, pname, color> | <sid, sname, address, pid, pname, color> Suppliers
X Partscolor = red v color = green }

8. - Aljabar Relasional

sid,color (color = red v color = green(Suppliers X Parts))


- Tupel Kalkulus Relasional
{ T | T Suppliers X Parts T [color] = red v T [color] = green }
- Domain Kalkulus Relasional
{ <sid, sname, address, pid, pname, color> | <sid, sname, address, pid, pname, color> Suppliers
X Partscolor = red v color = green }
9. - Aljabar Relasional
sid_satu (sid=1)(catalog)
sid_dua (sid=2)(catalog)
sid_satu X sid_dua = sid=sid_satu.cost > sid_dua.cost
- Tupel Kalkulus Relasional
{ T | T sid_satu X sid_dua T [sid] = sid_satu.cost > sid_dua.cost }
- Domain Kalkulus Relasional
{ <sid, pid, cost> | <sid, pid, cost> sid_satu X sid_dua sid = sid_satu.cost > sid_dua.cost }
10. - Aljabar Relasional
(sid_satu, Catalog)
(sid_dua, Catalog)
sid_satu.pid sid_satu.pid = sid_dua.pid sid_satu.sid sid_dua.sid (R1R2)
- Tupel Kalkulus Relasional
{T | T T1 Catalog ( T2 Catalog (T2.pid=T1.pid T2.sid=T1.sid) T.pid = T1.pid)}
- Domain Kalkulus Relasional
{<pid> |<sid, pid, cost> Catalog sid, pid, cost ( <sid, pid, cost> Catalog pid = pid sid =
sid)}

11. - Aljabar Relasional


(S1,sid (sname=YosemiteSham(Suppliers))
(S2,S1
Catalog)
(S3,S2)
(S4(1sid,2pid,3cost), S3.cost < S2.cost (S3S2))
pid(S2sid,pid,costS4)
- Tupel Kalkulus Relasional
{T | T1 Catalog ( X Suppliers (X.sname=YosemiteSham X.sid =T1.sid) ( S Suppliers
(S.sname=YosemiteSham Z Catalog (Z.sid = S.sid Z.cost > T1.cost))) T.pid = T1.pid)
- Domain Kalkulus Relasional
{ <pid> |<sid, pid, cost> Catalog sid, sname, address ( <sid, sname, address> Suppliers
address = YosemiteSham sid = sid) ( sid, sname, address ( <sid, sname, address> Suppliers
R = YosemiteSham sid, pid, cost ( <sid, pid, cost> Catalog ( sid = sid cost > cost ))))}

12. - Aljabar Relasional


pid cost < $ 200 (catalog)
- Tupel Kalkulus Relasional
{T : < pid > | C Catalog Supplier C CatalogC[sid] = S[sid] C [pid] = C[pid] (C Catalog
C[pid] = C[pid] C[cost] < $200)}
- Domain Kalkulus Relasional
{(P : pid) | S C Catalog(S, P, C) S N A Supplier(S, N, A) CCatalog(S, P,
C)(SCCatalog(S, P, C) C< $200)}

4.5 Pertimbangkan hubungan berikut yang berisi tentang informasi penerbangan maskapai pesawat :
Flights (flno : integer, from : string, to : string, distance : integer, departs : time, arrives : time)
Aircraft (aid : integer, aname : string, cruisingrange : integer)
Certified (eid : integer, aid : integer)
Employees (eid : integer, ename : string, salary : integer)
Perhatikan bahwa hubungan Employees menjelaskan pilot dan jenis lain dari karyawan juga; setiap pilot
bersertifikat untuk beberapa pesawat (jika tidak, ia tidak akan memenuhi syarat sebagai pilot), dan hanya
pilot bersertifikat diizinkan untuk terbang.
Tulislah query berikut dalam Aljabar Relasional, Tupel Kalkulus Relasional, dan Domain Kalkulus
Relasional.
Perhatikan bahwa beberapa query ini mungkin tidak dinyatakan dalam aljabar relasional (dan, karena itu,
juga tidak dinyatakan dalam Tupel dan Domain Kalkulus Relasional)!
Untuk query seperti diatas, secara informal menjelaskan mengapa itu tidak dapat dinyatakan. (Lihat
latihan di akhir Bab 5 untuk permintaan tambahan atas skema maskapai pesawat)
1. Cari eids pilot bersertifikat untuk beberapa pesawat Boeing.
2. Cari nama-nama pilot bersertifikat untuk beberapa pesawat Boeing.
3. Cari aids dari semua pesawat yang dapat digunakan penerbangan secara non-stop dari Bonn ke
Madras.
4. Identifikasi penerbangan yang dapat dikemudikan oleh setiap pilot yang gajinya lebih dari
$100.000.
5. Cari nama-nama pilot yang mengoperasikan pesawat dengan kisaran jarak yang lebih dari 3.000
mil tetapi tidak bersertifikat pada setiap pesawat Boeing.
6. Cari eids dari field Employees yang memiliki gaji tertinggi.
7. Cari eids dari field Employees yang memiliki gaji tertinggi kedua.
8. Cari eids dari field Employees yang bersertifikat paling banyak untuk pesawat.
9. Cari eids dari field Employees yang bersertifikat untuk tiga pesawat.
10. Cari jumlah gaji yang dibayarkan kepada karyawan.
11. Apakah ada urutan penerbangan dari Madison ke Timbuktu? Setiap urutan penerbangan
diperlukan untuk berangkat dari kota yang merupakan tujuan dari penerbangan sebelumnya;
penerbangan pertama harus meninggalkan Madison, penerbangan terakhir harus mencapai
Timbuktu, dan tidak ada pembatasan pada jumlah penerbangan menengah. Query anda harus
menentukan apakah urutan penerbangan dari Madison ke Timbuktu ada untuk setiap masukan
pada contoh hubungan penerbangan.

JAWAB
1. - Aljabar Relasional

eid,aname (aname = BOEING (Aircraft X Certified))


- Tupel Kalkulus Relasional
{ T | T Aircraft X Certified T [aname] = boeing }
- Domain Kalkulus Relasional
{ <aid, aname, cruisingrange, eid> | <aid, aname, cruisingrange, eid> Aircraft X Certified
aname = boeing }

2. - Aljabar Relasional

ename,aname (aname = BOEING (Aircraft X Certified X Employees))


- Tupel Kalkulus Relasional
{ T | T Aircraft X Certified X Employees T [aname] = boeing }
- Domain Kalkulus Relasional
{ <aid, aname, cruisingrange, eid, ename, salary> | < aid, aname, cruisingrange, eid, ename, salary
> Aircraft X Certified X Employees aname = boeing }

3. - Aljabar Relasional

aid,from,to (from = Bonn to = Madras (Flight X Aircraft))


- Tupel Kalkulus Relasional
{ T | T Flight X Aircraft T [from] = Bonn T [to] = Madras }
- Domain Kalkulus Relasional
{ <flno, from, to, distance, arrives, aid, aname, cruisingrange> | <flno, from, to, distance, arrives,
aid, aname, cruisingrange> Flight X Aircraft from = Bonn to = Madras }

4. - Aljabar Relasional
flno, salary (salary>$100,000( Flight X Employees))
- Tupel Kalkulus Relasional
{ T | T Flight X Employees T [salary] > $100,000}

- Domain Kalkulus Relasional


{ <flno, from, to, distance, arrives, aid, ename, salary> | <flno, from, to, distance, arrives, aid,
ename, salary> Flight X Employees salary > $100,000}

5. - Aljabar Relasional
eid, distance, aname (distance>3000mil aname = boeing ( Flight X Employees X Aircraft))
- Tupel Kalkulus Relasional
{ T | T Flight X Employees X Aircraft T [distance] > 3000mil T [aname] = boeing }
- Domain Kalkulus Relasional
{ <flno, from, to, distance, arrives, aid, ename, salary, aid, aname, cruisingrange> | <flno, from,
to, distance, arrives, aid, ename, salary, aid, aname, cruisingrange> Flight X Employees X
Aircraft distance > 3000mil aname = boeing }

6. - Aljabar Relasional
(E1, Employees)
(E2, Employees)
(E3,E2.eid(E1
E1.salary>E2.salary E2)
(eidE1)E3
- Tupel Kalkulus Relasional
{E1.eid|E1 Employees( E2 Employees ( E2.salary > E1.salary))}
- Domain Kalkulus Relasional
{<eid> |<eid, ename, salary> Employees ( eid2, ename2, salary2 (<eid2, ename2, salary2
> Employees E salary2 > E salary1))}
7. - Aljabar Relasional
(E1, Employees)
(E2, Employees)
(E3,E2.eid(E1
E1.salary>E2.salary E2)
(E4,E2 E3)
(E5,E2 E3)
(E6,E5.eid(E4 E1.salary>E5.salary E5)
(eidE3)E6
- Tupel Kalkulus Relasional
{ E1.eid | E1 Employees E2 Employees( E2.salary > E1.salary ( E3 Employees (E3.salary
> E2.salary ))) }

- Domain Kalkulus Relasional


{<eid1> |<eid1, ename1, salary1> Employees eid2, ename2, salary2(<eid2, ename2,
salary2> Employees (salary2>salary1) ( eid3, ename3, salary3 (<eid3, ename3, salary3>
Employees (salary3 > salary2))))}

8. Tidak bisa dinyatakan dalam Aljabar Relasional, Tupel Kalkulus Relasional, Domain Kalkulus
Relasional Karena tidak ada data lengkap mengenai nama pesawat untuk disertifikasi

9. - Aljabar Relasional
(R1, Certified)
(R2, Certified)
(R3, Certified)
(R4, Certified)
(R5,eid((R1.eid=R2.eid=R3.eid)(R1.aidR2.aidR3.aid)(R1R2R3)))
(R6,eid((R1.eid=R2.eid=R3.eid=R4.eid)(R1.aidR2.aidR3.aidR4.aid)
(R1R2R3R4)))
R5R6
- Tupel Kalkulus Relasional
{C1.eid | C1 Certified C2 Certified ( C3 Certified (C1.eid=C2.eid C2.eid=C3.eid
C1.aid=C2.aid C2.aid=C3.aid C3.aid=C1.aid ( C4 Certified(C3.eid=C4.eid C1.aid=C4.aid
C2.aid=C4.aid C3.aid=C4.aid))))}
- Domain Kalkulus Relasional
{<CE1> |<CE1,CA1> Certified CE2, CA2 (<CE2,CA2> Certified CE3, CA3 (<CE3,CA3>
Certified (CE1=CE2CE2=CE3 CA1=CA2 CA2=CA3 CA3=CA1 ( CE4, CA4 (<CE4, CA4
Certified (CE3=CE4 CA1=CA4 CA2=CA4 CA3=CA4))))}

10. Tidak ada operasi hitung yang digunakan


Jika menggunakan SQL, maka
SELECT SUM (TEmployees.salaries)
FROM Temployees

11. Tidak ada Operasi Hitung

Anda mungkin juga menyukai