码迷,mamicode.com
首页 > 数据库 > 详细

数据库的规范化

时间:2015-04-20 20:33:18      阅读:164      评论:0      收藏:0      [点我收藏+]

标签:

一、基础概念

实体:现实世界中客观存在并可以被区别的事物。比如一个学生一本书一门课等。

属性:教科书上解释为:实体所具有的某一特性,由此可见,属性一开始是个逻辑概念,比如说,性别的一个属性。在关系数据库中,属性又是个物理概念,属性可以看作是表的一列

元组:表中的一行就是一个元组。

分量:元组的某个属性值。

码:表中可以唯一确定一个元组的某个属性(或者属性组),如果这样的码有不止一个,那么大家都叫候选码,我们从候选码中挑一个出来做老大,它就叫主码。

全码:如果一个码包含了所有的属性,这个码就是全码。

主属性:一个属性只要在任何一个候选码中出现过,这个属性就是主属性。

非主属性:与上面相反,没有在任何候选码中出现过,这个属性就是非主属性。

外码:一个属性(或属性组),它不是码,但是它别的表的码,它就是外码。

二、函数依赖

1、函数依赖

设X,Y是关系R的两个属性集合,当任何时刻R中的任意两个元组中的X属性值相同时,则它们的Y属性值也相同,则称X函数决定Y,或Y函数依赖于X记作X→Y。

2、平凡函数依赖

当关系中属性集合Y是属性集合X的子集时,存在函数依赖X→Y,即一组属性函数决定它的所有子集,这种函数依赖称为平凡函数依赖。

3、非平凡函数依赖

当关系中属性集合Y不是属性集合X的子集时,存在函数依赖X→Y,则称这种函数依赖为非平凡函数依赖。

4、完全函数依赖

设X,Y是关系R的两个属性集合,X’是X的真子集,存在X→Y,但对每一个X’都有X’!→Y,则称Y完全函数依赖于X。

5、部分函数依赖

设X,Y是关系R的两个属性集合,存在X→Y,若X’是X的真子集,存在X’→Y,则称Y部分函数依赖于X。

6、传递函数依赖

设X,Y,Z是关系R中互不相同的属性集合,存在X→Y(Y !→X),Y→Z,则称Z传递函数依赖于X。

 

三、5大范式及其特点

1NF:原子性 字段不可再分,否则就不是关系数据库(所以在正常的关系数据库中是不可能创建出不符合1NF的表的);

2NF:唯一性 一个表只说明一个事物,1NF消除非主属性对码的部分函数依赖之后就是2NF;

3NF:每列都与主键有直接关系,2NF消除非主属性对码的传递函数依赖之后就是3NF;  

BCNF:3NF消除主属性对码的部分函数依赖和传递函数依赖之后就是BCNF(换句话说就是BCNF范式既检查非主属性,又检查主属性,而3NF只检查非主属性);

4NF:限制关系模式的属性间不允许有非平凡且非函数依赖的多值依赖(只考虑函数依赖的话,最高到BCNF,如果考虑到多值依赖最高到4NF)。

关于4NF还是没搞清楚。

数据库的规范化

标签:

原文地址:http://www.cnblogs.com/bewolf/p/4441672.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!