1、第3章 关系数据库 3.1 关系数据库系统概述3.2 关系数据模型 3.3 关系模型的完整性约束 3.4 关系代数 3.5 关系数据库系统的三层模式结构 本演示文稿可能包含观众讨论和即本演示文稿可能包含观众讨论和即席反应。使用席反应。使用 PowerPoint 可以可以跟踪演示时的即席反应,跟踪演示时的即席反应,在幻灯片放映中,右键单击鼠标在幻灯片放映中,右键单击鼠标请选择请选择“会议记录会议记录”选择选择“即席反应即席反应”选项卡选项卡必要时输入即席反应必要时输入即席反应单击单击“确定确定”撤消此框撤消此框此动作将自动在演示文稿末尾创建此动作将自动在演示文稿末尾创建一张即席反应幻灯片,包括您
2、的一张即席反应幻灯片,包括您的观点。观点。第3章 关系数据库 教学要求:n n掌握关系数据库的基本概念和术语n n牢记有关概念,掌握关系代数中的基本运算;n n了解关系模型的数据结构;n n理解关系的完整性的概念。本演示文稿可能包含观众讨论和即本演示文稿可能包含观众讨论和即席反应。使用席反应。使用 PowerPoint 可以可以跟踪演示时的即席反应,跟踪演示时的即席反应,在幻灯片放映中,右键单击鼠标在幻灯片放映中,右键单击鼠标请选择请选择“会议记录会议记录”选择选择“即席反应即席反应”选项卡选项卡必要时输入即席反应必要时输入即席反应单击单击“确定确定”撤消此框撤消此框此动作将自动在演示文稿末尾
3、创建此动作将自动在演示文稿末尾创建一张即席反应幻灯片,包括您的一张即席反应幻灯片,包括您的观点。观点。第3章 关系数据库 重点:n n关系模型的相关概念和术语;n n关系代数中的基本运算;n n关系的完整性的概念。难点:n n关系代数中的基本运算;n n关系的完整性的概念。本演示文稿可能包含观众讨论和即本演示文稿可能包含观众讨论和即席反应。使用席反应。使用 PowerPoint 可以可以跟踪演示时的即席反应,跟踪演示时的即席反应,在幻灯片放映中,右键单击鼠标在幻灯片放映中,右键单击鼠标请选择请选择“会议记录会议记录”选择选择“即席反应即席反应”选项卡选项卡必要时输入即席反应必要时输入即席反应单
4、击单击“确定确定”撤消此框撤消此框此动作将自动在演示文稿末尾创建此动作将自动在演示文稿末尾创建一张即席反应幻灯片,包括您的一张即席反应幻灯片,包括您的观点。观点。3.1 关系数据库系统概述CODASYLCODASYL于于19621962年发表的年发表的“信息代数信息代数”一文一文 从从19701970年起发表了一系列的论文年起发表了一系列的论文2020世纪世纪7070年代末的实验系统年代末的实验系统System RSystem R和和Ingres Ingres 从从2020世纪世纪8 80 0年代逐步走向成熟年代逐步走向成熟3.1.2 3.1.2 关系数据模型概述关系数据模型概述3.1.2 关
5、系数据模型概述数据模型的组成要素n n数据结构数据结构:描述数据库的组成对象,以及对象之间的描述数据库的组成对象,以及对象之间的联系联系,数据结构是对系统静态特性的描述数据结构是对系统静态特性的描述.n n数据操作数据操作:对数据库中各种对象对数据库中各种对象(型型)的实例的实例(值值)允许允许执行的执行的 操作操作操作操作及有关的及有关的操作规则操作规则操作规则操作规则.数据操作的类型包括数据操作的类型包括查询和更新查询和更新(包括插入、删除、修改包括插入、删除、修改)。数据操作是对。数据操作是对系统动态特性的描述。系统动态特性的描述。n n完整性约束条件:包括一组完整性规则的集合,以保完整
6、性约束条件:包括一组完整性规则的集合,以保证数据的正确、有效、相容。证数据的正确、有效、相容。关系数据模型概述关系数据模型组成的要素关系数据结构关系数据结构关系操作集合关系操作集合关系完整性约束关系完整性约束 关系数据模型概述 (一一一一)关系数据结构关系数据结构关系数据结构关系数据结构关系数据结构非常简单,在关系数据模型中,现实关系数据结构非常简单,在关系数据模型中,现实世界中的实体及实体与实体之间的联系均用关系世界中的实体及实体与实体之间的联系均用关系来表示。从逻辑或用户的观点来看,关系就是二来表示。从逻辑或用户的观点来看,关系就是二维表。维表。关系数据模型概述n n传统的集合运算传统的集
7、合运算 并(并(UnionUnion)交(交(IntersectionIntersection)差(差(DifferenceDifference)广义笛卡尔积(广义笛卡尔积(Extended Cartesian ProductExtended Cartesian Product)n n专门的关系运算专门的关系运算 选择(选择(SelectSelect)投影(投影(ProjectProject)连接(连接(JoinJoin)除(除(DivideDivide)n n有关的数据操作有关的数据操作 查询(查询(QueryQuery)插入(插入(InsertInsert)删除(删除(DeleteDele
8、te)修改(修改(UpdateUpdate)(二)关系操作集合(二)关系操作集合(二)关系操作集合(二)关系操作集合n n关系是以集合的方式操作的,即操作的对象是元组的集合,操作的结果也是关系是以集合的方式操作的,即操作的对象是元组的集合,操作的结果也是元组的集合。这和非关系模型的操作结果是一条记录有着重要区别。元组的集合。这和非关系模型的操作结果是一条记录有着重要区别。n n关系数据语言分为三类关系数据语言分为三类:关系代数语言:是通过关系代数对关系的运算来表达查询要求的方式。关系代数语言:是通过关系代数对关系的运算来表达查询要求的方式。关系演算语言:是通过关系演算、用谓词表达对关系的查询要
9、求的方式。关系演算语言:是通过关系演算、用谓词表达对关系的查询要求的方式。现在关系数据库已经有了标准语言现在关系数据库已经有了标准语言SQLSQL(Structured Query LanguageStructured Query Language),),它是一种介于关系代数和关系演算的语言。它是一种介于关系代数和关系演算的语言。关系数据模型概述(三)关系完整性约束 n n在数据库中数据完整性是指保证数据正确的特性。它包括两方面的内容:与现实世界中应用需求的数据的相容性和正确性;与现实世界中应用需求的数据的相容性和正确性;数据库内数据之间的相容性和正确性数据库内数据之间的相容性和正确性。n n
10、在关系数据模型中一般将数据完整性分为三类 实体完整性实体完整性 参照完整性参照完整性 用户定义完整性用户定义完整性 关系数据模型概述3.2关系数据模型 3.2.1 关系模型的数据结构和基本术语 3.2.2 关系的形式定义 3.2.3 对关系的限定(关系的性质)关系模型的基本术语关系模型的基本术语 参照关系和被参照关系:参照关系和被参照关系:在在在在关系数据库中可以通过外关系数据库中可以通过外关系数据库中可以通过外关系数据库中可以通过外部关键字使两个关系关联,部关键字使两个关系关联,部关键字使两个关系关联,部关键字使两个关系关联,这种联系通常是一对多这种联系通常是一对多这种联系通常是一对多这种联
11、系通常是一对多(1:n1:n)的,其中主(父)的,其中主(父)的,其中主(父)的,其中主(父)关系(关系(关系(关系(1 1方)称为被参照方)称为被参照方)称为被参照方)称为被参照关系,从(子)关系(关系,从(子)关系(关系,从(子)关系(关系,从(子)关系(n n方)被称为参照关系。方)被称为参照关系。方)被称为参照关系。方)被称为参照关系。关系属性值域元组分量关系模式关系模型关系数据库候选关键字主关键字主属性非主属性外部关键字关系模型的基本术语n n关系:二维表。n n属性:二维表中的列。n n值域:二维表中属性的取值范围称为值域。n n元组:二维表中的行称为元组。n n分量:元组中的每一
12、个属性值称为元组的分量。n n关系模式:二维表的结构称为关系模式。关系模式的表示方法为:仓库(仓库号,城市,面积)n n关系模型:所有关系模式、属性名和关键字的汇集。关系模型的基本术语n n关系数据库:对应于一个关系模型的所有关系的集合。n n候选关键字:能唯一标识一个关系的元组而不含有多余属性的属性集为候选关键字。n n主关键字:每个关系只有一个主关键字,可以从多个候选关键字中选取。n n主属性:包含在任一个候选关键字中的属性。n n非主属性:不包含在任一个候选关键字中的属性。n n外部关键字:不是所在关系的关键字,但是其它关系的关键字的属性集。3.2.2 关系的形式定义笛卡儿积定义:设D1
13、,D2,Dn为任意集合,定义D1,D2,Dn的笛卡儿积为:其中每一个元素(d1,d2,dn)叫作一个n元组,简称元组,元组中每一个di叫作元组的一个分量。关系的形式定义:笛卡儿积D1D2 Dn的任意一个子集称为D1,D2,Dn上的一个n元关系。器件号器件号器件名称器件名称P2P2显示卡显示卡P4P4声卡声卡P7P7声卡声卡P9P9解压卡解压卡任意一个字集形成一个关系任意一个字集形成一个关系关系的性质n n每一分量必须是不可分的最小数据项,即每个属性都是每一分量必须是不可分的最小数据项,即每个属性都是每一分量必须是不可分的最小数据项,即每个属性都是每一分量必须是不可分的最小数据项,即每个属性都是
14、不可再分解的,这是关系数据库对关系的最基本的限定。不可再分解的,这是关系数据库对关系的最基本的限定。不可再分解的,这是关系数据库对关系的最基本的限定。不可再分解的,这是关系数据库对关系的最基本的限定。n n列的个数和每列的数据类型是固定的,即每一列中的分列的个数和每列的数据类型是固定的,即每一列中的分列的个数和每列的数据类型是固定的,即每一列中的分列的个数和每列的数据类型是固定的,即每一列中的分量是同类型的数据,来自同一个值域。量是同类型的数据,来自同一个值域。量是同类型的数据,来自同一个值域。量是同类型的数据,来自同一个值域。n n不同的列可以出自同一个值域,每一列称为属性,每个不同的列可以
15、出自同一个值域,每一列称为属性,每个不同的列可以出自同一个值域,每一列称为属性,每个不同的列可以出自同一个值域,每一列称为属性,每个属性要给予不同的属性名。属性要给予不同的属性名。属性要给予不同的属性名。属性要给予不同的属性名。n n列的顺序是无关紧要的,即列的次序可以任意交换,但列的顺序是无关紧要的,即列的次序可以任意交换,但列的顺序是无关紧要的,即列的次序可以任意交换,但列的顺序是无关紧要的,即列的次序可以任意交换,但一定是整体交换,属性名和属性值必须作为整列同时交一定是整体交换,属性名和属性值必须作为整列同时交一定是整体交换,属性名和属性值必须作为整列同时交一定是整体交换,属性名和属性值
16、必须作为整列同时交换。换。换。换。n n行的顺序是无关紧要的,即行的次序可以任意交换。行的顺序是无关紧要的,即行的次序可以任意交换。行的顺序是无关紧要的,即行的次序可以任意交换。行的顺序是无关紧要的,即行的次序可以任意交换。n n元组不可以重复,即在一个关系中任意两个元组不能完元组不可以重复,即在一个关系中任意两个元组不能完元组不可以重复,即在一个关系中任意两个元组不能完元组不可以重复,即在一个关系中任意两个元组不能完全一样。全一样。全一样。全一样。3.3.1 实体完整性规则 n n实实实实体体体体完完完完整整整整性性性性是是是是要要要要保保保保证证证证关关关关系系系系中中中中的的的的每每每每
17、个个个个元元元元组组组组都都都都是是是是可可可可识识识识别别别别和唯一的。和唯一的。和唯一的。和唯一的。n n实实实实体体体体完完完完整整整整性性性性规规规规则则则则的的的的具具具具体体体体内内内内容容容容是是是是:若若若若属属属属性性性性AA是是是是关关关关系系系系RR的主属性,则属性的主属性,则属性的主属性,则属性的主属性,则属性AA不可以为空值。不可以为空值。不可以为空值。不可以为空值。n n实实实实体体体体完完完完整整整整性性性性是是是是关关关关系系系系模模模模型型型型必必必必须须须须满满满满足足足足的的的的完完完完整整整整性性性性约约约约束束束束条条条条件件件件,也称作是关系的不变性
18、。也称作是关系的不变性。也称作是关系的不变性。也称作是关系的不变性。n n关关关关系系系系数数数数据据据据库库库库管管管管理理理理系系系系统统统统可可可可以以以以用用用用主主主主关关关关键键键键字字字字实实实实现现现现实实实实体体体体完完完完整整整整性,这是由关系系统自动支持的。性,这是由关系系统自动支持的。性,这是由关系系统自动支持的。性,这是由关系系统自动支持的。对实体完整性规则的几点说明n n实实实实体体体体完完完完整整整整性性性性规规规规则则则则是是是是针针针针对对对对关关关关系系系系而而而而言言言言的的的的,而而而而关关关关系系系系则则则则对对对对应应应应一一一一个个个个现现现现实实
19、实实世世世世界界界界中中中中的的的的实实实实体体体体集集集集。例例例例如如如如,仓仓仓仓库库库库关关关关系系系系对对对对应应应应现现现现实实实实世世世世界界界界中中中中的仓库实体集。的仓库实体集。的仓库实体集。的仓库实体集。n n现现现现实实实实世世世世界界界界中中中中的的的的实实实实体体体体是是是是可可可可区区区区分分分分的的的的,它它它它们们们们具具具具有有有有某某某某种种种种标标标标识识识识特特特特征征征征;相相相相应应应应地地地地,关关关关系系系系中中中中的的的的元元元元组组组组也也也也是是是是可可可可区区区区分分分分的的的的,在在在在关关关关系系系系中中中中用用用用主主主主关关关关键
20、字做唯一性标识。键字做唯一性标识。键字做唯一性标识。键字做唯一性标识。n n主主主主关关关关键键键键字字字字中中中中的的的的属属属属性性性性、即即即即主主主主属属属属性性性性不不不不能能能能取取取取空空空空值值值值。如如如如果果果果主主主主属属属属性性性性取取取取空空空空值值值值,则则则则意意意意味味味味着着着着关关关关系系系系中中中中的的的的某某某某个个个个元元元元组组组组是是是是不不不不可可可可标标标标识识识识的的的的,即即即即存在不可区分的实体,这与实体的定义也是矛盾的。存在不可区分的实体,这与实体的定义也是矛盾的。存在不可区分的实体,这与实体的定义也是矛盾的。存在不可区分的实体,这与实
21、体的定义也是矛盾的。3.3.2 参照完整性规则n n现实世界中的实体间存在着某种联系,而在关系现实世界中的实体间存在着某种联系,而在关系现实世界中的实体间存在着某种联系,而在关系现实世界中的实体间存在着某种联系,而在关系模型中实体是用关系描述的、实体之间的联系也模型中实体是用关系描述的、实体之间的联系也模型中实体是用关系描述的、实体之间的联系也模型中实体是用关系描述的、实体之间的联系也是用关系描述的,这样就自然存在着关系和关系是用关系描述的,这样就自然存在着关系和关系是用关系描述的,这样就自然存在着关系和关系是用关系描述的,这样就自然存在着关系和关系之间的参照或引用。之间的参照或引用。之间的参
22、照或引用。之间的参照或引用。n n参照完整性也是关系模型必须满足的完整性约束参照完整性也是关系模型必须满足的完整性约束参照完整性也是关系模型必须满足的完整性约束参照完整性也是关系模型必须满足的完整性约束条件,是关系的另一个不变性。条件,是关系的另一个不变性。条件,是关系的另一个不变性。条件,是关系的另一个不变性。n n通过一个例子来说明什么是参照完整性通过一个例子来说明什么是参照完整性通过一个例子来说明什么是参照完整性通过一个例子来说明什么是参照完整性 参照关系和被参照关系的定义 设设设设F F是关系是关系是关系是关系R R的一个属性或属性组,但不是关系的一个属性或属性组,但不是关系的一个属性
23、或属性组,但不是关系的一个属性或属性组,但不是关系R R的关键字,另外有主关键字为的关键字,另外有主关键字为的关键字,另外有主关键字为的关键字,另外有主关键字为KK的关系的关系的关系的关系S S。如果关系。如果关系。如果关系。如果关系R R的属性或属性组的属性或属性组的属性或属性组的属性或属性组F F与关系与关系与关系与关系S S的主关键字的主关键字的主关键字的主关键字KK相对应,相对应,相对应,相对应,则称则称则称则称F F是关系是关系是关系是关系R R的外部关键字,并称关系的外部关键字,并称关系的外部关键字,并称关系的外部关键字,并称关系R R是参照关是参照关是参照关是参照关系、系、系、系
24、、S S是被参照关系(或目标关系)。关系是被参照关系(或目标关系)。关系是被参照关系(或目标关系)。关系是被参照关系(或目标关系)。关系R R和和和和S S可可可可以是同一个关系。以是同一个关系。以是同一个关系。以是同一个关系。参照完整性规则 如如如如果果果果属属属属性性性性(或或或或属属属属性性性性组组组组)F F是是是是关关关关系系系系RR的的的的外外外外部部部部关关关关键键键键字字字字,它它它它与与与与关关关关系系系系S S的的的的主主主主关关关关键键键键字字字字KK相相相相对对对对应应应应,则则则则对对对对于于于于关关关关系系系系RR中中中中每个元组在属性(或属性组)每个元组在属性(或
25、属性组)每个元组在属性(或属性组)每个元组在属性(或属性组)F F上的值必须为:上的值必须为:上的值必须为:上的值必须为:或者取空值(或者取空值(或者取空值(或者取空值(F F的每个属性均为空值);的每个属性均为空值);的每个属性均为空值);的每个属性均为空值);或者等于或者等于或者等于或者等于S S中某个元组的主关键字的值。中某个元组的主关键字的值。中某个元组的主关键字的值。中某个元组的主关键字的值。在关系系统中通过说明外部在关系系统中通过说明外部关键字来实现参照完整性,而说关键字来实现参照完整性,而说明外部关键字是通过说明引用的明外部关键字是通过说明引用的主关键字来实现的,也即通过说主关键
26、字来实现的,也即通过说明外部关键字,关系系统则可以明外部关键字,关系系统则可以自动支持关系的参照完整性。自动支持关系的参照完整性。3.3.3 用户定义完整性 n n一种与应用密切相关的数据完整性约束,如一种与应用密切相关的数据完整性约束,如一种与应用密切相关的数据完整性约束,如一种与应用密切相关的数据完整性约束,如某个属性的值必须唯一某个属性的值必须唯一某个属性的值必须唯一某个属性的值必须唯一 某个属性的取值必须在某个范围内某个属性的取值必须在某个范围内某个属性的取值必须在某个范围内某个属性的取值必须在某个范围内 某些属性值之间应该满足一定的函数关系等某些属性值之间应该满足一定的函数关系等某些
27、属性值之间应该满足一定的函数关系等某些属性值之间应该满足一定的函数关系等 n n类似以上的约束不是关系数据模型本身所要求的,类似以上的约束不是关系数据模型本身所要求的,类似以上的约束不是关系数据模型本身所要求的,类似以上的约束不是关系数据模型本身所要求的,而是为了满足应用方面的语义要求而提出的而是为了满足应用方面的语义要求而提出的而是为了满足应用方面的语义要求而提出的而是为了满足应用方面的语义要求而提出的n n在用户定义完整性中最常见的是限定属性的取值范在用户定义完整性中最常见的是限定属性的取值范在用户定义完整性中最常见的是限定属性的取值范在用户定义完整性中最常见的是限定属性的取值范围,即对值
28、域的约束,所以在用户定义完整性中最围,即对值域的约束,所以在用户定义完整性中最围,即对值域的约束,所以在用户定义完整性中最围,即对值域的约束,所以在用户定义完整性中最常见的是域完整性约束。常见的是域完整性约束。常见的是域完整性约束。常见的是域完整性约束。3.3.4 完整性约束的作用 n n执行插入操作时检查完整性执行插入操作时检查完整性执行插入操作时检查完整性执行插入操作时检查完整性 执行插入操作时需要分别检查实体完整性规则、参照执行插入操作时需要分别检查实体完整性规则、参照执行插入操作时需要分别检查实体完整性规则、参照执行插入操作时需要分别检查实体完整性规则、参照完整性规则和用户定义完整性规
29、则。完整性规则和用户定义完整性规则。完整性规则和用户定义完整性规则。完整性规则和用户定义完整性规则。n n执行删除操作时检查完整性执行删除操作时检查完整性执行删除操作时检查完整性执行删除操作时检查完整性 执行删除操作时一般只需要检查参照完整性规则。执行删除操作时一般只需要检查参照完整性规则。执行删除操作时一般只需要检查参照完整性规则。执行删除操作时一般只需要检查参照完整性规则。n n执行更新操作时检查完整性执行更新操作时检查完整性执行更新操作时检查完整性执行更新操作时检查完整性 执行更新操作可以看作是先删除旧的元组,然后再插执行更新操作可以看作是先删除旧的元组,然后再插执行更新操作可以看作是先
30、删除旧的元组,然后再插执行更新操作可以看作是先删除旧的元组,然后再插入新的元组。所以执行更新操作时的完整性检查综合入新的元组。所以执行更新操作时的完整性检查综合入新的元组。所以执行更新操作时的完整性检查综合入新的元组。所以执行更新操作时的完整性检查综合了上述两种情况。了上述两种情况。了上述两种情况。了上述两种情况。3.4 关系代数n n3.4.1 基本概念和符号n n3.4.2 传统的集合运算n n3.4.3 专门的关系运算n n 基本运算及变换(一)关系代数的基本概念n n关系代数的运算对象是关系,关系代数的运算结果也是关系。与一般的运算一样,运算对象、运算符和运算结果也是关系代数的三个要素
31、。n n关系代数的运算类型可以分为两大类传统的集合运算传统的集合运算 专门的关系运算专门的关系运算n n关系代数的运算符分为四类:集合运算符,专门的关系运算符、比较运算符和逻辑运算符。书上54页表3.1。(二)几个专门的符号n n元组的分量n n元组的连串n n元组中属性的映像集元组的分量n n设有关系模式R(A1,A2,An)r rR R表示表示r r是是R R的一个元组的一个元组 i i或或r r A Ai i 表示表示r r这个元组中相应于属性这个元组中相应于属性A Ai i的一个的一个分量分量 n n例如,假设R是仓库关系,r r=(WH1,WH1,北京北京,370,370)是仓库关系
32、的一个元)是仓库关系的一个元组,则组,则r rR R ,或,或r r 仓库号仓库号 为为WH1WH1。元组的连串 设设R R为为mm元关系,元关系,S S为为n n元关系,并且元关系,并且 r r=(=(r r1 1,r r2 2,r rmm)R R s s=(=(s s1 1,s s2 2,s sn n)S S则则 称为元组的连串。称为元组的连串。这是一个(这是一个(mm+n n)元组,前)元组,前mm个分量为个分量为R R中的一中的一个个mm元组,后元组,后n n个分量为个分量为S S中的一个中的一个n n元组。元组。元组中属性的映像集n n设有关系模式R(X,Y),其中X、Y可以是单个属
33、性,也可以是属性集,定义当X取值为x时,x在R中的映像集为:n n设有如右上表所示的订购单关系,把它命名为设有如右上表所示的订购单关系,把它命名为设有如右上表所示的订购单关系,把它命名为设有如右上表所示的订购单关系,把它命名为RR,并且,并且,并且,并且进一步设进一步设进一步设进一步设XX为属性职工号,为属性职工号,为属性职工号,为属性职工号,Y Y为属性集为属性集为属性集为属性集 供应商号,订购供应商号,订购供应商号,订购供应商号,订购单号,订购日期单号,订购日期单号,订购日期单号,订购日期,则当,则当,则当,则当XX取值为取值为取值为取值为E3E3时时时时 (S7,OR67,2002/06
34、/23),(S4,OR79,2002/07/29),(S6,OR90,2002/07/13),(S3,OR91,2002/10/27)Yx=3.4.2 传统的集合运算n n集合的并运算n n集合的交运算n n集合的差运算n n集合的广义笛卡尔积运算集合的并、交、差运算n n集合的并运算记为:集合的并运算记为:n n集合的交运算记为:集合的交运算记为:n n集合的差运算记为:集合的差运算记为:集合的并、交、差运算示意集合的广义笛卡尔积运算设R和S是两个关系,如果R是m元关系、有k个元组,S是n元关系、有l个元组,则广义笛卡尔积RS是一个m+n元关系、有kl个元组。广义笛卡儿积可以记作:集合的广义
35、笛卡尔积运算示例A AB Ba1a1b1b1a2a2b2b2C CDDE Ec1c1 d1d1 e1e1c2c2 d2d2 e2e2A AB BC CDDE Ea1a1b1b1c1c1d1d1e1e1a1a1b1b1c2c2d2d2e2e2a2a2b2b2c1c1d1d1e1e1a2a2b2b2c2c2d2d2e2e23.4.3 专门的关系运算n n选择运算(Select)n n投影运算(Project)n n连接运算(Join)n n除运算(Division)选择运算 选择运算是从指定的关系中选择某些元组形成一个新的关系,被选择的元组是用满足某个逻辑条件来指定的。选择运算表示为:其中R是关系
36、名,r是元组,是选择运算符,F是逻辑表达式。选择运算举例:职工号=E3(订购单)订购单关系 要求:从订购单关系中选择职工号为“E3”的元组构成新的关系投影运算1)选择指定的属性,形成一个可能含有重复行的表格;2)删除重复行,形成新的关系。投影运算对指定的关系进行投影操作,根据该关系分两步产生一个新关系:设F是关系R的一个属性或属性组,但不是关系R的关键字,另外有主关键字为K的关系S。某个属性的取值必须在某个范围内关系代数的运算类型可以分为两大类关系代数的运算对象是关系,关系代数的运算结果也是关系。在幻灯片放映中,右键单击鼠标本演示文稿可能包含观众讨论和即席反应。选择“即席反应”选项卡存储文件的
37、逻辑结构组成了关系数据库的存储模式,但是用户无需了解存储文件的物理结构,它对用户是透明的。关系模式的表示方法为:仓库(仓库号,城市,面积)从逻辑或用户的观点来看,关系就是二维表。rR表示r是R的一个元组4 完整性约束的作用选择满足条件rAi=sBj的所有元组;1 关系模型的数据结构和基本术语在数据库中数据完整性是指保证数据正确的特性。投影运算表示为 其中R是关系名,是投影运算符,A是被投影的属性或属性集。投影运算举例:订购单关系 选取职工号和供应商号两列构成新的关系职工号,供应商号(订购单)选择和投影运算举例:从订购单关系中,选取出职工号为E3的所经手的订购单号和与之相关的供应商号。订购单关系
38、供应商号,订购单号(职工号=E3(订购单)R1职工号=E3(订购单)R2 供应商号,订购单号(R1)或例题设有3个关系:学生(学号,姓名,性别,所在系),课程(课程号,课程名,学时)和选课(学号,课程号,成绩)。若查询选修了课程号为C2和C3课程的学生学号,能实现该查询的运算是()A.学号(课程号C2课程号C3(选课))B.学号(课程号C2v课程号C3(选课))C.学号(课程号C2(选课))学号(课程号C3(选课))D.学号(课程号C2(选课))学号(课程号C3(选课))连接运算 连接运算是两个表之间的运算,这两个表通常是具有一对多联系的父子关系。所以连接过程一般是由参照关系的外部关键字和被参
39、照关系的主关键字来控制的,这样的属性通常也称为连接属性。连接运算的概念n n连接运算是将满足两个表之间运算关系的记录连连接运算是将满足两个表之间运算关系的记录连接成一条记录,所有这样的记录构成新的表(连接成一条记录,所有这样的记录构成新的表(连接运算的结果)。接运算的结果)。n n连接运算可以表示为:连接运算可以表示为:这里Ai是R中的属性,Bj是S中的属性,是关系(比较)运算符,连接的结果是一个广义笛卡儿乘积的子集,其中的元组满足Ai和Bj间的关系。当为“=”时,称为等值连接;为“”时,称为大于连接等等。自然连接 n n在连接运算中最常用的连接是自然连接。在连接运算中最常用的连接是自然连接。
40、n n自然连接运算一般表示为自然连接运算一般表示为 :其中其中Ai和和Bj要出自同一个值域,并且在实际应要出自同一个值域,并且在实际应用中这两个属性往往具有相同的属性名。用中这两个属性往往具有相同的属性名。自然连接做了三件事:n n计算广义笛卡尔积RS;n n选择满足条件rAi=sBj的所有元组;n n去掉重复的属性。自然连接的例子注意:n n为了使一个关系中的任一元组都参加自然连接,该元组的连接属性(字段)值必须出现在另一个参加连接的关系中;n n一般在实际应用中可以父无子,而不可以子无父,否则将破坏参照数据完整性;n n连接陷阱问题。练习1、关系数据库中,将两个关系中具有共同属性的元组连接
41、到一起,构成新表的操作是()。2、如果要改变一个关系中的属性的排列顺序,应使用的关系运算是()。3、在关系运算中,查找满足一定条件的元组的运算是()综合运算实例 根据以上关系求出在上海工作的职工的工资值都有哪些?仓库职工关系代数语句为:关系代数语句为:查询过程示意选择运算选择运算自然连接运算自然连接运算投影投影运算运算注意 自然连接和等值连接很相象,但它们不同,自然连接要去掉重复的属性,而等值连接却不需要去掉重复的属性。除运算除运算 设有关系R(X,Y)和S(Y),其中X、Y可以是单个属性或属性集,则除法运算定义为:理解除法运算n nR R(X X,Y Y)是被除关系是被除关系n nS S(Y
42、 Y)是除关系是除关系n n商关系由商关系由R R中某些中某些X X属性值构成,其中的任一属性值构成,其中的任一X X值所对应的一组值所对应的一组Y Y值都包含除关系值都包含除关系S S。n n除运算常用于至少除运算常用于至少查询或运算查询或运算除运算的例子n n它的含义是:至少向它的含义是:至少向WH1WH1、WH3WH3、WH5WH5供货的供货的供应商号。供应商号。3.4.4 基本运算及变换 在关系代数运算中集合的在关系代数运算中集合的在关系代数运算中集合的在关系代数运算中集合的并运算、差并运算、差并运算、差并运算、差运算、笛卡尔积运算运算、笛卡尔积运算运算、笛卡尔积运算运算、笛卡尔积运算
43、以及以及以及以及选择运算选择运算选择运算选择运算和和和和投影投影投影投影运算运算运算运算是是是是5 5种基本运算,另三种运算(集合的种基本运算,另三种运算(集合的种基本运算,另三种运算(集合的种基本运算,另三种运算(集合的交运算交运算交运算交运算以及以及以及以及连接运算连接运算连接运算连接运算和和和和除运算除运算除运算除运算)可以用)可以用)可以用)可以用5 5种种种种基本运算来表达,引进它们并不增加语言基本运算来表达,引进它们并不增加语言基本运算来表达,引进它们并不增加语言基本运算来表达,引进它们并不增加语言的能力,但是可以简化表达。的能力,但是可以简化表达。的能力,但是可以简化表达。的能力
44、,但是可以简化表达。两个关系的交运算可以表示为 R S=R-(R-S)两个关系的自然连接运算可以表示为两个关系的连接运算可以表示为两个关系的除运算可以表示为3.5 关系数据库系统的三层模式结构 关系数据库系统也是三层模式的数据库系统,同样可以划分为存储模式、概念模式和外部模式三个层次。3.5.1 关系概念模式 n n关系概念模式主要包括对出现在关系数据库中的每个关系概念模式主要包括对出现在关系数据库中的每个关系概念模式主要包括对出现在关系数据库中的每个关系概念模式主要包括对出现在关系数据库中的每个基本表的说明及其基本表之间联系的说明,它包括对基本表的说明及其基本表之间联系的说明,它包括对基本表
45、的说明及其基本表之间联系的说明,它包括对基本表的说明及其基本表之间联系的说明,它包括对关系名、属性名、属性的类型的说明,以及主关键字关系名、属性名、属性的类型的说明,以及主关键字关系名、属性名、属性的类型的说明,以及主关键字关系名、属性名、属性的类型的说明,以及主关键字的说明(实体完整性)、外部关键字的说明(参照完的说明(实体完整性)、外部关键字的说明(参照完的说明(实体完整性)、外部关键字的说明(参照完的说明(实体完整性)、外部关键字的说明(参照完整性及表之间的关联)和属性的取值范围与约束条件整性及表之间的关联)和属性的取值范围与约束条件整性及表之间的关联)和属性的取值范围与约束条件整性及表
46、之间的关联)和属性的取值范围与约束条件的说明(用户定义完整性)等。的说明(用户定义完整性)等。的说明(用户定义完整性)等。的说明(用户定义完整性)等。n n在在在在SQLSQL语句中定义基本表的命令是语句中定义基本表的命令是语句中定义基本表的命令是语句中定义基本表的命令是CREATE TABLECREATE TABLE,它可以完成定义概念模式需要的所有功能,即在该,它可以完成定义概念模式需要的所有功能,即在该,它可以完成定义概念模式需要的所有功能,即在该,它可以完成定义概念模式需要的所有功能,即在该命令中包括对关系名、属性名、属性类型的说明,也命令中包括对关系名、属性名、属性类型的说明,也命令
47、中包括对关系名、属性名、属性类型的说明,也命令中包括对关系名、属性名、属性类型的说明,也可以说明主关键字、外部关键字和属性的取值范围与可以说明主关键字、外部关键字和属性的取值范围与可以说明主关键字、外部关键字和属性的取值范围与可以说明主关键字、外部关键字和属性的取值范围与约束条件等。修改基本表定义的命令是约束条件等。修改基本表定义的命令是约束条件等。修改基本表定义的命令是约束条件等。修改基本表定义的命令是ALTER ALTER TABLETABLE命令。命令。命令。命令。3.5.2 关系存储模式 n n每每每每个个个个基基基基本本本本表表表表逻逻逻逻辑辑辑辑上上上上都都都都对对对对应应应应于于
48、于于存存存存储储储储文文文文件件件件(磁磁磁磁盘盘盘盘上上上上的的的的物物物物理理理理文文文文件件件件),不不不不同同同同的的的的数数数数据据据据库库库库管管管管理理理理系系系系统统统统可可可可能能能能对对对对存存存存储储储储文文文文件件件件的的的的管管管管理理理理方方方方法法法法是是是是不不不不一一一一样样样样的的的的,可可可可能能能能一一一一个个个个基基基基本本本本表表表表对对对对应应应应一一一一个个个个存存存存储储储储文文文文件件件件(如如如如FoxProFoxPro);但但但但对对对对大大大大多多多多数数数数大大大大型型型型数数数数据据据据库库库库管管管管理理理理系系系系统统统统,一一
49、一一个个个个存存存存储储储储文文文文件件件件可可可可以以以以存存存存放放放放多多多多个个个个基基基基本本本本表表表表,一一一一个基本表的数据也可能分别存放在多个存储文件上。个基本表的数据也可能分别存放在多个存储文件上。个基本表的数据也可能分别存放在多个存储文件上。个基本表的数据也可能分别存放在多个存储文件上。n n存存存存储储储储文文文文件件件件的的的的逻逻逻逻辑辑辑辑结结结结构构构构组组组组成成成成了了了了关关关关系系系系数数数数据据据据库库库库的的的的存存存存储储储储模模模模式式式式,但但但但是是是是用用用用户户户户无无无无需需需需了了了了解解解解存存存存储储储储文文文文件件件件的的的的物
50、物物物理理理理结结结结构构构构,它它它它对对对对用用用用户户户户是是是是透透透透明明明明的的的的。即即即即关关关关系系系系数数数数据据据据库库库库的的的的存存存存储储储储模模模模式式式式几几几几乎乎乎乎不不不不需需需需要要要要用用用用户户户户说说说说明明明明,关关关关系系系系数数数数据据据据库库库库管管管管理理理理系系系系统统统统可可可可以自动完成对基本表的存储。以自动完成对基本表的存储。以自动完成对基本表的存储。以自动完成对基本表的存储。n n对对对对用用用用户户户户来来来来说说说说,在在在在关关关关系系系系数数数数据据据据库库库库中中中中与与与与存存存存储储储储模模模模式式式式有有有有关关