第六章总结

问题的提出

关系模式由五部分组成,是一个五元组:R(U, D, DOM, F)

  • R是符号化的元组语义
  • U为一组属性
  • D为属性组U中的属性所来自的域
  • DOM为属性到域的映射
  • F为属性组U上的一组数据依赖
    作为一个二维表,每一个分量必须是不可分的数据项,满足这个条件的关系模式就属于第一范式
    数据依赖是一个关系内部属性与属性之间的一种约束关系
    主要包括:函数依赖多值依赖

规范化

函数依赖

定义

设R(U)是一个属性集U上的关系模式,X和Y是U的子集。若对于R(U)的任意一个可能的关系r,r 中不可能存在:两个元组在X上的属性值相等,而在Y上的属性值不等,则称“X函数确定Y”或“Y函数依赖于X”,记作X→Y。

非平凡的函数依赖和平凡的函数依赖

X→Y,但Y⊈X则称X→Y是非平凡的函数依赖。
X→Y,但Y⊆X 则称X→Y是平凡的函数依赖。
若X→Y,则X称为决定因素
若X→Y,Y→X,则记作X←→Y。

完全函数依赖、部分函数依赖

在R(U)中,如果X→Y,并且对于X的任何一个真子集X’, 都有 X ′ → / Y X'\stackrel{/}{\rightarrow} Y X/Y, 则称Y对X 完全函数依赖,记作 X → F Y X \stackrel{F}{\rightarrow} Y XFY
若X→Y,但Y不完全函数依赖于X,则称Y对X 部分函数依赖,记作 X → P Y X \stackrel{P}{\rightarrow} Y XPY

传递函数依赖

在R(U)中,如果X→Y(Y⊈X), Y → / X Y\stackrel{/}{\rightarrow} X Y/X,Y→Z,Z⊈Y, 则称Z对X传递函数依赖(transitive functional dependency)。记为: X → 传 递 Z X\stackrel{传递}{\rightarrow} Z XZ
如果Y→X, 即X←→Y,不是传递函数依赖,而是Z直接依赖于X。

设K为R<U,F>中的属性或属性组合,若 K → F U K\stackrel{F}{\rightarrow} U KFU则K称为R的一个候选码
如果U部分函数依赖于K,即K → U,则K称为超码 。
候选码是最小的超码。
包含在任何一个候选码中的属性称为主属性,不包含任何候选码中的属性称为非主属性
主码或者候选码都简称为
整个属性组是码的情况,称为全码

范式

某一关系模式R为第n范式,可简记为R∈nNF。
2NF定义:

若关系模式R∈1NF,并且每一个非主属性都完全函数依赖于任何一个候选码,则R∈2NF

3NF定义:

设关系模式R<U,F>∈1NF,若R中不存在这样的码X、属性组Y及非主属性Z (Y⊇ Z), 使得X→Y,Y→Z成立,Y ↛ X不成立,
则称R<U,F> ∈ 3NF。
即不存在传递函数依赖

BCNF定义:

设关系模式R<U,F>∈1NF,若X →Y且Y 不含于 X时X必含有码,则R<U,F>∈BCNF。在关系模式R<U,F>中,如果每一个决定属性集都包含候选码,则R∈BCNF。非主属性对候选码没有部分函数依赖或传递依赖。

多值依赖

定义:

设R(U)是属性集U上的一个关系模式。X,Y,Z是U的子集,并且Z=U-X-Y。关系模式R(U)中多值依赖X→→Y成立,当且仅当对R(U)的任一关系r,给定的一对(x,z)值,有一组Y的值,这组值仅仅决定于x值而与z值无关

平凡多值依赖和非平凡的多值依赖

若X→→Y,而Z=Ф,则称X→→Y为平凡的多值依赖
否则称X→→Y为非平凡的多值依赖

4NF

定义:

关系模式R<U,F>∈1NF,如果对于R的每个非平凡多值依赖X→→Y(Y ⊈ X),X都含有码,则R<U,F>∈4NF。

数据依赖的公理系统

闭包

在关系模式R<U,F>中为F所逻辑蕴涵的函数依赖的全体叫做F的闭包
,记为F^+.就是由一个属性直接或间接推导出的所有属性的集合。

L类 仅出现在函数依赖左部的属性。必在码中
R 类 仅出现在函数依赖右部的属性。必不在码中
N 类 在函数依赖左右两边均未出现的属性。必在码中
LR类 在函数依赖左右两边均出现的属性。

在这里插入图片描述
(4)因为DA是码
A → B C A\stackrel{}{\rightarrow} BC ABC,所以DBC也是码,因为DA=DBC?
因为E → \rightarrow C,所以DBC=DBE?
所以DA是码,函数依赖于DA的都可以当候选码。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值