数据库范式记录

异常

不符合范式的关系,会产生很多异常,主要有以下四种异常:

冗余数据:例如 学生-2 出现了两次。

修改异常:修改了一个记录中的信息,但是另一个记录中相同的信息却没有被修改。

删除异常:删除一个信息,那么也会丢失其它信息。例如删除了 课程-1 需要删除第一行和第三行,那么 学 生-1 的信息就会丢失。

插入异常:例如想要插入一个学生的信息,如果这个学生还没选课,那么就无法插入。

 

范式

范式理论是为了解决以上提到四种异常。 第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、巴斯-科德范式(BCNF)、第四范式(4NF)、第五范式(5NF)。高级别范式的依赖于低级别的范式,1NF 是最低级别的范式。

1NF:

属性不可分。

2NF:

第二范式(Second Normal Form,2nd NF)是指每个表必须有一个(而且仅有一个)数据元素为主关键字(Primary key),其他数据元素与主关键字一一对应。

通常称这种关系为函数依赖(Functional dependence)关系,即表中其他数据元素都依赖于主关键字,或称该数据元素惟一地被主关键字所标识。其改进是,2NF在1NF的基础之上,消除了非主属性对于码的部分函数依赖

3NF:

第三范式(Third Normal Form,3rd NF)就是指表中的所有数据元素不但要能惟一地被主关键字所标识,而且它们之间还必须相互独立,不存在其他的函数关系。也就是说,对于一个满足 2NF 的数据结构来说,表中有可能存在某些数据元素依赖于其他非关键字数据元素的现象,必须消除。

通俗的说,第三范式(3NF)3NF在2NF的基础之上,消除了非主属性对于码的传递函数依赖。也就是说, 如果存在非主属性对于码的传递函数依赖,则不符合3NF的要求。

BCNF:

在某些特殊情况下,即使关系模式符合 3NF 的要求,仍然存在着插入异常,修改异常与删除异常的问题,仍然不是 ”好“ 的设计。

造成此问题的原因:存在着主属性对于码的部分函数依赖与传递函数依赖。

解决办法就是要在 3NF 的基础上消除主属性对于码的部分与传递函数依赖

这样,之前的插入异常,修改异常与删除异常的问题就被解决了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值