(最新)chapter6

(最新)chapter6

ID:40235488

大小:416.51 KB

页数:131页

时间:2019-07-27

(最新)chapter6_第1页
(最新)chapter6_第2页
(最新)chapter6_第3页
(最新)chapter6_第4页
(最新)chapter6_第5页
资源描述:

《(最新)chapter6》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、普通高等教育十一五规划教材数据库原理教程范明、叶阳东、邱保志、职为梅编著科学出版社,2008第6章关系数据库的设计理论关系数据库的设计理论数据库应用系统开发的核心问题之一是数据库模式设计在关系模型提出之前数据库模式的设计缺乏系统的方法设计的好坏很大程度上依赖于设计者的经验和技巧在关系模型下,已经提出了一些理论、技术和方法,可以用来更机械地产生好的数据库模式本章,我们将研究好的关系模式的一些期望的性质,并提供一些算法,用于得到具有期望性质的数据库模式数据库设计的核心思想是数据依赖基本方法是模式分解,将关系模式规范化7/15/20213数据库系统原理第6章关系

2、数据库的设计理论6.1问题提出6.2函数依赖6.3函数依赖的推导6.4模式分解6.5关系模式的范式6.6将关系模式分解成高级的范式6.7多值依赖与4NF6.8在设计中使用规范化理论6.9小结7/15/20214数据库系统原理6.1问题提出不好的设计可能导致的问题考虑图书馆的图书借阅管理系统我们需要登记每位读者的借书证号(Reader-no)、姓名(Reader-name)和地址(Reader-address),并登记每位读者借阅的每本图书的编号(Book-no)和借阅日期(Borrow-date)可以用一个关系BORROW-INFO存放所有这些信息,其模式

3、如下:BORROW-INFO(Reader-no,Reader-name,Reader-address,Book-no,Borrow-date)然而,该模式存在许多问题:(1)冗余:不必要的重复对于每位读者借阅的每本图书,读者的姓名、地址都要重复一次冗余的缺点增加了数据输入的工作量和浪费存储空间更严重的问题:存储异常7/15/20216数据库系统原理不好的设计可能导致的问题(续)(2)修改异常:冗余造成的问题之一是可能导致不一致性例如,如果一位读者变更了地址,他/她可能在新的借书登记中使用新地址,而在以前的借书登记中使用原来的地址,导致一位读者的地址可能不

4、是唯一的修改读者借书登记中的地址,但是需要对多个元组进行修改(3)插入异常:无法插入某些信息例如,如果一位读者刚刚办理借书证,尚未借书,则我们不能记录他的借书证号、姓名、地址等信息Book-no分量中存放空值违反实体完整性约束(4)删除异常:丢失信息例如,如果读者归还图书,我们应当从BORROW-INFO关系中删除借书登记的相应元组。但是,如果一位读者还清了全部图书,这种删除就会出问题:我们失去了该读者的借书证号、姓名、地址等信息。7/15/20217数据库系统原理不好的设计可能导致的问题(续)E.F.Codd在提出关系模型时就注意到这些问题,并把修改异常

5、、插入异常和删除异常统称为存储异常由于冗余和存储异常,BORROW-INFO显然不是一个好的数据库模式一个好的数据库模式应当尽可能地减少冗余,应当能够避免存储异常存储异常主要是由于数据冗余所导致的网状和层次模型下,我们缺乏系统的方法,用来指导设计好的数据库模式在不同的数据库模型下,有不同的处理冗余的方法网状模型通过引入虚拟字段来消除冗余层次模型通过使用虚拟记录类型来避免冗余7/15/20218数据库系统原理不好的设计可能导致的问题(续)在关系模型下,业已发展的一系列理论和算法使得我们可以操纵关系模式,以产生好的数据库模式例如,对于上面的例子,关系数据库设计

6、理论可以指导我们将BORROW-INFO分解成以下两个关系模式READERS(Reader-no,Reader-name,Reader-address)BORROWS(Reader-no,Book-no,Borrow-date)从而可以减少数据冗余并消除存储异常7/15/20219数据库系统原理数据依赖与冗余数据依赖是语义概念,是关于关系诸属性值之间内在相关性的陈述,它规定了关系模式的合法关系实例所必须满足的条件例如,在关系模式BORROW-INFO中,主码{Reader-no,Book-no}的值唯一地确定该关系的元组。这样,{Reader-no,Boo

7、k-no}的值就唯一地确定其他属性的值换句话说,属性Reader-name、Reader-address和Borrow-date的值都依赖{Reader-no,Book-no}的值这种依赖称为函数依赖关系模式BORROW-INFO中还存在其他函数依赖例如,Reader-name和Reader-address都函数依赖于Reader-no,因为借书证号唯一地确定读者和他/她的住址7/15/202110数据库系统原理数据依赖与冗余(续)数据依赖可以用于断言合法关系中的某些冗余例如,如果我们在BORROW-INFO关系中看到两个元组使用第一个元组,我们可以根据R

8、eader-name和Reader-address都函数依赖于Re

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。