分解为具有无损连接性和依赖保持性的3NF的方法以及例子

  • 通用方法
  • 例子

通用方法

输入:关系模式R<U, F>
输出:具有无损连接性和函数依赖保持性的3NF分解ρ = {R1, R2, …, Rk}.

方法:
(1)最小化。求F的最小函数依赖集Fm。
(2)排除。若Fm中存在X->A,使得XA = U,则R已是3NF,转(6)。
(3)独立。若R中某些属性未出现在Fm中任一函数依赖的左部或右部,则将它们从R中分出去,单独构成一个关系子模式。
(4)分组(相同左部原则)。对于Fm中的每一个X->A,都构成一个关系子模式XA(但若有X->A1, X->A2,…, X->An,可用合并规则便为X -> A1A2…An作为ρ的一个子模式)。
经过以上几步,求出函数依赖保持性分解:ρ = {R1, R2, …, Rk}。
(5)添键。若ρ中没有一个子模式含有R的候选键X,则令ρ = ρ ∪ {X};若存在Ri包含于Rj(i ≠ j),则删去Ri。
(6)停止分解,输出ρ。
此时ρ是既具有无损连接性又具有函数依赖保持性的3NF分解。

例子

关系模式R(A, B, C, D, E, P, G, H, I, J)满足下列的函数依赖:{AB -> E, ABE -> GP, B -> PI, C -> J, CJ -> I, G -> H}。
(1) 求出最小函数依赖集Fm = {AB -> E, AB -> G, B -> P, B -> I, C -> J, C -> I, G -> H},候选键为ABCD。

(2)不存在满足X->A,使得XA = U的依赖。

(3)D未存在在任意一函数依赖中,故独立出去,R = R - {D} =
{A, B, C, E, P, G, H, I, J}。

(4)由于AB -> E, AB -> G有相同左部,故合并为AB -> EG,同理有B -> PI, C -> JI。

(5)R中不含候选键ABCD,故添加ABCD进入。

(6)输出ρ = {ABEG, BPI, CJI, GH, ABCD},即为具有无损连接性和依赖保持性的3NF。

最小函数依赖集Fm的定义,求法以及举例

分解为具有无损连接性和依赖保持性的3NF的方法以及例子相关推荐

  1. 判别一个分解的无损连接性

    算法:ρ={R1<U1,F1>,R2<U2,F2>,...,Rk<Uk,Fk>}是关系模式R<U,F>的一个分解,U={A1,A2,...,An},F= ...

  2. 模式分解的无损连接性之深入剖析

    1.无损连接分解的形式定义 无损连接分解的形式定义如下:设R是一个关系模式,F是R上的一个函数依赖(FD)集.R分解成数据库模式δ={R1,--,Rk}.如果对R中每一个满足F的关系r都有下式成立: ...

  3. 数据库系统概论:判别一个分解的无损连接性

    1. 无损连接定义 无损连接是指分解后的关系通过自然连接可以恢复成原来的关系,即通过自然连接得到的关系与原来的关系相比,既不多出信息.又不丢失信息. 2. 判别无损连接的方法 定理判别(适合关系模式R ...

  4. 判断分解的无损连接性

    算法 ρ={R1<U1,F1>,R2<U2,F2>,...,Rk<Uk,Fk>}是关系模式R<U,F>的一个分解,U={A1,A2,...,An},F= ...

  5. 一、判别一个分解的无损连接性

    判别一个分解的无损连接性   算法的文字描述为: 算法的伪代码描述为:   例题解析 对于分解为两个关系模式的情况,有如下的定理:  

  6. 数据库中的模式分解与无损连接性

    无损连接分解的普通判别方法--表格法 设关系模式R=A1,-,An,R上成立的FD集F,R的一个分解p={R1,-,Rk}.无损连接分解的判断步骤如下: (1)构造一张k行n列的表格,每列对应一个属性 ...

  7. 基本函数依赖和候选键_[总结]关系数据库设计基础(函数依赖、无损连接性、保持函数依赖、范式、……)...

    联系(Relationship)1:1联系:如果实体集E1中的每个实体最多只能和实体集E2中一个实体有联系,反之亦然,那么实体集E1对E2的联系成为一对一联系,记为1:1: 1:N联系:一对多,记为1 ...

  8. 判断模式分解是否为无损连接的方法

    判断模式分解是否为无损连接的方法 [方法步骤] ρ = { R1<U1 , F1> , R2<U2 , F2> , - , Rk<Uk , Fk> } 是关系模式 ...

  9. 【关系数据库设计基础理论 - 候选关键字、无损连接性、函数依赖的判断】

    答: ①:计算候选关键字就是拿4个选项去计算他的闭包,如果闭包中包含了R的所有属性并且为最小集,那这个就是他的候选键 CD+是:CD,C什么也决定不了,D能推出A -> CDA ,A又能推出E ...

最新文章

  1. 摘录来自mysql 5.1的手册 关于mysql的事务处理和锁定语句
  2. 职业梦想是计算机的英语作文,我的梦想职业英语作文
  3. 每天学一点flash(71)折纸
  4. 酷客多基金在济南大学成立“酷客多奖助学金“
  5. 【机器视觉】 case算子
  6. mysql bin.000013_mysql的binlog安全删除的一种方法
  7. Scanf连续调用多次并且存在%c的问题
  8. 获取数组中连续相同的元素
  9. python 2x和python 3x的区别_python2x和3x区别
  10. BenchmarkDotNet v0.12x新增功能
  11. Linux磁盘管理1
  12. inside uboot (二) 启动流程
  13. Faster RCNN杂谈
  14. [机器学习] 机器学习中所说的“线性模型”是个什么东西?
  15. 利用反射将IDataReader读取到实体类中效率低下的解决办法
  16. 加油吧 少年(励志)
  17. 宏基E5572g 键盘排线插拔 拆机局部
  18. java域名校验_域名规则校验Java版本
  19. NetApp AFF A 系列全闪存存储阵列
  20. vue安装及创建运行

热门文章

  1. 我现在的笔记有哪几个地方?
  2. 服务器物理机如何实现系统快照,Lvm快照实现物理备份之自动化
  3. js学习笔记(1)之document.write()方法使用总结
  4. JAVA核心知识点之 数据结构:总结概述
  5. pdm生成java_PowerDesigner通过SQL语句生成PDM文件并将name和comment进行互相转换
  6. leetcode: 每个元音包含偶数次的最长字符串(前缀和 + 状态压缩(位运算、hash优化))*
  7. php gbk转拼音
  8. JS阻止form表单提交失败
  9. 【JAVA】:java中getTime函数
  10. 游戏防封技术是学易语言还是学c,易语言写游戏脚本防封执行sqlplus 之后没执行...