【数据挖掘】国科大苏桂平老师数据库新技术课程作业 —— 第二次作业

1

F = { A B → C , B → D , C D → E , C E → G H , G → A } F=\{AB\rightarrow C,B\rightarrow D, CD\rightarrow E, CE\rightarrow GH, G\rightarrow A \} F={ABC,BD,CDE,CEGH,GA},用推理的方法证明 F    ∣ = A B → G F\;|=AB\rightarrow G F=ABG

① 已知 B → D B\rightarrow D BD,则 A B → A D AB\rightarrow AD ABAD(增广律)

② 已知 A B → A D AB\rightarrow AD ABAD,则 A B → D AB\rightarrow D ABD (分解规则)

③ 已知 A B → C AB\rightarrow C ABC A B → D AB\rightarrow D ABD,则 A B → C D AB\rightarrow CD ABCD (合成规则)

④ 已知 A B → C D AB\rightarrow CD ABCD C D → E CD\rightarrow E CDE,则 A B → E AB\rightarrow E ABE (传递律)

⑤ 已知 A B → E AB\rightarrow E ABE A B → C AB\rightarrow C ABC,则 A B → C E AB\rightarrow CE ABCE (合成规则)

⑥ 已知 C E → G H CE\rightarrow GH CEGH,则 C E → G CE\rightarrow G CEG (分解规则)

⑦ 已知 A B → C E AB\rightarrow CE ABCE C E → G CE\rightarrow G CEG,则 A B → G AB\rightarrow G ABG (传递律)

注意区别”传递律“与”传递函数依赖“。

2

设关系模式 R ( A , B , C , D ) R(A,B,C,D) R(A,B,C,D),其函数依赖集为 F = { A → B , B → C , A → D , D → C } F=\{A\rightarrow B, B\rightarrow C, A\rightarrow D, D\rightarrow C\} F={AB,BC,AD,DC} R R R 的一个分解 ρ = { R 1 ( A , B ) , R 2 ( A , C ) , R 3 ( A , D ) } \rho = \{R_1(A,B), R_2(A,C), R_3(A,D)\} ρ={R1(A,B),R2(A,C),R3(A,D)}

(1)求 F F F ρ \rho ρ 的每个模式上的投影

F F F 在关系模式 R 1 ( A , B ) R_1(A,B) R1(A,B) 上的投影为 { A → B } \{A\rightarrow B\} {AB} F F F 在关系模式 R 2 ( A , C ) R_2(A,C) R2(A,C) 上的投影为 { A → C } \{A\rightarrow C\} {AC} F F F 在关系模式 R 3 ( A , D ) R_3(A,D) R3(A,D) 上的投影为 { A → D } \{A\rightarrow D\} {AD}

(2) ρ \rho ρ 相对于 F F F 是无损连接吗?

ABCD
a1a2b13→a3b14→a4
a1b22→a2a3b24→a4
a1b32→a2b33→a3a4

其中,红色对应 F F F 中的 A → B A\rightarrow B AB蓝色对应 F F F 中的 B → C B\rightarrow C BC绿色对应 F F F 中的 A → D A\rightarrow D AD,此时 F F F 中的 D → C D\rightarrow C DC 不影响表格。

由于存在某一行全为 a a a,所以 ρ \rho ρ 相对于 F F F 是无损连接。

当分解只包括两个关系模式时,可以使用定理”分解 ρ = { R 1 , R 2 } \rho=\{R_1, R_2\} ρ={R1,R2},若 F ∣ = ( R 1 ∩ R 2 ) → ( R 1 − R 2 ) F|=(R_1\cap R_2)\rightarrow (R_1-R_2) F=(R1R2)(R1R2) 或者 F ∣ = ( R 1 ∩ R 2 ) → ( R 2 − R 1 ) F|=(R_1\cap R_2)\rightarrow (R_2-R_1) F=(R1R2)(R2R1),则 ρ \rho ρ 具有无损连接性“判断是否为无损连接。

(3) ρ \rho ρ 保持函数依赖吗?

A + = A B C D A^+=ABCD A+=ABCD B + = B C B^+=BC B+=BC C + = C C^+=C C+=C D + = C D D^+=CD D+=CD

考察 A → B A\rightarrow B AB A ⊂ R 1 A\subset R_1 AR1 A + ∩ R 1 − A = { B } A^+ \cap R_1-A=\{B\} A+R1A={B} G = { A → B } G = \{A\rightarrow B\} G={AB};同理 A ⊂ R 2 A\subset R_2 AR2 G = G ∪ { A → C } G = G\cup \{A\rightarrow C\} G=G{AC} A ⊂ R 3 A\subset R_3 AR3 G = G ∪ { A → D } G = G\cup \{A\rightarrow D\} G=G{AD} G = { A → B , A → C , A → D } G = \{A\rightarrow B,A\rightarrow C,A\rightarrow D\} G={AB,AC,AD}

考察 B → C B\rightarrow C BC B ⊂ R 1 B\subset R_1 BR1 B + ∩ R 1 − B = ϕ B^+\cap R_1 - B = \phi B+R1B=ϕ G G G 不变。

考察 A → D A\rightarrow D AD 类似于 A → B A\rightarrow B AB G = G ∪ { A → B , A → C , A → D } G = G\cup \{A\rightarrow B,A\rightarrow C,A\rightarrow D\} G=G{AB,AC,AD} G G G 不变。

考察 D → C D\rightarrow C DC D ⊂ R 3 D\subset R_3 DR3 D + ∩ R 1 − D = ϕ D^+\cap R_1 - D = \phi D+R1D=ϕ G G G 不变。

最终 G = { A → B , A → C , A → D } G = \{A\rightarrow B,A\rightarrow C,A\rightarrow D\} G={AB,AC,AD}

显然 G G G 不蕴含 F F F 中的函数依赖 B → C B\rightarrow C BC D → C D\rightarrow C DC,所以 ρ \rho ρ 没有保持函数依赖。

3

1NF、2NF、3NF 和 BCNF 的定义:

1NF:如果一个关系模式 R R R 中的每个属性 A A A 的域值都是原子的,即属性值是不可再分的,则关系模式 R R R 属于第一范式,简记为 R ∈ 1 N F R\in {\rm 1NF} R1NF

2NF:如果 R ∈ 1 N F R∈{\rm 1NF} R1NF所有的非主属性完全依赖于 R R R 的每个键,则 R ∈ 2 N F R∈{\rm 2NF} R2NF

3NF:如果 R ∈ 1 N F R\in {\rm 1NF} R1NF 且在 R R R没有非主属性传递依赖于 R R R 的键,则 R ∈ 3 N F R∈\rm 3NF R3NF

BCNF:如果 R ∈ 1 N F R∈\rm 1NF R1NF R R R没有任何属性传递依赖于 R R R 的任何一个键,则 R ∈ B o y c e − C o d d R∈\rm Boyce-Codd RBoyceCodd 范式(BCNF)。

注意,传递依赖的定义:设关系模式 R R R X X X Y Y Y Z Z Z R R R 的属性子集,若函数依赖 X → Y X\rightarrow Y XY Y ↛ X Y\nrightarrow X YX Y → z Y\rightarrow z Yz,则有 X → Z X\rightarrow Z XZ

指出下列关系模式是第几范式,并说明理由。

(1) R ( A , B , C ) R(A,B,C) R(A,B,C),其函数依赖集为 F = { B → C , A C → B } F=\{B\rightarrow C, AC\rightarrow B\} F={BC,ACB}

确定 R R R 的键, A + = A A^+ = A A+=A B + = B C B^+ = BC B+=BC C + = C C^+=C C+=C ( A B ) + = A B C (AB)^+=ABC (AB)+=ABC ( A C ) + = A B C (AC)^+=ABC (AC)+=ABC,所以键为 A B AB AB A C AC AC。关系模式 R R R 无非主属性,因此 R ∈ 2 N F R\in \rm 2NF R2NF R ∈ 3 N F R\in 3\rm NF R3NF。但是由于 A C → B AC\rightarrow B ACB B ↛ A C B\nrightarrow AC BAC B → C B\rightarrow C BC ,存在传递依赖,故 R ∉ B C N F R\notin \rm BCNF R/BCNF

(2) R ( A , B , C ) R(A,B, C) R(A,B,C),其函数依赖集为 F = { A B → C } F=\{AB\rightarrow C\} F={ABC}

( A B ) + = A B C (AB)^+ = ABC (AB)+=ABC,显然 R R R 的键为 A B AB AB,即 A A A B B B 为主属性, C C C 为非主属性。 A B → C AB\rightarrow C ABC C C C 完全依赖于键 A B AB AB R ∈ 2 N F R\in 2\rm NF R2NF。不存在传递依赖, R ∈ 3 N F R\in 3\rm NF R3NF R ∈ B C N F R\in \rm BCNF RBCNF

(3) R ( A , B , C ) R(A,B,C) R(A,B,C),其函数依赖集为 F = { A → B , A → C } F=\{A\rightarrow B, A\rightarrow C\} F={AB,AC}

R R R 的键为 A A A A A A 为主属性, B B B C C C 为非主属性。 B B B C C C 完全依赖于 A A A R ∈ 2 N F R\in \rm 2NF R2NF。不存在传递依赖,, R ∈ 3 N F R\in 3\rm NF R3NF R ∈ B C N F R\in \rm BCNF RBCNF

(4) R ( A , B , C , D ) R(A,B,C,D) R(A,B,C,D),其函数依赖集为 F = { A → C , A D → B } F=\{A\rightarrow C, AD\rightarrow B\} F={AC,ADB}

R R R 的键为 A D AD AD A A A D D D 为主属性, B B B C C C 为非主属性。 B B B 完全依赖于键 A D AD AD,但是 C C C 部分依赖于键 A D AD AD,所以 R ∉ 2 N F R\notin 2\rm NF R/2NF

(5) R ( A , B , C ) R(A,B,C) R(A,B,C),其函数依赖集为 F = { B → C , B → A , A → B C } F=\{B\rightarrow C, B\rightarrow A, A\rightarrow BC\} F={BC,BA,ABC}

A + = B + = A B C A^+=B^+=ABC A+=B+=ABC,所以键为 A A A B B B C C C 为非主属性。根据分解规则可知 A → C A\rightarrow C AC C C C 完全依赖于 A A A,又 B → C B\rightarrow C BC C C C 完全依赖于 B B B,所以 R ∈ 2 N F R\in 2\rm NF R2NF。因为 A → B A\rightarrow B AB B → A B\rightarrow A BA,尽管 A → C A\rightarrow C AC(或 B → C B\rightarrow C BC),但是不满足传递依赖的定义,所以不存在传递依赖,故 R ∈ 3 N F R\in 3\rm NF R3NF R ∈ B C N F R\in \rm BCNF RBCNF

  • 23
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不牌不改

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值