数据库关系数据库

上传人:宝路 文档编号:47862535 上传时间:2018-07-05 格式:PPT 页数:92 大小:442.83KB
返回 下载 相关 举报
数据库关系数据库_第1页
第1页 / 共92页
数据库关系数据库_第2页
第2页 / 共92页
数据库关系数据库_第3页
第3页 / 共92页
数据库关系数据库_第4页
第4页 / 共92页
数据库关系数据库_第5页
第5页 / 共92页
点击查看更多>>
资源描述

《数据库关系数据库》由会员分享,可在线阅读,更多相关《数据库关系数据库(92页珍藏版)》请在金锄头文库上搜索。

1、第二章 关系数据库2.1 关系模型 2.2 关系代数关系数据库简介l1970年,IBM公司的E.F.Codd提出了 关系数据模型 l和层次数据模型和网状数据模型相比 ,关系数据模型的主要优点是: 简单,一个数据库由多个关系组成,每一 个关系就是一个规范化了的二维表,关系模型中 的许多概念与二维表是一一对应的,普通用户容 易理解 易访问,可以使用高级的数据查询语言构 造出复杂的查询,对数据库中的数据进行访问 关系数据库简介l30多年来,关系方法无论在理论研究 还是在系统研制方面均取得了辉煌的成 就。关系方法从实验室走向了社会,涌 现出许多性能良好的商品化关系数据库 管理系统(简称RDBMS),如

2、著名的 DB2,Oracle,Ingres,Sybase, Informix,MS SQL Server等 第二章 关系数据库2.1 关系模型 2.2 关系代数2.1 关系模型l关系模型是一种数据模型,它和一般 的数据模型一样,由如下三部分组成:关系数据结构 关系操作集合 关系完整性约束2.1.1 关系数据结构l单一的数据结构-关系 在关系模型中,无论是实体还是实体 间的各种联系均用关系来表示l数据的逻辑结构-二维表 从用户角度,关系模型中数据的逻辑 结构是一张二维表。 1. 二维表l下图所示的二维表表示的是某个班级 的学生名单1. 二维表(续)l二维表具有下列特点: 表有表名:05班学生名单

3、 表由两部分组成:一个表头和若干行数据 。 从垂直方向看表有若干列,每列都有列名 如学号、姓名等。 同一列的值取自同一个定义域:例如性别 的定义域是(男、女),学号只能取200000001到 200360999的整数。 每一行的数据代表一个学生的信息,同样 每一个学生在表中也有一行。 1. 二维表(续)l对一张二维表可以做以下操作: 填表:将班级中的每个同学的数据填 写进表格。 修改:改正表中的错误数据。 删除:去掉一个学生的数据(例如某 一个同学调到其他的班级或者出国、留级 等)。 查询:在表中按某些条件查找满足条 件的学生。2. 关系l关系模型由一组关系组成。l每个关系的数据结构是一张规范

4、化的 二维表。l一个关系由关系名、关系模式和关系 实例组成,通俗地讲,它们分别对应于 二维表的表名、表头和数据。 2. 关系(续)l二维表对应成关系如下图所示 2. 关系(续)l在数据库中要区分型和值。l关系数据库中,关系模式是型,关系 实例是值。 2. 关系(续)l关系模型中的一些术语: 关系:一个关系对应通常说的一张二 维表 元组:关系中的一行即为一个元组, 有时也称为一个记录 属性:关系中的一列即为一个属性 域:属性的取值范围称为该属性的域2. 关系(续)码:可以唯一确定一个元组的最小属 性集合称为候选码(Candidate Key),或 简称为码(Key)。分量:元组中的一个属性值。

5、关系模式:对关系的描述,一般表示 为: 关系名(属性1,属性2, ,属性n)2. 关系(续)l关系可以有三种类型: 基本关系(通常又称为基本表或基表 ),基本表是实际存在的表,是实际存储 数据的逻辑表示。 查询表,是查询结果对应的表。 视图表,是由基本表或其他视图表导 出的表,是虚表,不对应实际存储的数据 。2. 关系(续)l在数据库中,关系必须具有以下的性质: 列是同质的,即每一列中的分量是同一类 型的数据,来自同一个域。 不同的列可出自同一个域,但要给予不同 的属性名。 列的次序无所谓,即列的次序可以任意交 换。 任意两个元组不能完全相同。 行的顺序无所谓,即行的次序可以任意交 换。 分量

6、必须取原子值,即每一个分量必须是 不可分的数据项。 2. 关系(续)l关系模型要求关系模式必须是规范化 的,即要求关系模式必须满足一定的规 范条件,这些规范条件中最基本的一条 就是,关系的每一个分量必须是一个不 可分的数据项,也就是说,不允许表中 还有表 2. 关系(续)l在关系模型中,实体以及实体之间的 联系都是用关系来表示的。例如雇员、 部门、雇员与部门之间的工作关系在关 系模型中可以表示如下: 雇员(雇员号,姓名,部门,性别,年龄, 工作岗位) 部门(部门号,部门名) 工作关系(雇员号,部门号,工作年 限)2. 关系(续)l在一个给定的应用领域中,所有实体及实 体之间联系的集合构成一个关

7、系数据库l关系数据库也有型和值之分 关系数据库的型也称为关系数据库模式, 是对关系数据库的描述,它包括若干域的定义以 及在这些域上定义的若干关系模式 关系数据库的值是这些关系模式在某一个 时刻对应的关系实例的集合,通常就称为关系数 据库实例。2.1.2关系操作(续)l1) 关系操作的特点集合操作方式,即操作的对象和结果 都是集合。 非关系数据模型的数据操作方式:一 次一记录2.1.2 关系操作(续)l2) 常用的关系操作查询 选择、投影、连接、除、并、交、差 数据更新 插入、删除、修改 查询的表达能力是其中最主要的部分2.1.2 关系操作(续)l3) 关系数据语言的种类关系代数语言:用对关系的

8、运算来表 达查询要求 关系演算语言:用谓词来表达查询要 求 介于关系代数和关系演算之间的语言 ,即结构化查询语言SQL。2.1.2 关系操作集合(续)l4) 关系数据语言的特点关系语言是一种高度非过程化的语言 存取路径的选择由DBMS的优化 机制来完成 用户不必用循环结构就可以完成 数据操作2.1.3 关系的完整性关系模型的完整性规则是对关系的某种约束条件。关系模型中三类完整性约束:实体完整性参照完整性用户定义的完整性实体完整性和参照完整性是关系模型必须满足的完 整性约束条件,被称作是关系的两个不变性,应该 由关系系统自动支持。1 实体完整性实体完整性规则(Entity Integrity):

9、若属性A是基本关系R的主属性,则任何一 个元 组在属性A上不能取空值(Null)。例如,下面的学生关系中,学号是主码, 则任何一个元组在属性“学号”上不能取空值 。 学生(学号,姓名,性别,出生年月,籍贯 ,身高)1 实体完整性(续)关系模型必须遵守实体完整性规则的原因(1)一个基本关系对应现实世界中的一个实体集。例如,雇员关系对应全体雇员的集合。(2)现实世界中的实体是可区分的,即它们具有某种唯一性标识(3)相应地,关系模型中以主码作为唯一性标识。1 实体完整性(续)关系模型必须遵守实体完整性规则的原因(续)(4)主码中的属性即主属性不能取空值。所谓空值就是“不知道”或者“无意义”的值。如果

10、主属性取空值,就说明存在某个不可标识的实体,即存在不可区分的实体,这与现实世界的应用环境相矛盾,因此这个实体一定不是一个完整的实体。 1 实体完整性(续)注意 实体完整性规则规定基本关系的 所有 主属性都不能取空值 例 选修(学号,课程号,成绩) “学号、课程号”为主码,则两个 属性都不能取空值。2 参照完整性l关系间的引用l外码l参照完整性规则关系间的引用在关系模型中实体及实体间的联系都 是用 关系来描述的,这样就存在着关系与 关系 间的引用。当一个关系被修改的时候 ,为 了保持数据的一致性,也必须对另一 个关 系进行检查和修改。 关系间的引用(续)例子,假设我们具有如下两个关系: 学生(学

11、号,姓名,性别,系别,年龄) 选课(学号,课程号,成绩) 这两个关系的属性之间存在着下图所示的引用关系 ,即 选课关系引用了学生关系的主码“学号”。关系间的引用(续)l显然,选课关系中的“学号”值必须是确实 存在的学生的学号,即出现在选课关系中的 学号必须同时出现在学生关系中,这也就是 说,选课关系中的某个属性的取值需要参照 学生关系的属性取值。l反过来说,出现在学生关系中的每一个学 生却不一定要出现在选课关系中l选课关系中的属性“学号”被称为外码,它 需要参照学生关系的主码。外码(Foreign Key)如果基本关系R中某属性集F是基本关 系S 的主码,则对基本关系R而言,F叫做 外码 (F

12、oreign Key),并称基本关系R为 参照 关系(Referencing Relation),基本 关系S 为被参照关系(Referenced Relation) 或 目标关系(Target Relation)。 参照完整性规则基本关系R的任何一个元组在外码F上 的取 值要么是空值,要么是被参照关系S中 一个 元组的主码值参照完整性规则(续)参照完整性要保证不引用不存在的实体。 (1)在数据库运行时,假设用户要往选课关系中 插入一个元组(C01,数据库,2000010),则 DBMS将会拒绝该操作,因为它违反了参照完整性规 则,在学生关系中根本就不存在学号为2000010的学 生 (2)类

13、似地,当从学生关系中删除掉元组( 2000011,刘晓,男,计算机,北京)时,因为选课 关系中还有学号2000011的选课记录,DBMS应该禁 止该删除操作,或者在删除元组(2000011,刘晓, 男,计算机,北京)的同时也从选课关系中将元组 (C03,数学,2000011)删掉。参照完整性规则(续)l需要指出的是,不仅两个或两个以上的关系间可以 存在引用关系,同一关系内部属性间也可能存在引 用关系。例如在关系: 学生2(学号,姓名,性别,系别,年龄,班 长)中,“学号”属性是主码,“班长”属性表示该学生 所在班级的班长的学号,它引用了本关系“学号”属 性,因此“班长”属性是外码,它可以取两类

14、值: 空值,表示该学生所在班级尚未选出班长; 非空值,这时该值必须是本关系中某个元组的学 号值。 l该例中学生2关系既是参照关系也是被参照关系。参照完整性规则(续)显然,参照关系R的外码和目标关系S 的主 码必须定义在同一个(或一组)域上 ,但 是,外码并不一定要与相应的主码同 名。 不过,在实际应用中,为了便于识别 ,当 外码和相应的主码属于不同的关系时 ,往 往给它们取相同的名字。 3 用户定义的完整性l用户定义的完整性是针对某一具体关系数据库的约束条件,反映某一具体应用所涉及的数据必须满足的语义要求。l关系模型应提供定义和检验这类完整性的机制,以便用统一的系统的方法处理它们,而不要由应用

15、程序承担这一功能。用户定义的完整性(续)例:课程(课程号,课程名,学分)“课程名”属性必须取唯一值非主属性“课程名”也不能取空值“学分”属性只能取值1,2,3,4第二章 关系数据库2.1 关系模型 2.2 关系代数2.2 关系代数l 概述l 传统的集合运算l 专门的关系运算l 关系代数表达式的优化概述1. 关系代数 2. 运算的三要素 3. 关系代数运算的三个要素 4. 关系代数运算的分类概述1.关系代数一种抽象的查询语言用对关系的运算来表达查询概述(续)2关系代数运算的三个要素运算对象:关系运算结果:关系运算符:四类概述(续)l运算符(续) 集合运算符 将关系看成元组的集合 运算是从关系的“

16、水平”方向即行的角 度来进行 专门的关系运算符 不仅涉及行而且涉及列 算术比较符 辅助专门的关系运算符进行操作 逻辑运算符 辅助专门的关系运算符进行操作集 合 运 算 符 - 并 差 交 广义笛 卡尔积比 较 运 算 符 大于 大于等于 小于 小于等于 等于 不等于运算符含义运算符含义图2-5 关系代数运算符 概述(续)专门的 关系 运算符 选 择 投影 连 接 除逻辑运 算符 非 与 或运算符含义运算符含义图2-5 关系代数运算符(续) 概述(续)概述(续)4关系代数运算的分类传统的集合运算并、差、交、广义笛卡尔积 专门的关系运算选择、投影、连接、除2.2 关系代数l 概述l 传统的集合运算l 专门的关系运算l 关系代数表达式的优化2.2.1 传统的集合运算l并l交l差l广义笛卡尔积1. 并(Union)lR和S具有相同的属性个数 相应的

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 中学教育 > 教学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号