Flash课件浏览为:
http://www.njmars.net/UploadFile/DB/五)范式分析_.swf
课件下载链接为:
点击下载(SWF文档)
1 数据依赖
是通过一个关系中属性间值的相等与否体现出来的数据间的相互关系
是现实世界属性间相互联系的抽象
是数据内在的性质
是语义的体现
1.1 数据依赖的类型
函数依赖(Functional Dependency,简记为FD)
多值依赖(Multivalued Dependency,简记为MVD)
其他
2 函数依赖
2.1 例子
关系:
Sno, Sdept, Mname, Cname, Grade
说明:
一个系有若干学生, 一个学生只属于一个系;
一个系只有一名主任;
一个学生可以选修多门课程, 每门课程有若干学生选修;
每个学生所学的每门课程都有一个成绩。
缺点
数据冗余太大,浪费大量的存储空间
例:每一个系主任的姓名重复出现
更新异常(Update Anomalies),更新数据时,维护数据完整性代价大。
例:某系更换系主任后,系统必须修改与该系学生有关的每一个元组
插入异常(Insertion Anomalies),该插的数据插不进去
例,如果一个系刚成立,尚无学生,我们就无法把这个系及其系主任的信息存入数据库。
删除异常(Deletion Anomalies),不该删除的数据不得不删
例,如果某个系的学生全部毕业了, 我们在删除该系学生信息的同时,把这个系及其系主任的信息也丢掉了。
2.2 定义
函数依赖
平凡函数依赖与非平凡函数依赖
完全函数依赖与部分函数依赖
传递函数依赖
2.2.1 函数依赖
设R(U)是一个属性集U上的关系模式,X和Y是U的子集。若对于R(U)的任意一个可能的关系r,r中不可能存在两个元组在X上的属性值相等, 而在Y上的属性值不等,则称“X函数确定Y”或“Y函数依赖于X”,记作X→Y。
X称为这个函数依赖的决定属性集(Determinant)。
Y=f(x)
2.2.2 (非)平凡函数依赖
在关系模式R(U)中,对于U的子集X和Y,
如果X→Y,但Y包含于X,则称X→Y是平凡的函数依赖
若X→Y,但Y不包含于X,则称X→Y是非平凡的函数依赖
2.2.3 完全(部分)函数依赖
在关系模式R(U)中,如果X→Y,并且对于X的任何一个真子集X’,都不决定Y, 则称Y完全函数依赖于X。
若X→Y,但Y不完全函数依赖于X,则称Y部分函数依赖于X。
2.2.4 传递函数依赖
在关系模式R(U)中,如果X→Y,Y→Z,且Y不决定X,Y→X,则称Z传递函数依赖于X。
如果Y→X, 即X←→Y,则Z直接依赖于X。
2.3 码的定义
设K为关系模式R<U,F>中的属性或属性组合。若U完全依赖于K,则K称为R的一个侯选码(Candidate Key)。
若关系模式R有多个候选码,则选定其中的一个做为主码(Primary key)。
关系模式R中属性或属性组X并非R的码,但X是另一个关系模式的码,则称X是R的外部码(Foreign key),也称外码
3 范式
范式是符合某一种级别的关系模式的集合。
关系数据库中的关系必须满足一定的要求。满足不同程度要求的为不同范式。
范式的种类:
第一范式(1NF)
第二范式(2NF)
第三范式(3NF)
BC范式(BCNF)
第四范式(4NF)
第五范式(5NF)
3.1 范式的联系
各种范式之间存在联系:
某一关系模式R为第n范式,可简记为R∈nNF。
3.2 1NF的定义
如果一个关系模式R的所有属性都是不可分的基本数据项,则R∈1NF。
第一范式是对关系模式的最起码的要求。不满足第一范式的数据库模式不能称为关系数据库。
但是满足第一范式的关系模式并不一定是一个好的关系模式。
3.3 2NF的定义
若关系模式R∈1NF,并且每一个非主属性都完全函数依赖于R的码,则R∈2NF。
3.4 3NF的定义
关系模式R<U,F> 中若不存在这样的码X、属性组Y及非主属性Z(Z不包含于Y), 使得X→Y,Y→X,Y→Z成立,则称R<U,F>∈3NF。
3.5 BC范式(BCNF)
设关系模式R<U,F>∈1NF,如果对于R的每个函数依赖X→Y,若Y不属于X,则X必含有候选码,那么R∈BCNF。
4 多值依赖
设R(U)是一个属性集U上的一个关系模式,X、Y和Z是U的子集,并且Z=U-X-Y,多值依赖 X→→Y成立当且仅当对R的任一关系r,r在(X,Z)上的每个值对应一组Y的值,这组值仅仅决定于X值而与Z值无关
5 4NF
关系模式R<U,F>∈1NF,如果对于R的每个非平凡多值依赖X→→Y(Y不包含于X),X都含有候选码,则R∈4NF
[此贴子已经被作者于2006-10-25 22:11:56编辑过]