版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u013617791/article/details/83041560
异常
- 数据冗余大:某个属性的值重复次数过多
- 插入异常:没有主键属性的时候,其他属性无法插入
- 删除异常:因删除某个属性所在的行而连带彻底删除了某些其他属性
- 更新异常:属性的某个值发生改变时,因处理不当而没有完成该值对应的所有元组的修改
函数依赖
- 数据依赖: 同一个关系中,属性间的相互依赖和相互制约。包括函数依赖、多值依赖、连接依赖。
- 函数依赖: 指属性或属性之间一一对应的关系。关系R(U)是属性集U上的关系模式,X,Y时U的子集。若对于R(U)上任意关系r的任意两个元组,X相同则Y必相同(X可以决定Y),则称X
函数确定
Y函数,或Y函数依赖
于X函数,记作:X→Y。X叫做决定因素
,Y叫做依赖因素
。- 平凡的函数依赖
X→Y,其中,Y是X的子集。(必定成立) - 非平凡的函数依赖
X→Y,且Y不是X的子集。不特别声明,总是讨论非平凡依赖。 - 完全函数依赖和部分函数依赖
对于 X→Y,如果能找到 X 的真子集 X’,使得 X’→ Y,那么 X->Y 就是部分函数依赖
,否则就是完全函数依赖
。 - 传递函数依赖
如果X→Y,Y不是X的子集,Y→X不成立(为了排除直接X函数决定Z),Y→Z,则称Z对X传递函数依赖
。
- 平凡的函数依赖
范式
- 概念
- 第一范式(1NF): 数据表中的字段都是单一
属性
的,不可再分
。这个单一属性由基本类型构成,包括整型、实数、字符型、逻辑型、日期型等。(不满足第一范式的不是关系模式
) - 第二范式(2NF): 在第一范式的基础上,数据表中
所有非关键字段
都完全依赖
于任意
一组候选关键字
。 - 第三范式(3NF): 在第二范式的基础上,数据表中
所有非关键字段
都不传递依赖
于任意
一组候选关键字
。(一般企业都要求满足
) - BCNF范式:也叫作扩充的第三范式,或修正的第三范式。消除了插入和删除异常。
- 第一范式(1NF): 数据表中的字段都是单一