欢迎来到天天文库
浏览记录
ID:41720244
大小:1.99 MB
页数:144页
时间:2019-08-30
《数据库关系模式的规范化》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第4章关系模式的规范化设计理论第4章关系模式的规范化设计理论建立关系数据库的任务:先设计关系模式,若干关系模式构成关系数据库模式。对一个具体的应用问题,如何构造一个适合于它的数据库模式,即关系数据库模式设计应遵循那些原则。这是本章主要讨论的问题。在介绍第1章的例子,曾经问过为什么要设计成Students,Courses,Reports三个基本表,而不是一张表呢?第4章关系模式的规范化设计理论关系数据库的规范化设计是指面对一个现实问题,如何选择一个比较好的关系模式集合。规范化设计理论主要包括三个方面的内容:数据依赖、范式和模式设计方法。其中数
2、据依赖起着核心的作用。数据依赖研究数据之间的联系,范式是关系模式的标准,模式设计方法是自动化设计的基础。规范化设计理论对关系数据库结构的设计起着重要的作用。第4章关系模式的规范化设计理论4.2关系模式的函数依赖4.3关系模式的规范化4.4关系模式的分解特性4.1问题的提出4.1问题的提出4.1.2异常原因分析4.1.3异常问题的解决4.1.1关系模式可能存在的异常关系模型的外延和内涵外延就是通常所说的关系、表或当前值,它的基本性质已在第2章介绍过。由于用户经常对关系进行插入、删除和修改操作,因此外延是与时间有关的,随着时间的推移在不断变化。
3、内涵是与时间独立的,是对数据的定义以及数据完整性约束的定义。对数据的定义包括对关系、属性、域的定义和说明。对数据完整性约束的定义涉及面较广,主要包括以下几个方面:·静态约束,涉及到数据之间联系(称为“数据依赖,datadependences)、主键和值域的设计。·动态约束,定义各种操作(插入、删除、修改)对关系值的影响。4.1.1关系模式可能存在的异常(1)例4.1以学生选课背景为,假设我们设计了如下一个关系模式:StudyInfo(Sno,Sname,DeptName,DeptHead,Cname,Grade)其中{Sno,Cname}是
4、唯一候选键,因此是主键。表4.1是关系模式StudyInfo的一个实例—关系。表4.1关系StudyInfo学号Sno姓名Sname系名DeptName系主任DeptHead课程Cname成绩Grade20010101张华Computer黄山英语8520010101张华Computer黄山高等数学9020010101张华Computer黄山数据库92………20010101张华Computer黄山操作系统8820010102黄河Computer黄山英语92………20010102黄河Computer黄山高等数学86………20010601刘林Ma
5、th朱红英语8820010601刘林Math朱红高等数学84………20010601刘林Math朱红数学分析904.1.1关系模式可能存在的异常(2)StudyInfo这个关系存在的几个异常问题:⑴插入异常。比如一个刚刚成立的系,但尚未招收学生,则因属性Sno为空,导致诸如系主任姓名之类的信息无法存入数据库;同样,没被学生选修的课程信息也无法存入数据库。⑵删除异常。如一个系的学生毕业了,删除学生记录时不情愿地将系主任姓名等信息也一起删除了。⑶冗余过多。如一个系的系名、系主任姓名都要与该系学生每门课的成绩出现的次数一样多。既浪费存储空间又要付出
6、很大的代价来维护数据库的完整性。当系主任更换后,必须逐一修改该系学生选修课程的每一个元组。4.1.2异常原因分析(1)例子启示:一个“好”的模式不应当发生插入异常和删除异常,且数据冗余应尽可能地少。结论:关系模式StudyInfo“不怎么好”或“不好”StudyInfo“不好”或存在异常问题原因:关系模式的属性之间存在过多的“数据依赖”,先非形式地讨论一下这个概念。数据依赖是指关系中属性值之间的相互联系,它是现实世界属性间相互联系的体现,是数据之间的内在性质,是语义的体现。现在人们已经提出了许多种类型的数据依赖,其中最重要的是函数依赖(Fu
7、nctionalDependence,FD)和多值依赖(MultiValuedDependence,MVD)。4.1.2异常原因分析(2)函数依赖极为普遍地存在于现实生活中。对关系StudyInfo,因一个学号Sno仅对应一个学生,一个学生只在一个系注册学习。因而,当学号Sno的值确定之后,姓名Sname和他所在系DeptName的值也就被唯一地确定了。就象自变量x的值确定之后,相应函数f(x)的值也就唯一地确定一样,我们说Sno决定Sname和DeptName,或者说Sname,DeptName函数依赖于Sno,记作:SnoSname,
8、SnoDeptName。4.1.2异常原因分析(3)对关系模式StudyInfo,其属性集U={Sno,Sname,DeptName,DeptHead,Cname,Grade}
此文档下载收益归作者所有