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

下载本文档

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

文档简介

第二章关系数据库(续)12.4

关系代数

概述

传统的集合运算专门的关系运算2概述1.关系代数2.关系代数运算的三个要素4.关系代数运算的分类3概述1.关系代数 一种抽象的关系数据语言 用对关系的运算来表达对数据库的操作4概述(续)2.关系代数运算的三个要素运算对象:关系运算结果:关系运算符:四类5概述(续)集合运算符将关系看成元组的集合运算是从关系的“水平”方向即行的角度来进行专门的关系运算符不仅涉及行而且涉及列算术比较符辅助专门的关系运算符进行操作逻辑运算符辅助专门的关系运算符进行操作6集合运算符∪-∩×并差交广义笛卡尔积比较运算符>≥<≤=≠大于大于等于小于小于等于等于不等于运算符含义运算符含义关系代数运算符

专门的关系运算符σπ

÷选择投影连接除逻辑运算符∧∨非与或74.关系代数运算的分类 传统的集合运算并、差、交、广义笛卡尔积 专门的关系运算选择、投影、连接、除82.4.1传统的集合运算并差交广义笛卡尔积91.并(Union)关系R和关系S具有相同的目n(即两个关系都有n个属性)相应的属性取自同一个域R∪S

仍为n目关系,由属于R或属于S的元组组成

R∪S={t|t

R∨tS}10并(续)ABCa1b1c1a1b2c2a2b2c1ABCa1b1c1a1b2c2a1b3c2a2b2c1ABCa1b2c2a1b3c2a2b2c1RSR∪S

11122.差(Difference)关系R和关系S具有相同的目n相应的属性取自同一个域R-S

仍为n目关系,由属于R而不属于S的所有元组组成

R-S={t|tR∧tS}13差(续)ABCa1b1c1a1b2c2a2b2c1ABCa1b1c1ABCa1b2c2a1b3c2a2b2c1RSR-S

14153.交(Intersection)关系R和关系S具有相同的目n相应的属性取自同一个域R∩S仍为n目关系,由既属于R又属于S的元组组成

R∩S={t|t

R∧tS} R∩S=R

–(R-S)16交(续)ABCa1b1c1a1b2c2a2b2c1ABCa1b2c2a2b2c1ABCa1b2c2a1b3c2a2b2c1RSR∩S

1718例:求关系R与S的并,交,差

R(ABC)S(ABC)aceadfadfagfbdebde

R∪SRSR∩S(ABC)(ABC)(ABC)aceaceadfadfbdebdeagf194.广义笛卡尔积(ExtendedCartesianProduct)Rm目关系,k1个元组Sn目关系,k2个元组R×S

列:(m+n)列的元组的集合元组的前m列是关系R的一个元组后n列是关系S的一个元组行:k1×k2个元组R×S={tr

ts|tr

R∧tsS}其中tr

ts

为(a1,a2,…..,am,bm+1,bm+2,…,bm+n)

元组的连串20RSRXS21例:求RXSR(ABC)S(DE)

abcbgdefdeebd

RXS(ABCDE)abcbgabcdedefbgdefdeebdbgebdde22广义笛卡尔积(续)ABCa1b1c1a1b2c2a2b2c1ABCa1b1c1a1b1c1a1b1c1a1b2c2a1b2c2a1b2c2a2b2c1a2b2c1a2b2c1ABCa1b2c2a1b3c2a2b2c1RSR×S

ABCa1b2c2a1b3c2a2b2c1a1b2c2a1b3c2a2b2c1a1b2c2a1b3c2a2b2c1c1b1a1c1b1a1c1b2a2c1b2a2c2b2a1c1b2a2c1b1a1R.CR.BR.Ac2b2a1c2b2a1c2b2a1c2b3a1c1b2a2c2b2a1c2b3a1c1b2a2c2b2a1S.CS.BS.Ac1b2a2c2b3a123广义笛卡尔积(续)242.4.2专门的关系运算选择投影连接除251.选择(Selection)从关系R中选择满足给定条件F的元组t,组成新的关系。

F(R)={t|t∈R∧F(t)为‘真’}

F是筛选关系R中元组的条件表达式.

可以表示为:X1Y1

φX2Y2

X,Y是属性名或常量,也可以是简单函数.

属性名也可以用其属性序号表示.θ:比较运算符(>,≥,<,≤,=或<>)φ:逻辑运算符(∧或∨)26选择(续)选择运算是从行的角度进行的运算举例 设有一个学生-课程数据库,包括学生关系Student、课程关系Course和选修关系SC。σ27学号Sno姓名Sname性别Ssex年龄Sage所在系Sdept04001李勇男20CS04002刘晨女19IS04003王敏女18MA04004张立男19IS课程号课程名先行课学分CnoCnameCpnoCcredit1数据库542数学

23信息系统144操作系统635数据结构746计算机导论

27C语言64学号课程号成绩SnoCnoGrade0400119204001285040013880400229004002380StudentCourseSC28选择(续)[例1]查询年龄小于20岁的学生

σSage<20(Student)

或σ4<20(Student)

结果:

SnoSnameSsexSageSdept95002刘晨女19IS95003王敏女18MA95004张立男19IS

29选择(续)[例2]查询信息系(IS)并且年龄为19岁全体学生

σSdept

=‘IS’∧Sage=19(Student)

或σ5=‘IS’∧4=19(Student)结果:SnoSnameSsexSageSdept95002刘晨女19IS95004张立男19IS302.6.2投影从关系中选择出若干属性列组成一个新的关系.投影的结果将消除重复的元组.

πA

(R)={t[A]|t∈R}投影操作主要是从列的角度进行运算π31投影(续)[例3]查询学生的姓名和所在系 即求Student关系上学生姓名和所在系两个属性上的投影

πSname,Sdept(Student)

或π2,5(Student)结果:SnameSdept李勇CS刘晨IS王敏MA张立IS32[例4]查询学生关系Student中都有哪些系

πSdept(Student)

结果:SdeptCSISMA投影(续)33

3.连接(Join)

(1)

连接:从两个关系的广义笛卡尔积中选取给定属性间满足表达式的元组.RS={tr

ts|tr

∈R∧

ts

∈S

∧tr[A]

ts[B]

}

R.AS.BA,B为关系R,S上度数相等且可比的属性列.

为“=”时称为等值连接.

可以将连接运算转化为:RS=R.AS.B(RXS)

R.AS.B34例:R(ABC)S(DE)RS(

)12331B<D45662789ABCDE123311236245662ABCDE12331123624563145662893178962R×S

35连接(续)2)自然连接

自然连接是一种特殊的等值连接两个关系中进行比较的分量必须是相同的属性组在结果中把重复的属性列去掉自然连接的含义

R和S具有相同的属性组B自然连接与等值连接的不同

RS={rs[B]|rRsSr[B]=S[B]}36例:R(ABC)S(BD)RS()1232745681789ABCD1237789137连接(续)举例

[例]ABCa1b15a1b26a2b38a2b412BEb13b27b310b32b52RSR

S

C<E

R

SR.B=S.B

R

S

38连接(续)R

S

AR.BCS.BEa1b15b27a1b15b310a1b26b27a1b26b310a2b38b310

C<E39连接(续)

R

SR.B=S.B

AR.BCS.BEa1b15b13a1b26b27a2b38b310a2b38b3240连接(续)R

S

ABCEa1b153a1b267a2b3810a2b38241424.除(Division)要求:被除关系形如R(X,Y),除关系形如S(Y)例:R(XY)S(Y)x1y1y1x2y2y3x1y3x3y4x1y5

x1->{y1,y3,y5}x2->{y2}x3->{y4}结果:R(X,Y)S(Y)={x1}43

除法定义:

设关系R(X,Y)与S(Y).其中X,Y是属性组.RS的结果是:R中在X上的分量值x的像集包含S在Y上的投影的集合的元组在X上的投影.RS={tr[Y]|tr∈R∧Y(S)⊆YX}

像集:设有关系R(X,Y),其中X,Y是属性组,当X=x时,在R中的像集为:YX=x={tr[Y]|tr

∈R

trX=x}44除操作是同时从行和列角度进行运算例:在选课关系R中同时选修C101和C104两门课的学号.45除(续)ABCa1b1c2a2b3c7a3b4c6a1b2c3a4b6c6a2b2c3a1b2c1BCDb1c2d1b2c1d1b2c3d2RSAa1R÷SS’462.4.3关系代数应用举例(1)给出学习2号课程的学生名

(2)将新的学生记录{‘06005’,’李明’,‘男’,18}插入到关系S中.S∪{‘06005’,’李明’,‘男’,18,

}另:SNAME(CNO=‘2’(SC)S)()SNAMECNO=‘2’(SSC)47

SNAME((S)

)(4)给出学习“数据库”课程的学生姓名

(

Cname=‘数据库’)(SSCC)(3)将学生04002学习的1号课程的成绩改为92.(SP{‘04002’,’1’,})∪{‘04002’,’1’,92}SCCSSNAMECname=‘数据库’(C)(CNO)(SC)

SNO()优化:48SNAME(S)

(

SNO,CNO(SC))(5)给出供应全部课程的学生名.SNAME((

SNO,CNO(SC)CNO

(SC))S)

CNO

(C)49

(6)给出选修了04002学习的全部课程的学生名.

(7)给出未选修2号课程的学生名.SNAME(S(

SNO(S)

SNO(

CNO=‘2’(SC)))SNAME((

SNO,CNO(SC)CNO(SNO=‘04002’(SC))S)CNO(SNO=‘04002’(SC))

SNO(

CNO=‘2’(SC))50小结:

关系代数运算共8种:

并,差,交,笛卡尔积,选择,投影,连接,除其中并,差,笛卡尔积,选择,投影五种运算构成了关系代数的基本操作(又称为最小完备集).(交,连接,除可以被以上五种运算导出.)51练习1.查询所有被选修课程的信息2.查询数学系中年龄小于20的女学生的学号,年龄.3.

求各科不及格学生的课号、姓名及成绩4.求选修TC01和TC02课程的学生名7.求没有学习“数据库”课程的所有学生姓名根据下列关系用关系代数完成查询:

学生student(sno,sname,sex,age,dname)

课程course(cno,cname,pcno)

选课sc(sno,cno,grade)52关系演算:用谓词来表达数据操作的要求.

元组关系演算:谓词变元是元组变量域关系演算:谓词变元是域变量2.5关系演算53

1.元组变量元组变量又称范围变量,变量的变化范围为某一命名的关系.换言之,如果元组变量X涉及关系R,那么在任何给定时刻,X描述R的某一元组x..

2.5.1元组关系演算_____ALPHA语言54元组变量的定义定义形式:RANGERX

一个关系名上可以定义多个元组变量例:RANGECCXCCY55操作语句工作空间

(表达式):公式指定进行用户与程序的指出结果元组结果元组什么操作通讯区,通常用中包括有那些应满足的一个字母W表示

属性条件2.基本语句格式<操作语句>:GET|PUT|HOLD|UPDATE|DELETE|DROP<表达式>:<简单项1>,<简单项2>,…….<简单项n><简单项>:<关系名>|<关系名>.<属性名>|<元组变量>.<属性名><公式>:<原子>|<布尔>|<量词>|<逻辑蕴涵>|<空>563.检索操作有关关系:S(SNO,SN,SD,SA)

学生(学号,姓名,系名,年龄)

C(CNO,CN,PCNO)

课程(课号,课名,先修课)SC(SNO,CNO,G)

选修(学号,课号,成绩)57(1)简单检索(不引入元组变量)例1:查询所有选修课程的学生号

GETW(SC.SNO)

例2:查询所有课程的信息

GETW(C)58简单检索

例3:查询数学系中年龄小于20的学生的学号,年龄.

GETW(S.SNO,S.SA):S.SD=‘数学’∧S.SA<2059简单检索例4.带排序的检索查询计算机系的学生的学号,年龄.年龄按降序排列

GETW(S.SNO,S.SA):

S.SD=‘计算机’

DOWNS.SA60简单检索例5.带定额的检索(规定结果的个数)

查询一个计算机系的学生的学号.

GETW(1)(S.SNO):S.SD=‘计算机’

61简单检索例6.查询计算机系年龄最大的三个学生的学号及其年龄.年龄按降序排列

GETW(3)(S.SNO,S.SA):S.SD=‘计算机’DOWNS.SA62(2)引入元组变量的检索何时使用元组变量:1.关系名过长时

2.操作中使用变量时63引入元组变量的检索例7.查询数学系中年龄小于20的学生的学号,年龄.RANGESXGETW(X.SNO,X.SA):X.SD=‘数学’∧X.SA<2064引入元组变量的检索RANGESSXRANGESSY

GETW(SX.SNO,SY.SNO):

SX.SN=SY.SN∧SX.SNO<SY.SNO例8.查询姓名相同的所有学生的学号对.65引入元组变量的检索例9.找出选修C2课程的学生名关系SC关系S96c2s195c1s290c1s1GC#S#……s3……s2……s1AGESNS#张三李四66

1.自由变量:

不受量词约束的变量

2.约束变量:

紧跟在量词后面的变量仅在量词的辖域中才有意义.*自由变量与约束变量

*量词:

存在量词X,表示“存在有X”

全称量词X,表示“对于所有的X”

67引入元组变量的检索例9.找出选修C2课程的学生名RANGESCXGETW(S.SN):X(X.SNO=S.SNO∧X.CNO=‘C2’)自由变量约束变量意义:关系SC中存在一个SC元组,其中SNO的值与目标的S.SNO值相等,并且CNO值与C2相等.68例9.找出至少选修一门其先修课为C1的课程的学生名.CNPCNODBC语言OSC语言DSC语言条件是:SC中存在有个元组SCX,满足SCX.SNO=S.SNO

并且C中存在有一个元组CX,满足CX.CNO=SCX.CNO且CX.PCNO=‘C1’69RANGECCXSCSCXGETW(S.SN):SCX(SCX.SNO=S.SNO∧

CX(CX.CNO=SCX.CNO∧CX.PCNO=‘C1’))采用前束范式形式:GETW(S.SN):SCXCX(SCX.SNO=S.SNO

∧CX.CNO=SCX.CNO∧CX.PCNO=‘C1’)例9.找出至少选修一门其先修课为C1的课程的学生名.70例10.求不选修C1课程的学生名意义:找出满足这样条件的元组,所有的选课元组中的任何一个都不是该名学生所选修的C1课程RANGESCXGETW(S.SN):X(X.SNO≠S.SNO

∨X.CNO≠‘C1’)71全称量词形式转化成存在量词形式:

X(P)=

X(P)RANGESCXGETW(S.SN):X(X.SNO≠S.SNO

∨X.CNO≠‘C1’)GETW(S.SN):

X(X.SNO=S.SNO

∧X.CNO=‘C1’)72例11.找出选修全部课程的学生名意义:找出满足这样条件的学生元组,对于关系C中的所有元组中的任何元组CX(任一个课程),都在关系SC中对应地存在选修此门课程的选课元组,而且这个选课元组是该学生选学的.RANGECCXRANGESCSCXGETW(S.SNO):CXSCX(S.SNO=SCX.SNO

∧SCX.CNO=CX.CNO)73例12.求至少选修学生S2所选的全部课程的学生号意义:对于所有课程中任一门课程CX,若其是S2所选学的,则存在作为查询目标的学生一定也选学.逻辑蕴涵:IFATHENB

如果A成立,则B就成立.

表示为:AB74RANGECCXSCSCXSCSCYGETW(S.SNO):CX(SCX(SCX.SNO=‘S2’∧SCX.CNO=CX.CNO))SCY(SCY.SNO=S.SNO∧SCY.CNO=CX.CNO)例12.求至少选修学生S2所选的全部课程的学生号75

利用库函数在对数据库进行检索的基础上进行简单的运算COUNT----计数TOTAL----汇总MAX----最大值MIN----最小值AVG----平均值库函数:76库函数例13.求系的数目.GETW(COUNT(S.SD))例14.求计算机系学生的平均年龄

GETW(AVG(S.SA)):S.SD=‘计算机’

774.存储操作指对数据库进行的插入,删除,修改的操作例15.把学生S2从计算机系转入数学系操作步骤:(1)把元组从数据库中取出放入工作区

(2)再用主语言语句修改相应值.(3)送回数据库

HOLDW(S.SNO,S.SD):S.SNO=‘S2’MOVE‘计算机’TOW.SDUPDATEW78操作步骤:(1)用主语言在工作区建立新元组

(2)在用PUT语句把该元组送回指定关系中例16.插入一个课程元组

MOVE‘C7’TOW.CNOMOVE‘管理信息系统’TOW.SNMOVE‘C4’TOW.PCNOPUTW(C)79例17.删除学生S1的全部选课元组

HOLDW(SC):SC.SNO=‘S1’DELETEW例18.删除全部学生记录

HOLDW(S)DELETEW

由于参照关系,还要执行以下操作:HOLDW(SC)DELETEW802.5.2域关系演算_____QBE

QBE是QueryByExample(通过例子查询)的简称.是一种基于屏幕表格的查询语言.

QBE的特点:*高度非过程化.*直观,易学易用.81QBE的操作框架关系名属性名操作命令元组属性值或查询条件用示例元素(域变量)表示查询结果的可能情况82QBE的操作一.检索(查询)操作(命令:P.)有关关系:

Sudent(SNO,SNAME,SEX,DEPT,AGE)

学生(学号,姓名,系名,年龄)

SC(SNO,CNO,GRADE)

选修(学号,课号,成绩)83QBE的操作步骤(1)用户提出要求,屏幕显示空白表格

Student(2)用户在最左边一栏输入关系名Student(3)系统显示关系Student的属性名SNOSNAMESEXDEPTAGE(4)用户写出查询要求:计算机系的学生姓名.(5)系统显示查询结果P.TT为示例元素计算机查询条件84

StudentSNOSNAMESEXDEPTAGE李强王明张力…….计算机计算机计算机……..QBE查询结果85QBE查询示例例1:查询全体学生的全部数据

StudentSNOSNAMESEXDEPTAGEP.

温馨提示

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

最新文档

评论

0/150

提交评论