DBMS第三范式(3NF)

如果它在2NF 中,并且不包含任何传递性部分依赖性,则关系将在3NF 中。
3NF 用于减少数据重复,它还用于实现数据完整性。
如果非素数属性没有传递依赖关系,则关系必须是第三范式。

如果关系对于每个非平凡函数依赖关系X→Y 保持至少以下条件之一,则该关系处于第三范式。

  • X是一把超级主键。
  • Y是主键属性,即Y的每个元素是某个候选键的一部分。

示例:

EMPLOYEE_DETAIL表的结构和数据:

EMP_ID EMP_NAME EMP_ZIP EMP_STATE EMP_CITY
222 Harry 201010 UP Noida
333 Stephan 02228 US Boston
444 Lan 60007 US Chicago
555 Katharine 06389 UK Norwich
666 John 462007 MP Bhopal

上述表(EMPLOYEE_DETAIL)中的超级键是:

{EMP_ID}, {EMP_ID, EMP_NAME}, {EMP_ID, EMP_NAME, EMP_ZIP}....等等

候选键:{EMP_ID}

非主属性 :在给定表中,除EMP_ID之外的所有属性都是非主属性。

这里,EMP_STATE&EMP_CITY依赖于EMP_ZIP,而EMP_ZIP依赖于EMP_ID。 非主属性(EMP_STATE,EMP_CITY)可传递地依赖于超级主键(EMP_ID)。 它违反了第三范式的规则。

这就是为什么需要将EMP_CITYEMP_STATE移动到新的<EMPLOYEE_ZIP>表,并将EMP_ZIP作为主键。

员工(EMPLOYEE)表的结构和数据如下:

EMP_ID EMP_NAME EMP_ZIP
222 Harry 201010
333 Stephan 02228
444 Lan 60007
555 Katharine 06389
666 John 462007

员工邮编(EMPLOYEE_ZIP)表的结构和数据如下:

EMP_ZIP EMP_STATE EMP_CITY
201010 UP Noida
02228 US Boston
60007 US Chicago
06389 UK Norwich
462007 MP Bhopal

上一篇:DBMS第二范式(2NF)

下一篇:DBMS第四范式(4NF)

关注微信小程序
程序员编程王-随时随地学编程

扫描二维码
程序员编程王

扫一扫关注最新编程教程