关系数据模型(基本概念和ER转换).ppt

上传人:xt****7 文档编号:5306911 上传时间:2020-01-25 格式:PPT 页数:46 大小:605.81KB
返回 下载 相关 举报
关系数据模型(基本概念和ER转换).ppt_第1页
第1页 / 共46页
关系数据模型(基本概念和ER转换).ppt_第2页
第2页 / 共46页
关系数据模型(基本概念和ER转换).ppt_第3页
第3页 / 共46页
点击查看更多>>
资源描述
1 2关系模型 2 三种主要的数据模型 层次模型网状模型关系模型其中关系模型简单灵活 并有着坚实的理论基础 已成为当前最流行的数据模型 本章主要讲述 关系数据库的基本概念关系的定义和性质E R到关系的转换 2 1引子 3 层次模型 用树型 层次 结构表示实体类型及实体间联系的数据模型称为层次模型 hierarchicalmodel 层次模型的特点是 记录之间的联系通过指针来实现 查询效率较高 与文件系统的数据管理方式相比 层次模型是一个飞跃 用户和设计者面对的是逻辑数据而不是物理数据 用户不必花费大量的精力考虑数据的物理细节 逻辑数据与物理数据之间的转换由DBMS完成 层次模型有两个缺点 一是只能表示1 N联系 虽然系统有多种辅助手段实现M N联系但较复杂 用户不易掌握 二是由于层次顺序的严格和复杂 引起数据的查询和更新操作很复杂 因此应用程序的编写也比较复杂 4 网状模型 用有向图结构表示实体类型及实体间联系的数据模型称为网状模型 networkmodel 网状模型的特点是 记录之间联系通过指针实现 M N联系也容易实现 一个M N联系可拆成两个1 N联系 查询效率较高 网状模型的缺点是 数据结构复杂和编程复杂 5 2 2关系模型由来 关系模型是发展较晚的一种模型 1970年美国IBM公司的研究员E F Codd首次提出了数据库系统的关系模型 他发表了题为 大型共享数据银行数据的关系模型 ARelationModelofDataforLargeSharedDataBanks 在文中解释了关系模型 定义了某些关系代数运算 研究了数据的函数相关性 定义了关系的第三范式 从而开创了数据库的关系方法和数据规范化理论的研究 他为此获得了1981年的图灵奖 此后许多人把研究方向转到关系方法上 陆续出现了关系数据库系统 1977年IBM公司研制的关系数据库的代表SystemR开始运行 其后又进行了不断的改进和扩充 出现了基于SystemR的数据库系统SQL DB 6 20世纪80年代以来 计算机厂商新推出的数据库管理系统几乎都支持关系模型 非关系系统的产品也都加上了关系接口 数据库领域当前的研究工作也都是以关系方法为基础 关系数据库已成为目前应用最广泛的数据库系统 如现在广泛使用的小型数据库系统Foxpro Acess 大型数据库系统Oracle Informix Sybase SQLServer等都是关系数据库系统 7 1 关系模型的基本概念关系模型的数据结构是一个 二维表框架 组成的集合 每个二维表又可称为关系 所以关系模型是 关系框架 的集合 关系模型与层次模型 网状模型不同 它是建立在严格的数学概念之上的 表 熟悉 是不是很简单啊 8 提问 要求 构建一用来描述在校学生的数据库 要求记录的学生如下属性 学号 姓名 年龄 系别 此设计很好的将学号 姓名 年龄 系别属性记录了下来 并且支持检索 插入 删除 更新操作 然而这是不是一个完美的设计呢 9 再提问 问题1 学校有几个系 答 3个 问题2 经管系有几个学生 答 2个 问题你是怎么知道的 数出来的 问题1的答案是通过去掉系别列中的重复行后 数一数剩余的行数得到的 问题2的答案是通过数一数系别为经管系的行数得到的 10 新要求 如下几个要求 1 学校开设一个新的系 艺术系 然而艺术系的学生要等到两个月后才能招进来 2 李四毕业了 不再是 在校学生 了 将其删除 3 经管系现要更名成 经济管理学院 如何插入一个没有学生的系呢 这是一个两难的问题 由于学校有艺术系 为了能够在检索 学校有几个系 时检索到4 我们不得不插入一行 该行的系别字段记录上 艺术系 而艺术系没有学生 所以我们还得让学号 姓名 年龄字段空着 11 插入艺术系 问 艺术系有几个学生 数 不行 解题逻辑发生变化 如果人数为1 判断学号 姓名 年龄是否为空 如果为空则为0人 否则为1人 删除操作 如果把李四一行删除 机械系没有了 所以也不得不修改删除逻辑 如果某系只剩下最后一条记录 就不能删除了 而起清空学号 姓名 年龄字段的内容 这么做好吗 更新操作 经管系更名需要修改两行数据 假设刚刚修改完第一行 正要修改下一行 停电死机 当你下次开机后 经管系 经济管理学院各一个 12 解决问题 拆分成两个实体 学生 院系 规范化 将大表分解为小表的过程 目的是消除冗余和重复数据 并避免插入 修改和删除时出现问题用范式进行规范化 范式有第一范式 第二范式 第三范式 第四范式 第五范式等 13 关系数据库基本概念 实例 教学数据库的关系模型及其实例 包含五个关系 教师关系T 学生关系S 课程关系C 选课关系SC和授课关系TC 分别对应五张表 下面以其为例 介绍关系模型中所涉及的一些基本概念 14 T 教师表 15 S 学生表 16 C 课程表 17 SC 选课表 TC 授课表 18 1 关系 Relation 一个关系对应一张二维表 如图的五张表对应五个关系 2 元组 Tuple 表格中的一行 如S表中的一个学生记录即为一个元组 3 属性 Attribute 表格中的一列 相当于记录中的一个字段 如S表中有五个属性 学号 姓名 性别 年龄 系别 4 关键字 Key 可唯一标识元组的属性或属性集 也称为关系键或码 如S表中学号可以唯一确定一个学生 为学生关系的主码 主关键字 19 5 域 Domain 属性的取值范围 如年龄的域是 14 40 性别的域是 男 女 6 分量每一行对应的列的属性值 即元组中的一个属性值 如学号 姓名 年龄等均是一个分量 7 关系模式对关系的描述 一般表示为 关系名 属性1 属性2 属性n 如 学生 学号 姓名 性别 年龄 系别 20 在关系模型中 实体是用关系来表示的 如 学生 学号 姓名 性别 年龄 系别 课程 课程号 课程名 课时 实体间的关系也是用关系来表示的 如 学生和课程之间的关系选课关系 学号 课程号 成绩 21 2 关系模型的数据操纵数据操纵主要包括查询 插入 删除和修改数据 这些操作必须满足关系的完整性约束条件 即实体完整性 参照完整性和用户定义的完整性 用户只要指出 干什么 而不必详细说明 怎么干 从而大大地提高了数据的独立性 提高了用户的生产率 22 3 关系模型的优缺点关系模型的优点主要有 1 与非关系模型不同 它有较强的数学理论根据 2 数据结构简单 清晰 用户易懂易用 不仅用关系描述实体 而且用关系描述实体间的联系 关系模型的缺点主要有 查询效率往往不如非关系模型 因此 为了提高性能 必须对用户的查询表示进行优化 增加了开发数据库管理系统的负担 23 1 关系中属性的顺序是无关紧要的 即列的顺序可以任意交换 交换时 应连同属性名一起交换 否则将得到不同的关系 例如 关系T1作如下交换时 无任何影响 如下表所示 2 3关系的重要性质 24 而作如下交换时 不交换属性名 只交换属性列中的值 则得到不同的关系 如下表 25 2 同一属性名下的各个属性值必须来自同一个域 是同一类型的数据 职业属性下面就应该是教师工人等 不能是男人女人 3 关系中各个属性必须有不同的名字 不同的属性可来自同一个域 即它们的分量可以取自同一个域 例如 有如下表中关系 职业与兼职是两个不同的属性 但它们取自同一个域职业 教师 工人 辅导员 26 4 关系中每一分量必须是不可分的数据项 或者说所有属性值都是原子的 即是一个确定的值 而不是值的集合 属性值可以为空值 表示 未知 或 不可使用 即不可 表中有表 满足此条件的关系称为规范化关系 否则称为非规范化关系 例如 在表2 8中 籍贯含有省 市 县两项 出现了 表中有表 的现象 则为非规范化关系 而把籍贯分成省 市 县两列 将其规范化 如表2 9所示 表2 8表2 9 27 E R到关系 实体集Entityset 关系relation 属性Attributes 属性attributes 关系Relationships 关系例子 影星 电影 制造商 30页 73页 实体集 影星 电影 制造商属性 名字 年代 长度 地址 种类等等关系 stars in owns 实体集对应的转换结果 电影 练习 影星 3 11 关系转换的结果 owns 3 12 stars in 3 13 注意 73页3 2 2R的属性也是关系的属性 R涉及的键码也是R的属性 改名 28 课堂练习 62页3 1 1 29 2 4 1候选键与关系键能唯一标识关系中元组的属性或属性集 则称该属性或属性集为候选键 CandidateKey 也称候选关键字或候选码 如 学生关系 中的学号能唯一标识每一个学生 则属性学号是学生关系的候选键 在 选课关系 中 只有属性的组合 学号 课程号 才能唯一地区分每一条选课记录 则属性集 学号 课程号 是选课关系的候选键 2 4关系的键 30 下面给出候选键的形式化定义 设关系R有属性A1 A2 An 其属性集K Ai Aj Ak 当且仅当满足下列条件时 K被称为候选键 1 唯一性 Uniqueness 关系R的任意两个不同元组 其属性集K的值是不同的 2 最小性 Minimally 组成关系键的属性集 Ai Aj Ak 中 任一属性都不能从属性集K中删掉 否则将破坏唯一性的性质例如 学生关系 中的每个学生的学号是唯一的 选课关系 中 学号 课程号 的组合也是唯一的 对于属性集 学号 课程号 去掉任一属性 都无法唯一标识选课记录 31 如果一个关系中有多个候选键 可以从中选择一个作为查询 插入或删除元组的操作变量 被选用的候选键称为主关系键 PrimaryKey 或简称为主键 主码 关系键 关键字 例如 假设在学生关系中没有重名的学生 则 学号 和 姓名 都可作为学生关系的候选键 如果选定 学号 作为数据操作的依据 则 学号 为主关系键 主关系键是关系模型中的一个重要概念 每个关系必需选择一个主关系键 选定以后 不能随意改变 每个关系必定有且仅有一个主关系键 因为关系的元组无重复 至少关系的所有属性的组合可作为主关系键 通常用较小的属性组合作为主关系键 32 2 4 2主属性与非码属性主属性 PrimeAttribute 包含在候选码中的的各属性称为主属性 候选码是学号时 学号就是主属性非码属性 Non PrimeAttribute 不包含在任何候选码中的属性称为非码属性 性别 年龄在最简单的情况下 一个候选码只包含一个属性 如学生关系中的 学号 教师关系中的 教师号 在最极终端的情况下 所有属性的组合是关系的候选码 这时称为全码 all key 主属性与非码属性 33 全码的例子 下面是一个全码的例子 假设有教师授课关系TCS 分别有三个属性教师 T 课程 C 和学生 S 一个教师可以讲授多门课程 一门课程可以为多个教师讲授 同样一个学生可以选听多门课程 一门课程可以为多个学生选听 在这种情况下 T C S三者之间是多对多关系 T C S 三个属性的组合是关系TCS的候选码 称为全码 T C S都是主属性 34 外部关系键 2 4 3外部关系键例2 1假设在图1 12所示的教学数据库中增加一个系别关系D 包含两个属性系别 DEPT 和地址 ADDR 系别 是此关系的主码 而 系别 并不是学生关系和教师关系的主码 虽然都有系别这个属性 所以 系别 是学生关系和教师关系的外部关系键 定义 如果关系R2 学生 教师 的一个或一组属性 系别 X不是R2的主码 而是另一关系R1 系别 的主码 则该属性或属性组X称为关系R2的外部关系键或外码 Foreignkey 并称关系R2为参照关系 referencingrelation 关系R1为被参照关系 referencedrelation 35 例2 2如图1 12所示的选课关系中的 学号 属性与学生关系的主码 学号 相对应 课程号 属性与课程关系的主码 课程号 相对应 因此 学号 和 课程号 属性是选课关系的外部关系键 学生关系和课程关系为被参照关系 选课关系为参照关系 其主码是学号 课程号 由外部关系键的定义可知 被参照关系的主码和参照关系的外码必须定义在同一个域上 如选课关系中的 学号 与学生关系的主码 学号 定义在同一个域上 课程号 属性与课程关系的主码 课程号 定义在同一个域上 36 2 4 4关系模型的完整性为了维护数据库中数据与现实世界的一致性 对关系数据库的插入 删除和修改操作必须有一定的约束条件 这就是关系模型的三类完整性 实体完整性参照完整性用户定义的完整性1 实体完整性 EntityIntegrity 实体完整性是指主关系键的值不能为空或部分为空 关系模型中的一个元组对应一个实体 一个关系则对应一个实体集 例如 一条学生记录对应着一个学生 学生关系对应着学生的集合 37 现实世界中的实体是可区分的 即它们具有某种唯一性标识 与此相对应 关系模型中以主关系键来唯一标识元组 例如 学生关系中的属性 学号 可以唯一标识一个元组 也可以唯一标识学生实体 如果主关系键中的值为空或部分为空 即主属性为空 则不符合关系键的定义条件 不能唯一标识元组及与其相对应的实体 这就说明存在不可区分的实体 从而与现实世界中的实体是可以区分的事实相矛盾 因此主关系键的值不能为空或部分为空 例如 学生关系中的主关系键 学号 不能为空 选课关系中的主关系键 学号 课程号 不能部分为空 即 学号 和 课程号 两个属性都不能为空 38 2 参照完整性 Referentialintegrity 如果关系R2的外部关系键X与关系R1的主关系键相符 则X的每个值或者等于R1中主关系键的某一个值 或者取空值 在例2 1系别关系中的属性 系别 是学生关系外部关系键 如图2 2所示 学生关系中某个学生 如s1或s2 系别 的取值 必须在参照的系别关系中主关系键 系别 的值中能够找到 否则表示把该学生分配到一个不存在的部门中 显然不符合语义 如果某个学生 如s11 系别 取空值 则表示该学生尚未分配到任何一个系 否则 它只能取专业关系中某个元组的专业号值 39 S 学生关系 D 系别关系 图2 2学生表和系别表 40 在例2 2中 如果按照参照完整性规则 选课关系中的外部关系键 学号 和 课程号 可以取空值或者取被参照关系中已经存在的值 但由于 学号 和 课程号 是选课关系中主属性 根据实体完整性规则 两个属性都不能为空 所以选课关系中的外部关系键 学号 和 课程号 中能取被参照关系中已经存在的值 实体完整性和参照完整性是关系模型必须满足的完整性约束条件 被称作关系的两个不变性 任何关系数据库系统都应该支持这两类完整性 除此之外 不同的关系数据库系统由于应用环境的不同 往往还需要一些特殊的约束条件 这就是用户定义完整性 41 3 用户定义完整性 User definedIntegrity 用户定义完整性是针对某一具体关系数据库的约束条件 它反映某一具体应用所涉及的数据必须满足的语义要求 例如 属性值根据实际需要 要具备一些约束条件 如选课关系中成绩不能为负数 某些数据的输入格式要有一些限制等关系模型应该提供定义和检验这类完整性的机制 以便用统一的 系统的方法处理它们 而不要由应用程序承担这一功能 42 2 5 1关系模式和关系数据库模式一个关系的属性名的集合R A1 A2 An 叫做关系模式 其中 R为关系名 A1 A2 An为属性名 i 1 2 n 由定义可以看出 关系模式是关系的框架 或者称为表框架 指出了关系由哪些属性构成 是对关系结构的描述 一组关系模式的集合叫做关系数据库模式 2 5关系数据库模式与关系数据库 43 关系数据库模式是对关系数据库结构的描述 或者说是对关系数据库框架的描述 也就是前面所讲过的关系头 可以看作是关系的型 与关系数据库模式对应的数据库中的当前值就是关系数据库的内容 称为关系数据库的实例 即前面所讲过的关系体 可以看作是关系的值 例如 在图1 12所示的教学数据库中 共有五个关系 其关系模式分别为 学生 学号 姓名 性别 年龄 系别 教师 教师号 姓名 性别 年龄 系别 课程 课程号 课程名 课时 选课 学号 课程号 成绩 授课 教师号 课程号 44 在每个关系中 又有其相应的数据库的实例例如 与学生关系模式对应的数据库中的实例有如下6个元组 45 2 5 2关系数据库关系数据库是 一组随时间变化 具有各种度的规范化关系的集合 因为关系是由关系头和关系体组成的 所以关系数据库也可以看作是一组关系头和关系体的集合 由此可见 关系数据库也有型和值的概念 其型就是关系数据库模式 相对固定 其值就是关系数据库内容 代表现实世界中的实体 而实体是随着时间不断变化的 所以其值在不同的时刻会有所变化 46 例如 图1 12所示的教学数据库是五个关系的集合 或者说是五个关系头和五个关系体的集合 其中 各个关系头相对固定 而关系体的内容 会随时间而变化 比如 学生和教师的年龄随时间而增长 教师的工资和岗位津贴也会发生变化
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!