数据库范式理解例题资料.docVIP

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

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

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

1亿VIP精品文档

相关文档