关系数据模型与语言教学课件_第1页
关系数据模型与语言教学课件_第2页
关系数据模型与语言教学课件_第3页
关系数据模型与语言教学课件_第4页
关系数据模型与语言教学课件_第5页
已阅读5页,还剩117页未读 继续免费阅读

下载本文档

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

文档简介

第3章关系数据模型及语言

关系数据库是以关系模型为基础的数据库。特点:建立在严格的数学理论基础上;关系模型简单、清晰;有较高的数据独立性;数据库语言非过程化;可用于知识库、数据库机、分布式数据库、并行数据库等领域。第3章关系数据模型及语言关系数据库是以13.1关系模型

一、关系的有关概念1.关系与文件(比较)

在关系模型中,数据是以二维表的形式存在,这个二维表称为“关系”。如学生关系、课程关系、学习关系:3.1关系模型2在文件组织中,这些表格称为文件。在文件组织中,这些表格称为文件。3

术语对照:

4关系具有的特性:(1)每一列有不同的名字,但每一列属同一类型的域值;不同列也可以出自相同的域;(2)任意两行不能全同;(3)每一数据项应为不可再分的数据单位;(4)行、列次序无关;(5)具有主关键字唯一标识各个元组;关系具有的特性:52、关系的集合论定义

定义1(关系框架):关系框架R是表示关系的所有属性A1,A2,…,Ak的有限集合。每个属性Aj对应一个值域Di=d(Aj)(j=1,2,…,k),值域(简称为域)可以是任意的非空有限集合或可数无限集合。

定义2(关系):关系框架R上的一个关系r[R]是它的属性Aj(j=1,2,…,k)所对应的域d(Aj)构成的笛卡儿乘积空间d(R)=d(A1)×d(A2)×…×d(Ak)中的一个子集D’。k称为关系r[R]的元数,D中的任一点称为关系r[R]的一个元组。关系r[R]简记为r。2、关系的集合论定义6

属性Aj(j=1,2,…,k)又称为分量或坐标,R又称为乘积空间d(R)的坐标系。

k元关系r的一个元组t有k个分量,t=<t1,t2,…,tk>。当用t泛指关系r的任一元组时,称t为r的元组变量。

用集合符号表示:

r={<t1,t2,…,tk>∣<t1,t2,…,tk>Dd(R)}r={t∣tD’}

7举例:有一关系框架FAMILY(MAN,WOMAN,CHILD),其中d(A1)={MAN}={王平,李兵},d(A2)={WOMAN}={丁燕,赵芳},d(A3)={CHILD}={王一,李二}。构成的笛卡儿乘积空间为:d(FMAILY)=d(A1)×d(A2)×d(A3),共有8个元组,从其中取一个子集,得关系:举例:有一关系框架FAMILY(MAN,WOMAN,CHIL8所以,当值域为无限集合时,笛卡尔乘积空间d(R)也是无限集合,则其中的子集可以是有限集合,也可以是无限集合,对应的是有限关系和无限关系。在计算机中,只能存储有限关系。所以,当值域为无限集合时,笛卡尔乘积空间d(R)也是无限集合93、几个关键字术语超关键字(Superkey)

在关系r[R]中,如果属性集合XR具有性质:“对r的任何两个元组t、u,都有t[X]u[X]”,则称X为r的超关键字。超关键字能唯一标识每个元组。例如:{学号,年龄}、{学号,性别}候选关键字(Candidatekey)如果某一属性集合是超关键字,但去掉其中任一属性后就不再是超关键字了,这样的属性集合称为候选关键字。例如:{学号}、{学号,课程号}3、几个关键字术语10推论:

①候选关键字的属性集合中,不含有多余的属性值;但属性集合中的每个属性并非都能唯一标识元组。②候选关键字必为超关键字,反之不一定成立。合成关键字(Compositekey)当某个候选关键字包含多个属性时,称该候选关键字为合成关键字。推论:11主关键字(Primarykey)为关系组织物理文件时,常选用一个候选关键字作为插入、删除、检索元组的操作变量。被选用的那个候选关键字称为主关键字。不在主关键字中的属性称为辅关键字或关键字。外部关键字(Foreignkey)如果关系r1的某一(些)属性A1不是r1的候选关键字,而是另一关系r2的候选关键字,则称A1为r1的外部关键字。合成关键字和外部关键字提供了一种表示两个关系相互联系的方法。主关键字(Primarykey)124、关系模式是对关系的描述。它描述了一个对象的静态结构,用二维表框架(叫关系框架)表示。那么一个关系需要描述具体哪些方面呢?(1)有哪些属性构成的?这些属性来自于哪些域?以及属性与域之间的映象关系。(2)同一关系模式可对应出若干不同的关系,即关系的值是可动态变化的,但这种变化必须满足一定的条件,即完整性约束条件(通过对属性取值范围的限定,或通过属性间的相互关联反映出来)。4、关系模式13所以,一个关系模式是个五元组r(R,D,d,F)。显然,关系模式是型,关系是它的值;关系模式是静态的、稳定的,而关系是动态的,随时间不断变化的。5、关系模型关系模型是所有的关系模式、属性名和关键字的集合;即:若干关系框架的集合。一个关系模型描述了若干实体及其相互的联系。所以,一个关系模式是个五元组r(R,D,d,F)。146、关系数据库

对应于一个关系模型的所有关系的集合,称为关系数据库。实际上,关系数据库也有型与值之分:关系数据库的型称为关系数据库模式,是对关系数据库的描述,包括域的定义以及在这些域上定义的若干关系模式;关系数据库的值称为关系数据库,是这些关系模式在某一时刻对应的关系的集合。6、关系数据库15二、关系模型的完整性规则(约束)为了维护数据库中数据与现实世界的一致性,关系数据库在定义和操作时要遵循四类完整性规则。1、域完整性约束规定属性值必须取自于值域;一个属性是否为空值由其语义决定。2、实体完整性约束规定:组成主关键字的属性不能有空值,否则无法识别元组。它主要考虑一个关系内部的制约。

二、关系模型的完整性规则(约束)16

3、引用完整性约束考虑不同关系之间的制约。规定:在本关系中不允许引用不存在的元组。4、用户自定义完整性约束该规则是用户针对某一具体关系数据库的约束条件,所以是特殊的约束条件,由应用环境决定。它反映某一具体应用所涉及的数据必须满足的语义要求。3、引用完整性约束173.2关系运算3.2关系运算18

一、

关系代数

三种运算符(、,、、≤、≥,¬、∧、∨)1.传统集合运算并:r1∪r2={ttr1∨t∈r2},结果是r1[R]、r2[R]的同类关系差:r1-r2={t∣t∈r1∧tr2},交:r1∩r2={ttr1∧t∈r2}=r1-(r1-r2),积:rs={tt=u,v∧ur∧vs}是(k1+k2)元关系一、关系代数192.专门的关系运算选择:F(r)={ttrF(t)=“真”}(F为选择条件,用逻辑表达式AjC或AjAi表示)投影:A(r)={uu=t[A]tr[R]AR}连接(-连接):rs={tt=u,v∧ur∧vsu[Ai]v[Bj]}=AiBj(rs)Ai=Bj时为等接;自然连接:r

s={tt=u,ύ∧ur∧vsu[Aik]=v[Bjk]ύ=v[S]}2.专门的关系运算r20除rs={u对每一元组vs都存在同一元组tr,使得t[Q]=u且t[S]=v}半连rs=R(rs)囿补ŕ={t|t(A1(r)×A2(r)××Ak(r))tr},是有限关系关系数据模型与语言教学课件21

对任何有限关系,经上述定义的关系代数运算,结果仍是有限关系----称这些关系代数运算为囿代数运算;只包含囿代数运算的关系代数称为囿关系代数.补ř={t|td(R)tr},关系框架为R,ř可能是无限关系.对有限关系求补可能成为无限关系,故将包含补运算的关系代数,称为非囿关系代数。对任何有限关系,经上述定义的关系代数运算,结果22注意:属性的值域一般是任意“非空的有限集合”,但也允许是“可数的无限集合”。当值域为无限集合时,d(R)笛卡尔乘积空间也是无限集合,则其中的子集可以是有限集合,也可以是无限集合,对应的是有限关系和无限关系。在计算机中,只能存储有限关系。注意:233.关系代数运算举例关系代数运算

关系的5种基本运算:并U、差−、积×、投影Π、选择σ关系的4种非基本运算:交∩、连接θ、除÷、囿补ŕ3.关系代数运算举例关系代数运算关系的4种非基本运算:24[例]给出三个关系的模式:选课(学号,课号,成绩)必修课、选修课(课号,课名)有三个具体关系:选课:学号课号成绩必修课:课号课名

S1C1AC1C语言程序设计S1C2BC3数据结构S1C3BS2C1AS2C3BS3C1BS3C3B选修课:课号课名

S4C1AC2软件工程S4C2AS5C2BS5C3BS5C1A

[例]给出三个关系的模式:有三个具体关系:25要求:选课÷必修课选课÷选修课2)关系代数查询表示

Π(学号,课号)(选课)÷必修课要求:2)关系代数查询表示26[例]假设学生选课库的关系模式为:

学生(学号,姓名,性别,年龄,所在系)课程(课程号,课程名,先行课)选课(学号,课程号,成绩)求:

选修了课程号为“C1”的课程的学生学号;选修了课程号为“C3”的课程的学生学号和姓名;没有选修课程号为“C2”的课程的学生学号;选修课程号为“C1”或“C2”的课程的学生学号。[例]假设学生选课库的关系模式为:求:选修了课程号为“C27二、关系演算

用谓词作为变元表达查询的要求和条件1.元组演算

以元组变量作为谓词变元对象的关系运算。

元组演算中,用演算表达式:{t|φ(t)}表示关系。其中,φ(t)为公式(原子公式和运算符组成的),t为φ中唯一的自由元组变量。二、关系演算1.元组演算28②t[i]C或Ct[i]

t[i]u[j]

其中,t、u是元组变量,是算术比较运算符,C是常量。t[i]、u[j]分别表示元组t的第i个分量、元组u的第j个分量。

1)

三种原子公式

①r(t):r是关系名,t是元组变量。r(t)表示:“t是关系r的元组”。所以,关系可用元组演算表达式{t|r(t)}表示。②t[i]C或Ct[i]292)全称量词()和存在量词()设是公式,t是中的元组变量,则(t)()、(t)()都是公式。

(t):“对任意一个t”,或“对所有的t”。

(t)():“对所有的t,为真时,(t)()才为真,否则为假”。(t)()

(t1)(t2)···(tk)2)全称量词()和存在量词()30

(t):“存在这样的t”,或“至少有这样一个t”。

(t)():“若有一个t使(t)()为真,则(t)()为真,否则为假”。(t)()

(t1)(t2)···(tk)(t):“存在这样的t”,或“至少有这样一个t”313)公式中的运算符运算优先次序先括号;算术比较运算符;量词(、);逻辑运算符(、、)

元组关系演算公式:是由它的原子公式经有限次的算术比较运算、逻辑运算、量词运算而形成的复合公式。4)举例

3)公式中的运算符运算优先次序元组关系演算公321a17f8

9e9

0c53a5

4c4

2b01a17f33求:

r1={tr(t)

s(t)};r2={tr(t)t[2]=a};r3={t(u)(r(t)s(u)t[1]u[3]t[2]b

;r4={t(u)(r(u)t[1]=u[3]t[2]=u[1]

。求:342.域演算

以域变量(元组变量的分量)作为谓词变元的关系运算。

域演算表达式为:{t1t2tk|φ(t1,t2,tk)}

其中,t1,t2,tk为元组变量t的各个分量,

φ是域演算公式。域演算表达式为:{t1t2tk|φ(35

1)

三种原子公式

r(t1t2tk):“以t1,t2,tk为分量的元组在关系r中”

②tiC或Cti

tiuj1)

三种原子公式362)全称量词()和存在量词()设(t1,t2,…,tk)是公式,则(ti)()、(ti)()(i=1,2,…,k)都是公式。(ti)):“对元组t中的任意一分量ti”,或“对所有分量ti”。(ti)():“对所有分量ti,为真时,(ti)()才为真,否则为假”。(ti):“元组中存在这样的分量ti”,或“元组中至少有这样一个分量ti”。(ti)():“若有一个ti使为真,则(ti)()为真,否则为假”。2)全称量词()和存在量词()(ti):“元组中存在这373)公式中的运算符运算优先次序先括号;算术比较运算符;量词(、);逻辑运算符(、、)域关系演算公式:是由它的原子公式经有限次的算术比较运算、逻辑运算、量词运算而形成的复合公式。3)公式中的运算符运算优先次序域关系演算公式38

4)举例

5b6

5d32c4

4a6

1c8

2ad5be4cf5b65d39求:

r1={xyzr(xyz)(z5y=a)};r2={xyzr(xyz)s(xyz)x=5z6};

r3={vyxzurxyzw(uvt)zu求:40三、

关系运算的安全约束1.问题由来

关系代数中:若只用囿关系代数,则不会产生无限关系;若使用非囿关系代数,则可能产生无限关系。三、

关系运算的安全约束41关系演算中:①演算表达式的值可能是无限关系。如:{t

rt

表示所有不在关系r中的元组集合。

②演算可能出现无穷次的代入运算。如:判定u

u

为假?须对u变量的所有可能值进行验证,当没有一个u使为真时,才能有结论。若u的取值有无穷多个时,验证过程是无穷的。判定u

u

为真?须验证所有可能的u,只有全部的u使为真,才成立。关系演算中:②演算可能出现无穷次的代入运算。判422.安全囿的确定计算机不允许出现上述两种情况。因为:①存储空间有限,不可能存无限关系;②运算时间不能无限延长,不能及时得到正确结果。

为此,对关系运算要选择一个安全囿,使其表达式求值运算只在安全囿范围内进行。2.安全囿的确定43[例]安全囿d()的确定:[例]安全囿d()的确定:442)E2=tst

t2=dd=DsEsFs,共有48个元组。3)E3=x1x2

x3

sx1x2x3x3gd共48个元组。2)E2=tstt2=d45四、

三类关系运算的等价表示学号姓名年龄性别籍贯0860108602086030860408605王晓燕李波陈志坚张兵张兵2023212022女男男男女北京上海长沙上海武汉学生关系XS:四、

三类关系运算的等价表示学号姓名年龄性别籍贯08601王46课程关系KC:课程号课程名教师办公室C601C602C603C604高等数学数据结构操作系统编译原理周振兴刘建平刘建平王志伟416227227227学习关系XX:学号课程号成绩086010860108601086010860208603086030860308604086040860508605C601C602C603C604C601C601C602C604C601C604C601C603909085879075705690859580课程关系KC:课程号课程名教师办公室C601高等数学周振兴447Π2,6,7(籍贯=上海(XSXX)Π2,9,7(XSXX课程名=操作系统(KC))Π2,3(XS(Π1,2(XX)÷

Π1(KC))

1)将关系代数表达式用汉语表示含义,并求结果;2)把关系代数表达式转换成等价的元组(域)演算表达式。Π2,6,7(籍贯=上海(XSXX)Π481、用关系代数表达式写出下列句子的含义:1)找出所有男生的学号和年龄;2)找出年龄<22、籍贯在上海的所有男生的姓名、课程号、成绩;3)找出学习“陈志坚所学全部课程”的所有学生的学号、姓名。2、把上述得到的关系代数表达式转换成等价的元组(域)演算表达式。1、用关系代数表达式写出下列句子的含义:2、把上述得到的关系493.3关系数据库语言

是基于三类关系运算的关系操作语言。三种典型的关系查询语言:

1.

基于关系代数的语言ISBL2.

基于元组演算的语言QUEL3.

基于域演算的语言QBE关系数据模型与语言教学课件503.4SQL语言关系代数和关系演算是形式化查询语言,商业DBMS使用SQL(StructuredQueryLanguage)。一、SQL概述SQL特点(1)综合统一(数据定义、查询、更新、控制功能一体化)(2)高度非过程化(3)面向集合的操作方式(4)一种语法结构两种使用方式

(自含式语言、嵌入式语言)(5)语言简洁,易学易用3.4SQL语言一、SQL概述512、SQL语言的基本概念

SQL语言支持关系DB三级模式结构:2、SQL语言的基本概念52基本表

是独立存在的表,一个关系对应一个表。一些基本表对应一个存储文件,一个表可以带若干索引,索引存放在存储文件中。存储文件

其逻辑结构组成了关系DB的内模式。其物理文件结构是任意的。视图

是从基本表或其它视图中导出的表,它本身不独立存储在数据库中,即,在DB中只存放视图的定义,而不存放视图对应的数据,这些数据仍存于基本表中。视图是一个虚表。基本表存储文件视图53用户用SQL语言对视图和基本表进行查询。在用户看来,视图和基本表都是关系。

二、数据定义

关系数据库的基本对象是表、视图和索引。SQL的数据定义功能包括:定义表、定义视图、定义索引;修改表定义(不提供修改视图、修改索引定义的操作,因为,视图是基本表的虚表,索引是依附于基本表的。)用户用SQL语言对视图和基本表进行查询。二、数据定54关系数据模型与语言教学课件55如定义基本表:

CREATETABLES(SNOCHAR(7)NOTNULL,NAMECHAR(10),AGESMALLINT,SEXCHAR(1),PRIMARYKEY(SNO),CHECK(AGEBETWEEN15AND25));撤消已存在的基本表S:DROPTABLES;如定义基本表:撤消已存在的基本表S:DROPTABLE56定义基本表:

CREATETABLEC(CNOCHAR(6)NOTNULL,FORMATSMALLINTNOTNULL,TEACHERCHAR(10),OFFICECHAR(4),PRIMARYKEY(CNO));撤消已存在的基本表C:DROPTABLEC;定义基本表:撤消已存在的基本表C:DROPTABLE57定义基本表:

CREATETABLESC(SNOCHAR(7)NOTNULL,CNOCHAR(6)NOTNULL,GRADEDEC(4,1)DEFAULTNULL,PRIMARYKEY(SNO,CNO)),FOREIGNKEY(SNO)REFERENCESSONDELETECASCADE,FOREIGNKEY(CNO)REFERENCESCONDELETERESTRICT);定义基本表:58建立视图(打印成绩表所用的视图STUDENT-GRADE定义):

CREATEVIEWSTUDENT-GRADE

ASSELECTS.SNO,S.NAME,C.CNO,GRADEFROMS,SC,CWHERES.SNO=SC.SNOANDSC.CNO=C.CNO撤消视图STUDENT-GRADE:

DROPVIEWSTUDENT-GRADE;建立视图(打印成绩表所用的视图STUDENT-GRADE定义59三、

查询

是数据库的核心操作。格式:SELECT[ALLDISTINCT]〈目标列表达式〉[,〈〉]FROM〈表名或视图名〉[,〈〉][WHERE〈条件表达式〉][GROUPBY〈列名1〉[HAVING〈条件表达式〉]][ORDERBY〈列名2〉[ASCDESC]];可单表查询,也可连接查询、嵌套查询、集合查询。三、

查询60

四、数据更新

INSERT、UPDATE、DELETE等。

五、视图

包括视图的定义、查询、更新、作用等。

六、数据控制四、数据更新61第3章关系数据模型及语言

关系数据库是以关系模型为基础的数据库。特点:建立在严格的数学理论基础上;关系模型简单、清晰;有较高的数据独立性;数据库语言非过程化;可用于知识库、数据库机、分布式数据库、并行数据库等领域。第3章关系数据模型及语言关系数据库是以623.1关系模型

一、关系的有关概念1.关系与文件(比较)

在关系模型中,数据是以二维表的形式存在,这个二维表称为“关系”。如学生关系、课程关系、学习关系:3.1关系模型63在文件组织中,这些表格称为文件。在文件组织中,这些表格称为文件。64

术语对照:

65关系具有的特性:(1)每一列有不同的名字,但每一列属同一类型的域值;不同列也可以出自相同的域;(2)任意两行不能全同;(3)每一数据项应为不可再分的数据单位;(4)行、列次序无关;(5)具有主关键字唯一标识各个元组;关系具有的特性:662、关系的集合论定义

定义1(关系框架):关系框架R是表示关系的所有属性A1,A2,…,Ak的有限集合。每个属性Aj对应一个值域Di=d(Aj)(j=1,2,…,k),值域(简称为域)可以是任意的非空有限集合或可数无限集合。

定义2(关系):关系框架R上的一个关系r[R]是它的属性Aj(j=1,2,…,k)所对应的域d(Aj)构成的笛卡儿乘积空间d(R)=d(A1)×d(A2)×…×d(Ak)中的一个子集D’。k称为关系r[R]的元数,D中的任一点称为关系r[R]的一个元组。关系r[R]简记为r。2、关系的集合论定义67

属性Aj(j=1,2,…,k)又称为分量或坐标,R又称为乘积空间d(R)的坐标系。

k元关系r的一个元组t有k个分量,t=<t1,t2,…,tk>。当用t泛指关系r的任一元组时,称t为r的元组变量。

用集合符号表示:

r={<t1,t2,…,tk>∣<t1,t2,…,tk>Dd(R)}r={t∣tD’}

68举例:有一关系框架FAMILY(MAN,WOMAN,CHILD),其中d(A1)={MAN}={王平,李兵},d(A2)={WOMAN}={丁燕,赵芳},d(A3)={CHILD}={王一,李二}。构成的笛卡儿乘积空间为:d(FMAILY)=d(A1)×d(A2)×d(A3),共有8个元组,从其中取一个子集,得关系:举例:有一关系框架FAMILY(MAN,WOMAN,CHIL69所以,当值域为无限集合时,笛卡尔乘积空间d(R)也是无限集合,则其中的子集可以是有限集合,也可以是无限集合,对应的是有限关系和无限关系。在计算机中,只能存储有限关系。所以,当值域为无限集合时,笛卡尔乘积空间d(R)也是无限集合703、几个关键字术语超关键字(Superkey)

在关系r[R]中,如果属性集合XR具有性质:“对r的任何两个元组t、u,都有t[X]u[X]”,则称X为r的超关键字。超关键字能唯一标识每个元组。例如:{学号,年龄}、{学号,性别}候选关键字(Candidatekey)如果某一属性集合是超关键字,但去掉其中任一属性后就不再是超关键字了,这样的属性集合称为候选关键字。例如:{学号}、{学号,课程号}3、几个关键字术语71推论:

①候选关键字的属性集合中,不含有多余的属性值;但属性集合中的每个属性并非都能唯一标识元组。②候选关键字必为超关键字,反之不一定成立。合成关键字(Compositekey)当某个候选关键字包含多个属性时,称该候选关键字为合成关键字。推论:72主关键字(Primarykey)为关系组织物理文件时,常选用一个候选关键字作为插入、删除、检索元组的操作变量。被选用的那个候选关键字称为主关键字。不在主关键字中的属性称为辅关键字或关键字。外部关键字(Foreignkey)如果关系r1的某一(些)属性A1不是r1的候选关键字,而是另一关系r2的候选关键字,则称A1为r1的外部关键字。合成关键字和外部关键字提供了一种表示两个关系相互联系的方法。主关键字(Primarykey)734、关系模式是对关系的描述。它描述了一个对象的静态结构,用二维表框架(叫关系框架)表示。那么一个关系需要描述具体哪些方面呢?(1)有哪些属性构成的?这些属性来自于哪些域?以及属性与域之间的映象关系。(2)同一关系模式可对应出若干不同的关系,即关系的值是可动态变化的,但这种变化必须满足一定的条件,即完整性约束条件(通过对属性取值范围的限定,或通过属性间的相互关联反映出来)。4、关系模式74所以,一个关系模式是个五元组r(R,D,d,F)。显然,关系模式是型,关系是它的值;关系模式是静态的、稳定的,而关系是动态的,随时间不断变化的。5、关系模型关系模型是所有的关系模式、属性名和关键字的集合;即:若干关系框架的集合。一个关系模型描述了若干实体及其相互的联系。所以,一个关系模式是个五元组r(R,D,d,F)。756、关系数据库

对应于一个关系模型的所有关系的集合,称为关系数据库。实际上,关系数据库也有型与值之分:关系数据库的型称为关系数据库模式,是对关系数据库的描述,包括域的定义以及在这些域上定义的若干关系模式;关系数据库的值称为关系数据库,是这些关系模式在某一时刻对应的关系的集合。6、关系数据库76二、关系模型的完整性规则(约束)为了维护数据库中数据与现实世界的一致性,关系数据库在定义和操作时要遵循四类完整性规则。1、域完整性约束规定属性值必须取自于值域;一个属性是否为空值由其语义决定。2、实体完整性约束规定:组成主关键字的属性不能有空值,否则无法识别元组。它主要考虑一个关系内部的制约。

二、关系模型的完整性规则(约束)77

3、引用完整性约束考虑不同关系之间的制约。规定:在本关系中不允许引用不存在的元组。4、用户自定义完整性约束该规则是用户针对某一具体关系数据库的约束条件,所以是特殊的约束条件,由应用环境决定。它反映某一具体应用所涉及的数据必须满足的语义要求。3、引用完整性约束783.2关系运算3.2关系运算79

一、

关系代数

三种运算符(、,、、≤、≥,¬、∧、∨)1.传统集合运算并:r1∪r2={ttr1∨t∈r2},结果是r1[R]、r2[R]的同类关系差:r1-r2={t∣t∈r1∧tr2},交:r1∩r2={ttr1∧t∈r2}=r1-(r1-r2),积:rs={tt=u,v∧ur∧vs}是(k1+k2)元关系一、关系代数802.专门的关系运算选择:F(r)={ttrF(t)=“真”}(F为选择条件,用逻辑表达式AjC或AjAi表示)投影:A(r)={uu=t[A]tr[R]AR}连接(-连接):rs={tt=u,v∧ur∧vsu[Ai]v[Bj]}=AiBj(rs)Ai=Bj时为等接;自然连接:r

s={tt=u,ύ∧ur∧vsu[Aik]=v[Bjk]ύ=v[S]}2.专门的关系运算r81除rs={u对每一元组vs都存在同一元组tr,使得t[Q]=u且t[S]=v}半连rs=R(rs)囿补ŕ={t|t(A1(r)×A2(r)××Ak(r))tr},是有限关系关系数据模型与语言教学课件82

对任何有限关系,经上述定义的关系代数运算,结果仍是有限关系----称这些关系代数运算为囿代数运算;只包含囿代数运算的关系代数称为囿关系代数.补ř={t|td(R)tr},关系框架为R,ř可能是无限关系.对有限关系求补可能成为无限关系,故将包含补运算的关系代数,称为非囿关系代数。对任何有限关系,经上述定义的关系代数运算,结果83注意:属性的值域一般是任意“非空的有限集合”,但也允许是“可数的无限集合”。当值域为无限集合时,d(R)笛卡尔乘积空间也是无限集合,则其中的子集可以是有限集合,也可以是无限集合,对应的是有限关系和无限关系。在计算机中,只能存储有限关系。注意:843.关系代数运算举例关系代数运算

关系的5种基本运算:并U、差−、积×、投影Π、选择σ关系的4种非基本运算:交∩、连接θ、除÷、囿补ŕ3.关系代数运算举例关系代数运算关系的4种非基本运算:85[例]给出三个关系的模式:选课(学号,课号,成绩)必修课、选修课(课号,课名)有三个具体关系:选课:学号课号成绩必修课:课号课名

S1C1AC1C语言程序设计S1C2BC3数据结构S1C3BS2C1AS2C3BS3C1BS3C3B选修课:课号课名

S4C1AC2软件工程S4C2AS5C2BS5C3BS5C1A

[例]给出三个关系的模式:有三个具体关系:86要求:选课÷必修课选课÷选修课2)关系代数查询表示

Π(学号,课号)(选课)÷必修课要求:2)关系代数查询表示87[例]假设学生选课库的关系模式为:

学生(学号,姓名,性别,年龄,所在系)课程(课程号,课程名,先行课)选课(学号,课程号,成绩)求:

选修了课程号为“C1”的课程的学生学号;选修了课程号为“C3”的课程的学生学号和姓名;没有选修课程号为“C2”的课程的学生学号;选修课程号为“C1”或“C2”的课程的学生学号。[例]假设学生选课库的关系模式为:求:选修了课程号为“C88二、关系演算

用谓词作为变元表达查询的要求和条件1.元组演算

以元组变量作为谓词变元对象的关系运算。

元组演算中,用演算表达式:{t|φ(t)}表示关系。其中,φ(t)为公式(原子公式和运算符组成的),t为φ中唯一的自由元组变量。二、关系演算1.元组演算89②t[i]C或Ct[i]

t[i]u[j]

其中,t、u是元组变量,是算术比较运算符,C是常量。t[i]、u[j]分别表示元组t的第i个分量、元组u的第j个分量。

1)

三种原子公式

①r(t):r是关系名,t是元组变量。r(t)表示:“t是关系r的元组”。所以,关系可用元组演算表达式{t|r(t)}表示。②t[i]C或Ct[i]902)全称量词()和存在量词()设是公式,t是中的元组变量,则(t)()、(t)()都是公式。

(t):“对任意一个t”,或“对所有的t”。

(t)():“对所有的t,为真时,(t)()才为真,否则为假”。(t)()

(t1)(t2)···(tk)2)全称量词()和存在量词()91

(t):“存在这样的t”,或“至少有这样一个t”。

(t)():“若有一个t使(t)()为真,则(t)()为真,否则为假”。(t)()

(t1)(t2)···(tk)(t):“存在这样的t”,或“至少有这样一个t”923)公式中的运算符运算优先次序先括号;算术比较运算符;量词(、);逻辑运算符(、、)

元组关系演算公式:是由它的原子公式经有限次的算术比较运算、逻辑运算、量词运算而形成的复合公式。4)举例

3)公式中的运算符运算优先次序元组关系演算公931a17f8

9e9

0c53a5

4c4

2b01a17f94求:

r1={tr(t)

s(t)};r2={tr(t)t[2]=a};r3={t(u)(r(t)s(u)t[1]u[3]t[2]b

;r4={t(u)(r(u)t[1]=u[3]t[2]=u[1]

。求:952.域演算

以域变量(元组变量的分量)作为谓词变元的关系运算。

域演算表达式为:{t1t2tk|φ(t1,t2,tk)}

其中,t1,t2,tk为元组变量t的各个分量,

φ是域演算公式。域演算表达式为:{t1t2tk|φ(96

1)

三种原子公式

r(t1t2tk):“以t1,t2,tk为分量的元组在关系r中”

②tiC或Cti

tiuj1)

三种原子公式972)全称量词()和存在量词()设(t1,t2,…,tk)是公式,则(ti)()、(ti)()(i=1,2,…,k)都是公式。(ti)):“对元组t中的任意一分量ti”,或“对所有分量ti”。(ti)():“对所有分量ti,为真时,(ti)()才为真,否则为假”。(ti):“元组中存在这样的分量ti”,或“元组中至少有这样一个分量ti”。(ti)():“若有一个ti使为真,则(ti)()为真,否则为假”。2)全称量词()和存在量词()(ti):“元组中存在这983)公式中的运算符运算优先次序先括号;算术比较运算符;量词(、);逻辑运算符(、、)域关系演算公式:是由它的原子公式经有限次的算术比较运算、逻辑运算、量词运算而形成的复合公式。3)公式中的运算符运算优先次序域关系演算公式99

4)举例

5b6

5d32c4

4a6

1c8

2ad5be4cf5b65d100求:

r1={xyzr(xyz)(z5y=a)};r2={xyzr(xyz)s(xyz)x=5z6};

r3={vyxzurxyzw(uvt)zu求:101三、

关系运算的安全约束1.问题由来

关系代数中:若只用囿关系代数,则不会产生无限关系;若使用非囿关系代数,则可能产生无限关系。三、

关系运算的安全约束102关系演算中:①演算表达式的值可能是无限关系。如:{t

rt

表示所有不在关系r中的元组集合。

②演算可能出现无穷次的代入运算。如:判定u

u

为假?须对u变量的所有可能值进行验证,当没有一个u使为真时,才能有结论。若u的取值有无穷多个时,验证过程是无穷的。判定u

u

为真?须验证所有可能的u,只有全部的u使为真,才成立。关系演算中:②演算可能出现无穷次的代入运算。判1032.安全囿的确定计算机不允许出现上述两种情况。因为:①存储空间有限,不可能存无限关系;②运算时间不能无限延长,不能及时得到正确结果。

为此,对关系运算要选择一个安全囿,使其表达式求值运算只在安全囿范围内进行。2.安全囿的确定104[例]安全囿d()的确定:[例]安全囿d()的确定:1052)E2=tst

t2=dd=DsEsFs,共有48个元组。3)E3=x1x2

x3

sx1x2x3x3gd共48个元组。2)E2=tstt2=d106四、

三类关系运算的等价表示学号姓名年龄性别籍贯0860108602086030860408605王晓燕李波陈志坚张兵张兵2023212022女男男男女北京上海长沙上海武汉学生关系XS:四、

三类关系运算的等价表示学号姓名年龄性别籍贯08601王107课程关系KC:课程号课程名教师办公室C601C602C603C604高等数学数据结构操作系统编译原理周振兴刘建平刘建平王志伟416227227227学习关系XX:学号课程号成绩086010860108601086010860208603086030860308604086040860508605C601C602C603C604C601C601C602C604C601C604C601C603909085879075705690859580课程关系KC:课程号课程名教师办公室C601高等数学周振兴4108Π2,6,7(籍贯=上海(XSXX)Π2,9,7(XSXX课程名=操作系统(KC))Π2,3(XS(Π1,2(XX)÷

Π1(KC))

1)将关系代数表达式用汉语表示含义,并求结果;2)把关系代数表达式转换成等价的元组(域)演算表达式。Π2,6,7(籍贯=上海(XSXX)Π1091、用关系代数表达式写出下列句子的含义:1)找出所有男生的学号和年龄;2)找出年龄<22、籍贯在上海的所有男生的姓名、课程号、成绩

温馨提示

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

评论

0/150

提交评论