连接依赖与第五范式的个人理解

基本概念

连接依赖:设关系模式R、Ri的属性集是U、Ui,UiU(1≤i≤n).若R每个容许的实例r均满足r=∏U1(r)∞...∞∏Un(r)则称R满足连接依赖,记作∞(R1,...,Rn).若其中某个Ui=U,则称连接依赖是平凡连接依赖。 多值依赖也是连接依赖。

第五范式:如果关系模式R中的每一个连接依赖均由R的候选码所隐含,则称此关系模式符合第五范式。

举例

看下面关系表是否符合第5范式

设关系模式SPJ(SNO,PNO,JNO),其中SNO表示供应者号,PNO表示零件号,JNO表示项目号。设有关系SPJ。如果将SPJ模式分解为SP、PJ和JS,并进行SP⋈PJ及SP⋈PJ⋈JS的自然连接,其操作数据及连接结果如图(注:“⋈”符号为连接符)

SPJ

供应商代码(SNO)

零件代码(PNO)

项目代码JNO(PNO)

S1

P1

J2

S2

P1

J1

S1

P1

J1

S1

P2

J1

 将上表变成如下表,加两个“供应商代码(SNO)”是为了便于分析

供应商代码(SNO)由零件代码(PNO)工程项目代码JNO(PNO)供应商代码(SNO)
S1P1J2S1
S2P1J1S2
S1P1J1S1
S1P2J1S1

将 SPJ模式分解为SP、PJ和JS

 

得到如下结果,如下是3个表,这里为了保持共性,用一个表表示 

spjs
供应商代码(SNO)由零件代码(PNO)工程项目代码JNO(PNO)供应商代码(SNO)
S1P1J2S1
S2P1J1S2
S1P2J1S1
 pj 

 进行SP⋈PJ及SP⋈PJ⋈JS的自然连接

供应商代码(SNO)由零件代码(PNO)工程项目代码JNO(PNO)
S1P1J2
S2P1J1
S1P1J1
S1P2J1

上例中,因为它仅有的候选码(SNO,PNO,JNO)肯定不是它的三个投影SP、PJ、JS自然连接的公共属性,所以 SPJ ∉ 5NF(“∉”为不属于符号) 

学习笔记

关于第五范式和连接依赖,看定义都很抽象,也没找到一些更明确的资料,不过个人感觉就是3个以上的关系决定一条数据就算是连接依赖了吧。也暂时只能就这么理解了。这种依赖比多值依赖更麻烦吧,一对多还只是两个字段的关系,这里确数据到3个以上的字段的依赖关系,形成一个依赖的连接,我也只能用我的理解去靠近语义的理解,这样也方便自己的记忆。(((X→Y)→Z)→...n),这是我用自己理解的方式定义的一个公式。相比于X→→Y,“→→”符合代表依赖的数量,而连接依赖代表依赖的维度,二位以上的关系。

补记

表的分解和自然连接过程

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值