第5章节 关系数据库理论.ppt

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

第5章 关系数据库理论 5.1 关系模式的一般表示及设计中的问题 5.2 函数依赖 5.3 函数依赖的公理系统 5.4 关系模式规范形式 5.5 关系模式的规范化 习 题 5 5.1 关系模式的一般表示及设计中的问题 随着时间的不断变化, 在不同的时刻关系模式的关系也会有所变化, 但是现实世界的许多已知的事实, 却限定了关系模式的所有可能的关系必须满足一定的约束。 这些约束或者通过对属性取值范围的限定(如小学生的年龄要求大于等于6岁并且小于18岁), 或者通过数据间的互相关联反映出来, 后者称为数据依赖。 数据依赖是数据库理论中最主要的组成部分, 是数据库模式的理论基础。 数据依赖是现实世界属性间相互联系的抽象, 它表示数据间存在的一种限制或制约关系。 人们已经提出了许多种类型的数据依赖, 如函数依赖、 多值依赖、 连接依赖等, 其中最重要的是函数依赖, 是数据库模式设计中的关键所在。 首先介绍什么是数据库模式? 设任一关系模式用Ri表示, X=R1∪R2∪…∪Rn, 则Ω={R1, R2, …, Rn}就是X上的一个数据库模式。 并不是任意一个数据库模式都是好的模式。 我们研究函数依赖, 其目的之一就是要从理论上找到判断设计好的数据库模式的标准。 函数依赖普遍地存在于现实生活中。 例如描述一个在校大学生的学习情况会涉及以下一些属性: 学号(S#)、 姓名(SN)、 性别(SS)、 身份证号(ID)、 系别(SD)、 学籍类型(SL)、 专业(SG)、 班级(SC)、 课程号(CB)、 课程名(CN)、 学期数(T)、 学分(CG)和成绩(G), 其属性集合表示为U={S#, SN, SS, ID, SD, SL, SG, SC, CB, CN, T, CG, G}。 有人给出了以下两种数据库模式: 第一种: Ω1={R11, R12} 其中: 关系模式R11={S#, SN, SS, ID, SD, SL, SG, SC} 关系模式R12={S#, CB, CN, T, CG, G} 第二种: Ω2={R21, R22, R23} 其中: 关系模式R21={S#, SN, SS, ID, SD, SL, SG, SC } 关系模式R22={S#, CB, G} 关系模式R23={CB, CN, T, CG} 虽然它们都是符合定义的数据库模式, 但使用起来的实际效果却大不相同。 下面我们先来看Ω1。 假设r是R12上的一个关系, 如表5.1所示。 这个关系r存在以下一些弊病: (1) 冗余。 课程号J1的课程在第4学期开, 课程名是“数据库系统”, 均在关系r的5个元组中都有记载, 这显然是一种冗余。 (2) 插入异常。 如果有一门课, 课程号为J5, 课程名为“编译原理”, 学分为3, 计划在第5学期开, 但因为学号目前均没有确定值, 构不成一个元组, 所以无法插入到关系r中去。 也即存在有计划开设的课程因为暂时没有学生上, 就无法将这些课程号和课程名等信息保存到数据库中, 这就产生了插入异常。 (3) 删除异常。 如果学号1110703的学生考J2课时违纪, 分数作废, 我们应在关系r中删去对应的这个元组。 但这个元组其实还包含课程号为J2, 课程名为数据结构, 学分为3这样的信息。 要删除只能删除整个元组, 所以因学号为1110703的学生的J2课分数作废, 而把课程号为J2, 对应课程名为“数据结构”, 学分为3的信息也给“冤枉”地删除掉了。 事实上, 不管目前有无学生学习“数据结构”这门课程, 这门课程的相关信息均应能保留在数据库中, 上述这种关系模式则不能保证做到这一点, 它可能产生删除异常。 在数据库模式Ω1中, 针对关系模式R12的某一关系r为什么会存在上述弊端呢? 怎样才能在同一个属性集U上给出没有这些弊端的数据库模式呢? 为了解决这些问题, 我们先讨论几个重要的概念。 5.2 函数依赖 在现实世界中最广泛存在的一种数据依赖是函数依赖。 例如, 关系模式R12={S#, CB, CN, T, CG, G}中存在的函数依赖有: T函数依赖于CB, CN函数依赖于CB, CG函数依赖于CB, G函数依赖于(S#, CB)等。 下面给出相关概念

文档评论(0)

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

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

1亿VIP精品文档

相关文档