Title: Design Theory for
1???????? ????? ????? ????? ?????? ????????? 4
- Design Theory for
- Relational Databases
- Part 4
2???? ??????? ??Boyce-Codd
- Boyce-Codd Normal Form (BCNF)
3????? ????? ???????
- ????
- ????? ??? SCT ???????? ??"? C ? T
- C ???? ????-?? ?? ?????
T C S
Smith DB Cohen
Jones OS Levy
Smith DB Levy
Student Course Teacher
4????? ???? ???????
- ????? ??? ???? R (????? ??????????)
- ?????? ????? ?? ?"? F ??????? ???? R ?????? ?????
- ????? ??????? ?? ???? ?"? X ? Y ?? ??????????
(???, Y ? X) ?? ?- - F ? X ? Y
- ?- X ???? ????-??
5???? ??????? ?? Boyce-CoddBoyce-Codd Normal Form
(BCNF)
- ???? R ?? ????? ?"? F ??? ????? ??????? ??
Boyce-Codd (BCNF) ?? ??? X ? A ? F ?????? - X ? A ??? ??????????, ????? A ? X, ??
- X ??? ????-??, ????? F ? X ?R
6???????? ?????? ????? ?-BCNF
7?????
- ?????? ???? R ?? ????? ?"? F, ???? ????? ?????
Rn,,R2 R1, ?? ????????? ?????? ????? - ?????? ??? ?????
- ?????? ???? ?? ???????
- ?? ???? Ri ??? ????? ???????
8????? ???? ???????? ?? ???? ?? BCNF
- ??????? ?? ???? R ?????? ?"? F
- ?????? ???? ?? BCNF, ????? ?"? X ? A ? F, ?? ?-
- A ? X ???
- F ? X ?R
- ???? ?? ?? ???? ?- F, ?? ?? ???? ?- F ??? ????
????? ???? (?? ?? ????) ???? ???????????
9????? ?????? ?????????? ????
- ????? ????? ABC ?? F A ? B, B ? C
- B ? C ??? ???? ?? BCNF, ?? F ? B ? ABC
- ??? ???? ???? ?????
- ???? ??? ??? BC
- ???? ?? ????? ?? ??????????? ?? ??"? ?????
- ???? ????? ??? AB
- ???? ?? ????? ?? ?? ???????????? ?? ?????
???????, ??? ????????? ??? ???? ?? ??"? ?????
10????? ?????
- ?? ??"? X ? A ??? ???? ?? BCNF ????? R, ?? ??????
?? R ???? ????? - ???? XA (?? ??????????? ?? ??"? ?????)
- ????) R-A ?? ??????????? ?? R ??? ????????? ???
???? ?? ??"? ?????) - ??? ??? ??????? ??????, X ? A ??? ?? ???? ?? BCNF
- ???, ??? ??? ??????? ?????? ?? ???? ????? ?? BCNF
???? ????? ???????
11???? ?????? ??????? ????? BCNF
- ???? ?? ??? ??????? ?????? ???? ????? ?? ??"?,
????? ?? S ???? ???? ???? ?? (F)?S - ????? ????? ???????? ?? ?? ??? ??????? ???????
- ???? ??????? ???? ???? ?????, ???? ??? ????
?????????? - ????????? ?????? ?? ???? ?? ??? ?????????? ????
?????? BCNF
12?????
- RABCD ?- F A ? B, B ? C, C ? D
- B ? C ??? ???? ?? BCNF
- ??? ???? ?? R ???? ?????
- R1BC ?- F1 B ? C
- R2ABD ?- F2 A ? B, B ? D
- ??"? B ? D ???? ?? BCNF ?- R2 ???? ???? ?? R2 ?-
- R2BD ?- F2 B ? D
- R3AB ?- F3 A ? B
13????? (????)
- ?????? ????? ???
- R1BC ?- F1 B ? C
- R2BD ?- F2 B ? D
- R3AB ?- F3 A ? B
- ???? ??? i, ?????? Fi ??? ????? ??? ???????? ??
??????? ??? ???? (????? ?????) ???
???????????? - ????? ?- Fi ???? ???? ?- F ??????, ?????? ???
????? ?? ??"?
F A ? B, B ? C, C ? D
14????? ???? ???? ?? ?????? ??????
- RABCD ?- F A ? B, B ? C, C ? D
- ???? ????? ??? C ? D (??? ??? B ? C)
- ??? ???? ?? R ???? ?????
- R1CD ?- F1 C ? D
- R2ABC ?- F2 A ? B, B ? C
- ??"? B ? C ???? ?? BCNF ?- R2 ???? ???? ?? R2 ?-
- R2BC ?- F2 B ? C
- R3AB ?- F3 A ? B
15????? ???? ???? (????)
- ?????? ????? ???
- R1CD ?- F1 C ? D
- R2BC ?- F2 B ? C
- R3AB ?- F3 A ? B
- ???? ????? ?- Fi ???? ?- F ?????? ???? ?? ?????
?? ??"?
16??? ???? ????? ??? ?????
- ??? R ???? ?? ????? ?"? F
- ??? ????? ?? R ???? ????? R1 ?- R2 ??? ??? ?????
?? ??? ?? ?????? ??? ???? ?????? ????? - F ? R1 ? R2 ? R1 ??
- F ? R1 ? R2 ? R2
- ????? ????? ???? ????? ??? ???? ?? BCNF ??? ????
??? ?????
17?????? ?????? ?- BCNF
- ?????? ?????????? ????? ??? ??? ??????? ?????
- ?? ???? ?????? ??? BCNF
- ?????? ??? ??? ?????
- ?????? ???? ????? ???? ?? ??"?
- ??? ????? ?? ????????? ??? ???????????? ????
????? ??? i - ?? ???????? ??????????? (??? ?? ?????)
18???? ???? ???? ?????????? ????? ??? ?- BCNF
????? ?? ??"??
19?????
- ????? ????? ABC ??
- F AB ? C, C ? A
- C ? A ??? ????? ?????? ?? BCNF, ???? ???? ????
??? ?"? ?? ??????? - ???? CA ?? ??"? C ? A
- ????? BC ??? ?"?
- ????? ??? ??? ????? ?- BCNF ?? ????? ??"? ?????
?? ??"?
20?? ??? ???-????? ??"??
- ??????? ?? ABC, ?????? ?? ????? AB ?? ?????
??????? ??? ??? ?????? ?????? - A ????? ???
- B ????? ?????
- ?????? ??? ??"? AB ? C ???? ??????
- ????? ???? ???? ?????? ?? ????? ???? ?? ??"?
21???? ??????? ??????
22???? ??????? ??????Third Normal Form (3NF)
- ???? R ?? ????? ?"? F ??? ????? ??????? ??????
(3NF) ?? ??? - X ? A ? F ?????? ??? ?????? ?????
- X ? A ??? ??????????, ????? A ? X,
- X ??? ????-??, ????? F ? X ?R, ??
- ????????? A ???? ????? ????? ?? R
23???????? ??????????? ?????? 3NF
- ??????? ?? ????? R ?????? ??"? F
- ?????? ????? ??? ???????? G ?? F
- ??? ?"? X ? A ? G ??????? ???? XA (?????? ??? ???
X)
24?????? ?????? ??????
- ?????? ?????????? ????? ??? ??? ??????? ?????
- ?? ???? ?????? ??? 3NF (???? ??????)
- ?????? ???? ?? ??"? (????)
- ??? ?????? ??? ????? ?????? ??? ??????
25?????
?? ???? ??? Gi ???? ?Ri(F) ?
- ????? ????? ABC ??
- F A ? C, B ? C
- F ??? ??? ??? ????????, ??? ??????
- R1AC ?- G1 A ? C
- R2BC ?- G2 B ? C
- Gi ????? ?? ????? ??"? ???? ????? ????? Ri
26????? ??? ?????? ??? ??? ?????
- F A ? C, B ? C
- ?????? ??? AC ?- BC
C B A
a3 b1,3 a1
a3 a2 b2,1
?????? ???? ????? ?? ????? ?????? ??? ?????
27???????? ?????? ????? 3NF (????)
- ?? ??? ?????? ?????? ??????? ??? ?????????, ???
?? ???? ?????? ??????????? ??? ??? ????-?? ??
????? ???????, ?? - ??????? ???? ?? ????? ??????? ????? ????? ??
??????
28?????? ?????? (????)
- ????? ????? RABC ??
- F A ? C, B ? C
- F ??? ??? ??? ????????, ??? ??????
- R1AC ?- G1 A ? C
- R2BC ?- G2 B ? C
- ?? ???? ?????? ???? ????-?? ?? ABC
- ???, ??????? ?????? ?? ????? AB, ???? ???? ??
????? ??????? ABC - R3AB ?- G3 Ø (??? ?? ?R3(F) ?????)
29????? ????? ?? ?????????? ?- 3NF
- RABCD ?- F A ? B, B ? C, C ? D
- F ????? ??? ????????, ??? ????? ?? ??????
- R1AB ?- G1 A ? B
- R2BC ?- G2 B ? C
- R3CD ?- G3 C ? D
- (R1)FR ???? R1 ????-?? ?? R ???? ???? ?????? ??
???? ????? - ???? ????? ?? ?????? ?? ????? BCNF
30??? ?????
Gi ??? ????? ??"? ???? ????? Ri, ??? Gi ?? ?????
????? ?- ?Ri(F) (????? ?? ??"? ????????? ?- Ri)
- ????? ????? RABC ??
- F AB ? C, C ? A
- ????? ?? ??????
- ???? R1ABC ?? G1 AB ? C
- ???? R2AC ?? G2 C ? A
- ????? ?- R1 ??????? ?? ??"? C ? A ??? ??? ??
????? ????? ????? ?"? ?????????, ???? ???? ????
??? ??? ?????? ????? ??"?
????? ???? ???? ????? ???"? C ? A ??????? ????
???? ????? R1
31????? ???? ????????? ?????? ????? 3NF
- ???? ???? ????? ?? ???? ?????, ??? ????? ???????
??"? ?? ???? ?? ???? - ????? RABC, F A ? B, A ? C
- ??????
- R1AB ?- G1 A ? B
- R2AC ?- G2 A ? C
- ???? ???? ????? ???
- R1ABC ?- G1 A ? B, A ? C
32????? ?????????? ????? ????? ????? ????? ???????
??????
33?? ???? ???????
- ?????, ??????? ????? ?????? ??? ???????? G
- ??? SXA1An???? ??????? ??? ??"? ?????? X ? Ai,
??? ?? ??"? ??? ???? ???? ??? X - ???? ?????? ??- S ??? ???? ?? 3NF
34??"? ????? V ? Ak
- ???? ?????? SXA1An ???? 3NF ???? ?"? V ? B ? G
- ??? B ? X, ?? X ???? ?? ????? ??? B ? X ?? ??? ??
???? ?? 3NF - ?????, B ??? ??? ?- Ai ????? ?- BAk
- ???? ?? ??"? ????? ?"? V ? Ak
35???? ?????? X ? V
- V ? Ak ??? ??"? ????? 3NF
- X ? V (???? V ???? ???? ???? V ???? ????-?? ??
????? S ???"? V ? Ak ????? ???? ?? 3NF ) - ???? ?????? ?? ???? ?????
- V ? X
- V ? X
36???? 1 V ? X
- V ? Ak ? G ??? ??"? ????? 3NF
- ????? X ? V ???? V ????? ??? ?- X
- X ? Ak ? G ?? ??? ????? ????? ???? ??"? ??
- ???? ???????????? ?? X V ??? ??????? ??? ????
?? ??"? X ? Ak, ?????? ??? ?- G ????? ??? ????????
37???? 2 V ? X
- V ? Ak ? G ??? ??"? ????? 3NF
- ?? ????? ?? V ? Ak ?- G, ?????? ?????? ??"? ??
??-????? G1 ? G - ?- G1 ??? ?? ?"? ????? ?????? ??? X (???? X ? V
???? V ????-?? ?? S ???"? V ? Ak ???? ???? ??
3NF) - ????? 1 V ? Ak G1 ? ??? X ? Ak ? G1
38???? 2 V ? X (????)
- ??? G2 ? G ??' ?? ??"? X ? Ai ???? Ai ? V
- ?- G2 ???? ????? ?? X ? V (????? ??????? ??????)
- X ? Ak ? G2 (???? Ak ? V ???? V ? Ak ???? ????
?? 3NF) - ????? 2 X ? V G2 ? ??? X ? Ak ? G2
39???? 2 V ? X (?????)
- ????? 1 V ? Ak G1 ? ??? X ? Ak ? G1
- ????? 2 X ? V G2 ? ??? X ? Ak ? G2
- ??? ?- ? G2 G1???? ????? ??X ? Ak ?????? X ? Ak
??? ?"? ?????? ?- G, ?????? ??? ?- G ??? ???????? - ??? ??? ???? ??????, ????? ?????? SXA1An ????
???? 3NF
40???? ??????
- ???? ?????? ??? ??????? ???? S ???? ???? ?? ?????
??????? R, ?? S ?????? 3NF - ??? ??????????? ?? ???? ?? ????? ??????? R ??
?????? ??????? ??? ?"? (???? ?? ?? ????) - ??? ??? ??????????? ?? ???? ??? ??? ???? ?? 3NF
41?????? ?????? ?????????? ?????
- ?????? ?????????? ????? ??? ??? ??????? ?????
- ?? ???? ?????? ??? 3NF (??????)
- ?????? ???? ?? ??"? (????)
- ?????? ??? ??? ????? (???? ?????? ???? ?????
????? ???? ?? ?????) - ????????? ??? ???? ???????????