You are on page 1of 4

4

Cu 1: S: Suppliers C: Catalog P: Parts


a,

(s.sname)

b,

(c.sid)

c,

T=

(c.sid)

V=

(c.sid)

(((S.sid=C.sid) and (P.pid=C.pid) and (color=red) )(SxCxP))

(((P.pid=C.pid) and ((color=red) or (color = blue)) )(CxP))


(((P.pid=C.pid) and (color=red) )(CxP))
(((P.pid=C.pid) and (color=rblue) )(CxP))

R = T-(T-V)
Cu 2:
a, select sname from S inner join C using sid inner join P using pid
where color = red;
b, select sid from C inner join P using pid
where ((color = red) or (color = blue));
c, select S.sid from S
Where (
(S.sid in (select sid from C inner join P using (pid)
where color = 'red'))
and
(S.sid in (select sid from C inner join P using (pid)
Where color = 'blue')))
Cu 3: tp ph thuc hm R(A,B,C,D) kha nguyn thy AB
F = {AB->c, AB->D, ABD->C} kha K={AB} dang chun 1 v cc thuc tnh l
nguyn t, khng dng chun 2 C ph thuc phn vo kha AB
Cu 4:

3:
P: Parts, C: catalog, S: Suppliers
Cu 1:
A,
T1 = (pid)((color = red))P
T2 = (pid)((color = blue))P
T3 = (pid, sid)C
T4 = T3T1
T5 = T3T2
Result = T4 U T5
B,
T1 = (C.sid,C1.sid)((C.cost>C1.cost))(Cx(C1(C)))
C,
T1 = (sid,pid)((c.cost<=200))C
T2 = (sid)S
Result = T2T1

Cu 2:
a,
cch 1:
select sid from
(select sid, pid, color, count(*) as sl from
catalog inner join parts using (pid)
where color = 'do' or color = 'xanh'
group by sid, color) as T inner join
(select color, count(*) as sl from parts
where (color = 'do') or (color = 'xanh')
group by color) as T1
using (color, sl)
group by sid
cch 2:
select sid from catalog as C
where
(select count(*) from catalog as C1, parts as p
where (c1.pid = p.pid)and (c.sid = c1.sid) and (color = 'xanh')
)=(select count(*) from parts where color = 'xanh')
or
(select count(*) from catalog as C1, parts as p
where (c1.pid = p.pid)and (c.sid = c1.sid) and (color = 'do')
)=(select count(*) from parts where color = 'do')
group by sid

b,
select c.sid, c1.sid from catalog as c, catalog as c1
where (c.cost>c1.cost) and (c1.sid != c.sid)
group by c.sid, c1.sid
c,
cch 1
select pid from parts
where pid not in
(select t1.pid from (select sid,pid from suppliers, parts) as t1
where (sid, pid) not in (select sid, pid from catalog where cost <=200)
)
cch 2:
select pid from catalog as C
where
(select count(*) from catalog as C1 where (C1.pid = C.pid ) and (c1.cost<=200) )
=
(select count(*) from suppliers)
group by pid
cau3:
A->B, B->A nu ln ngha, A, B c quan h 1-1
cu 4:
select avg(rating) from table;
select sum(rating) from table;
select count(rating) from table;

You might also like