数据库中关于范式的理解

 在数据库关于范式的理解一直是一个难点,最近在深入学习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的精确定义

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值