第二范式

第二范式
编辑
中文名
第二范式
外文名
2NF
别    称
第二正规化(台湾)
应用学科
数据库

目录

1定义

2示例

3转换

1定义编辑

第二范式(2NF,台湾译作 第二正规化)是数据库规范化中所使用的一种正规形式。它的规则是 要求数据表里的所有数据都要和该数据表的 主键 有完全依赖关系;如果有哪些数据只和主键的一部份有关的话,它就不符合第二范式。同时可以得出: 如果一个数据表的主键只有单一一个字段的话,它就一定符合第二范式
例如:若关系模式R∈ 1NF( 即R符合第一范式),并且每一个非主属性都完全依赖于R的 主码,则R∈2NF( 即R符合第二范式)。
所谓完全依赖是指不能存在仅依赖 主关键字一部分的属性,理解了完全依赖和部分依赖,就很容易理解第二范式,下面举例说明一下。
例如以下实例中的关系模式,就是不符合2NF的一个典型例子。

2示例编辑

  • 不符合第二范式的例子
货物类型
货物ID 货物名称 注意事项
瓷碗 1 白色瓷碗 易碎品
瓷碗 2 青花瓷碗 易碎品
瓷碗 3 雕花瓷碗
易碎品
三合板 1 普通三合板 易燃物品,注意防火
在该表中有 两个主键,即(货物类型,货物ID),货物名称字段完全依赖于这两个主键,换句话说,货物的名称完全是取决于这两个主键的值的。但 ”注意事项“这一列,只依赖一个主键”货物类型“。换句话说,注意事项这个字段只依赖于主键的一部分( 这就称为对主键”部分依赖“)。
那么,既然表中存在一个对主键不是完全依赖的字段,那么我们就可以确定,该表不符合第二范式。
  • 符合第二范式的例子
货物类型 货物ID 货物名称
瓷碗 1 白色瓷碗
瓷碗 2 青花瓷碗
瓷碗 3 雕花瓷碗
三合板 1 普通三合板
在该表中的主键依然是(货物类型、货物ID), 非主键字段“货物名称”,完全依赖于这两个主键,那么我们就可以说,该表是符合数据库第二范式的。

3转换编辑

采用投影分解法将一个1NF的关系分解为多个2NF的关系,可以在一定程度上减轻原1NF关系中存在的插入异常、删除异常、数据冗余度大、修改复杂等问题。
将一个1NF关系分解为多个2NF的关系,并不能完全消除关系模式中的各种异常情况和数据冗余。
例:选课关系 SCI(SNO,CNO,GRADE,CREDIT)其中SNO为学号, CNO为课程号,GRADEGE 为成绩,CREDIT 为学分。 由以上条件,关键字为组合关键字(SNO,CNO)
在应用中使用以上关系模式有以下问题:
a.数据冗余,假设同一门课由40个学生选修,学分就 重复40次。
b.更新异常,若调整了某课程的学分,相应的元组CREDIT值都要更新,有可能会出现同一门课学分不同。
c.插入异常,如计划开新课,由于没人选修,没有学号关键字,只能等有人选修才能把课程和学分存入。
d.删除异常,若学生已经结业,从当前数据库删除选修记录。某些门课程新生尚未选修,则此门课程及学分记录无法保存。
原因:非关键字属性CREDIT仅函数依赖于CNO,也就是CREDIT部分依赖组合关键字(SNO,CNO)而不是完全依赖。
解决方法:分成两个关系模式 SC1(SNO,CNO,GRADE),C2(CNO,CREDIT)。新关系包括两


你可能感兴趣的:(第二范式)