数据库课程设计小结,数据库技术课程设计

首页 > 教育培训 > 作者:YD1662023-10-25 17:20:15


数据库课程设计小结,数据库技术课程设计(5)

第三范式

从上面的例子来看,通过第二范式的改造,之前提到的问题已经得到了解决。那么为什么又要有第三范式呢?首先我们来看一个满足第二范式但是仍然存在前面问题的例子。


数据库课程设计小结,数据库技术课程设计(6)

这个关系模式的主键是图书名,显然它满足第一范式。因为主键只有一个字段,非主属性对于所有主属性一定是完全函数依赖,所以它也满足第二范式。但是如果在给这张表增加一本人民邮电出版社出版的《深入理解 MySQL》,我们就会发现出版商的地址会存在冗余!为了消除这种冗余,第三范式就被提出来了。

第三范式需要满足以下两点:

什么是传递函数依赖呢?这里不给形式化的定义,而以前面的例子来解释。前面的例子中因为图书名是主键,所以函数(图书名) -> (出版商)是成立的。同时我们知道出版商的地址是确定的,所以函数(出版商) -> (出版商地址)也是成立的。所以就有(图书名) -> (出版商) -> (出版商地址)成立。这个时候我们也称出版商地址函数依赖于图书名。

为了消除非主属性对于主码的传递函数依赖,我们将上面的表拆分为两个表:


数据库课程设计小结,数据库技术课程设计(7)


数据库课程设计小结,数据库技术课程设计(8)

上一页123下一页

栏目热文

文档排行

本站推荐

Copyright © 2018 - 2021 www.yd166.com., All Rights Reserved.