资源描述:
《DataBase关系数据理论(旧)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、数据库系统概论AnIntroductiontoDatabaseSystem第四章关系数据理论(重点:关系规范化理论)AnIntroductiontoDatabaseSystem第四章关系数据理论4.1问题的提出4.2规范化4.3数据依赖的公理系统4.4模式分解4.5小结AnIntroductiontoDatabaseSystem4.1问题的提出关系数据库逻辑设计针对具体数据库设计问题,如何构造一个适合于它的关系模式(举例)数据库逻辑设计的工具──关系数据库的规范化理论AnIntroductiontoDatabaseSystem举例:关系模式比较关系模式1S{学号,
2、姓名,性别}C{学号,课程号,课程名,学习期限,成绩,奖学金}关系模式2S{学号,姓名,性别}L{学号,课程名,成绩}C{课程号,课程名,学习期限}A{成绩,奖学金}两种关系模式使用起来效果大不相同AnIntroductiontoDatabaseSystem关系模式1_c的一个派生关系学号课号课名学习期限成绩奖学金101J2人工智能310060102J2人工智能37030103J2人工智能36520104J2人工智能37030101J3编译原理27030103J3编译原理29050[思考]:这个关系是否存在一些弊病?AnIntroductiontoDatabase
3、System“不好的”关系模式弊病总结:数据存储冗余数据不一致性插入异常(应该插入的数据未被插入)删除异常(不该删除的数据被删除)[思考]:关系模式1为什么会出现这些弊病,而关系模式2中却没有出现?AnIntroductiontoDatabaseSystem原因:关系模式1-c中的某些属性之间存在某些具有不好性质的数据依赖。解决办法—关系规范化理论(1)分析出一个关系模式会有哪些不好性质的数据依赖?(2)如何改造一个不好的(/不规范的)关系模式(模式分解)?AnIntroductiontoDatabaseSystem数据依赖是通过一个关系中属性间值的相等与否体现出
4、来的数据间的相互关系是现实世界属性间相互联系的抽象是数据内在的性质是语义的体现AnIntroductiontoDatabaseSystem数据依赖的类型函数依赖(FunctionalDependency,简记为FD)多值依赖(MultivaluedDependency,简记为MVD)其他AnIntroductiontoDatabaseSystem4.2规范化规范化理论用来改造关系模式,通过分解关系模式来消除其中不合适的数据依赖,以解决插入异常、删除异常、更新异常和数据冗余问题。让一个关系描述一个概念、一个实体或者实体间的一种联系。若多于一个概念就把它“分离”出去。
5、所谓规范化实质上是概念的单一化AnIntroductiontoDatabaseSystem4.2.1函数依赖一、函数依赖二、平凡函数依赖与非平凡函数依赖三、完全函数依赖与部分函数依赖四、传递函数依赖与直接函数依赖AnIntroductiontoDatabaseSystem一、函数依赖定义4.1设R(U)是一个属性集U上的关系模式,X和Y是U的子集。若对于R(U)的任意一个可能的关系r,r中不可能存在两个元组在X上的属性值相等,而在Y上的属性值不等,则称“X函数确定Y”或“Y函数依赖于X”,记作X→Y。X称为这个函数依赖的决定属性集(Determinant)。AnI
6、ntroductiontoDatabaseSystem说明:1.函数依赖是指关系模式R的所有关系实例均要满足的约束条件。2.函数依赖是语义范畴的概念,根据数据的语义来确定。例如“姓名→年龄”这个函数依赖只有在不允许有同名人的条件下成立。如果x和y之间是“1:1”关系,则存在FD:xy如果x和y之间是“N:1”关系,则存在FD:xy如果x和y之间是“M:N”关系,则x和y之间不存在FD3.数据库设计者可以对现实世界作强制的规定。例如规定不允许同名人出现,函数依赖“姓名→年龄”成立。所插入的元组必须满足规定的函数依赖,若发现有同名人存在,则拒绝装入该元组。AnIntr
7、oductiontoDatabaseSystem关系模式C(课号,课名)课号课名c01数据结构c02数据库c03操作系统FD:课号课名AnIntroductiontoDatabaseSystem关系模式S(学号,姓名)学号姓名01李明02王明03陈明04杨明05王明FD:学号姓名AnIntroductiontoDatabaseSystem关系模式SC(学号,课号)学号课号01c0101c0202c0103c0203c03学号和课号之间不存在FDAnIntroductiontoDatabaseSystem函数依赖举例例:Student(Sno,Sname,Ssex,
8、Sage,