数据库中关于范式的理解
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的精确定义
在给出范式的简易理解之前,先得明确几个概念:
超码:能唯一标识元组的属性集称为关系模式的超码!
在姓名唯一的情况下,
比如关系模式 学生(学号,姓名,性别,民族,籍贯,联系方式)中属性集(学号,姓名,联系方式,性别)就是一个超码;
候选码:如果一个属性集能唯一标识元组,且又不含有多余的属性集,那么这个属性集称为关系模式的候选码;
比如在上述关系模式中,属性集(学号,姓名)和(学号)能称为一个候选码;
主码:在一个关系模式中,用户正在使用的候选码称为关系模式的主码;
外码:如果关系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的精确定义
相关文章推荐
- 面试总结:关于数据库范式的一点理解
- 关于数据库几种范式的理解
- 关于数据库三大范式的理解
- 数据库设计:关于范式的理解
- 数据库设计:关于数据库范式一些理解
- 关于悲观锁和乐观锁的区别(最直观理解) 2015-11-23 11:59 5105人阅读 评论(1) 收藏 举报 分类: 数据库(20) 版权声明:本文为博主原创文章,未经博主允许不得转载。
- 关于在数据库中存储层次数据的一点看法与理解
- 数据库三范式理解
- 数据库三大范式另一角度的理解
- 数据库三大范式另一角度的理解
- 数据库三大范式另一角度的理解
- (转载)数据库范式及宽表窄表理解
- 数据库 游标,范式的透彻理解
- 理解数据库设计的三个范式
- 数据库三大范式的理解
- MySQL之数据库模型设计-1 第一范式、第二范式、第三范式理解
- 理解数据库范式——通俗易懂 [转]
- 关于数据库事务、隔离级别、锁的理解与整理(转)
- 理解数据库范式
- 理解数据库范式