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

下载本文档

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

文档简介

关系数据库基础目录2.1关系模型概述12.2关系模型的完整性2

2.3关系运算基础3*2.44*2.552.6小结6关系数据库基础教学目标●掌握关系模型及关系数据库的基本概念●掌握关系模型的完整性规则●熟练掌握关系运算及其用表达式查询的常用方法●了解关系演算和查询优化基本过程难点重点2.1关系模型概述

2.1.1关系模型有关概念关系模型(ReationaMode):用二维表格表示实体集,用关键码(键)表示实体间联系的的数据模型。在关系模型中,二维表的列称为属性。一个属性对应表中一个字段,属性名对应字段名,属性值对应于各个记录的字段值。二维表的行称为元组,一个元组对应表中一个记录。记录类型称为关系模式。元组的集合称为关系(Reation)或实例(Instance).关系中属性个数称为“元数”(Arity),元组个数为“基数”。表2-1的关系元数为5,基数为4。

元组(记录)属性(字段)复习表2-1客户信息表

2.1.1关系模型有关概念关键码(Key,简称键):由一个或多个属性组成。在实际使用中,有下列几种键:超键(SuperKey):在关系中能唯一标识元组的属性或者属性集称为关系模式的超键.如学号、课程号、工号、号等.候选键(CandidateKey):不含有多余属性的超键称为候选键.主键(PrimaryKey):在候选键中选定一个作为关键码,称为该关系的主关键字称为主键。一般如不加说明,键是指主键.外键(ForeignKey):如果在模式R中包含有另一个关系S的主键所对应的属性组K,则称K为R的外键。如(学号,课程号).关系中每一个属性都有一个取值范围,称为属性的值域(Domain).属性A的取值范围用DOM(A)表示.每一个属性对应一个值域,不同的属性可对应于同一值域。(学号,课程号)(学号,姓名)2.1.2关系的定义和性质关系是一个元数为K(K>=1)的元组的集合。关系有3种类型:基本关系(通常又称为基本表或表)查询表和视图表.(1)基本表是实际存在的表,是实际存储数据的逻辑表示。(2)查询表是查询结果对应的表。(3)视图表由基本表/其他视图表导出的表,虚表.不对应实际存储数据基本关系具有以下六条性质:(1)同一属性的数据是同质的(Homogeneous),即每一列中的分量是同一类型的数据,来自同一个域。(同列同类同域)(2)同一关系的属性名不能重复,即不同的列可出自同一个域,称其中的每一列为一个属性,不同的属性要给予不同的属性名。(3)列的顺序无所谓,即列的次序可以任意交换。(4)任意两个元组(记录)不能完全相同。(5)行的顺序无所谓,即行的次序可以任意交换。(6)关系中的每一个属性值都不可分解,即每一个分量都必须是不可分的数据项。关系模型组成:关系数据结构、关系操作集合、关系完整性约束2.1.3关系模式的表示关系的描述称为关系模式(RelationSchema)。它可以形式化地表示为:

R(U,D,dom,F)

其中R为关系名,U为组成该关系的属性名集合,D为属性组U中属性所来自的域,dom为属性向域的映像集合,F为属性间数据的依赖关系集合。如同函数关系G(x,y,z)关系模式通常可以简记为R(U)或R(A1,A2,…,An)

其中,R为关系名,A1,A2,…,An为属性名。而域名及属性向域的映象常常直接说明为属性的类型、长度。例如学生关系Stu可以表示为:Stu(Snum,Sname,Ssex,Sage,Sclass)2.1.4ER图转换为关系模型实体类型转换规则:将每个实体类型转换成一个关系模式,实体的属性就是关系的属性,实体的标识符就是关系的键。二元联系类型的转换规则:①

若实体间联系是1:1,可以在两个实体类型转换成的两个关系模式中任意一个属性中加入另一个关系模式的键和联系类型的属性。②若实体间联系是1:N,则在N端实体类型转换的关系模式中加入1端实体类型的键和联系类型的属性。③若实体间联系是M:N,则将联系类型也转换成关系模式,其属性为两端实体类型的键加上联系类型的属性,而键为两端实体键的组合。E-R模型关系模式客观事物2.1.4ER模型向关系模型的转换【案例2-1】下面对二元联系的1:1、1:N和M:N三种情况分别举例。(1)设班级与班长有1:1的联系,其中ER图如图2-1所示。在将其转换为关系模型时,班级和班长各为一个关系模式。如果常用查询时从班级查询其班长,那么可在班级模式中加入班长名和任职年月,其关系模式的设计如下:

班级(编号,所在系,人数,班长名,任职年月)班长(姓名,性别,年龄)班长名班级名/号2.1.4ER模型向关系模型的转换(2)设班级与学生有1:N的联系,其中ER图如图2-2所示。在将其转换为关系模型时,班级和学生各为一个关系模式。然后在学生模式中加入班长号,关系模式设计如下:班级(编号,所在系,人数)

学生(学号,姓名,性别,年龄,班级号)班级号2.1.4ER模型向关系模型的转换(3)设学生与课程有N:M的联系,其中ER图如图2-3所示。在将其转换为关系模型时,学生和课程各为一个关系模式。然后将M:N联系也转换成关系模式,其属性为两端实体的标识符和联系类型的属性,其关系模式的设计如下:

学生(学号,姓名,性别,年龄)课程(课程号,课程名,教师)选课(学号,课程号,成绩)(1)什么是关系模式?它的形式化表示是什么?(2)关系应该具有哪些性质?(3)ER模型如何向关系模型转换?讨论思考2.2关系模型的完整性关系模型的完整性规则是对关系的某种约束条件。有3类完整性约束:实体完整性、参照完整性和用户定义的完整性。2.2.1实体完整性规则(EntityIntegrity)若属性A是基本关系R的主键中的属性即主属性,则属性A不能取空值。空值(NULL)不是0,也不是空字符串,而是没有值。由于主键是实体的惟一标识,如果主属性取空值,关系中就会存在某个不可标识的实体,即存在不可区分的实体,这与实体的定义矛盾,因此,这个规则称为实体完整性规则。2.2.2参照完整性(ReferentialIntegrity)若属性(或属性组)F与基本关系S的主键KS相对应,则对于R中的每个元组在F上的值必须满足:或者取空值(F的每个属性均为空值),或等于S中某个元组的主键值,则称F是基本关系R的外键.如学号→(学号,课程号)2.2关系模型的完整性例如,在【案例2-1】(1)中的关系模型中,关系班级中的外键“班长名”只能是下面两类值:(1)空值。表示还未选出班长。(2)非空值,必须为被参照关系班长中某一班长的“姓名”。其关系模型可以表示为:【注意】如【案例2-1】(1)所示,在实际应用中,外键不一定与对应的主键同名。在关系模式中,外键可用下划曲线标出。2.2关系模型的完整性

2.2.3用户定义完整性规则(User-defined

integrity)

任何RDBS都具备实体完整性和参照完整性.不同的RDBS根据其应用环境的不同,常常要求有特殊的约束条件。用户定义的完整性就是针对某一具体RDB的约束条件,反映某一具体应用所涉及的数据必须满足的语义要求。例如,性别=“男”(或“女”),百分制成绩的取值范围在0~100之间等,都是针对具体关系提出的完整性约束。讨论思考:(1)关系模型中有哪三类完整性约束?(2)关系为什么应该满足实体完整性规则和参照完整性规则?(3)举例说明用户定义的完整性规则。2.3关系运算基础

关系运算种类及运算符关系代数的运算对象是关系,运算结果也是关系。关系代数所使用的运算符包括4类:集合运算符、专门的关系运算符、算术比较符和逻辑运算符。(1)集合运算符:∪(并),—(差),∩(交),×(广义笛卡儿积)。(2)关系运算符:σ(选择),π(投影),(连接),÷(除)(3)比较运算符:>(大于),≥(大于等于),<(小于),≤(小于等于),=(等于),≠(不等于)(4)逻辑运算符:(非),∧(与),∨(或)。

关系运算种类及运算符关系代数的运算可分为传统的集合运算和专门的关系运算两类:(1)传统的集合运算从关系是集合的定义出发,把关系看成元组的集合,其运算是从关系的行的角度来进行。(2)专门的关系运算不仅涉及关系的行,也涉及关系的列。比较运算符和逻辑运算符是用来辅助专门的关系运算符进行操作的。传统的集合运算是二目运算,包括并、差、交、广义笛卡尔积四种运算.1.并(Union)设关系R和关系S具有相同的元数n,即两个关系的属性个数均为n,且相应的属性取自同一个域,则关系R和关系S的并由属于R或属于S的元组组成。其结果关系的元数仍为n。记为R∪S。形式定义如下:R∪S={t|t∈R∨t∈S}其中t是元组变量。R∪S的结果是R中元组和S中元组合并在一起构成的一个新关系,并运算的结果要消除重复的元组。并异去余传统的关系运算【案例2-2】有关系R和关系S如表2-2所示,求关系R和关系S的并集。传统的关系运算2.差(Difference)设关系R和关系S具有相同的元数n,即两个关系的属性个数均为n,且相应的属性取自同一个域,则关系R和关系S的差由属于R但不属于S的所有元组组成。其结果关系的元数仍为n。记为R-S。形式定义如下:R-S={t|t∈R∧t

S}

t是元组变量【案例2-3】有关系R和关系S如表2-2所示,求关系R和关系S的差集。关系R和关系S的差运算结果如表2-4所示。学号姓名年龄0701李平190803李春20表2-4差运算结果前同后去传统的关系运算3.交(Intersection)设关系R和关系S具有相同的元数n,即两个关系的属性个数均为n,且相应的属性取自同一个域,则关系R和关系S的交由既属于R又属于S的元组组成。其结果关系的元数仍为n.记为R∩S。形式定义:R∩S={t|t∈R∧t∈S}关系的交也可用差表示,即R∩S=R-(R-S)。【案例2-4】有关系R和关系S如表2-2所示,求关系R和关系S的交集。关系R和关系S的交运算结果如表2-5所示。学号姓名年龄0603张全21表2-5交运算结果同存共有传统的关系运算4.广义笛卡尔积(ExtendedCartesianProduct)设关系R和关系S的元数分别为r和s。定义R和S的笛卡儿积R×S是一个(r+s)元的元组集合,每个元组的前r个分量(属性值)来自R的一个元组,后s个分量是S的一个元组,记为R×S。形式定义如下:R×S≡{t︱t=<tr, ts>∧tr∈R∧ts∈S

}其中,tr、ts中r、s为上标,分别表示有r个分量和s个分量,若R有n个元组,S有m个元组,则R×S有n×m个元组。【案例2-5】见下页前抄后列传统的关系运算【案例2-5】有两个关系R和S如表2-6所示,求关系R和关系S的广义笛卡尔积.关系R和关系S的广义笛卡尔积结果如表2-7所示表2-6关系R和关系S学号姓名年龄0701李平190603张全210803李春20学号课程号成绩0701C001900603C00278表2-7广义笛卡尔积结果R.学号姓名年龄S.学号课程号成绩0701李平190701C001900701李平190603C002780603张全210701C001900603张全210603C002780803李春200701C001900803李春200603C00278专门的关系运算专门的关系运算包括选择、投影、连接、除等。1.选择(Selection)选择运算是在关系中选择符合给定条件的元组(行),即对二维表进行水平分割,记为σF(R)。为选择运算符,F表示选择条件,它是一个逻辑表达式。F的形式是由逻辑运算符┐,∧,∨连接各算术表达式组成。算术表达式的基本形式为:XθY如性别=“男”其中X,Y既可以是常量(需用用引号括起来),也可以是元组分量即属性名或列的序号,也可以是简单函数。θ表示比较运算符,可以是>,≥,<,≤,=或≠。如工龄≥20.选择运算的形式定义如下:σF(R)={t|t∈R∧F(t)=true}F(R)表示从R中挑选满足条件F的元组所构成的关系。(比较运算符)看列选行专门的关系运算【案例2-6】设有一个如表2-8所示的商品关系。查询上海生产的商品信息。表2-8商品关系σ产地=’上海’(商品)或σ3=’上海’(商品)【注意】其中下角标“3”为产地的属性序号。商品编号商品名产地价格等级K001手表上海80一等品K002挂钟杭州20一等品K003计算器上海76特等品K004电话广州127二等品属性序号3商品编号商品名产地价格等级K001手表上海80一等品K003计算器上海76特等品专门的关系运算2.投影(Projection)投影运算是在一个关系中选取某些列,并重新安排列的顺序,再删去重复元组,即对二维表进行垂直分割.记作:πA(R).其中,π为投影运算符,A为R中的属性列。投影运算的形式定义如下:πA(R)={t[A]|t∈R}【注意】投影之后不仅取消了原关系中的某些列,而且还可能取消某些元组,因为取消某些属性列后,就可能出现重复行,应取消这些完全相同的行。看R定列专门的关系运算【案例2-8】已知商品关系如前面表2-8所示,查询商品的产地.产地(商品)表2-9投影运算结果或3(商品)结果如表2-9所示。

【注意】由于投影的结果消除了重复元组,所以,结果只有3个元组。产地上海杭州广州专门的关系运算3.连接(Join)连接运算是从两个关系的笛卡尔积中选择两个关系的属性满足一定条件的元组。记作:其中i和j分别是关系R和S中的第i个、第j个属性.θ是比较运算符。r是关系R的元数。该式表示连接运算是在关系R和S的笛卡儿积中挑选第i个分量和第(r+j)个分量满足运算的元组。如果为等号“=”,那么这个连接操作称为等值连接。

自然连接是一种特殊的等值连接。要求两个关系中进行比较的分量必须是相同的属性组,并且在结果中把重复的属性列去掉。积行去余专门的关系运算表2-10关系R和关系SABCa1411a2634a3820ADEa3923a2378

(a)关系R(b)关系S表2-11广义笛卡尔积结果R.ABCS.ADEa1411a3923a1411a2378a2634a3923a2634a2378a3820a3923a3820a2378专门的关系运算R.ABCS.ADEa2634a2378a3820a3923R.ABCDEa2634378a3820923【注意】自然连接与等值连接的区别是:1.自然连接要求两个关系中进行比较的属性或属性组必须同名和相同值域,而等值连接只要求比较属性有相同的值域。2.自然连接的结果中,同名的属性只保留一个。专门的关系运算4.除(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的具体计算过程如下:(1)将被除关系(前者)的属性分为像集属性和结果属性两部分,与除关系相同的属性属于像集属性,不相同的属性属于结果属性。(2)在除关系中,在与被除关系相同的属性(像集属性)上进行投影,得到除目标数据集。(3)将被除关系分组,把结果属性值相同的元组分为一组。(4)观察每个组,如果它的像集属性值中包括除目标数据集,则对应的结果属性值应属于该除法运算结果集。

分投影分组对应【法2】投影差选:T=∏1,2,…,r-s(R);W=(TXS)-R;V=∏1,2,…,r-s(W);R÷S=T-V.专门的关系运算【案例2-11】设关系定购和零件数据如表2-15和表2-16所示,求定购÷零件。表2-15定购关系工程号零件号数量a1b158a2b143a3b4678a1b265a4b665a2b243a1b258表2-16零件关系零件号零件名颜色b1螺母红色b2螺钉蓝色表2-17定购÷零件结果工程号数量a158a243(b1,b2)(a1,58),(a2,43)(a3,678)(a1,65)(a4,65)像集属性专门的关系运算下面给出几个关系代数综合运算的例子。设有商品销售数据库,包括商品关系、售货员关系和售货关系。3个关系的关系模式如下:商品(商品编号,商品名,产地,价格,等级);售货员(售货员编号,姓名,性别,年龄);售货(商品编号,售货员编号,数量)。讨论思考(1)做交、并、差运算的两个关系必须满足什么条件?(2)除运算的结果表示什么含义?(3)自然连接与等值连接有什么区别?讨论思考*2.4.1元组关系演算在元组关系演算(TupleRelationalCalculus)中,元组关系演算表达式的一般形式为:其中,为元组变量,表示一个元数固定的元组,是以元组变量为基础的公式。该表达式的含义是使为真的元组的集合。原子公式(Atoms)有三种形式:(1)。(2)。(3)或者。。

*2.4关系演算2.4.1元组关系演算关系演算公式(Formula)的递归定义如下:(1)每个原子公式是公式;。

2.4.2域关系演算域关系演算(DomainRelationalCalculus)与元组关系演算相似,元组关系演算中表达式使用的是元组变量,元组变量的变化范围是一个关系,域关系演算表达式中以属性列为变量,即域变量,域变量的变化范围是某个属性的值域。域关系演算的原子公式有两种形式:(1)(2)域关系演算表达式的一般形式是:。

讨论思考(1)什么是关系演算?(2)在关系演算公式中,各种运算符的优先级次序是什么?(3)域关系演算和元组关系演算有什么区别和联系?讨论思考2.5.1关系代数等价变换规则关系代数是各种数据库查询语言的基础,各种查询语言都能够转换成关系代数表达式。所以关系代数表达式的优化是查询优化的基本方法。两个关系代数表达式等价是指用同样的关系实例代替两个表达式中相应的关系时所得到的结果是一致的。两个关系表达式E1和E2等价时,可表示为:E1≡E2。等价变换规则指出两种不同形式的表达式是等价的,可以利用第二种形式的表达式代替第一种,或者用第一种形式的表达式代替第二种。这是因为这两种表达式在任何有效的数据库中将产生相同的结果。*2.5查询优化2.5.1关系代数等价变换规则常用的等价变换规则有:1.笛卡尔积和连接的等价交换律设E1和E2是两个关系代数表达式,F是连接运算的条件,则:2.笛卡尔积和连接的结合律设E1、E2和E3是三个关系代数表达式,F1和F2是两个连接运算的限制条件,F1只涉及到E1和E2的属性,F2只涉及到E2和E3的属性,则:2.5.1关系代数等价变换规则3.

温馨提示

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

评论

0/150

提交评论