算法:ρ={R1<U1,F1>,R2<U2,F2>,...,Rk<Uk,Fk>}是关系模式R<U,F>的一个分解,U={A1,A2,...,An},F={FD1,FD2,...,FDp},并设F是一个最小依赖集,记FDi为Xi→Alj,其步骤如下:

① 建立一张n列k行的表,每一列对应一个属性,每一行对应分解中的一个关系模式。若属性Aj Ui,则在j列i行上真上aj,否则填上bij

② 对于每一个FDi做如下操作:找到Xi所对应的列中具有相同符号的那些行。考察这些行中li列的元素,若其中有aj,则全部改为aj,否则全部改为bmli,m是这些行的行号最小值。

如果在某次更改后,有一行成为:a1,a2,...,an,则算法终止。且分解ρ具有无损连接性,否则不具有无损连接性。

对F中p个FD逐一进行一次这样的处理,称为对F的一次扫描。

③ 比较扫描前后,表有无变化,如有变化,则返回第步,否则算法终止。如果发生循环,那么前次扫描至少应使该表减少一个符号,表中符号有限,因此,循环必然终止。

举例1:已知R<U,F>,U={A,B,C},F={A→B},如下的两个分解:

① ρ1={AB,BC}

② ρ2={AB,AC}

判断这两个分解是否具有无损连接性。

用无损连接的定理来解。

方法一

因为AB∩BC=B,AB-BC=A,BC-AB=C

所以B→A F+,B→C F+

故ρ1是有损连接。

方法二

因为AB∩AC=A,AB-AC=B,AC-AB=C

所以A→B F+,A→C F+

故ρ2是无损连接。

举例2:已知R<U,F>,U={A,B,C,D,E},F={A→C,B→C,C→D,DE→C,CE→A},R的一个分解为R1(AD),R2(AB),R3(BE),R4(CDE),R5(AE),判断这个分解是否具有无损连接性。

解:用判断无损连接的算法来解。

① 构造一个初始的二维表,若“属性”属于“模式”中的属性,则填aj,否则填bij

② 根据A→C,对上表进行处理,由于属性列A上第1、2、5行相同均为a1,所以将属性列C上的b13、b23、b53改为同一个符号b13(取行号最小值)。

③ 根据B→C,对上表进行处理,由于属性列B上第2、3行相同均为a2,所以将属性列C上的b13、b33改为同一个符号b13(取行号最小值)。

④ 根据C→D,对上表进行处理,由于属性列C上第1、2、3、5行相同均为b13,所以将属性列D上的值均改为同一个符号a4

⑤ 根据DE→C,对上表进行处理,由于属性列DE上第3、4、5行相同均为a4a5,所以将属性列C上的值均改为同一个符号a3

⑥ 根据CE→A,对上表进行处理,由于属性列CE上第3、4、5行相同均为a3a5,所以将属性列A上的值均改为同一个符号a1

⑦ 通过上述的修改,使第三行成为a1a2a3a4a5,则算法终止。且分解具有无损连接性。

判别一个分解的无损连接性相关推荐

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

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

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

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

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

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

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

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

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

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

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

    分解为具有无损连接性和依赖保持性的3NF的方法以及例子 通用方法 例子 通用方法 输入:关系模式R<U, F> 输出:具有无损连接性和函数依赖保持性的3NF分解ρ = {R1, R2, - ...

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

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

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

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

  9. C语言: 定义一个函数int isprime(int n),用来判别一个正整数n是否为素数,若为素数函数返回值为1,否则为0。在主函数中输入一个整数x,调用函数isprime(x)来判断这个整数x是

    原题: 定义一个函数int isprime(int n),用来判别一个正整数n是否为素数,若为素数函数返回值为1,否则为0.在主函数中输入一个整数x,调用函数isprime(x)来判断这个整数x是不是 ...

最新文章

  1. app怎么嵌套vue页面_app内嵌vue单页面应用的一些坑
  2. python os.system返回值_python os.system()返回值判断
  3. java s0 s1_业余草告诉你Java GC 变量含义(S0 S1 E O P YGC YGCT FGC FGCT G
  4. TCP Fast Open知识
  5. php未定义要怎样做,php-Behat-未定义的功能步骤
  6. MPP install
  7. 线段树和zkw线段树
  8. [UE4]Cast to转换数据类型
  9. ASP网页开发重点源代码
  10. mvc npoi将List实体导出excel的最简单方法
  11. 九九乘法表c语言四种,C语言实现九九乘法表(四种情况)
  12. 电子教室的功能有哪些-极域电子教室
  13. oracle瓶颈,解决Oracle数据库性能瓶颈问题
  14. 手机上的Linux体验----Aid learning
  15. 4000元台式电脑组装配置单2022 4000元组装电脑配置清单
  16. 联想笔记本G400使用VS2013时,笔记本快捷键与软件快捷键冲突解决方案
  17. 基于51单片机十字路口交通灯_5s黄灯闪烁
  18. 荀子《劝学》原文及翻译
  19. python核心数据类型——数值、字符串和列表的基本操作
  20. Python爬虫豆瓣电影top250

热门文章

  1. 战争艺术 java_战争艺术2网络对战版
  2. LTE:RA-RNTI;T-CRNTI;C-RNTI
  3. ARP病毒的分析与防治
  4. python爬虫 下载视频网站视频
  5. zuul 里面的 prefix 和 strip-prefix 怎么使用
  6. 微信公众平台修改服务器,微信公众平台开发配置及自定义分享
  7. c++ memcpy内存拷贝
  8. 使用terminalizer工具录制终端生成GIF动画
  9. vs2013 编译 该文件已在源编辑器之外被修改
  10. 【计组】懂了,时钟周期、机器周期、指令周期、总线周期、存储周期。