计算机第二章 关系数据库二_第1页
计算机第二章 关系数据库二_第2页
计算机第二章 关系数据库二_第3页
计算机第二章 关系数据库二_第4页
计算机第二章 关系数据库二_第5页
已阅读5页,还剩139页未读 继续免费阅读

下载本文档

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

文档简介

第二章关系数据库

2.1关系模型概述

2.2关系数据结构及形式化定义

2.3关系的完整性

2.4关系代数

2.5关系演算

2.6小结

:2.4关系代数

:•概述

:•传统的集合运算

:•专门的关系运算

概述

1.关系代数

2.运算的三要素

3.关系代数运算的三个要素

4.关系代数运算的分类

5.表示记号

:概述

:1.关系代数

f一种抽象的查询语言

用对关系的运算来表达查询

:概述(续)

:2.关系代数运算的三个要素

:运算对象:关系

:运算结果:关系

・运算符:四类

:概述(续)

表2.4关系代数运算符

运算符含义运算符含义

U并大于

差运大于等于

算交小于

符笛卡尔积小于等于

等于

1不等于

运算符(续)

-集合运算符

•将关系看成元组的集合

•运算是从关系的“水平”方向即行的角度来进行

-专门的关系运算符

•不仅涉及行而且涉及列

-算术比较符

•辅助专门的关系运算符进行操作

-逻辑运算符

•辅助专门的关系运算符进行操作

:概述(续)

•4.关系代数运算的分类

:传统的集合运算

一并、差、交、笛卡尔积

[♦专门的关系运算

亡选择、投影、连接、除

:概述(续)

•5、表示记号

,R,teR,t[Ai]

••设关系模式为A(ZLA2,An)

:•它的一个关系设为A。优A表示,是A的一

•个元组如:(张清玫,信息专业,李勇)

•・丹阕则表示元组,中相应于属性4的一个

•分量如:信息专业

:2.4关系代数

,,

1:•概述

:•传统的集合运算

2•专门的关系运算

:2.4.1传统的集合运算

••并

:•差

••交

:•广义笛卡尔积

:1.并(Union)

:-具有相同的目〃(即两个关系都有〃个属性)

•-相应的属性取自同一个域

•AUS

-仍为〃目关系,由属于A或属于S的元组组成

RUS={t\teRyteS}

ABC

RUS

:2•差(Difference)

:-具有相同的目〃

♦-相应的属性取自同一个域

:-仍为〃目关系,由属于A而不属于S的所有元

・组组成

R-S={t\teR^\t^S}

:3.交(Intersection)

:-具有相同的目〃

♦-相应的属性取自同一个域

•・Rns

:-仍为〃目关系,由既属于A又属于S的元组组成

•RHS={t\teR^\teS}

,RCS=R—(R-S)/

4.广义笛卡尔积(ExtendedCartesianProduct)

•・R

--〃目关系,/个元组

•*S

:-阳目关系,0个元组

•一歹U:(〃+〃1)歹U

--元组的前〃列是关系K的一个元组

:-后加列是关系S的一个元组

.-行:41*与个元组

••RXS={ps\treR/\tseS}

:广义笛卡尔积(例)

.•关系RS:CDE

10

10a

20

R*/10

RxS:

::广义笛卡尔积(续)

:2.4关系代数

:•概述

:•传统的集合运算

:•专门的关系运算

:2.4.2专门的关系运算

,•选择

:•投影

・•连接

:•除

:专门的关系运算

:•先引入几个记号

.(1)R,teR,t[Ai]

••设关系模式为A"1,42,…,An)

:•它的一个关系设为A

♦•feA表示,是A的一个元组

:则表示元组,中相应于属性4的一个

•分量

:专门的关系运算

••(2)A,t[A],A

:•若力={/〃,Ail.…,Aik],其中力

.An,…,4款是41,42,…,力〃中的一部

♦分,则/称为属性列或属性组

••t[A]=(t[Ail],t[Ai2],…,4/法])表示元组,

•生属性列力上诸分量的集合

:•牙则表示{/I,42,…,力〃}中去掉

・•{Nil,An,....4波}后剩余的属性组

:专门的关系运算(例)

::专门的关系运算

:⑶在

.A为〃目关系,S为m目关系

:treR,tsES,R称为元组的连接

■•日是一个〃+加列的元组,前〃个分量为

:R中的一个〃元组,后m个分量为S中的一个

,•m元组

:专门的关系运算

••(4)象集Zx

••给定一个关系A(X,Z),X和Z为属性

:组

•当时,x在A中的象集(ImagesSet)

・为:

:Zx={t[Z]\twR,t[X]=x}

••它表示A中属性组X上值为x的诸元组在Z

•上分量的集合

专门的关系运算(例)

属性x属性Z•.在A中的象集

R

ZX1={Z1,Z2,Z3}

•电在A中的象集

■ZX2={±2,43}

在A中的象集

={Z1,Z3}

象集举例

:1.选择(Selection)

1)选择又称为限制(Restriction)

•2)选择运算符的含义

-在关系A中选择满足给定条件的诸元组

-F:选择条件,是一个逻辑表达式,基本形式为:

[[(]禹。筹[川。Hjx2oy2[)]]...

•0:比较运算符(>,之,<,<,=或<>)

•X],Y]等:属性名、常量、简单函数;

属性名也可以用它的序号来代替;

•(p:逻辑运算符(A或V)

•[]:表示任选项

•…:表示上述格式可以重复下去

:选择(续)

••3)选择运算是从行的角度进行的运算

♦•4)举例

设有一个学生-课程数据库,包括学生关系

Student、课程关系Course和选修关系SC

:选择(续)

学号姓名性另U年龄所在系

SnoSnameSsexSageSdept

95001李勇男20CS

Student

95002刘晨女19IS

95003王敏女18MA

95004张立男19IS

(a)

例1例2例3例4例9

:选择(续)

课程号课程名先行课学分

CnoCnameCpnoCcredit

1数据库54

Course

2数学2

3信息系统14

4操作系统63

5数据结构74

6数据处理2

7PASCAL语言64

例9

:选择(续)

学号课程号成绩

SnoCnoGrade

95001192

SC

95001285

95001388

95002290

95002380

例7例9

:选择(续)

•[例1]查询信息系(IS系)全体学生

^sdept="(Student)

或%=4s1(Student)口

,结果:

SnoSnameSsexSageSdept

95002刘晨女19

95004张立男19

:选择(续)

•[例2]查询年龄小于20岁的学生

>^Sage<20(Student)

•或%v20(Student)

.结果:

SnoSnameSsexSageSdept

95002刘晨女IS

95003王敏女MA

95004张立男IS

:选择(续)

•[例]查询信息系(IS)所有男生的信息

CSsex='力'ASdep='IS'(Student)

学号姓名性另U年龄所在系

SnoSnameSsexSageSdept

95001李勇男20CS

Student

95002刘晨女19IS

95003王敏女18MA

95004男~19~~IS~~~

:2.投影(Projection)

:・1)投影运算符的含义

:-从正中选择出若干属性列组成新的关系

:TtA{R}=[t[A]\t^R}

.A:A中的属性列

:2.投影(Projection)

••!)投影操作主要是从列的角度进行运算

•-但投影之后不仅取消了原关系中的某些列,

•而且还可能取消某些元组(避免重复行)

:投影(续)

•・3)举例

:[例3]查询学生的姓名和所在系

•即求Student关系上学生姓名和所在系两个

•属性上的投影

:^Sname,Sdept(Student)

•或丐,5(Student)

结果:

:投影(续)

•[例4]查询学生关系Student中都有哪些系

•他dept(Student)

结果:

:3.连接(Join)

••1)连接也称为。连接

••2)连接运算的含义

♦-从两个关系的笛卡尔积中选取属性间满足一定条件

♦的元组

•RXS={Q\treR/\tseS/\tr[A]Qts[B]}

AQB

:•)和5:分别为A和S上度数相等且可比的属性组

:・也比较运算符

0-连接运算从A和S的笛卡尔积AXS中选取(A关系)

・在/属性组上的值与(S关系)在与属性组上值满足

♦比较关系的元组

:“(RXS)a

:连接(续)

**3)两类常用连接运算

:―等值连接(equijoin)

.•什么是等值连接

.♦圾。为“=”的连接运算称为等值连接

・•等值连接的含义

,从关系A与S的广义笛卡尔积中选取,、5属

•性值相等的那些元组,即等值连接为:

•呼?={Qs\treR/\tseS/\tr[A]=ts[B]]

Rgs=GA=B(RXS)

:连接(续)

•-自然连接(Naturaljoin)

••什么是自然连接

•►自然连接是一种特殊的等值连接

.»两个关系中进行比较的分量必须是相同

:的属性组

.»在结果中把重复的属性列去掉

.­自然连接的含义

•K和S具有相同的属性组与

•R^={\treR/\tseS/\tr[B]=ts[B]]

:连接(续)

,.4)一般的连接操作是从行的角度进行运

算。

力罗7

自然连接还需要取消重复列,所以是同

时从行和列的角度进行运算

:连接(续)

•・5)举例

:[例5]

5

"26

%8

a2b412

R

笛卡尔积

RXS

一般等值

■34ft

:连接(续)

•一般连接i?N5

C<£

AR.BcS.BE

%blb2

%blb3

%b2b2

blb3

出"3%

B

:连接(续)

•等值连接AXS(0是等号“=”)

Rs自然连接RX|S

ABC

CDABcD

23

311231

456

624562

,789

连接(续)

自然连接AXSABcE

b

BEaxl53

b\3

aAb]67

527

%10a2%810

b32

ab382

“522

-7

R

AXS

:连接(续)

••等值连接与自然连接的区别:

:.等值连接中不要求相等属性值的属性

,名相同,而自然连接要求相等属性值的

一属性名必须相同,即两关系只有在同名

•属性才能进行自然连接

:•2.等值连接不将重复属性去掉,而自然

•连接去掉重复属性,也可以说,自然连

•接是去掉重复列的等值连接

:象集Z(回顾)

•给定一个关系A(X,Z),X和Z为属性组。当"X]气时,

■x在K中的象集(ImagesSet)为:

Zx={t[Z]\teR,t[X]=x]

!♦从R中选出在X上取值为x的元组,去掉X上的分量,

只留元组在Z上的分量集合

‘张军同学所选修^

XZx=张军Zx的全部课程」

姓名课程而

张军物理

物理

王红数学

张军数学

:4.除(Division)

给定关系A(X,9和S(F,Z),其中X,Y,Z为属性组。

•K中的y与s中的y可以有不同的属性名,但必须出自相同

:的域集。A与S的除运算得到一个新的关系尸(X),P是A中

•满足下列条件的元组在X属性列上的投影:

:元组在X上分量值x的象集七包含5在¥上投影的集合

•R+S="MIyA八%⑸=1;}

•Yx:'在A中的象集,x=tr[X]

:除(续)

,・2)除操作是同时从行和列角度进行运算

[例6]

■除(例)

.A给定关系R(X,Y)与关系S(Y,Z),其中X,Y,Z为属性组,关系R

公%G匕匚4曰R/lR曰一人立匚*N7G/'了、G曰Ci+tL旺口-IT4/年A/t=乙口

•与除法的定义相对应,本题中X={A}={alza2za3za4},

.Y={B,C}={(blzc2)z(b2,cl)z(b2,c3)},Z={D}={dlzd2}0

♦元组在属性A上各个分量值的象集分别为?

•S在(B,C)上的投影为?属性A中哪些分量的象集包含了S在(B,C)上的投影?

:分析:

:在关系R中,A可以取四个值{al,a2,a3,a4}

{(d,c),c),q)}

•%的象集为2(b2,3(b2,

•利的象集为{(%。7),(/。3)}

•%的象集为{e4,。6)}

:%的象集为{(%。6)}

.S在(刀,。上的投影为

•{(bl,c2),(b2,cl),(b2,c3)}

:只有力的象集包含了s在逃,。属性组上的投影

:所以A+S={%}

■除(例)

<X=<A,B?=<(a,b),(b,c),(ezd)},

♦Y={GD}={(c,d),(e,f)},Z={}

R

包含了S在

C,D中的投影

=\Z

(a,b)的象集

(b,c)的象集包含了S

在C,D

(e,d)的象集若中的投影

AB

sR+Sab

ed

5.综合举例

以学生-课程数据库为例(P60)

[例7]查询至少选修1号课程和3号课程的学生号码

首先建立一个临时关系氏

-j然后求:九

I

'I

:综合举例(回顾)

XZ

学号课程号

SnoCno

950011

950012

950013

950022

关系R中,元组在Sno上分量值x象

950023集Zx表示学号为x的同学所选修的

全部课程的课程号

关系R判断哪些学生学号的象集Zx包含

(选课关系SC中投影)课程号集合{1,3}?

:综合举例(例7)Cno

1

:•例7求解过程

3

:•K=7TCno(K)={l,3}

-7TSno,Cno(SC)SnoCno

950011

95001象集{L2,3}950012

95002象集{2,3}950013

950022

•于是:7TSno,Cno(SC)^/f={95001}

950023

:综合举例(续)

•[例8]查询选修了2号课程的学生的学号。

SC

95002380

综合举例(续)

课程号成绩

CnoGrade

285

290

%no(%110=2(SC))

={95001,95002)

:综合举例(续)

••[例]查询选修了2号课程学生的姓名另解

Student

学号课程号成绩

学号姓名性另IJ年龄所在系

SnoCnoGrade

SnoSnameSsexSageSdept

95001李勇男20CS95001192

95001

95002刘晨女19IS285

95001388

95003王敏女18MA

95002290

95004张立男19IS95002380

■学号Sno、姓名Sname-Student表

用到Student和SC两个表,先对

.♦■学号Sno、课程号Cno-SC表两个关系执行自然联接,再执行

9

,•.Student辿SC选择和投影操作

:综合举例(续)

StudentXSC

SnoSnameSsexSageSdeptCnoGrade

95001■男20CS192

95001■男20CS388

95002滤女19IS380

Gcm)=,2,(StudentXSC)

.7Tsname(CJcno=t2,(Student冲C))

:综合举例(续)

.•另解:

.•①从学生关系表Student中投影出“学号”和“姓名”

.•7TSno,Sname(Student)

■•②从选课关系表SC中投影出所有选修了2号课程的学生的学号

.TTsnoCOcno^l5(SC))={95001,95002}

•・③通过外码“学号”对①和②中得到的两个关系表做自然连接

.7TSno,Sname(Student)^?Jsno((yCno=t2,(SC))

•・④从③中投影出选修了2号课程的学生的姓名

•TTSname(7TSno,Sname(Student)秘。(dCno=t2,(SC)))

:综合举例(续)

,•[例]查询选修了课程名为‘数学'的学生

:的学号和姓名

-学号Sno、姓名Sname-Student表

一课程名称Cname、课程号Cno-Course表

~-学号Sno、课程号Cno-SC表

-Student、一SC丁―Course

SnoCno

Student(Sno,Sname,Ssex,Sage,Sdept)

Course(Cno,Cname,Cpno,Credit)

SC(Sno,Cno,Grade)

::综合举例(续)

f用到Student、SC>Course三个表,先对三个关

,系执行自然联接,再执行选择和投影操作

□sno,Sname9ciiame=,数学,(CourseXSCXStlldeilt))

.

:综合举例(续)

•【例9]查询至少选修了一门其直接先行课为5号课

,程的学生姓名。

-学号Sno、姓名Sname-Student表

-课程号Cno、先行课Cpno-Course表

-学号Sno、课程号Cno-SC表

-Student^-SC又一Course

Cno

Student(Sno,Sname,Ssex,Sage,Sdept)

Course(Cno,Cname,Cpno,Credit)

SC(Sno,Cno,Grade)

:综合举例(续)

:7rsname付Cpno=,5,(CourseNC欧lldent))

:或

•怎name(%pn°=,5,(C0Urse)^^no,Sname(Student))

:或

7r(

•sname%n。3Cpno='5‘(Course)就)l4no,sname(Student))

:综合举例(续)

•【例10]查询选修了全部课程的学生号码和姓名。

■-学号Sno、姓名Sname—Student表

r-课程号Cno-Course表

二-学号Sno、课程号Cno-SC表

-Student*--SC:一Course

SnoCno

涉及“全部值”用除法操作,先求全部课程,再

用除法求出选修了全部课程的学生的学号,最后

求出学生姓名

:综合举例(续)

•①选修了全部课程的学生的号码

SnoCno7tSno,Cno(SC)

95001195001象集{1,2,3}

95002象集{2,3}

950012

9500137Tcno(Course)={l,2,

950022九Sn°,Cn。(SC)-7TCno(Course)

950023={95001}

•②根据①,得到选修了全部课程的学生号码和姓名

7Tsno,cno(SC)(Course)Mjrsno,sname(Student)

:综合举例(续)

••[例]查询没有任何一门课程成绩不及格的所有

♦学生的学号、姓名和系别

IISno,Sname,Sdept(GGrade<t60,(StudentNSC))

查询有不及格课程学生的学号、姓名和系别

IISno,Sname,Sdept(Studeilt)—IISno,Sname,Sdept(GGrade<460,(Stlldent泗C))

:小结

••关系代数运算

-关系代数运算

*并、差、交、笛卡尔积、投影、选择、连接、除

:-基本运算

并、差、笛卡尔积、投影、选择

-交、连接、除

I•可以用5种基本运算来表达

>e引进它们并不增加语言的能力,但可以简化表达

:小结(续)

••关系代数表达式

:-关系代数运算经有限次复合后形成的式子

三•典型关系代数语言

f-ISBL(InformationSystemBaseLanguage)

『•由IBMUnitedKingdom研究中心研制

]••用于PRTV(PeterleeRelationalTestVehicle)

■实验系统

:课堂练习1

R

求OA<5(R)

(R)

求OA<5△C=7

:课堂练习2

,

*

•关系R:ABC

a101

a201

P301

P402

•求“AC(R)

:课堂练习3

求R^s

:课堂练习4

ABCD

aaa

Y

aY

5

:课堂练习6

••现有关系数据库如下:

••学生(学号,姓名,性别,专业,出生日期)

•教师(教师编号,姓名,所在部门,职称)

••授课(教师编号,学号,课程编号,课程名称,教材,学分,学

生成绩)

••用关系代数表达式实现:

9•1.查询学习“数据库原理”课程且成绩不及格的学生

Q的学号和教师编号。

・•2.查询学习“英语”课程的“计算机应用”专业的学

•生学号、姓名、成绩。

:课堂练习1参考答案

QA<5(R)

RABC

367

ABC

257

367

443

257

723aA<5AC=7(R)

443

ABC

367

257

:课堂练习2参考答案

关系R:ABC

a10

a20

P30

P40

•nA,cwACC

a19a1

a1P1

P1P2

:课堂练习参考管案s

3E|

ABCm

123

456

•RNS

♦B<D789

ABCDEABCDE

12331

r

4563145631

--------------」

45662

—__________—

7893178931

7896278962

:课堂练习4参考答案

:课堂练习5参考答案

••已知关系R和S,如图所示,求R+S。

*R二二「

(al,b2)

的象集F

(a2力4)d5

的象集d6f4

(a3,b5)R4-S

的象集

AB

与除法的定义相对应,本题中alb2

X={A,B}=<(al,b2)f(a2,b4)f(a3,b5)},

Y={CfD}={(c3,d5)/(c4,d6)},Z={F}=<f3,f4}o

元组在X上各个分量值的象集分别为?

S在(CD)上的投影为?属性A,B中哪些分量的象集包含了S在(GD)上的投影

:课堂练习6参考答案

••现有关系数据库如下:

••学生(学号,姓名,性别,专业,出生日期)

.•教师(教师编号,姓名,所在部门,职称)

••授课(教师编号,学号,课程编号,课程名称,教材,学分,学

生成绩)

:•用关系代数表达式实现:

.•1.查询学习“数据库原理”课程且成绩不及格的学生

•的学号和教师编号。

n学号,教师编号(。课程名称=,数据库原理'八成绩<6o(授课))

:课堂练习6参考答案

•现有关系数据库如下:

,,•学生(学号,姓名,性别,专业,出生日期)

•教师(教师编号,姓名,所在部门,职称)

•授课(教师编号,学号,课程编号,课程名称,教材,学分,学

I生成绩)

:•用关系代数表达式实现:

.•2.查询学习“英语”课程的“计算机应用”专业的学

.生学号、姓名、成绩。

n学号,姓名,成绩专业=,计算机应用'八课程名称=,英语'(学生

第二章关系数据库

2.1关系模型概述

2.2关系数据结构及形式化定义

2.3关系的完整性

2.4关系代数

2.5关系演算

2.6小结

:2.5关系演算

:彳关系演算

♦以数理逻辑中的谓词演算为基础

:•种类:按谓词变元不同分类

:L元组关系演算:

♦以元组变量作为谓词变元的基本对象

・元组关系演算语言ALPHA

:2.域关系演算:

・以域变量作为谓词变元的基本对象

♦域关系演算语言QBE

*2.5.1元组关系演算语言ALPHA

••由E.F.Codd提出

INGRES所用的QUEL语言是参照ALPHA语言研制的

••语句

♦检索语句

••GET

・更新语句

•PUT,HOLD,UPDATE,DELETE,DROP

:元组关系演算语言ALPHA

•;方句的基本格式:

.•操作语句工作空间名(表达式):操作条件

•注意:操作条件是一个逻辑表达式,说明查询结果要

>满足的条件,用于将操作结果限定在满足条件的元组

中,操作条件可以为空

1.检索操作

(1)简单检索(即不带条件的检索)

(2)限定的检索(即带条件的检索)

(3)带排序的检索

(4)带定额的检索

(5)用元组变量的检索

(6)用存在量词的检索

:检索操作(续)

•(7)带有多个关系的表达式的检索

♦(8)用全称量词的检索

—(9)用两种量词的检索

•(10)用蕴函(Implication)的检索

,•(11)集函数

(1)简单检索

GET工作空间名(表达式1)

[例1]查询所有被选修的课程号码。

GETW(SC.Cno)

[例2]查询所有学生的数据。

GETW(Student)

:(2)限定的检索

・格式

:GET工作空间名(表达式1):操作条件

[例3]查询信息系(IS)中年龄小于20岁的学生

:的学号和年龄。

:GETW(Student.Sno,Student.Sage):

•Student.Sdept=lISfAStudent.Sage<20

:(3)带排序的检索

Q格式

■GET工作空间名(表达式1)[:操作条件]

:DOWN/UP表达式2

、[例4]查询计算机科学系(CS)学生的学号、年龄,结

..果按年龄降序排序。

•GETW(Student.Sno,Student.Sage):

•Student.Sdept=fCS,DOWNStudent.Sage

(4)带定额的检索

•格式:GET工作空间名(定额)(表达式1)

,[:操作条件1[DOWN/UP表达式2]

:[例5]取出一个信息系学生的学号。

•GETW(1)(Student.Sno):

.Student.Sdept=!IS,

;[例6]查询信息系年龄最大的三个学生的学号及其年

•龄,结果按年龄降序排序。

GETW(3)(Student.Sno,Student.Sage):

Student.Sdept=!ISlDOWNStudent.Sage

:(5)用元组变量的检索

:组变量的含义

•-表示可以在某一关系范围内变化(也称为范

.围变量RangeVariable)

.•元组变量的用途

•-①简化关系名:设一个较短名字的元组变

•量来代替较长的关系名

♦-②操作条件中使用量词时必须用元组变量

■•定义元组变量

:-格式:RANGE关系名变量名

.-一个关系可以设多个元组变量

用元组变量的检索(续)

[例7]查询信息系学生的名字。

RANGEStudentX

GETW(X.Sno):X.Sdept=!ISf

:(6)用存在量词的检索

•[例8]查询选修2号课程的学生名字。

.RANGESCX--------------1使用元组变量一

.GETW(Student.Sname):

.3X(X.Sno=Student.SnoAX.Cno=l2l)

,[例9]查询选修了这样课程的学生学号,其直

.接先行课是6号课程。

RANGECourseCX--------------使用元组变量

GETW(SC.Sno):

3CX(CX.Cno=SC.CnoACX.Pcno=f6f)

用存在量词的检索(续)

|■[例110]查询至少选修一门其先行课为6号课程的学生名字

RANGECourseCX

使用元组变量

scsex

•GETW(StudenLSname):3SCX(SCX.Sno=Student.SnoA

•3CX(CX.Cno=SCX.CnoACX.Pcno=,6!))

■前束范式形式:

・GETW(StudenLSname):

•3SCX3CX(SCX.Sno=Student.SnoA

reCX.Cno=SCX.CnoACX.Pcno='6')

Student(Sno,Sname,Ssex,Sage,Sdept)

Course(Cno,Cname,Cpno,Credit)

SC(Sno,Cno,Grade)

(7)带有多个关系的表达式的检索

[例11]查询成绩为90分以上的学生名字与课程名字。

RANGESCSCX------------1使用元组变量

GETW(Student.Sname,Course.Cname):

3SCX(SCX.Grade>90A

SCX.Sno=Student.SnoA

Course.Cno=SCX.Cno)

Student(Sno,Sname,Ssex,Sage,Sdept)

Course(Cno,Cname,Cpno,Credit)

SC(Sno,Cno,Grade)

(8)用全称量词的检索

二•[例12]查询不选1号课程的学生名字。

RANGESCSCX---------使用元组变量

GETW(Student.Sname):

VSCX(SCX.Sno^Student.SnoVSCX.Cno#lf)

用存在量词表示:

RANGESCSCX---------使用元组变量

GETW(Student.Sname):

3SCX(SCX.Sno=Student.SnoASCX.Cno=!lf)

Student(Sno,Sname,Ssex,Sage,Sdept)

Course(Cno,Cname,Cpno,Credit)

SC(Sno,Cno,Grade)

:(10)集函数

常用集函数(Aggregationfunction)或内

部函数(Build-infunction)

函数名功能

COUNT对元组计数

TOTAL求总和

MAX求最大值

MIN求最小值

AVG求平均值

:集函数(续)

•[例15]查询学生所在系的数目。一

CS

・GETW(COUNT(StudentSdept))—

:COUNT函数在计数时会自动排除重复值IS

MA

;[例16]查询信息系学生的平均年龄—

・GETW(AVG(Student.Sage):

:Student.Sdept=lIS5)

二、更新操作

⑴修改操作

(2)插入操作

(3)删除操作

:(1)修改操作步骤

,①用HOLD语句将要修改的元组从数据库中读到工作空

.•间中

■HOLD工作空间名(表达式1)[:操作条件1

.♦HOLD语句是带上并发控制的GET语句

:②用宿主语言修改工作空间中元组的属性

③用UPDATE语句将修改后的元组送回数据库中

UPDATE工作空间名

:修改操作(续)

•[例17]把95007学生从计算机科学系转到信息系。

HOLDW(Student.Sno,Student.Sdept):

Student.Sno=,95007,

(从Student关系中读出95007学生的数据)

MOVE'IS'TOW.Sdept

(用宿主语言进行修改)

UPDATEW

(把修改后的元组送回Student关系)

::(2)插入操作

,步骤

:①用宿主语言在工作空间中建立新元组

:②用PUT语句把该元组存入指定关系中

:PUT工作空间名(关系名)

:PUT语句只对一个关系操作

:插入操作(续)

,[例18]学校新开设了一门2学分的课程“计算机

»组织与结构”,其课程号为8,直接先行课为6

9号课程。插入该课程元组

•MOVE8TOW.Cno

:MOVE,计算机组织与结构,TOW.Cname

•MOVE6TOW.Cpno

・MOVE'2'TOW.Credit

・PUTW(Course)

(3)删除操作

:①用HOLD语句把要删除的元组从数据库中

♦读到工作空间中

:②用DELETE语句删除该元组

・DELETE工作空间名

:删除操作(续)

•[例19]95110学生因故退学,删除该学生元组。

HOLDW(Student):Student.Sno='95110'

DELETEW

:删除操作(续)

•[例20]将学号95001改为95102。

*

HOLDW(Student):Student.Sno=f95001f

DELETEW

MOVE'95102'TOW.Sno

MOVE,李勇,TOW.Sname

MOVE'男'OW.Ssex

MOVE,2(TTOW.Sage

MOVEfCS!TOW.Sdept

PUTW(Student)

:删除操作(续)

,•[例21]删除全部学生。

HOLDW(SC)

DELETEW

.HOLDW(Student)

:•DELETEW

:在删除操作中保持参照完整性

:小结:元组关系演算语言ALPHA

二・检索操作GET

,GET工作空间名[(定额)](表达式1)

・[:操作条件1[DOWN/UP表达式21

;•插入操作

L-建立新元组-PUT

1•修改操作

-HOLD--修改—UPDATE

:•删除操作

HOLD-DELETE

:2.5关系演算

:•2.5.1元组关系演算语言ALPHA

:•2.5.2域关系演算语言QBE

:2.5.2域关系演算语言QBE

Q•一种典型的域关系演算语言

-由M.M.Zloo牌出

-1978年在IBM370上得以实现

-QBE也指此关系数据库管理系统

•QBE:QueryByExample

-基于屏幕表格的查询语言

-查询要求:以填写表格的方式构造查询

-用示例元素(域变量)来表示查询结果可能的情况

-查询结果:以表格形式显示

:QBE操作框架

入检索操作

•(1)用户提出要求;

♦(2)屏幕显示空白表格;

(3)用户在最左边一栏输入要查询的关系名,

例如Student;

Student

:检索操作(续)

(4)系统显示该关系的属性名

StudentSnoSnameSsexSageSdept

(5)用户在上面构造查询要求

StudentSnoSnameSsexSageSdept

P.TAO.C

:检索操作(续)

•(6)屏幕显示查询结果

StudentSnoSnameSsexSageSdept

C

张立

:构造查询的几个要素

••示例元素

温馨提示

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

评论

0/150

提交评论