Ngườisoạn:NguyễnThịTânHà
HƯỚNGDẪN
GIẢIBÀITẬPÔNTHICSDL
ĐỀSỐ1:
CâuII:
CholượcđồquanhệQ(A,B,C,D,E,G,H)vàtậpphụthuộchàm:
F={E→C;H→E;A→D;A,E→H;D,G→B;D,G→C}
1.HãyxácđinhtấtcảcáckhóacủaQ
2.HãychobiếtQcóđạt3NFkhông?
3.TìmphủtốithiểucủaF.
4.PhânrãQvềdạngchuẩn3,yêucầuphânrãbảotoànthôngtinvàphụthuộchàm.
HƯỚNGDẪN:
1. Tìmkhóa?
TN={AG}
TG={DEH}
TN
+
F
={AG}
+
F
=AGDBC≠Q
+
Xi
TNUXi
(TNUXi)
+
Siêukhóa
Khóa
ø
AG
AGDBC
D
AGD
AGDBC
E
AGE
AGEDBCH=Q
+
AGE
AGE
H
AGH
AGHDEBC=Q
+
AGH
AGH
DE
AGDE
AGDEBCH=Q
+
AGDE
DH
AGDH
AGDHBCE=Q
+
AGDH
EH
AGEH
AGEHDBC=Q
+
AGEH
DEH
AGDEH
AGDEHBC=Q
+
AGDEH
VậyTK={AGE,AGH}
2. 3NF?
Xétpth:E→C,tathấyvếtráikhôngchứakhóavàvếphảikhônglàthuộctính
khóa=>Qkhôngđạt3NF
3. Tìmphủtốithiểu?
Bước1:F’=F,táchF’thànhmộttậpphụthuộchàmmàvếphảichícómộtthuộc
tính
F’={E→C;
H→E;
A→D;
A,E→H;
D,G→B;
D,G→C}
Bước2:Loạibỏnhữngthuộctínhdưthừa
F’={E→C;
H→E;
A→D;
A,E→H;
D,G→B;
D,G→C}
Bước3:
F’={E→C;
H→E;
A→D;
A,E→H;
D,G→B;
D,G→C}
*XétE→C:E
+
{E→C}=E,C∉E
+
⇔E→C∉F
+
⇒Khôngthểbỏphtnày.
*CácpthH→E;A→D;A,E→H;D,G→BđềukhôngbỏđượcvìcácthuộctínhE,
D,H,Bchỉxuấthiện1lầnbênvếphải.
*D,G→C:DG
+
{D,G→C}=DGB,C∉DG
+
⇔D,G→C∉F
+
⇒Khôngthểbỏ
phtnày.
VậyF’={E→C;
H→E;
A→D;
A,E→H;
D,G→B;
D,G→C}
LàphủtốithiếucủaF.
4. Phânrã?
VậyTK={AGE,AGH}
Bước1,Bước2:Khônglàm
Bước3:Q1(EC)vớiF1={E→C}
Q2(HE)vớiF2={H→E}
Q3(AD)vớiF3={A→D}
Q4(AEH)vớiF4={A,E→H}
Q5(DGB)vớiF5={D,G→B}
Q6(DGC)vớiF6={D,G→C}
Bước4:VìkhôngcóLĐQHconnàochứa1khóacủaQnênbổsung1khóacủa
Qvàophânrã:Q7(AGE),F7={ø}
===============================================
ĐỀSỐ2
CâuII
CholượcđồquanhệQ(ABCDEG)vàtậpphụthuộchàm
F={B→C;DEG→B;A→D;A→E;A→G}
1.HãyxácđinhtấtcảcáckhóacủaQ
2.HãychobiếtQcóđạt3NFkhông?
3.TìmphủtốithiểucủaF.
4.PhânrãQvềdạngchuẩn3,yêucầuphânrãbảotoànthongtinvàphụthuộchàm.
HƯỚNGDẪN
1. Tìmkhóa?
TN={A}
TG={BDEG}
TN
+
F
={A}
+
F
=ADEGBC=Q
+
VậyQchỉcó1khóaduynhấtlàA
2. 3NF?
Xétpth:B→C,tathấyvếtráikhôngchứakhóavàvếphảikhônglàthuộctínhkhóa
=>Qkhôngđạt3NF
3. Tìmphủtốithiểu?
Bước1:F’=F,táchF’thànhmộttậpphụthuộchàmmàvếphảichícómộtthuộc
tính
F’={B→C;
DEG→B;
A→D;
A→E;
A→G}
Bước2:Loạibỏnhữngthuộctínhdưthừa
F’={B→C;
DEG→B;
A→D;
A→E;
A→G}
Bước3:
F’={B→C;
DEG→B;
A→D;
A→E;
A→G}
*CácpthB→C;DEG→B;A→D;A→E;A→Gđềukhôngbỏđượcvìcác
thuộctínhC,B,D,E,Gchỉxuấthiện1lầnbênvếphải.
VậyF’={B→C;
DEG→B;
A→D;
A→E;
A→G}
LàphủtốithiếucủaF.
4. Phânrã?
TK={A}
Bước1,Bước2:Khônglàm
Bước3:Q1(BC)vớiF1={B→C}
Q2(DEGB)vớiF2={DEG→B}
Q3(AD)vớiF3={A→D}
Q4(AE)vớiF4={A→E}
Q5(AG)vớiF5={A→G}
Bước4:VìcóQ3,Q4,Q5chứakhóacủaQnênkhôngbổsung.
===============================================
ĐỀSỐ3
CâuII:
CholượcđồquanhệQ(ABCDEG)vàtậpcácphụthuộchàm
F={AB→C,AC→D,D→EG,G→B,A→D,CG→A}
1.HãyxácđinhtấtcảcáckhóacủaQ
2.HãychobiếtQcóđạt3NFkhông?
3.TìmphủtốithiểucủaF.
4.PhânrãQvềdạngchuẩn3,yêucầuphânrãbảotoànthôngtinvàphụthuộchàm.
HƯỚNGDẪN
1. Tìmkhóa?
TN={ø}
TG={ABCDG}
Xi
TNUXi
(TNUXi)
+
Siêukhóa
Khóa
ø
ø
ø
A
A
ADEGBC=Q
+
A
A
B
B
B
C
C
C
D
D
DEGB
G
G
GB
AB
AB
ADEGBC=Q
+
AB
AC
AC
ADEGBC=Q
+
AC
AD
AD
ADEGBC=Q
+
AD
AG
AG
ADEGBC=Q
+
AG
BC
BC
BC
BD
BD
BDEG
BG
BG
BG
CD
CD
CDEGBA=Q
+
CD
CD
CG
CG
CGABDE=Q
+
CG
CG
DG
DG
DGBE
ABC
ABC
ADEGBC=Q
+
ABC
ABD
ABD
ADEGBC=Q
+
ABD
ABG
ABG
ADEGBC=Q
+
ABG
ACD
ACD
ADEGBC=Q
+
ACD
ACG
ACG
ADEGBC=Q
+
ACG
ADG
ADG
ADEGBC=Q
+
ADG
BCD
BCD
CDEGBA=Q
+
BCD
BCG
BCG
CGABDE=Q
+
BCG
BDG
BDG
BDGE
CDG
CDG
CDEGBA=Q
+
CDG
ABCD
ABCD
CDEGBA=Q
+
ABCD
ABCG
ABCG
CDEGBA=Q
+
ABCG
ABDG
ABDG
CDEGBA=Q
+
ABDG
ACDG
ACDG
CDEGBA=Q
+
ACDG
BCDG
BCDG
CDEGBA=Q
+
BCDG
ABCDG
ABCDG
CDEGBA=Q
+
ABCDG
VậyTK={A,CD,CG}
2. 3NF?
Xétpth:G→B,tathấyvếtráikhôngchứakhóavàvếphảikhônglàthuộctínhkhóa
=>Qkhôngđạt3NF
3. Tìmphủtốithiểu?
Bước1:F’=F,táchF’thànhmộttậpphụthuộchàmmàvếphảichícómộtthuộc
tính
F’={AB→C,
AC→D,
D→E,
D→G,
G→B,
A→D,
CG→A}
Bước2:Loạibỏnhữngthuộctínhdưthừa
F’={AB→C,
AC→D,
D→E,
D→G,
G→B,
A→D,
CG→A}
● AB→C:cóBdưthừavìA→D→G→BA→B(BẩntrongA)
● AC→D:cóCdưthừavìA→D
Bước3:
F’={A→C,
A→D,
D→E,
D→G,
G→B,
A→D,
CG→A}
● A→D:bỏpthnàyvìtrùnglắp
● CácpthA→C;D→E;D→G;G→B;A→D;CG→Ađềukhôngbỏđượcvì
cácthuộctínhC,E,G,B,D,Achỉxuấthiện1lầnbênvếphải.
VậyF’={A→C,
D→E,
D→G,
G→B,
A→D,
CG→A}
LàphủtốithiếucủaF.
4. Phânrã?
DựavàophủtốithiểuF’
TK={A,CD,CG}
Bước1,Bước2:Khônglàm
Bước3:Q1(AC)vớiF1={A→C}
Q2(DE)vớiF2={D→E}
Q3(DG)vớiF3={D→G}
Q4(GB)vớiF4={G→B}
Q5(AD)vớiF5={A→D}
Q6(CGA)vớiF6={CG→A}
Bước4:VìcóQ1chứakhóacủaQnênkhôngbổsung.
===============================================
ĐỀSỐ4
CâuII:
ChoquanhệQ(GHIKLM)vàtậpcácphụthuộchàm
F={GH→L,I→M,L→K,HM→G,GK→I,H→L}
1.HãyxácđinhtấtcảcáckhóacủaQ
2.HãychobiếtQcóđạt3NFkhông?
3.TìmphủtốithiểucủaF.
4.PhânrãQvềdạngchuẩn3,yêucầuphânrãbảotoànthôngtinvàphụthuộchàm.
HƯỚNGDẪN
1. Tìmkhóa?
TN={H}
TG={GIKLM}
TN
+
F
={H}
+
F
=HLK≠Q
+
Xi
TNUXi
(TNUXi)
+
Siêukhóa
Khóa
ø
H
HLK
G
HG
HGLKIM=Q
+
HG
HG
I
HI
HILMGK=Q
+
HI
HI
K
HK
HKL
L
HL
HLK
M
HM
HMLKGI=Q
+
HM
HM
GI
HGI
HGLKIM=Q
+
HGI
GK
HGK
HGLKIM=Q
+
HGK
GL
HGL
HGLKIM=Q
+
HGL
GM
HGM
HGLKIM=Q
+
HGM
IK
HIK
HGLKIM=Q
+
HIK
IL
HIL
HGLKIM=Q
+
HIL
IM
HIM
HGLKIM=Q
+
HIM
KL
HKL
HKL
KM
HKM
HGLKIM=Q
+
HKM
LM
HLM
HGLKIM=Q
+
HLM
GIK
HGIK
HGLKIM=Q
+
HGIK
GIL
HGIL
HGLKIM=Q
+
HGIL
GIM
HGIM
HGLKIM=Q
+
HGIM
GKL
HGKL
HGLKIM=Q
+
HGKL
GKM
HGKM
HGLKIM=Q
+
HGKM
GLM
HGLM
HGLKIM=Q
+
HGLM
IKL
HIKL
HGLKIM=Q
+
HIKL
IKM
HIKM
HGLKIM=Q
+
HIKM
ILM
HILM
HGLKIM=Q
+
HILM
KLM
HKLM
HGLKIM=Q
+
HKLM
GIKL
HGIKL
HGLKIM=Q
+
HGIKL
GIKM
HGIKM
HGLKIM=Q
+
HGIKM
GILM
HGILM
HGLKIM=Q
+
HGILM
GKLM
HGKLM
HGLKIM=Q
+
HGKLM
IKLM
HIKLM
HGLKIM=Q
+
HIKLM
GIKLM
HGIKLM
HGLKIM=Q
+
HGIKLM
VậyTK={HG,HI,HM}
G
I
K
L
M
Cách2:TìmchutrìnhcủaTậpTG
TathấyG,IvàMtạothành1chutrình,vìvậymỗiđiểmtrênchutrìnhnàykếthợpvới
TNtạothànhkhóacủaQ.
VậyTK={HG,HI,HM}
2. 3NF?
Xétpth:L→K,tathấyvếtráikhôngchứakhóavàvếphảikhônglàthuộctínhkhóa
=>Qkhôngđạt3NF
3. Tìmphủtốithiểu?
Bước1:F’=F,táchF’thànhmộttậpphụthuộchàmmàvếphảichícómộtthuộc
tính
F’={GH→L,
I→M,
L→K,
HM→G,
GK→I,
H→L}
Bước2:Loạibỏnhữngthuộctínhdưthừa
F’={GH→L,
I→M,
L→K,
HM→G,
GK→I,
H→L}
● GH→L:cóGdưthừavìcóH→L
Bước3:
F’={H→L,
I→M,
L→K,
HM→G,
GK→I,
H→L}
● H→L:bỏpthnàyvìtrùnglắp
● CácpthI→M;L→K;HM→G;GK→I;H→Lđềukhôngbỏđượcvìcácthuộc
tínhM,K,G,I,Lchỉxuấthiện1lầnbênvếphải.
VậyF’={I→M,
L→K,
HM→G,
GK→I,
H→L}
LàphủtốithiếucủaF.
4. Phânrã?
DựavàophủtốithiểuF’
TK={HG,HI,HM}
Bước1,Bước2:Khônglàm
Bước3:Q1(IM)vớiF1={I→M}
Q2(LK)vớiF2={L→K}
Q3(HMG)vớiF3={HM→G}
Q4(GKI)vớiF4={GK→I}
Q5(HL)vớiF5={H→L}
Bước4:VìcóQ3chứakhóacủaQnênkhôngbổsung.
===============================================
ĐỀSỐ5
CâuII:
CholượcđồquanhệQvàtậpphụthuộchàmFđượcchonhưsau:
Q(A,B,C,D,E,G,H,K,L,M,N), F={ C → D,E; G → H,K; A,G → L; M → A,N; A →
B,C}
1.HãyxácđinhtấtcảcáckhóacủaQ
2.HãychobiếtQcóđạt3NFkhông?
3.TìmphủtốithiểucủaF.
4.PhânrãQvềdạngchuẩn3,yêucầuphânrãbảotoànthongtinvàphụthuộchàm.
HƯỚNGDẪN
1. Tìmkhóa?
TN={GM}
TG={AC}
TN
+
F
={GM}
+
F
=GMANBCDEHKL=Q
+
VậyQcó1khóaduynhấtlàGM
2. 3NF?
Xétpth:C→D,E,tathấyvếtráikhôngchứakhóavàvếphảikhônglàthuộctính
khóa=>Qkhôngđạt3NF
3. Phủtốithiểu?
Bước1:F’=F,táchF’thànhmộttậpphụthuộchàmmàvếphảichícómộtthuộc
tính
F’={C→D;
C→E;
G→H;
G→K;
A,G→L;
M→A;
M→N;
A→B;
A→C}
Bước2:Loạibỏnhữngthuộctínhdưthừa
F’={C→D;
C→E;
G→H;
G→K;
A,G→L;
M→A;
M→N;
A→B;
A→C}
Bước3:
F’={C→D;
C→E;
G→H;
G→K;
A,G→L;
M→A;
M→N;
A→B;
A→C}
CácpthC→D;C→E;G→H;G→K;A,G→L;M→A;M→N;A→B;A→C
đềukhôngbỏđượcvìcácthuộctínhD,E,H,K,L,A,N,B,Cchỉxuấthiện1lầnbênvế
phải.
VậyF’={C→D;
C→E;
G→H;
G→K;
A,G→L;
M→A;
M→N;
A→B;
A→C}
LàphủtốithiếucủaF.
4. Phânrã?
DựavàophủtốithiểuF’
TK={GM}
Bước1,Bước2:Khônglàm
Bước3:Q1(CD)vớiF1={C→D}
Q2(CE)vớiF2={C→E}
Q3(GH)vớiF3={G→H}
Q4(GK)vớiF4={G→K}
Q5(AGL)vớiF5={A,G→L}
Q6(MA)vớiF6={M→A}
Q7(MN)vớiF7={M→N}
Q8(AB)vớiF8={A→B}
Q9(AC)vớiF9={A→C}
Bước4:VìkhôngcóLĐQHconnàochứa1khóacủaQnênbổsung1khóacủa
Qvàophânrã:Q10(GM),F10={ø}
.
===============================================
ĐỀSỐ6
BÀI2:
Cho lược đồ quan hệ CCS và tập phụ thuộc hàm F được cho như sau như sau:
CCS(MAHV,HOTEN,NGAYSINH,MALOP,TENLOP,NGAYKG,MAMH,TENMH,SOT
IET,DIEMTHI,SOBL,SOTIEN)
F={MAHV→HOTEN,NGAYSINH,MALOP,
MALOP→NGAYKG,TENLOP,
MAMH→TENMH,SOTIET,
MAHV,MAMH→DIEMTHI,
SOBL→MAHV,SOTIEN}
1.HãyxácđinhtấtcảcáckhóacủaQ
2.HãychobiếtQcóđạt3NFkhông?
3.TìmphủtốithiểucủaF.
4.PhânrãQvềdạngchuẩn3,yêucầuphânrãbảotoànthongtinvàphụthuộchàm.
HƯỚNGDẪN
1. Tìmkhóa?
TN={MAMH,SOBL}
TG={MAHV,MALOP}
TN
+
F
={MAMH,SOBL}
+
F
={MAMH,SOBL,TENMH,SOTIET,MAHV,SO
TIEN,DIEMTHI,HOTEN,NGAYSINH,MALOP,NGAYKG,TENLOP}=CSS
+
VậyCSScó1khóaduynhấtlà{MAMH,SOBL}
2. 3NF?
Xétpth:MAHV→HOTEN,NGAYSINH,MALOP,tathấyvếtráikhôngchứakhóa
vàvếphảikhônglàthuộctínhkhóa=>Qkhôngđạt3NF
3. Tìmphủtốithiểu?
Bước1:F’=F,táchF’thànhmộttậpphụthuộchàmmàvếphảichícómộtthuộc
tính
F’={MAHV→HOTEN,
MAHV→NGAYSINH,
MAHV→MALOP,
MALOP→NGAYKG,
MALOP→TENLOP,
MAMH→TENMH,
MAMH→SOTIET,
MAHV,MAMH→DIEMTHI,
SOBL→MAHV,
SOBL→SOTIEN}
Bước2:Loạibỏnhữngthuộctínhdưthừa
F’={MAHV→HOTEN,
MAHV→NGAYSINH,
MAHV→MALOP,
MALOP→NGAYKG,
MALOP→TENLOP,
MAMH→TENMH,
MAMH→SOTIET,
MAHV,MAMH→DIEMTHI,
SOBL→MAHV,
SOBL→SOTIEN}
Bước3:
F’={MAHV→HOTEN,
MAHV→NGAYSINH,
MAHV→MALOP,
MALOP→NGAYKG,
MALOP→TENLOP,
MAMH→TENMH,
MAMH→SOTIET,
MAHV,MAMH→DIEMTHI,
SOBL→MAHV,
SOBL→SOTIEN}
Các pth MAHV → HOTEN, MAHV → NGAYSINH, MAHV → MALOP, MALOP →
NGAYKG, MALOP → TENLOP, MAMH → TENMH, MAMH → SOTIET,
MAHV,MAMH → DIEMTHI, SOBL → MAHV, SOBL → SOTIEN đều không bỏ được
vì các thuộc tính HOTEN, NGAYSINH, MALOP, NGAYKG, TENLOP, TENMH,
SOTIET,DIEMTHI,MAHV,SOTIENchỉxuấthiện1lầnbênvếphải.
VậyF’={MAHV→HOTEN,
MAHV→NGAYSINH,
MAHV→MALOP,
MALOP→NGAYKG,
MALOP→TENLOP,
MAMH→TENMH,
MAMH→SOTIET,
MAHV,MAMH→DIEMTHI,
SOBL→MAHV,
SOBL→SOTIEN}
LàphủtốithiếucủaF.
4. Phânrã?
DựavàophủtốithiểuF’
TK={MAMH,SOBL}
Bước1,Bước2:Khônglàm
Bước3:Q1(MAHV,HOTEN)vớiF1={MAHV→HOTEN}
Q2(MAHV,NGAYSINH)vớiF2={MAHV→NGAYSINH}
Q3(MAHV,MALOP)vớiF3={MAHV→MALOP}
Q4(MALOP,NGAYKG)vớiF4={MALOP→NGAYKG}
Q5(MALOP,TENLOP)vớiF5={MALOP→TENLOP}
Q6(MAMH,TENMH)vớiF6={MAMH→TENMH}
Q7(MAMH,SOTIET)vớiF7={MAMH→SOTIET}
Q8(MAHV,MAMH,DIEMTHI)vớiF8={MAHV,MAMH→DIEMTHI}
Q9(SOBL,MAHV)vớiF9={SOBL→MAHV}
Q10(SOBL,SOTIEN)vớiF10={SOBL→SOTIEN}
Bước4:VìkhôngcóLĐQHconnàochứa1khóacủaCSSnênbổsung1khóacủa
CSSvàophânrã:Q11(MAMH,SOBL),F11={ø}
===============================================
ĐỀSỐ8
CÂUII:
Cho lược đồ quan hệ HoaDon và tập các phụ thuộc hàm F như
sau: HoaDon(SOHD, KHACH, NGAYLAP, MATHANG,
DONGIA,SOLUONG)F={SOHD→KHACH,NGAYLAP,
SOHD,MATHANG→DONGIA,SOLUONG}
1.TìmkhóachoHoadon
2.HãychobiếtlượcđồquanhệHoaDoncóđạtdạngchuẩnnào?Tạisao?
3. Nếu lược đồ chưa đạt dạng chuẩn 3 hãy phân rã thành các lược đồ con đạt dạng chuẩn
3,xácđịnhkhóachínhchocáclượcđồconnày.)
HƯỚNGDẪN
1. Tìmkhóa?
TN={SOHD,MATHANG}
TG={ø}
VậyHoaDoncó1khóaduynhấtlà{SOHD,MATHANG}
2. Tìmdạngchuẩn?
● 2NF:
Tậpthuộctínhkhôngkhóa:N={KHACH,NGAYLAP,DONGIA,SOLUONG}
○ XétphtSOHD,MATHANG→KHACHЄF:
cóMATHANGdưthừavìcóSOHD→KHACH
SOHD,MATHANG→KHACHlàphụthuộchàmkhôngđầyđủ.
VậyHoaDonkhôngđạt2NF.
DạngchuẩncủaLĐQHHoaDonlà1NF
3. Phânrã?
F={SOHD→KHACH,
SOHD→NGAYLAP,
SOHD,MATHANG→DONGIA,
SOHD,MATHANG→SOLUONG}
Phânrãthànhcáclượcđồconđạtdạngchuẩn3:
Bước1,Bước2:Khônglàm
Bước3:
Q1(SOHD,KHACH)vớiF1={SOHD→KHACH},cóK1={SOHD}
Q2(SOHD,NGAYLAP)vớiF2={SOHD→NGAYLAP},cóK2={SOHD}
Q3(SOHD,MATHANG,DONGIA)vớiF3={SOHD,MATHANG→DONGIA},
cóK3={SOHD,MATHANG}
Q4(SOHD,MATHANG,SOLUONG)vớiF4={SOHD,MATHANG→
SOLUONG},cóK4={SOHD,MATHANG}
Bước4:VìcóQ3chứakhóacủaQnênkhôngbổsung.