• 1.摘要
  • 2.基本信息
  • 3.定义
  • 4.示例
  • 5.转换
  • 6.参考资料

第二范式

第二范式(Second Normal Form,2nd NF)是指每个表必须有且仅有一个数据元素为主关键字(Primary key),其他数据元素与主关键字一一对应。通常称这种关系为函数依赖(Functional dependence)关系,即表中其他数据元素都依赖于主关键字,或称该数据元素惟一地被主关键字所标识。第二范式是数据库规范化中所使用的一种正规形式。它的规则是要求数据表里的所有非主属性都要和该数据表的主键有完全依赖关系;如果有哪些非主属性只和主键的一部份有关的话,它就不符合第二范式。同时可以得出:如果一个数据表的主键只有单一一个字段的话,它就一定符合第二范式(前提是该数据表符合第一范式)1

基本信息

  • 中文名

    第二范式

  • 外文名

    2NF

  • 别名

    第二正规化(台湾)

  • 应用学科

    数据库

定义

例如:若关系模式R∈1NF(即R符合第一范式),并且每一个非主属性都完全依赖于R的主码,则R∈2NF(即R符合第二范式)。

所谓完全依赖是指不能存在仅依赖主关键字一部分的属性,理解了完全依赖和部分依赖,就很容易理解第二范式,下面举例说明一下。

例如以下实例中的关系模式,就是不符合2NF的一个典型例子。

示例

  • 不符合第二范式的例子

货物类型

货物ID

货物名称

注意事项

瓷碗

1

白色瓷碗

易碎品

瓷碗

2

青花瓷碗

易碎品

瓷碗

3

雕花瓷碗

易碎品

三合板

1

普通三合板

易燃物品,注意防火

在该表中主键为(货物类型,货物ID),货物名称字段完全依赖于这个主键,换句话说,货物的名称完全是取决于这个主键的值的。但注意事项”这一列,仅依赖于一个主键中”货物类型“这一个属性。简单地说,第二范式要求每个非主属性完全依赖于主键,而不是仅依赖于其中一部分属性。

那么,既然表中存在一个对主键不是完全依赖的字段,那么我们就可以确定,该表不符合第二范式。

  • 符合第二范式的例子

货物类型

货物ID

货物名称

瓷碗

1

白色瓷碗

瓷碗

2

青花瓷碗

瓷碗

3

雕花瓷碗

三合板

1

普通三合板

在该表中的主键依然是(货物类型、货物ID),非主键字段“货物名称”,完全依赖于这两个主键,那么我们就可以说,该表是符合数据库第二范式的。

转换

采用投影分解法将一个1NF的关系分解为多个2NF的关系,可以在一定程度上减轻原1NF关系中存在的插入异常、删除异常、数据冗余度大、修改复杂等问题。

将一个1NF关系分解为多个2NF的关系,并不能完全消除关系模式中的各种异常情况和数据冗余。

例:选课关系 SCI(SNO,CNO,GRADE,CREDIT)其中SNO为学号, CNO为课程号,GRADE 为成绩,CREDIT 为学分。 由以上条件,关键字为组合关键字(SNO,CNO)

在应用中使用以上关系模式有以下问题:

a.数据冗余,假设同一门课由40个学生选修,学分就 重复40次。

b.更新异常,若调整了某课程的学分,相应的元组CREDIT值都要更新,有可能会出现同一门课学分不同。