第2章_关系数据库基础_第1页
第2章_关系数据库基础_第2页
第2章_关系数据库基础_第3页
第2章_关系数据库基础_第4页
第2章_关系数据库基础_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Higher Education Press Database System and Application 绍兴文理学院元培学院 关系数据库基础 关系数据库系统概述 关系数据库的发展 CODASYL于1962年发表的“信息代数”一文 E.F.Codd从1970年起发表了一系列的论文 20世纪70年代末的实验系统System R和Ingres 从20世纪80年代逐步走向成熟 l关系数据模型概述关系数据模型概述 关系数据结构关系数据结构 关系操作集合关系操作集合 关系完整性约束关系完整性约束 关系数据结构 关系数据结构非常简单,在关系数 据模型中,现实世界中的实体及实体与 实体之间的联系均用关系

2、来表示。从逻 辑或用户的观点来看,关系就是二维表。 关系操作集合 传统的集合运算 并(Union) 交(Intersection) 差(Difference) 广义笛卡尔积(Extended Cartesian Product) 有关的数据操作 查询(Query) 插入(Insert) 删除(Delete) 修改(Update) 专门的关系运算 选择(Select) 投影(Project) 连接(Join) 除(Divide) 关系完整性约束 在数据库中数据完整性是指保证数据正确的特性。 它包括两方面的内容: 与现实世界中应用需求的数据的相容性和正确性; 数据库内数据之间的相容性和正确性。 在

3、关系数据模型中一般将数据完整性分为三类 实体完整性 参照完整性 用户定义完整性 关系数据模型 关系模型的数据结构和基本术语 关系的形式定义 对关系的限定(关系的性质) 关系模型的基本术语 参照关系和被参照关系: 在关系数据库中可以通在关系数据库中可以通 过外部关键字使两个关系关过外部关键字使两个关系关 联,这种联系通常是一对多联,这种联系通常是一对多 (1:n)的,其中主(父)关)的,其中主(父)关 系(系(1方)称为被参照关系,方)称为被参照关系, 从(子)关系(从(子)关系(n方)被称为方)被称为 参照关系。参照关系。 关系 属性 值域 元组 分量 关系模式 关系模型 关系数据库 候选关键

4、字 主关键字 主属性 非主属性 外部关键字 关系的形式定义 笛卡儿积定义:设D1,D2,Dn为任意 集合,定义D1,D2,Dn的笛卡儿积为: 其中每一个元素(d1,d2,dn)叫作一 个n元组,简称元组,元组中每一个di叫作 元组的一个分量。 , 1,| ),( 2121 niDddddDDD iinn 关系的形式定义:笛卡儿积D1D2 Dn的任 意一个子集称为D1,D2, Dn上的一个n元关系。 需要说明两点 关系是元组的集合,集合(关系)中的元素 (元组)是无序的;而元组不是分量di的集合, 元组中的分量是有序的。 例如,在关系中(a,b)(b,a),但在集合中 a,b=b,a。 若一个关

5、系的元组个数是无限的,则该关系称 为无限关系,否则称为有限关系;在数据库中 只考虑有限关系。 关系的性质 每一分量必须是不可分的最小数据项,即每个属性都是不每一分量必须是不可分的最小数据项,即每个属性都是不 可再分解的,这是关系数据库对关系的最基本的限定。可再分解的,这是关系数据库对关系的最基本的限定。 列的个数和每列的数据类型是固定的,即每一列中的分量列的个数和每列的数据类型是固定的,即每一列中的分量 是同类型的数据,来自同一个值域。是同类型的数据,来自同一个值域。 不同的列可以出自同一个值域,每一列称为属性,每个属不同的列可以出自同一个值域,每一列称为属性,每个属 性要给予不同的属性名。性

6、要给予不同的属性名。 列的顺序是无关紧要的,即列的次序可以任意交换,但一列的顺序是无关紧要的,即列的次序可以任意交换,但一 定是整体交换,属性名和属性值必须作为整列同时交换。定是整体交换,属性名和属性值必须作为整列同时交换。 行的顺序是无关紧要的,即行的次序可以任意交换。行的顺序是无关紧要的,即行的次序可以任意交换。 元组不可以重复,即在一个关系中任意两个元组不能完全元组不可以重复,即在一个关系中任意两个元组不能完全 一样。一样。 关系模型的完整性约束 实体完整性规则 参照完整性规则 用户定义完整性 完整性约束的作用 实体完整性规则 实体完整性是要保证关系中的每个元组都是可识别实体完整性是要保

7、证关系中的每个元组都是可识别 和唯一的。和唯一的。 实体完整性规则的具体内容是:若属性实体完整性规则的具体内容是:若属性A是关系是关系R的的 主属性,则属性主属性,则属性A不可以为空值。不可以为空值。 实体完整性是关系模型必须满足的完整性约束条件,实体完整性是关系模型必须满足的完整性约束条件, 也称作是关系的不变性。也称作是关系的不变性。 关系数据库管理系统可以用主关键字实现实体完整关系数据库管理系统可以用主关键字实现实体完整 性,这是由关系系统自动支持的。性,这是由关系系统自动支持的。 对实体完整性规则的几点说明 实体完整性规则是针对关系而言的,而关系实体完整性规则是针对关系而言的,而关系

8、则对应一个现实世界中的实体集。例如,仓则对应一个现实世界中的实体集。例如,仓 库关系对应现实世界中的仓库实体集。库关系对应现实世界中的仓库实体集。 现实世界中的实体是可区分的,它们具有某现实世界中的实体是可区分的,它们具有某 种标识特征;相应地,关系中的元组也是可种标识特征;相应地,关系中的元组也是可 区分的,在关系中用主关键字做唯一性标识。区分的,在关系中用主关键字做唯一性标识。 主关键字中的属性、即主属性不能取空值。主关键字中的属性、即主属性不能取空值。 如果主属性取空值,则意味着关系中的某个如果主属性取空值,则意味着关系中的某个 元组是不可标识的,即存在不可区分的实体,元组是不可标识的,

9、即存在不可区分的实体, 这与实体的定义也是矛盾的。这与实体的定义也是矛盾的。 参照完整性规则 现实世界中的实体间存在着某种联系,而在现实世界中的实体间存在着某种联系,而在 关系模型中实体是用关系描述的、实体之间关系模型中实体是用关系描述的、实体之间 的联系也是用关系描述的,这样就自然存在的联系也是用关系描述的,这样就自然存在 着关系和关系之间的参照或引用。着关系和关系之间的参照或引用。 参照完整性也是关系模型必须满足的完整性参照完整性也是关系模型必须满足的完整性 约束条件,是关系的另一个不变性。约束条件,是关系的另一个不变性。 通过一个例子来说明什么是参照完整性通过一个例子来说明什么是参照完整

10、性 参照关系和被参照关系的定义 设设F是关系是关系R的一个属性或属性组,但的一个属性或属性组,但 不是关系不是关系R的关键字,另外有主关键字为的关键字,另外有主关键字为 K的关系的关系S。如果关系。如果关系R的属性或属性组的属性或属性组F 与关系与关系S的主关键字的主关键字K相对应,则称相对应,则称F是关是关 系系R的外部关键字,并称关系的外部关键字,并称关系R是参照关是参照关 系、系、S是被参照关系(或目标关系)。关是被参照关系(或目标关系)。关 系系R和和S可以是同一个关系。可以是同一个关系。 参照完整性规则 如果属性(或属性组)如果属性(或属性组)F是关系是关系R的外的外 部关键字,它与

11、关系部关键字,它与关系S的主关键字的主关键字K相对相对 应,则对于关系应,则对于关系R中每个元组在属性(或中每个元组在属性(或 属性组)属性组)F上的值必须为:上的值必须为: 或者取空值(或者取空值(F的每个属性均为空值);的每个属性均为空值); 或者等于或者等于S中某个元组的主关键字的值。中某个元组的主关键字的值。 在关系系统中通过说明外部在关系系统中通过说明外部 关键字来实现参照完整性,而说关键字来实现参照完整性,而说 明外部关键字是通过说明引用的明外部关键字是通过说明引用的 主关键字来实现的,也即通过说主关键字来实现的,也即通过说 明外部关键字,关系系统则可以明外部关键字,关系系统则可以

12、 自动支持关系的参照完整性。自动支持关系的参照完整性。 用户定义完整性 一种与应用密切相关的数据完整性约束,如一种与应用密切相关的数据完整性约束,如 某个属性的值必须唯一某个属性的值必须唯一 某个属性的取值必须在某个范围内某个属性的取值必须在某个范围内 某些属性值之间应该满足一定的函数关系等某些属性值之间应该满足一定的函数关系等 类似以上的约束不是关系数据模型本身所要求的,类似以上的约束不是关系数据模型本身所要求的, 而是为了满足应用方面的语义要求而提出的而是为了满足应用方面的语义要求而提出的 在用户定义完整性中最常见的是限定属性的取值范在用户定义完整性中最常见的是限定属性的取值范 围,即对值

13、域的约束,所以在用户定义完整性中最围,即对值域的约束,所以在用户定义完整性中最 常见的是域完整性约束。常见的是域完整性约束。 完整性约束的作用 执行插入操作时检查完整性执行插入操作时检查完整性 执行插入操作时需要分别检查实体完整性规则、参执行插入操作时需要分别检查实体完整性规则、参 照完整性规则和用户定义完整性规则。照完整性规则和用户定义完整性规则。 执行删除操作时检查完整性执行删除操作时检查完整性 执行删除操作时一般只需要检查参照完整性规则。执行删除操作时一般只需要检查参照完整性规则。 执行更新操作时检查完整性执行更新操作时检查完整性 执行更新操作可以看作是先删除旧的元组,然后再执行更新操作

14、可以看作是先删除旧的元组,然后再 插入新的元组。所以执行更新操作时的完整性检查插入新的元组。所以执行更新操作时的完整性检查 综合了上述两种情况。综合了上述两种情况。 关系代数 基本概念和符号 传统的集合运算 专门的关系运算 基本运算及变换 关系代数的基本概念 关系代数的运算对象是关系,关系 代数的运算结果也是关系。与一般 的运算一样,运算对象、运算符和 运算结果也是关系代数的三个要素。 关系代数的运算可以分为两大类 传统的集合运算 专门的关系运算 传统的集合运算 集合的并运算 集合的交运算 集合的差运算 集合的广义笛卡尔积运算 集合的并、交、差运算示意 集合的广义笛卡尔积运算 设R和S是两个关

15、系,如果R是m元关系、 有k个元组,S是n元关系、有l个元组, 则广义笛卡尔积RS是一个m+n元关 系、有kl个元组。广义笛卡儿积可 以记作: ,|SsRrrsSR 广义笛卡尔积运算 例 专门的关系运算 选择运算(Select) 投影运算(Project) 连接运算(Join) 除运算(Division) 选择运算 选择运算是从指定的关系中选择某 些元组形成一个新的关系,被选择的元 组是用满足某个逻辑条件来指定的。 选择运算表示为: |)(FRrrR F 其中R是关系名,是选择运算符, F是逻辑表达式。 选择运算举例: 订购单关系 职工号=E3(订购单) 从订购单关系中选择 职工号为“E3”的

16、元组构成 新的关系 投影运算 1)选择指定的属性,形成一个可能含有 重复行的表格; 2)删除重复行,形成新的关系。 投影运算对指定的关系进行投影操 作,根据该关系分两步产生一个新关系: 投影运算表示为 |.)(RrArR A 其中R是关系名,是投影运算符, A是被投影的属性或属性集。 投影运算举例: 选取职工号和供应 商号两列构成新的关系 职工号,供应商号(订购单) 订购单关系 选择和投影运算举例: 从订购单关系中, 选取出职工号为E3的 所经手的订购单号和 与之相关的供应商号。 订购单关系 供应商号,订购单号(职工号=E3(订购单) 连接运算 连接运算是两个表之间的运算,这两 个表通常是具有

17、一对多联系的父子关系。 所以连接过程一般是由参照关系的外部关 键字和被参照关系的主关键字来控制的, 这样的属性通常也称为连接属性。 连接运算的概念 连接运算是将满足两个表之间运算关系 的记录连接成一条记录,所有这样的记 录构成新的表(连接运算的结果)。 连接运算可以表示为: | jiji BjAi BASBRArsSR 这里Ai是R中的属性,Bj是S中的属性,是关系(比较)运算符, 连接的结果是一个广义笛卡儿乘积的子集,其中的元组满足Ai和Bj 间的关系。当为“=”时,称为等值连接;为“”时,称为大于连接等等。 等值连接 当为“”的连接称为等值连接。 是从关系与的广义笛卡尔积中选 取在,属性上

18、值相等的那些元组。 等值连接的例子 仓 库 号 城 市 面 积 W H 1 北 京 3 7 0 W H 2 上 海 5 0 0 W H 3 广 州 2 0 0 W H 5 合 肥 1 3 0 仓 库 号职 工 号工 资 W H 2 E 1 1 2 2 0 W H 1 E 3 1 2 1 0 W H 2 E 4 1 2 5 0 W H 3 E 6 1 2 3 0 W H 1 E 7 1 2 5 0 仓库 职工 仓 库 号职 工 号工 资 W H 2 E 1 1 2 2 0 W H 1 E 3 1 2 1 0 W H 2 E 4 1 2 5 0 W H 3 E 6 1 2 3 0 W H 1 E

19、7 1 2 5 0 职工 仓 库 号 城 市 面 积 W H 1 北 京 3 7 0 W H 2 上 海 5 0 0 W H 3 广 州 2 0 0 W H 5 合 肥 1 3 0 仓库 等值连接做的二件事 计算广义笛卡尔积RS ; 选择满足条件rAi=sBj的所有元组; 自然连接 在连接运算中最常用的连接是自然连接。 自然连接运算一般表示为 : | 中全体不重复的属性是rsXBsArXrsSR ji 其中其中Ai和和Bj要出自同一个值域,并且在实际应用中这两个属要出自同一个值域,并且在实际应用中这两个属 性往往具有相同的属性名。性往往具有相同的属性名。 自然连接做了二件事: 做等值连接 去掉

20、重复的属性。 自然连接的例子 仓 库 号城 市面 积 W H1北 京370 W H2上 海500 W H3广 州200 W H5合 肥130 仓 库 号职 工 号工 资 W H 2 E 1 1 2 2 0 W H 1 E 3 1 2 1 0 W H 2 E 4 1 2 5 0 W H 3 E 6 1 2 3 0 W H 1 E 7 1 2 5 0 仓 库 号城 市面 积 W H1北 京370 W H2上 海500 W H3广 州200 W H5合 肥130 仓 库 号职 工 号工 资 W H 2 E 1 1 2 2 0 W H 1 E 3 1 2 1 0 W H 2 E 4 1 2 5 0 W H 3 E 6 1 2 3 0 W H 1 E 7 1 2 5 0 综合运算实例 根据以上关系求出在上海工作的职工的工资值 都有哪些? 仓 库 号 城 市

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论