数据库范式理解例题.docVIP

  1. 1、本文档共16页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据库范式理解例题

范式分解 主属性: 包含在任一候选关键字中的属性称主属性。非主属性: 不包含在主码中的属性称为非主属性。函数依赖: 是指关系中一个或一组属性的值可以决定其它属性的值。函数依赖正象一个函数 y = f(x) 一样,x的值给定后,y的值也就唯一地确定了。 如果属性集合Y中每个属性的值构成的集合唯一地决定了属性集合X中每个属性的值构成的集合,则属性集合X函数依赖于属性集合Y,计为:Y→X。属性集合Y中的属性有时也称作函数依赖Y→X的决定因素(determinant)。例:身份证号→姓名。部分函数依赖:设X,Y是关系R的两个属性集合,存在X→Y,若X’是X的真子集,存在X’→Y,则称Y部分函数依赖于X。完全函数依赖:在R(U)中,如果Y函数依赖于X,并且对于X的任何一个真子集X,都有Y不函数依赖于X, 则称Y对X完全函数依赖。否则称Y对X部分函数依赖。【例】;举个例子就明白了。假设一个学生有几个属性SNO 学号 SNAME 姓名 SDEPT系 SAGE 年龄 CNO 班级号 G 成绩 对于(SNO,SNAME,SDEPT,SAGE,CNO,G)来说,G完全依赖于(SNO, CNO), 因为(SNO,CNO)可以决定G,而SNO和CNO都不能单独决定G。 而SAGE部分函数依赖于(SNO,CNO),因为(SNO,CNO)可以决定SAGE,而单独的SNO也可以决定SAGE。传递函数依赖:设R(U)是属性集U上的关系,x、y、z是U的子集,在R(U)中,若x→y,但y→x,若y→z,则x→z,称z传递函数依赖于x,记作X→TZ。 如果X-Y, Y-Z, 则称Z对X传递函数依赖。计算X+?(属性的闭包)?算法:??????a.初始化,令X+?=?X;???????b.在F中依次查找每个没有被标记的函数依赖,若“左边属性集”包含于X+?,则令?X+?=?X+∪“右边属性集”,?并为访问过的函数依赖设置标记。??????c.反复执行b直到X+不改变为止。检验给定的任意函数依赖A1A2...An-B是否蕴含于依赖集S:分析:根据属性集闭包的定义,可知A1A2...An-{A1,A2,...,An}+ 蕴含于S。只要证明B在{A1,A2,....,An}+中,那么函数依赖A1A2...An-B肯定蕴含于依赖集S中求解过程:(1) 利用依赖集计算闭包(2) 如果B在闭包中,则函数依赖A1A2...An-B是否蕴含于依赖集S,否则不蕴含于S【例】总结:??判定函数依赖X→Y是否能由F导出的问题,?????????可转化为求X+并判定Y是否是X+子集的问题。?????????即求F闭包的问题可转化为求属性集闭包的问题。函数依赖的闭包:定义:若F为关系模式R(U)的函数依赖集,我们把F以及所有被F逻辑蕴涵的函数依赖的集合称为F的闭包,记为F+求函数依赖闭包,基于函数依赖推理规则函数依赖推理规则:若XY-Z,则X-Z,Y-z (错)正确的:若X-Y, 则XZ-YZ若X-Y,X-Z,则X-YZ若X-Y,Z属于Y,则X-Z若X-Y,Y-Z,则X-Z若X-YZ,则X-Y,X-Z //可以把每个函数依赖的右边的属性分解,从而使其右边只出现一个属性伪传递率:若A-B,BC-D,则AC-D范式第一范式(1NF):属性,属性值,字段不可分就是无重复的列不满足1NF的数据库就不是关系数据库【例】:第二范式(2NF):符合1NF,每一个非主属性完全依赖于码,不能存在部分依赖,有主键,非主键字段依赖主键; 唯一性 一个表只说明一个事物; 【例】:不符合第二范式的例子:表:学号, 姓名, 年龄, 课程名称, 成绩, 学分;这个表明显说明了两个事务:学生信息, 课程信息;存在问题:数据冗余,每条记录都含有相同信息;删除异常:删除所有学生成绩,就把课程信息全删除了;插入异常:学生未选课,无法记录进数据库;更新异常:调整课程学分,所有行都调整。修正:学生:Student(学号, 姓名, 年龄);课程:Course(课程名称, 学分);选课关系:SelectCourse(学号, 课程名称, 成绩)。满足第2范式只消除了插入异常。第三范式(3NF):符合2NF,并且,消除传递依赖,非主键字段不能相互依赖; 每列都与主键有直接关系,不存在传递依赖; 若所有的属性都是主属性,则属于第三范式要求一个数据库表中不包含已在其它表中已包含的非主关键字信息【例】:不符合第三范式的例子:学号, 姓名, 年龄, 所在学院, 学院联系电话,关键字为单一关键字学号;存在依赖传递: (学号) → (所在学院) → (学院地点, 学院电话)存在问题:数据冗余:有重复值;更新异常:有重复的冗余信息,修改时需要同时修改多条记录,否则会出现数据不一致的情况删除异常修正

文档评论(0)

bm5044 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档