Professional Documents
Culture Documents
CSE132A Solutions HW 1: Sname Sid Pid Color Red
CSE132A Solutions HW 1: Sname Sid Pid Color Red
SELECT
FROM
WHERE
S.sname
Suppliers S, Parts P, Catalog C
P.color=red AND C.pid=P.pid AND C.sid=S.sid
2. (3 pts): Find the sids of suppliers who supply some red part or are at 221 Packer Street.
{T :< sid > | T 1 Catalog(X P arts(X[color] = red X[pid] = T 1[pid])T [sid] = T 1.sid])
T 2 Suppliers(T 2[address] = 221 P acker Str T [sid] = T 2[sid])}
(SELECT
FROM
WHERE
UNION
(SELECT
FROM
WHERE
S.sid
Suppliers S
S.address = 221 Packer Str)
C.sid
Parts P, Catalog C
P.color = red AND P.pid = C.pid)
3. (3 pts): Find the sids of suppliers who supply some red part and some green part.
sid ((pid color= red P arts) Catalog) sid ((pid color= green P arts) Catalog)
SELECT
FROM
WHERE
C1.sid
Catalog C1, Parts P1, Catalog C2, Parts P2
C1.pid=P1.pid AND P1.color=red AND
C2.pid=P2.pid AND P2.color=green AND
C1.sid=C2.sid
{T :< sid > | S SuppliersP P artsC Catalog (C[sid] = S[sid]P [pid] = C[pid]T [sid] = S[sid])}
SELECT
FROM
WHERE
S.sid
Suppliers S
(SELECT C.pid FROM Catalog C WHERE C.sid = S.sid)
CONTAINS (SELECT pid FROM Parts)
5. (6 pts): Find the sids of suppliers who supply every red or green part.
{(X : sid) | SN A Suppliers(X, SN, A)P P N L ((P arts(P, P N, L)(L = red L = green ))
C Catalog(X, P, C))}
SELECT
FROM
WHERE
S.sid
Suppliers S
(SELECT C.pid FROM Catalog C WHERE C.sid = S.sid)
CONTAINS (SELECT pid FROM Parts WHERE color = red OR color = green)
6. (6 pts): Find the sids of suppliers who supply every red part or supply every green part.
S SuppP P arts(P [color] = red C Cat (C[sid] = S[sid]P [pid] = C[pid]T [sid] = S[sid])
S SuppP P arts(P [color] = green C Cat (C[sid] = S[sid]P [pid] = C[pid]T [sid] = S[sid])}
{(X : sid) | SN A Suppliers(X, SN, A)P P N L ((P arts(P, P N, L)L = red ) C Catalog(X, P, C))
UNION
(SELECT
FROM
WHERE
S.sid
Suppliers S
(SELECT C.pid FROM Catalog C WHERE C.sid = S.sid)
CONTAINS (SELECT pid FROM Parts WHERE color = red))
S.sid
Suppliers S
(SELECT C.pid FROM Catalog C WHERE C.sid = S.sid)
CONTAINS (SELECT pid FROM Parts WHERE color = green))
7. (9 pts): Find pairs of sids such that the supplier with the first sid charges more for some part than the
supplier with the second sid.
SELECT
FROM
WHERE
8. (6 pts): Find the pids of parts supplied by at least two different suppliers.
SELECT
FROM
WHERE
DISTINCT C.pid
Catalog C, Catalog C
C.pid = C.pid AND C.sid <> C.sid
9. (9 pts): Find the pids of the most expensive parts supplied by suppliers named Yosemite Sham.
Sham (Catalog
Suppliers)
T ooExpensive pid cost>$200 Catalog
SuppliedByAll pid,sid Catalog sid Suppliers
SuppliedByAll \ T ooExpensive