第2章关系运算理论课件_第1页
第2章关系运算理论课件_第2页
第2章关系运算理论课件_第3页
第2章关系运算理论课件_第4页
第2章关系运算理论课件_第5页
已阅读5页,还剩53页未读 继续免费阅读

下载本文档

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

文档简介

第2章关系运算理论2.1关系的数学定义2.2关系数据库2.3关系代数用二维表格表示实体集,用关键码进行数据导航的数据模型称为关系模型。关系模型是1970年由E.F.Codd提出的,在关系模型基础上发展的关系数据库系统已成为当今应用最广泛的数据库系统。与层次模型、网状模型相比,关系模型有两个显著特点: ①数据结构简单,即用二维表格表示实体及实体集间的联系; ②有关系运算理论和关系模式设计理论等扎实的理论基础。2.1关系的数学定义

2.1.1关系的基本术语

1.关系模型的基本术语学生信息表学号姓名性别籍贯系001张三男北京数学002李四女上海物理003王五男长沙计算机二维表格对应的关系模式术语如下属性:字段或数据项称为属性,也称为列。属性值:字段值称为属性值。关系模式:记录类型或表结构称为关系模式,即表头或表框架。关系模式是对关系的描述,一般表示为:

关系名(属性1,属性2,…,属性n)元组:记录称为元组,也称为行。关系:元组的集合称为关系,一个关系对应通常说的一个二维表。值域:属性的取值范围称为属性的值域。分量:元组中的一个属性值。基数:元组的个数称为基数,即记录数。元数:属性的个数称为元数,即列数。2.关键字(Key,关键码、键、码)超键:若关系中的某一属性组的值能唯一地标识一个元组,则称该属性组为超键。候选键:不含有多余属性的超键称为候选键。主键:若一个关系有多个候选键,则选定其中一个为主键。 例:学生关系:学生(学号,姓名,年龄)学生选课关系:选修(学号,课程号,成绩)主属性:包含在任何一个候选键中的属性称为主属性。非主属性:不包含在任何一个候选键中的属性称为非主属性。3.关系的类型关系可以有三种类型: ①基本表(基本关系)--实际存在的表,它是实际存储数据的逻辑表示。 ②查询表--是查询结果对应的表。 ③视图--由基本表或其他视图表导出的表,是虚表(不对应实际存储的数据)。4.关系的性质在关系数据库中,关系是一种规范化了的二维表格。基本关系具有以下六条性质: ①列是同质的,即每一列中的分量是同一类型的数据,来自同一个域。 ②不同的列可以出自同一个域,称其中的每一列为一个属性,不同的属性要给予不同的属性名。 ③列的顺序无所谓。 ④任意两个元组不能相同。 ⑤行的顺序无所谓。 ⑥分量必须取原子量,即每一个分量都必须是不可分的数据项。2.1.2关系的数学定义1.域(Domain)域是一组具有相同数据类型的值的集合。如:

{1,3,5,…,99}100以内的奇数

{男,女}两种性别的集合2.笛卡尔积给定一组域D1,D2,…,Dn,这些域中可以有相同的,D1,D2,…,Dn的笛卡尔积为:

其中每一个元素(d1,d2,…,dn)叫做一个n元组,简称元组。元组中的每一个值di叫做一个分量。例:设D1={1,3},D2={4,6}n个域的笛卡尔积对应一张二维表D1D2141634363.关系D1×D2×…×Dn的子集叫作在域D1,D2,…,Dn上的关系。表示为R表示关系的名字,n是关系的目或度。例:D1={王,赵}D2={计算机,电子}D1D2王计算机王电子赵计算机赵电子D1×D2笛卡尔积的二维表通常一个学生只能选择一个专业,则D1×D2的子集D1D2王计算机赵电子该关系给出了学生所学专业的情况。在关系数据库中,为了消除域的次序对关系的影响(域可以相同),根据域的不同含义对其命名,称为属性名。2.2关系数据库

2.2.1关系模型关系模型由关系数据结构、关系操作集合和关系完整性约束三部分组成。1.关系模型的数据结构非常单一在关系模型中,现实世界的实体以及实体间的各种联系均用关系表示,在用户看来,关系模型中数据的逻辑结构是一张二维表。2.关系操作关系模型给出了关系操作的能力。关系模型中常用的关系操作包括选择、投影、连接、除、并、交、差等查询操作,和增加、删除、修改操作两大部分。查询的表达能力是其中最主要的部分。关系操作的特点是集合操作方式,即操作对象和结果都是集合。3.关系的三类完整性约束关系模型允许定义三类完整性约束:实体完整性、参照完整性和用户定义的完整性。其中实体完整性和参照完整性是关系模型必须满足的完整性约束条件,应该由关系系统自动支持。用户定义的完整性是应用领域需要遵循的约束条件,体现了具体领域中的语义约束。⑴实体完整性若属性A是基本关系R的主属性,则属性A不能取空值。实体完整性规则规定基本关系的所有主属性都不能取空值,而不仅是主码整体不能取空值。实体完整性规则说明: ①实体完整性规则是针对基本关系而言的,一个基本表通常对应现实世界的一个实体集。 ②现实世界中的实体是可区分的,即他们具有某种唯一的标识,相应地关系模型中以主码作为唯一标识。 ③主码中的属性即主属性不能取空值,所谓空值就是"不知道"或"无意义"的值。如果主属性取空值,就说明存在某个不可标识的实体,即存在不可区分的实体。⑵参照完整性现实世界中的实体之间往往存在某种联系,在关系模型中实体及实体间的联系都是用关系来描述的。 例:学生实体和专业实体可以用下面的关系表示。

R学生(学号,姓名,性别,专业号)

S专业(专业号,专业名)F定义:设F是基本关系R的一个或一组属性,但不是关系R的码,如果F与基本关系S的主码Ks相对应,则称F是基本关系R的外码。参照完整性规则就是定义外码与主码之间的引用规则。参照完整性规则若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码Ks相对应,则对于R中的每个元组在F上的值必须为:

①或者取空值(F的每个属性值均为空值)。 ②或者等于S中某个元组的主码值。空值,表示尚未给该学生分配专业。非空值,这时该值必须是专业关系中某个元组的"专业号"值,表示该学生不可能分配到一个不存在的专业中。⑶用户定义的完整性任何关系数据库系统都应该支持实体完整性和参照完整性规则。除此之外,不同的关系数据库系统根据其应用环境的不同,往往还需要一些特殊的约束条件,用户定义的完整性就是针对某一具体关系数据库的约束条件。它反映了某一具体应用所涉及的数据必须满足的语义要求。关系模型应提供定义和检验这类完整性的机制,以便用统一的系统的方法处理它们,而不是由应用程序承担这一功能。2.2.2E-R模型转换为关系模型E-R模型转换为关系模型要解决两个问题:①如何将实体和实体间的联系转换为关系模式。②如何确定这些关系模式的属性和码。原则:①一个实体集(型)转换为一个关系,实体的属性就是关系的属性,实体的码就是关系模式的码。对于实体间的联系则有以下不同情况:②一个1:1联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。如果转换为一个独立的关系模式,则与该联系相连的各实体的码以及联系本身的属性均是该关系的候选码。如果与某一端实体对应的关系模式合并,则需要在该关系模式的属性中加入另一关系模式的码和联系本身的属性。③一个1:n联系可以转换为一个独立的关系模式,也以可与n端对应的关系模式合并。④一个m:n联系转换为一个关系模式。与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为各实体的码的组合。⑤三个或三个以上实体间的一个多元联系可以转换为一个关系模式。与该多元联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为各实体码的组合。⑥具有相同码的关系模式可以合并。部门(部门号,经理的职工号)职工(职工号,部门号)产品(产品号)供应商(供应商号)零件(零件号)生产(职工号,产品号,工作天数)供应(产品号,供应商号,零件号,供应量)2.2.3关系数据语言

1.关系数据库在关系模型中,实体及实体间的联系都是用关系来表示的,在一个给定的应用领域中,所有表示实体及实体之间联系的关系的集合构成一个关系数据库。2.关系数据语言关系数据语言按照完成的功能可分为三类:数据定义语言(DDL)、数据操纵语言(DML)和数据控制语言(DCL)。DDL——负责数据库的描述,提供一种数据定义机制,用来描述数据库的特征或数据的逻辑结构。DML——负责数据的操作,包括数据查询和数据的增、删、改等功能,其中查询的表达方式是DML的主要部分。DCL——负责控制数据库的完整性和安全性,提供一种检验完整性和保证安全的机制。关系数据语言按照表达查询的方式不同可以分为两大类:关系代数语言和关系演算语言。关系代数是用对关系的运算来表达查询要求。关系演算是用谓词来表达查询要求。关系演算又可按谓词变元的基本对象是元组还是域变量分为元组关系演算和域关系演算。关系代数、元组关系演算和域关系演算三种语言在表达能力上是完全等价的。另外还有一种介于关系代数和关系演算之间的语言SQL(StructureQueryLangnage)--结构化查询语言。SQL不仅具有丰富的查询功能,而且具有数据定义和数据控制功能,是集DDL、DML和DCL为一体的标准的关系数据库语言。关系数据库语言的主要优点是其高度的非过程化,用户只需知道做什么,而不需知道怎么做。2.3关系代数关系代数是一种抽象的查询语言,它是用对关系的运算来表达查询的。运算包括三大要素:运算对象,运算符,运算结果。关系代数的运算对象是关系,运算结果也为关系。关系代数用到的运算符包括四类:①集合运算符:∪(并)、-(差)、∩(交)②专门的关系运算符:×(广义笛卡尔积)、σ(选择)、π(投影)、(连接)、÷(除)③算术比较符:>、≥、<、≤、=、≠④逻辑运算符:┐(非)、∧(与)、∨(或)关系代数的运算按运算符不同,可分为传统的集合运算和专门的关系运算两类。2.3.1

传统的集合运算设关系R和关系S具有相同的目n(即两个关系都有n个属性),且相应的属性取自同一个域,(并相容)则可以定义并、差、交的运算如下:⑴并关系R与关系S的并记作,其结果仍为n目关系,由属于R或属于S的元组组成。例RABa1b1a1b2a2b1SABa1b1a1b3a2b2R∪SABa1b1a1b2a2b1a1b3a2b2⑵差关系R与关系S的差记作其结果关系仍为n目关系,由属于R而不属于S的所有元组组成。R-SABa1b2a2b1⑶交关系R与关系S的交记作其结果关系仍为n目关系,由即属于R又属于S的元组组成。R∩SABa1b12.3.2专门的关系运算⑴广义笛卡尔积 两个分别为n目和m目的关系R和S的广义笛卡尔积是一个(n+m)列的元组的集合。元组的前n列是关系R的一个元组,后m列是关系S的一个元组。若R有K1个元组,S有K2个元组,则关系R和关系S的广义笛卡尔积有K1×K2个元组。RABa1b1a2b2SCDc1d1c2d2R×S

ABCDa1b1c1d1a1b1c2d2a2b2c1d1a2b2c2d2⑵选择在关系R中选择满足给定条件的诸元组。其中F表示选择条件,它是一个逻辑表达式,由逻辑运算符、∧、∨连接各算术表达式组成。算术表达式的基本形式为:其中θ表示比较运算符(>、<、≥、≤、=、≠),X、Y是属性名,或为常量,或为简单函数;属性名也可以用它的序号来代替。选择运算实际上是从关系R中选取使逻辑表达式F为真的元组。设有一个学生-课程数据库,包括学生关系、课程关系和选修关系, 学生(学号,姓名,性别,年龄,所在系) 课程(课程号,课程名) 选修(学号,课程号,成绩)例查询数学系全体学生⑶投影从R中选择出若干属性列组成新的关系。其中A为R中的属性列。例查询学生的姓名和所在系投影之后取消了原关系中的某些列,就可能出现重复行,应取消这些完全相同的行。⑷连接从两个关系的笛卡尔积中选取属性间满足一定条件的元组。连接也称为θ连接,记作其中A和B分别为R和S上度数相等且可比的属性组。RABCa1b15a1b26SBDb13b37AR.BCS.BDa1b15b37a1b26b37连接运算中有两种最为重要的连接:等值连接和自然连接。①等值连接θ为“=”的连接运算称为等值连接。它是从关系R与S的广义笛卡尔积中选取A、B属性相等的那些元组。(不用去掉重复列)RABCa1b15a1b26SBDb13b37AR.BCS.BDa1b15b13②自然连接是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且在结果中把重复的属性去掉。若R和S具有相同的属性组B,则自然连接可记作:RABCa1b15a1b26SBDb13b37ABCDa1b153⑸除(Division)给定关系R(X,Y)和S(Y,Z),其中X,Y,Z为属性组。R中的Y与S中的Y可以有不同的属性名,但必须出自相同的域。R与S的除运算得到一个新的关系P(X),P是R中满足下列条件的元组在X属性列上的投影:元组在X上分量值x的象集Yx包含S在Y上投影的集合。记作:其中Yx为x在R中的象集,x=tr[X]。除操作是同时从行和列角度进行运算。例:设关系R,S如图,求R÷S在关系R中,A可以取四个值{a1,a2,a3,a4}。其中:a1的象集为{(b1,c2),(b2,c3),(b2,c1)}a2的象集为{(b3,c7),(b2,c3)}a3的象集为{(b4,c6)}a4的象集为

温馨提示

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

评论

0/150

提交评论