Wednesday, December 15, 2010

Cơ sở dữ liệu - Bài tập làm thêm

Bài tập về ngôn ngữ dữ liệu
SQL+Đại số
Sách T:Lê Tiến Vương


Bài 1:
   Cho 3 quan hệ:

R1(
A
B
C)
              R2(
D
E)
R3(
B
C
D)

a
b
c

c
e

b
c
d

d
b
c

c
f

b
c
E

b
b
f

d
f

a
d
B

c
a
d









a, R1 x R2
b, R1*R2
c, chọn(D=d)trên (R1*R3)
d, R1*R2*R3
e, chiếu (BC) trên (R1*R2*R3)

giải:
a, R1 x R2= 12( tự liệt kê. Hjc)
b,

R1*R2=(
A
B
C
D)

a
b
c
d

a
b
c
e

d
b
c
d


c
a
d
b

c,

chọn(D=d)trên(R1*R3)=
(A
B
C
D)

a
b
c
d

d
b
c
d

d,

R1*R2*R3=(
A
B
C
D
E)

a
b
c
d
f

d
b
c
d
f

e,

chiếu(BC) trên (R1*R2*R3)=  (
B
C)

b
c


Bài 2:
CC( MSNCC,TEN_CC,DCCC)
MH(MSNCC,MSMH)
MSNCC:mã số nhà cung cấp
TEN_CC: tên người cung cấp
DCCC: địa chỉ cung cấp
MSMH: mã số mặt hàng
a, tìm MSNCC cung cấp:
+,ít nhất 1 mặt hàng
   Chiếu(MSNCC) trên (chọn(MSMH <>0(MH))
  SQL: SELECT MSNCC
               FROM MH
                   GROUPE BY MSNCC
                       HAVING COUNT (DISTINCT MSMH)>=1
+, không cung cấp mặt hàng nào
Chiếu(MSNCC) trên (chọn(MSMH =0(MH))
  SQL: SELECT MSNCC
               FROM MH
                   GROUPE BY MSNCC
                       HAVING COUNT (DISTINCT MSMH)=0
+,cung cấp 1 mặt hàng có MSMH=15
Chiếu(MSNCC) trên (chọn(MSMH =’15’(MH))
  SQL: SELECT MSNCC
               FROM MH
                    WHERE MSMH=’15’ AND
HAVING COUNT (DISTINCT MSMH)=1
+,cung cấp ít nhất 1 mặt hàng không có MSMH=15
Chiếu(MSNCC) trên (chọn(MSMH <>’15’(MH))
  SQL: SELECT MSNCC
               FROM MH
                    WHERE MSMH<>’15’ AND
HAVING COUNT (DISTINCT MSMH)>=1
+mặt hàng có MS=12,13,15 được cung cấp bởi những nhà cung cấp có địa chỉ ở đâu?
   Chiếu(DCCC) trên(chọn (MSMH=’12’ VÀ MSMH=’13’ VÀ MSMH=’15’)(CC*MH))
SQL:  SELECT DCCC
             FROM CC
              WHERE MSNCC IN ( SELECT MSNCC
                                                            FROM MH
                                                            WHERE MSMH=’12’ OR MSMH=’13’ OR MSMH=’15’)




No comments:

Post a Comment

Popular Posts