电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

拆分成3NF

拆分成3NF_第1页
1/8
拆分成3NF_第2页
2/8
拆分成3NF_第3页
3/8
5.4.3 保持函数依赖的模式分解 一、转换成 3NF 的保持函数依赖的分解 算法: ρ ={R 1,R 2,...,Rk}是关系模式R 的一个分解,U={A 1,A 2,...,A n},F={FD 1,FD 2,...,FDp},并设F 是一个最小依赖集,记FDi 为Xi→Alj,其步骤如下: ① 对 R的函数依赖集F 进行极小化处理(处理后的结果仍记为F); ② 找出不在 F 中出现的属性,将这样的属性构成一个关系模式。把这些属性从 U 中去掉,剩余的属性仍记为U; ③ 若有 X→AF,且 XA=U,则ρ ={R},算法终止; ④ 否则,对 F 按具有相同左部的原则分组(假定分为k 组),每一组函数依赖Fi 所涉及的全部属性形成一个属性集Ui。若 Ui Uj(i≠j),就去掉 Ui。由于经过了步骤②,故 kiiUU1,于是构成的一个保持函数依赖的分解。并且,每个Ri(Ui,Fi)均属于 3NF 且保持函数依赖。 例 1:关系模式R,其中 U={C,T,H,I,S,G},F={CS→G,C→T,TH→I,HI→C,HS→I},将其分解成 3NF 并保持函数依赖。 解:根据算法进行求解 (一)计算 F 的最小函数依赖集 ① 利用分解规则,将所有的函数依赖变成右边都是单个属性的函数依赖。由于 F 的所有函数依赖的右边都是单个属性,故不用分解。 ② 去掉 F 中多余的函数依赖 A.设CS→G 为冗余的函数依赖,则去掉 CS→G,得: F1={C→T,TH→I,HI→C,HS→I} 计算(CS)F1+: 设X(0)=CS 计算X(1):扫描F1 中各个函数依赖,找到左部为CS 或CS 子集的函数依赖,找到一个C→T 函数依赖。故有 X(1)=X(0)∪T=CST。 计算X(2):扫描F1 中的各个函数依赖,找到左部为CST 或CST 子集的函数依赖,没有找到任何函数依赖。故有 X(2)=X(1)。算法终止。 (CS)F1+= CST 不包含 G,故 CS→G 不是冗余的函数依赖,不能从 F1中去掉。 B.设C→T 为冗余的函数依赖,则去掉 C→T,得: F2={CS→G,TH→I,HI→C,HS→I} 计算(C)F2+: 设X(0)=C 计算X(1):扫描F2 中的各个函数依赖,没有找到左部为C 的函数依赖。故有 X(1)=X(0)。算法终止。故 C→T 不是冗余的函数依赖,不能从 F2 中去掉。 C.设TH→I 为冗余的函数依赖,则去掉 TH→I,得: F3={CS→G,C→T,HI→C,HS→I} 计算(TH)F3+: 设X(0)=TH 计算X(1):扫描F3 中的各个函数依赖,没有找到左部为TH 或TH 子集的函数依赖。故有 X(1)=X(0)。算法终止。故 TH→I 不是冗余的函数依赖,不能从 ...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部