{A1,A2,,An}RijBijɲݣԣ
ۣһϵģʽܿԷֽΪ3NFģʽеĺɵõ֡ ڶʽ ڶʽ(2NF):
ҪÿǼڼ壬ǼIJԣзƽ
ǷǼԣijӼ
2NFļΣ
ڷƽ
ڷƽijɲ()
ڷƽǷǼԣҪôdzҪôǼԡ磺ϵģʽR(A, B, C, D)кAB C, C D, D A ҳΥBCNFĺ ҪʱֽΪBCNFĹϵ ҳΥ3NFĺ ⣺
еļ{A, B}, {B, C}, {B, D}
ΥBCNFĺC AD, D A ֽ⣺R1(A,C,D), R2(B,C) R11(A,D), R12(C,D) AB C R3NF ϵģе ͶӰ ѡ ѿ 4.5p125
17
R S A B B C D 1 2 2 5 6 3 4 4 7 8 9 10 11 RS A R.B S.B C D 1 2 2 5 6 1 2 4 7 8 1 2 9 10 11 3 4 2 5 6 3 4 4 7 8 3 4 9 10 11
Ȼ
Ȼʲô㣿
ϵRSȻӱʾΪR S
RSеԵIJȥͬԣ
ԪRSͬһµԪϡ
R S A B C D 1 2 5 6 3 4 7 8
4.7p126
U V A B C B C D 1 2 3 2 3 4 6 7 8 2 3 5
9 7 8 7 8 10 18
U A 1 1 6 9 V B 2 2 7 7 C 3 3 8 8 D 4 5 10 10 ʲô㣿 ڵѿĻϣԪ顣
ϵRScĦӱʾΪ R cS㲽裺 RS ѿ cѡ㣺c(RS) UVϵ
ʲô㣿
һϵRΪϵSҲΪA1A2AnʾΪS (A1, A2,,An) (R)
U A ϵΪSԲʾΪS (R) ԱSalesman (empid, idno, name, gender, phone, deptid) ԱԱż s1.empid,s1.name(S1(Salesman) s1.name=s2.name AND s1.empids2.empidS2 (Salesman)) ⣺йϵѡ(ѧţκţɼ) ѡޡc1ѡޡc2ѧѧ ѧ(ҿκ = 'c1'(ѡ)) ɡѧ(ҿκ = 'c2'(ѡ)) ûѡޡc1ѧѧ ѧ(ѡ) ѧ(ҿκ = 'c1'(ѡ) ݿSQL SQLѯ ͶӰ ѡ ϵѯ ˻ Ӳѯ ϰ ѡ'C1'εѧ(INʾ) 'C1'γɼõѧ ѡ'C1'Σѡ'C2'εѧ ûѡ'C1'εѧ ۺ Group ByӾιɣ һлеֵԪֳ飬ֵͬԪΪһ飬ÿٷֱоۺ 20