您的位置:首页 > 数据库

数据库中关于范式的理解

2008-09-10 19:42 253 查看
在数据库关于范式的理解一直是一个难点,最近在深入学习SQL Server ,牵涉到数据库的设计,在这里有必要将范式这个问题弄明白!

在给出范式的简易理解之前,先得明确几个概念:

超码:能唯一标识元组的属性集称为关系模式的超码!

在姓名唯一的情况下,

比如关系模式 学生(学号,姓名,性别,民族,籍贯,联系方式)中属性集(学号,姓名,联系方式,性别)就是一个超码;

候选码:如果一个属性集能唯一标识元组,且又不含有多余的属性集,那么这个属性集称为关系模式的候选码;
比如在上述关系模式中,属性集(学号,姓名)和(学号)能称为一个候选码;

主码:在一个关系模式中,用户正在使用的候选码称为关系模式的主码;
外码:如果关系R中某个属性集是其他关系模式的主码,那么该属性集是R的外码。

第一范式:当且仅当一个关系变量的所有的合法的值中,每一个属性只含有

一个值时,该关系变量属于INF;

第二范式:(假定只有一个候选码,且该候选码为主码)当且仅当一个关系

变量属于INF,且该关系变量的每一个非码属性都完全函数依赖

于主码时,该关系变量属于2NF;

第三范式:(假定只有一个候选码,且该候选码是主码)当且仅当一个关系
变量的所有非码属性都不传递于主码时,该关系变量属于3NF;
另解:
假设R是关系变量,X是R的属性集的子集,A是R的任意一个属
性,当且仅当每一个函数依赖X—>A至少满足下列条件的一个时
时,该关系变量属于3NF:
1)X包含A;
2)X是个超码;
3)A属于R的某个候选码;
第四范式(BCNF):将上述另解中将3)去掉就是BCNF的精确定义
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: