一、前言
《大数据和人工智能交流》头条号向广大初学者新增C 、Java 、Python 、Scala、javascript 等目前流行的计算机、大数据编程语言,希望大家以后关注本头条号更多的内容。
注意:本篇文章针对级别为软件设计师以上总结的,如果您没搞过概要设计或者没有学过数据库原理的请看我原来发表的无损连接判定的基础部分。
二、关系模式分解无损分解示例
设关系模式R(U , F),其中R上的属性集U = { A , B , C , D , E },R上的函数依赖集F = { A --> B , DE --> B , CB --> E ,E --> A , B--> D },下列的分解是不是无损分解?
分解R为 = { R1(ABC) , R2(ED), R3(ACE) }
第一步:构造初始判定表
第二步:根据依赖关系改数据
(1) A--> B: 属性A的第一行和第三行相同,将第3行的b32改成a2
(2) E--> A :属性E 的第二行和第三行相同,可以将属性A第二行b21改成a1
(3)AC --> E :属性AC第一行和第三行相同,可以将b15改成a5
(4)B --> D:属性B的第一行和第三行相同,但是属性D第一行b14和第三行b34没有一个a字样,修改后如下:
(5)E --> D ,属性 E的第一行和第三行相同,可以将属性第一行b14和第三行的b34改为a4,如下图所示:
第一行全部是红色的a,所以是无损分解。