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

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={AB→C,B→D,CD→E,CE→GH,G→A},用推理的方法证明 F    ∣ = A B → G F\;|=AB\rightarrow G F∣=AB→G。

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

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

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

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

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

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

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

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

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={A→B,B→C,A→D,D→C}, 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\} {A→B}; F F F 在关系模式 R 2 ( A , C ) R_2(A,C) R2(A,C) 上的投影为 { A → C } \{A\rightarrow C\} {A→C}; F F F 在关系模式 R 3 ( A , D ) R_3(A,D) R3(A,D) 上的投影为 { A → D } \{A\rightarrow D\} {A→D}。

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

|------|------------|------------|------------|
| A | B | C | D |
| a~1~ | a~2~ | b~13~→a~3~ | b~14~→a~4~ |
| a~1~ | b~22~→a~2~ | a~3~ | b~24~→a~4~ |
| a~1~ | b~32~→a~2~ | b~33~→a~3~ | a~4~ |

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

由于存在某一行全为 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∣=(R1∩R2)→(R1−R2) 或者 F ∣ = ( R 1 ∩ R 2 ) → ( R 2 − R 1 ) F|=(R_1\cap R_2)\rightarrow (R_2-R_1) F∣=(R1∩R2)→(R2−R1),则 ρ \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 A→B, A ⊂ R 1 A\subset R_1 A⊂R1, A + ∩ R 1 − A = { B } A^+ \cap R_1-A=\{B\} A+∩R1−A={B}, G = { A → B } G = \{A\rightarrow B\} G={A→B};同理 A ⊂ R 2 A\subset R_2 A⊂R2, G = G ∪ { A → C } G = G\cup \{A\rightarrow C\} G=G∪{A→C}, A ⊂ R 3 A\subset R_3 A⊂R3, G = G ∪ { A → D } G = G\cup \{A\rightarrow D\} G=G∪{A→D}。 G = { A → B , A → C , A → D } G = \{A\rightarrow B,A\rightarrow C,A\rightarrow D\} G={A→B,A→C,A→D}。

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

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

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

最终 G = { A → B , A → C , A → D } G = \{A\rightarrow B,A\rightarrow C,A\rightarrow D\} G={A→B,A→C,A→D}。

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

3

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

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

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

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

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

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

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

(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={B→C,AC→B}

确定 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 R∈2NF, R ∈ 3 N F R\in 3\rm NF R∈3NF。但是由于 A C → B AC\rightarrow B AC→B, B ↛ A C B\nrightarrow AC B↛AC, B → C B\rightarrow C B→C ,存在传递依赖,故 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={AB→C}

( 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 AB→C, C C C 完全依赖于键 A B AB AB, R ∈ 2 N F R\in 2\rm NF R∈2NF。不存在传递依赖, R ∈ 3 N F R\in 3\rm NF R∈3NF, R ∈ B C N F R\in \rm BCNF R∈BCNF。

(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={A→B,A→C}

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 R∈2NF。不存在传递依赖,, R ∈ 3 N F R\in 3\rm NF R∈3NF, R ∈ B C N F R\in \rm BCNF R∈BCNF。

(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={A→C,AD→B}

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={B→C,B→A,A→BC}

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 A→C, C C C 完全依赖于 A A A,又 B → C B\rightarrow C B→C, C C C 完全依赖于 B B B,所以 R ∈ 2 N F R\in 2\rm NF R∈2NF。因为 A → B A\rightarrow B A→B, B → A B\rightarrow A B→A,尽管 A → C A\rightarrow C A→C(或 B → C B\rightarrow C B→C),但是不满足传递依赖的定义,所以不存在传递依赖,故 R ∈ 3 N F R\in 3\rm NF R∈3NF, R ∈ B C N F R\in \rm BCNF R∈BCNF。

相关推荐
月光水岸New2 小时前
Ubuntu 中建的mysql数据库使用Navicat for MySQL连接不上
数据库·mysql·ubuntu
狄加山6752 小时前
数据库基础1
数据库
我爱松子鱼2 小时前
mysql之规则优化器RBO
数据库·mysql
chengooooooo3 小时前
苍穹外卖day8 地址上传 用户下单 订单支付
java·服务器·数据库
Rverdoser4 小时前
【SQL】多表查询案例
数据库·sql
Galeoto4 小时前
how to export a table in sqlite, and import into another
数据库·sqlite
人间打气筒(Ada)4 小时前
MySQL主从架构
服务器·数据库·mysql
leegong231114 小时前
学习PostgreSQL专家认证
数据库·学习·postgresql
喝醉酒的小白4 小时前
PostgreSQL:更新字段慢
数据库·postgresql
敲敲敲-敲代码4 小时前
【SQL实验】触发器
数据库·笔记·sql