数据库试题4.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据库试题4要点

第4章 关系数据理论 关系数据理论是关系数据库的理论基础,也是设计关系数据库的指南。本章讨论关系数据理论的基本概念、方法和题解。 4.1 数据存储异常 假设有如下关系S: S(NO,NAME,SEX,COUR,DEGR)即学号,姓名,性别,课程,成绩。 其中NO,COUR是主关键字。 这个关系模式存在如下问题: ·数据冗余一个学生选修多门课程,这样导致NAME和SEX多次重复存储; ·不一致性由于数据存储冗余,当更新某些数据项时,就有可能一部分字段修改了而另一部分字段未修改,造成存储数据的不一致性 ·插入异常如果某个学生未选修课程,则他的(NO,NAME,SEX)信息无法插入因为COUR为空,关系数据模式规定主关键字不能为空或部分为空,这便是插异常; ·删除异常当要删除所有学生成绩时,将所有你NO,NAME,SEX也都删除了,便是删除异常。 为了克服这些异常,将S关系分解为如下两个关系: S1(NO,NAME,SEX) S2(NO,COUR,DEGR) 这是因为S关系中的某些属性之间存在数据依赖。 数据依赖是现实世界事物之间的相互关联性的一种表达,是属性固有语义的体现。们只有对一个数据库所要表达的现实世界进行认真的调查与分析,才能归纳与客观事实符合的数据依赖。 4.2 函数依赖 4.2.1函数依赖定义 大多数的数据依赖是函数依赖(FD)。下面讨论函数依赖的一些基本定义。 定义:设R(U)是一个关系模式,X,Y是R的两个属性集合,X,Y U,R[X,Y]是关系R在属性。 X∪Y上的投影,当任何时刻R[X,Y]中的任意两个元组中的X属性值相同时,则们的Y属性值也相同,则称X函数决定Y,或Y函数依赖于X,记作X→Y。 定义:设X→Y是一个FD,如果它在任何满足X,Y U的关系模式R(U)上都成立,则称X→Y是一个平凡函数依赖。 定义:如果函数依赖X→U在R上成立,且不存在任何X’ X,使得X’→U也成立,则称X是R的一个候选关键字。候选关键字中包含的属性称为主属性。不包含在候选关键字中的属性称为非主属性。 定义:设X→Y是一个FD,并且对于任何X’ X,X’ →Y都不成立,则称X→Y是个完全函数依赖。即Y函数依赖于整个X,记作X Y。 定义:设X→Y是一个FD,但不是完全函数依赖,则称X→Y是一个部分函数依赖或称Y函数依赖于X的某个真子集,记作X Y。 定义:设R(U)是一个关系模式,X,Y,Z U,如果X→Y,Y→Z且Y X,Z-Y≠Φ,Y-X≠Φ成立,则称Z传递函数依赖于X,记为X Z。 4.2.2函数依赖公理 函数依赖的推导公理——Armstorng公理: 设有关系模式以R(U),X,Y,Z,W= U,则: ·A1(自反性):若YX,则X→Y; ·A2(增广性):若X→Y,则XZ→YZ; ·A3(传递性):若X→Y,Y→Z,则X→Z。 由Armstorng公理可以得到以下推论: ·合成规则:若X→Y,X→Z则X→YZ; ·分解规则:若X→YZ,则X→Y,X→Z。 ·伪传递规则:若X→Y,YW→Z,则XW→Z。 定理4.1:Armstorng公理是正确的、完备的。 4.2.3函数依赖与属性关系 属性之间有三种关系,但并不是每一种关系中都存在函数依赖。设有属性集X,Y及关系模式R: ·如果X和Y之间是”l-l”关系(如学校和校长),则存在函数依赖:X→Y和Y→X。 ·如果X和Y之间是”m-1”关系(如学号和姓名),则存在函数依赖:X→Y。 ·如果X和Y之间是”m-n”关系(如学生和课程),则X和Y之间不存在函数依赖 4.2.4闭包及其计算 定义:设关系模式R(U),F为其函数依赖集,则称所有用Annstrong公理从F推出函数依赖X→Ai中Ai的属性集合为X的属性闭包,记为X+。 定理4.2:设关系模式R(U),F为其函数依赖集,X,Y U则从F推出X→Y的要条件Y X+。 算法4.1:求属性集X关于函数依赖F的属性闭包X+。 输入:关系模式R的全部属性集U,在U上的函数依赖F,U的子集X。 输出:关于F的属性闭包X+。 方法:计算X(i)(i=0,l,…) (l)X(0)=X; (2)X(i+1)=X(i)A; 其中A是这样的属性:在F中寻找尚未用过的左边是X(i)的子集的函数依赖: Y→Zj(j=l,…,k), 其中XjX(i) 即在Zj中寻找X(i)中未出现过的属性集合A,若无这样的A则转(4)。 (3)判断是否有X(i+l)=X(i),若是则转(4);否则转(2)。 (4)输出X(i),即为X+。 对于(3)的计算停止条件,以下四种方法是等价的: ·X(i+l)=X(i) ·当发现X(i)包含了全部属性时; ·在F中的函数依赖的右边属性中

文档评论(0)

dajuhyy + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档