数据库原理及应用完整教程-课件

PPT
  • 阅读 75 次
  • 下载 0 次
  • 页数 188 页
  • 大小 1.228 MB
  • 2022-12-05 上传
  • 收藏
  • 违规举报
  • © 版权认领
下载文档40.00 元 加入VIP免费下载
此文档由【小橙橙】提供上传,收益归文档提供者,本网站只提供存储服务。若此文档侵犯了您的版权,欢迎进行违规举报版权认领
数据库原理及应用完整教程-课件
可在后台配置第一页与第二页中间广告代码
数据库原理及应用完整教程-课件
可在后台配置第二页与第三页中间广告代码
数据库原理及应用完整教程-课件
可在后台配置第三页与第四页中间广告代码
数据库原理及应用完整教程-课件
数据库原理及应用完整教程-课件
还剩10页未读,继续阅读
【这是免费文档,您可以免费阅读】
/ 188
  • 收藏
  • 违规举报
  • © 版权认领
下载文档40.00 元 加入VIP免费下载
文本内容

【文档说明】数据库原理及应用完整教程-课件.ppt,共(188)页,1.228 MB,由小橙橙上传

转载请保留链接:https://www.ichengzhen.cn/view-92513.html

以下为本文档部分文字说明:

1数据库原理及应用PrinciplesandAppliedofDatabase2PrinciplesandAppliedofDatabase数据库原理及应用-3关系数据库简介提出关系模型的是美国IBM公司的E.F.Codd1970年提出关系数据模型•E.F.Codd

,―ARelationalModelofDataforLarge•SharedDataBanks‖,《Communicationofthe•ACM》,1970之后,提出了关系代数和关系演算的概念1972年提出了关系的第一、第二、第三范式1974年

提出了关系的BC范式-4第2章关系数据库2.1关系数据结构及形式化定义2.2关系操作2.3关系的完整性2.4关系代数2.5关系演算2.6小结-52.1关系数据结构及形式化定义2.1.1关系2.1.2关系模式2.1.3关系数据

库-62.1.1关系单一的数据结构----关系现实世界的实体以及实体间的各种联系均用关系来表示逻辑结构----二维表从用户角度,关系模型中数据的逻辑结构是一张二维表建立在集合代数的基础上-7关系(续)⒈

域(Domain)2.笛卡尔积(CartesianProduct)3.关系(Relation)-8⒈域(Domain)域是一组具有相同数据类型的值的集合。例:•整数•实数•介于某个取值范围的整数•长度指定长度的字符串集合•{‗男’,‘女’}•……………..-92.笛卡尔积(CartesianP

roduct)笛卡尔积给定一组域D1,D2,…,Dn,这些域中可以有相同的。D1,D2,…,Dn的笛卡尔积为:D1×D2×…×Dn={(d1,d2,…,dn)|diDi,i=1,2,…,n}所有域的所有取值的一个组合不能重复-10笛卡尔积(续)元组(Tuple)笛卡尔积中每

一个元素(d1,d2,…,dn)叫作一个n元组(n-tuple)或简称元组(Tuple)(张清玫,计算机专业,李勇)、(张清玫,计算机专业,刘晨)等都是元组分量(Component)笛卡尔积元素(d1,d2,…,dn)中的

每一个值di叫作一个分量张清玫、计算机专业、李勇、刘晨等都是分量-11笛卡尔积(续)基数(Cardinalnumber)若Di(i=1,2,…,n)为有限集,其基数为mi(i=1,2,…,n),则D1×D2×…×Dn的基数M为:笛

卡尔积的表示方法笛卡尔积可表示为一个二维表表中的每行对应一个元组,表中的每列对应一个域mMin1i-12表2.1D1,D2,D3的笛卡尔积SUPERVISORSPECIALITYPOSTGRADUAT

E张清玫计算机专业李勇张清玫计算机专业刘晨张清玫计算机专业王敏张清玫信息专业李勇张清玫信息专业刘晨张清玫信息专业王敏刘逸计算机专业李勇刘逸计算机专业刘晨刘逸计算机专业王敏刘逸信息专业李勇刘逸信息专业刘晨刘逸信息专业王敏-133.关系(Relati

on)1)关系D1×D2×…×Dn的子集叫作在域D1,D2,…,Dn上的关系,表示为R(D1,D2,…,Dn)•R:关系名•n:关系的目或度(Degree)-14关系(续)2)元组关系中的每个元素是关系中的元组,通常用

t表示。3)单元关系与二元关系当n=1时,称该关系为单元关系(Unaryrelation)或一元关系当n=2时,称该关系为二元关系(Binaryrelation)-15关系(续)4)关系的表示关系也是一个二维表,表的每行对应一个元组,表的每列对应一个域表2.2SAP关系SUPERVIS

ORSPECIALITYPOSTGRADUATE张清玫信息专业李勇张清玫信息专业刘晨刘逸信息专业王敏-16关系(续)5)属性关系中不同列可以对应相同的域为了加以区分,必须对每列起一个名字,称为属性

(Attribute)n目关系必有n个属性-17关系(续)6)码候选码(Candidatekey)若关系中的某一属性组的值能唯一地标识一个元组,则称该属性组为候选码简单的情况:候选码只包含一个属性全码(All-key)最极端的情况:关系

模式的所有属性组是这个关系模式的候选码,称为全码(All-key)-18关系(续)码(续)主码若一个关系有多个候选码,则选定其中一个为主码(Primarykey)主属性候选码的诸属性称为主属性(Primeattribute)不包含在任何侯选码中的属性称为非主属性(Non-Primeattri

bute)或非码属性(Non-keyattribute)-19关系(续)D1,D2,…,Dn的笛卡尔积的某个子集才有实际含义例:表2.1的笛卡尔积没有实际意义取出有实际意义的元组来构造关系关系:SAP(SUPERVISOR,SPECIALITY,POSTGRADUATE)假设:导师与专业:

1:1,导师与研究生:1:n主码:POSTGRADUATE(假设研究生不会重名)SAP关系可以包含三个元组{(张清玫,计算机专业,李勇),(张清玫,计算机专业,刘晨),(刘逸,信息专业,王敏)}-20关系(续)7)三类关系基本关系(基本表或基表)•实际存在的表,是实际

存储数据的逻辑表示查询表•查询结果对应的表视图表•由基本表或其他视图表导出的表,是虚表,不对•应实际存储的数据-21关系(续)8)基本关系的性质①列是同质的(Homogeneous)②不同的列可出自同一个域其中的每一列称为一个属性不同的属性要给予不同的属性名③列的顺序无所谓

,,列的次序可以任意交换④任意两个元组的候选码不能相同⑤行的顺序无所谓,行的次序可以任意交换-22基本关系的性质(续)⑥分量必须取原子值这是规范条件中最基本的一条•表2.3非规范化关系-232.1关系数据结构2.1.1关系2.1.

2关系模式2.1.3关系数据库-242.1.2关系模式1.什么是关系模式2.定义关系模式3.关系模式与关系-251.什么是关系模式关系模式(RelationSchema)是型关系是值关系模式是对关系的描述元组集合的结构–属性构成–属性来自的域–属性与域之间的映象关系元组语义以及完整

性约束条件属性间的数据依赖关系集合-262.定义关系模式关系模式可以形式化地表示为:R(U,D,DOM,F)R关系名U组成该关系的属性名集合D属性组U中属性所来自的域DOM属性向域的映象集合F属性间的数据依赖关系集合-27定义关

系模式(续)例:导师和研究生出自同一个域——人,取不同的属性名,并在模式中定义属性向域的映象,即说明它们分别出自哪个域:DOM(SUPERVISOR-PERSON)=DOM(POSTGRADUATE-PERSON)=PERSON-28定义关系模式(续)关系模式通常可以简记为R(U)或R(A1,A

2,…,An)•R:关系名•A1,A2,…,An:属性名•说明:域名及属性向域的映象常常直接说明为属性的类型、长度-293.关系模式与关系关系模式对关系的描述静态的、稳定的关系关系模式在某一时刻的状态或内容动态的、随时间不断变化的关系模式和关系通常统称为

关系一般通过上下文加以区别-302.1关系数据结构2.1.1关系2.1.2关系模式2.1.3关系数据库-312.1.3关系数据库关系数据库在一个给定的应用领域中,所有关系的集合构成一个关系数据库关系

数据库的型与值-322.关系数据库的型与值关系数据库的型:关系数据库模式对关系数据库的描述。关系数据库模式包括若干域的定义在这些域上定义的若干关系模式关系数据库的值:关系模式在某一时刻对应的关系的集合,简称为关系数

据库-33第二章关系数据库2.1关系模型概述2.2关系操作2.3关系的完整性2.4关系代数2.5关系演算2.6小结-342.2.1基本关系操作常用的关系操作查询:选择、投影、连接、除、并、交、差数据更新:插入

、删除、修改查询的表达能力是其中最主要的部分选择、投影、并、差、笛卡尔基是5种基本操作关系操作的特点集合操作方式:操作的对象和结果都是集合。-352.2.2关系数据库语言的分类关系代数语言用对关系的运算

来表达查询要求代表:ISBL关系演算语言:用谓词来表达查询要求元组关系演算语言•谓词变元的基本对象是元组变量•代表:APLHA,QUEL域关系演算语言•谓词变元的基本对象是域变量•代表:QBE具有关系代数和关系演算双重特点的语言代表:SQL(Structur

edQueryLanguage)-36第二章关系数据库2.1关系数据结构及形式化定义2.2关系操作2.3关系的完整性2.4关系代数2.5关系演算2.6小结-372.3关系的完整性2.3.1关系的三类完整性约束2.3.2实体完整性2.3.3参照完整性2.3.4用户定义的完整性-382.3.1关

系的三类完整性约束实体完整性和参照完整性:关系模型必须满足的完整性约束条件称为关系的两个不变性,应该由关系系统自动支持。用户定义的完整性:应用领域需要遵循的约束条件,体现了具体领域中的语义约束。-392.3关系的完整性2.3.1关系的三类完整性约束2.3.2实体

完整性2.3.3参照完整性2.3.4用户定义的完整性-402.3.2实体完整性规则2.1实体完整性规则(EntityIntegrity)若属性A是基本关系R的主属性,则属性A不能取空值例:SAP(SUPERVISOR,SPECIALITY,POSTGRADUATE

)POSTGRADUATE:主码(假设研究生不会重名)不能取空值-41实体完整性(续)实体完整性规则的说明(1)实体完整性规则是针对基本关系而言的。一个基本表通常对应现实世界的一个实体集。(2)现实世界中的实体是可区分的,即它们具有某种唯一性标识。(3)关系

模型中以主码作为唯一性标识。(4)主码中的属性即主属性不能取空值。主属性取空值,就说明存在某个不可标识的实体,即存在不可区分的实体,这与第(2)点相矛盾,因此这个规则称为实体完整性-422.3关系的完整性2.3

.1关系的三类完整性约束2.3.2实体完整性2.3.3参照完整性2.3.4用户定义的完整性-432.3.3参照完整性1.关系间的引用2.外码3.参照完整性规则-441.关系间的引用在关系模型中实体及实体间的联系都是用关系来描述的,因此可能存

在着关系与关系间的引用。例1学生实体、专业实体学生(学号,姓名,性别,专业号,年龄)专业(专业号,专业名)主码主码学生关系引用了专业关系的主码‚专业号‛。学生关系中的‚专业号‛值必须是确实存在的专业的专业号,即专业关系中有该专业的记录。-45关系间的引用(续)例2学生、课程、学生与课

程之间的多对多联系学生(学号,姓名,性别,专业号,年龄)课程(课程号,课程名,学分)选修(学号,课程号,成绩)-46关系间的引用(续)例3学生实体及其内部的一对多联系学生(学号,姓名,性别,专业号,年龄,班长)学号姓名性别专业号年龄班长801张

三女0119802802李四男0120803王五男0120802804赵六女0220805805钱七男0219“学号‛是主码,‚班长‛是外码,它引用了本关系的‚学号‛‚班长‛必须是确实存在的学生的学号-472.外码(ForeignKey)设F是基本关系R的一个或一

组属性,但不是关系R的码。如果F与基本关系S的主码Ks相对应,则称F是基本关系R的外码基本关系R称为参照关系(ReferencingRelation)基本关系S称为被参照关系(ReferencedRelation)或

目标关系(TargetRelation)-48外码(续)[例1]:学生关系的‚专业号与专业关系的主码‚专业号‛相对应‚专业号‛属性是学生关系的外码专业关系是被参照关系,学生关系为参照关系-49外码(续)[例2]:选修关系的‚学号‛与学生关系的主码‚学号‛相对应选修关系的‚课程号‛与

课程关系的主码‚课程号‛相对应‚学号‛和‚课程号‛是选修关系的外码学生关系和课程关系均为被参照关系选修关系为参照关系-50外码(续)[例3]:‚班长‛与本身的主码‚学号‛相对应‚班长‛是外码学生关系既是参照关系也是被参照关系-51外码(续)关系R和S不一定是不

同的关系目标关系S的主码KS和参照关系的外码F必须定义在同一个(或一组)域上外码并不一定要与相应的主码同名当外码与相应的主码属于不同关系时,往往取相同的名字,以便于识别。-523.参照完整性规则规则2.2参照完整性规

则若属性(或属性组)F是基本关系R的外码它与基本关系S的主码KS相对应(基本关系R和S不一定是不同的关系),则对于R中每个元组在F上的值必须为:或者取空值(F的每个属性值均为空值)或者等于S中某个元组的主码值-53参照完整性规则(续)[例1]:学生关系

中每个元组的‚专业号‛属性只取两类值:(1)空值,表示尚未给该学生分配专业(2)非空值,这时该值必须是专业关系中某个元组的‚专业号‛值,表示该学生不可能分配一个不存在的专业-54参照完整性规则(续)[例2]:选修(学号,课程号,成绩)‚学号‛和‚课程号‛可能的取值:(1)选修关系中

的主属性,不能取空值(2)只能取相应被参照关系中已经存在的主码值-55参照完整性规则(续)[例3]:学生(学号,姓名,性别,专业号,年龄,班长)‚班长‛属性值可以取两类值:(1)空值,表示该学生所在班级尚未选出班长(2)非空值,该值必须是本关系中某个元组的学号值-56关

系的完整性(续)2.3.1关系的三类完整性约束2.3.2实体完整性2.3.3参照完整性2.3.4用户定义的完整性-572.3.4用户定义的完整性针对某一具体关系数据库的约束条件,反映某一具体应用所涉及的数据必须满足的语义要求关系模型应提供定义和检验这类完整性的机制,以便用统一的

系统的方法处理它们,而不要由应用程序承担这一功能-58用户定义的完整性(续)例:课程(课程号,课程名,学分)―课程号‛属性必须取唯一值非主属性‚课程名‛也不能取空值‚学分‛属性只能取值{1,2,3,4,5}-

59第2章关系数据库2.1关系模型概述2.2关系数据结构2.3关系的完整性2.4关系代数2.5关系演算2.6小结-602.4关系代数概述传统的集合运算专门的关系运算-61表2.4关系代数运算符概述-6

2表2.4关系代数运算符(续)概述(续)-632.4关系代数概述传统的集合运算专门的关系运算-641.并(Union)R和S具有相同的目n(即两个关系都有n个属性)相应的属性取自同一个域

R∪S仍为n目关系,由属于R或属于S的元组组成R∪S={t|tR∨tS}-65并(续)-662.差(Difference)R和S具有相同的目n相应的属性取自同一个域R-S仍为n目关系,由属于R而不属于S的所有元组组成R-S={t|tR∧t

S}-67差(续)-683.交(Intersection)R和S具有相同的目n相应的属性取自同一个域R∩S仍为n目关系,由既属于R又属于S的元组组成R∩S={t|tR∧tS}R∩S=R–(

R-S)-69交(续)-704.笛卡尔积(CartesianProduct)严格地讲应该是广义的笛卡尔积(ExtendedCartesianProduct)R:n目关系,k1个元组S:m目关系,k2个元组R×S列:(n+m)列元组的集合•元组的前n列是关系R的一个

元组•后m列是关系S的一个元组行:k1×k2个元组•R×S={trts|trR∧tsS}-71交(续)-722.4关系代数概述传统的集合运算专门的关系运算-732.4.2专门的关系运算先引入几

个记号(1)R,tR,t[Ai]设关系模式为R(A1,A2,…,An)它的一个关系设为RtR表示t是R的一个元组t[Ai]则表示元组t中相应于属性Ai的一个分量-74专门的关系运算(续)(2)A,t[A],

A若A={Ai1,Ai2,…,Aik},其中Ai1,Ai2,…,Aik是A1,A2,…,An中的一部分,则A称为属性列或属性组。t[A]=(t[Ai1],t[Ai2],…,t[Aik])表示元组t在属性列A上诸分量的集合。A则表示{A1,A2,…,An}中去掉{A

i1,Ai2,…,Aik}后剩余的属性组。-75专门的关系运算(续)(3)trtsR为n目关系,S为m目关系。trR,tsS,trts称为元组的连接。trts是一个n+m列的元组,前n个分量为R中的一个n元组,后m个分量为S中的一个m元组。-76专门的关系运算(续)(4)象集Zx给定一个

关系R(X,Z),X和Z为属性组。当t[X]=x时,x在R中的象集(ImagesSet)为:Zx={t[Z]|tR,t[X]=x}它表示R中属性组X上值为x的诸元组在Z上分量的集合-77专门的关系运算(续)x1在R中的象集Zx1={Z1,Z2,Z3},x2在R中的象集Zx2={Z2,Z3

},x3在R中的象集Zx3={Z1,Z3}象集举例-78专门的关系运算(续)选择投影连接除-79专门的关系运算(续)(a)Student4)学生-课程数据库:学生关系Student、课程关系Course和选修关系SC学号Sno姓名Sname性别Ssex年龄Sage所在系Sd

ept200215121李勇男20CS200215122刘晨女19IS200215123王敏女18MA200215125张立男19IS-80专门的关系运算(续)课程号Cno课程名Cname先行课Cpno

学分Ccredit1数据库542数学23信息系统144操作系统635数据结构746数据处理27PASCAL语言64Course(b)-81专门的关系运算(续)(c)SC学号Sno课程号Cno成绩Grade2002151211922002151212852002151213882002151

22290200215122380-821.选择(Selection)1)选择又称为限制(Restriction)2)选择运算符的含义在关系R中选择满足给定条件的诸元组σF(R)={t|tR∧F(t)='真'}F:选择条件,是一个

逻辑表达式,基本形式为:X1θY1-83选择(续)3)选择运算是从关系R中选取使逻辑表达式F为真的元组,是从行的角度进行的运算σ-84选择(续)[例1]查询信息系(IS系)全体学生σSdept='IS'(Student)或σ5='IS'(Student)结果:SnoSnameSsexSageSd

ept200215122刘晨女19IS200215125张立男19IS-85选择(续)[例2]查询年龄小于20岁的学生σSage<20(Student)或σ4<20(Student)结果:SnoSnameSsexSageSdept200

215122刘晨女19IS200215123王敏女18MA200215125张立男19IS-862.投影(Projection)1)投影运算符的含义从R中选择出若干属性列组成新的关系πA(R)={t[A]|tR}A:R中的属性列

-872.投影(Projection)2)投影操作主要是从列的角度进行运算但投影之后不仅取消了原关系中的某些列,而且还可能取消某些元组(避免重复行)π-88投影(续)[例3]查询学生的姓名和所在系即求Student关系上学生姓名和所在系两个属性上的投影πSname,Sd

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

903.连接(Join)1)连接也称为θ连接2)连接运算的含义从两个关系的笛卡尔积中选取属性间满足一定条件的元组RS={|trR∧tsS∧tr[A]θts[B]}•A和B:分别为R和S上度数相等且可比的属性组•θ:比较运算符连接运算从R和S的广义

笛卡尔积R×S中选取(R关系)在A属性组上的值与(S关系)在B属性组上值满足比较关系θ的元组AθBtrts-91连接(续)3)两类常用连接运算等值连接(equijoin)•什么是等值连接–θ为‚=‛的连接运算称为等值连接•等值连接的含义–从关系R与S的广义笛卡尔积中选取A、B属性值相等的那

些元组,即等值连接为:RS={|trR∧tsS∧tr[A]=ts[B]}A=Btrts-92连接(续)自然连接(Naturaljoin)•自然连接是一种特殊的等值连接»两个关系中进行比较的分量必须是相同的属性

组»在结果中把重复的属性列去掉•自然连接的含义•R和S具有相同的属性组BRS={|trR∧tsS∧tr[B]=ts[B]}trts-93连接(续)4)一般的连接操作是从行的角度进行运算。自然连接还需要取消重复列,所以是同时从行和列的角度进行运算。AθBRS-94连接(续)[例5]关系R和

关系S如下所示:-95连接(续)一般连接RS的结果如下:C<E-96连接(续)等值连接RS的结果如下:R.B=S.B-97连接(续)自然连接RS的结果如下:-98连接(续)外连接如果把舍弃的元组也保存在结果关

系中,而在其他属性上填空值(Null),这种连接就叫做外连接(OUTERJOIN)。左外连接如果只把左边关系R中要舍弃的元组保留就叫做左外连接(LEFTOUTERJOIN或LEFTJOIN)右外连接如果只把右边关系S中要舍弃的元组保留就叫做右外连接(RIGHTOUTERJOIN或R

IGHTJOIN)。-99连接(续)下图是例5中关系R和关系S的外连接-100连接(续)图(b)是例5中关系R和关系S的左外连接,图(c)是右外连接-1014.除(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上投影的集合,记作:R÷S={tr[X]|trR∧πY(S)Yx}Yx:x在R中的象

集,x=tr[X]-102除(续)2)除操作是同时从行和列角度进行运算÷RS-103除(续)[例6]设关系R、S分别为下图的(a)和(b),R÷S的结果为图(c)-104分析在关系R中,A可以取四个值{a1,a2,a3,a4}a1的象集为{

(b1,c2),(b2,c3),(b2,c1)}a2的象集为{(b3,c7),(b2,c3)}a3的象集为{(b4,c6)}a4的象集为{(b6,c6)}S在(B,C)上的投影为{(b1,c2),(b2,c1),(b2,c3)}只有a1的象集包含

了S在(B,C)属性组上的投影所以R÷S={a1}-1055.综合举例以学生-课程数据库为例(P56)[例7]查询至少选修1号课程和3号课程的学生号码首先建立一个临时关系K:然后求:πSno,Cno(SC)÷KCno13-

106综合举例(续)例7续πSno,Cno(SC)200215121象集{1,2,3}200215122象集{2,3}K={1,3}于是:πSno,Cno(SC)÷K={200215121}SnoCno20021512112002151212200215121320021512222002

151223-107综合举例(续)[例8]查询选修了2号课程的学生的学号。πSno(σCno='2'(SC))={200215121,200215122}-108综合举例(续)[例9]查询至少选修了一门其直接先行课为5号课程的的学生姓名πSname(

σCpno='5'(CourseSCStudent))或πSname(σCpno='5'(Course)SCπSno,Sname(Student))或πSname(πSno(σCpno='5'(Course)SC)πSno,Sname(Student))-109综合举例(续)[例10]

查询选修了全部课程的学生号码和姓名。πSno,Cno(SC)÷πCno(Course)πSno,Sname(Student)-110小结关系代数运算关系代数运算•并、差、交、笛卡尔积、投影、选择、连接、除基本运

算•并、差、笛卡尔积、投影、选择交、连接、除•可以用5种基本运算来表达•引进它们并不增加语言的能力,但可以简化表达-111小结(续)关系代数表达式关系代数运算经有限次复合后形成的式子典型关系代数语言ISBL(

InformationSystemBaseLanguage)•由IBMUnitedKingdom研究中心研制•用于PRTV(PeterleeRelationalTestVehicle)实验系统-112第2章关系数据库2.1关系模型概述2.2关系数据结构2.3关系的完整性2.4

关系代数2.5关系演算2.6小结-1132.5关系演算关系演算以数理逻辑中的谓词演算为基础按谓词变元不同进行分类1.元组关系演算:以元组变量作为谓词变元的基本对象元组关系演算语言ALPHA2.域关系演算:以域变量作为谓词变元的基本对象域关系演算语言QBE-1142.5.1元组关系

演算语言ALPHA由E.F.Codd提出INGRES所用的QUEL语言是参照ALPHA语言研制的语句检索语句•GET更新语句•PUT,HOLD,UPDATE,DELETE,DROP-115一、检索操作语句格式:G

ET工作空间名[(定额)](表达式1)[:操作条件][DOWN/UP表达式2]定额:规定检索的元组个数•格式:数字表达式1:指定语句的操作对象•格式:•关系名|关系名.属性名|元组变量.属性名|集函数[,…]操作条件:将操作结果限定在满足条件的元组中•格

式:逻辑表达式表达式2:指定排序方式•格式:关系名.属性名|元组变量.属性名[,…]-116(1)简单检索GET工作空间名(表达式1)[例1]查询所有被选修的课程号码。GETW(SC.Cno)[例2]查询所有学生的数据。G

ETW(Student)一、检索操作-117(2)限定的检索格式GET工作空间名(表达式1):操作条件[例3]查询信息系(IS)中年龄小于20岁的学生的学号和年龄GETW(Student.Sno,Student.Sage):Student.Sdept='IS'∧Studen

t.Sage<20-118(3)带排序的检索格式GET工作空间名(表达式1)[:操作条件]DOWN/UP表达式2[例4]查询计算机科学系(CS)学生的学号、年龄,结果按年龄降序排序GETW(Student.Sno,Student.Sage):Studen

t.Sdept='CS'DOWNStudent.Sage-119(4)带定额的检索格式GET工作空间名(定额)(表达式1)[:操作条件][DOWN/UP表达式2][例5]取出一个信息系学生的学号。GETW(1)(Student.Sno):Student.S

dept='IS'[例6]查询信息系年龄最大的三个学生的学号及其年龄,结果按年龄降序排序。GETW(3)(Student.Sno,Student.Sage):Student.Sdept='IS'DOWNStudent.Sage-120(5)用元组变量的检索元组变量的含义

表示可以在某一关系范围内变化(也称为范围变量RangeVariable)元组变量的用途①简化关系名:设一个较短名字的元组变量来代替较长的关系名。②操作条件中使用量词时必须用元组变量。定义元组变量

格式:RANGE关系名变量名一个关系可以设多个元组变量-121(6)用存在量词的检索操作条件中使用量词时必须用元组变量[例8]查询选修2号课程的学生名字。RANGESCXGETW(Student.Sname):X(X.Sn

o=Student.Sno∧X.Cno='2')[例9]查询选修了这样课程的学生学号,其直接先行课是6号课程。RANGECourseCXGETW(SC.Sno):CX(CX.Cno=SC.Cno∧CX.Pcno='6')-122用存在量词的检索(续)[

例10]查询至少选修一门其先行课为6号课程的学生名字RANGECourseCXSCSCXGETW(Student.Sname):SCX(SCX.Sno=Student.Sno∧CX(CX.Cno=SCX.

Cno∧CX.Pcno='6'))前束范式形式:GETW(Student.Sname):SCXCX(SCX.Sno=Student.Sno∧CX.Cno=SCX.Cno∧CX.Pcno='6')-123(7)带有多个关系的表达式的检索[例11]查询成绩为90分以上的学生名

字与课程名字。RANGESCSCXGETW(Student.Sname,Course.Cname):SCX(SCX.Grade≥90∧SCX.Sno=Student.Sno∧Course.Cno=SCX.Cno)-124(8)用全称量词的检索[例12]查询不选1

号课程的学生名字RANGESCSCXGETW(Student.Sname):SCX(SCX.Sno≠Student.Sno∨SCX.Cno≠'1')用存在量词表示:RANGESCSCXGETW(Studen

t.Sname):SCX(SCX.Sno=Student.Sno∧SCX.Cno='1')-125(9)用两种量词的检索[例13]查询选修了全部课程的学生姓名。RANGECourseCXSCSCXGE

TW(Student.Sname):CXSCX(SCX.Sno=Student.Sno∧SCX.Cno=CX.Cno)-126(10)用蕴函(Implication)的检索[例14]查询最少选修了200215122学生所选课程的学生学号RANGECous

eCXSCSCXSCSCYGETW(Student.Sno):CX(SCX(SCX.Sno=‗200215122'∧SCX.Cno=CX.Cno)SCY(SCY.Sno=Student.Sno∧SCY.Cno=CX.Cno))-127(11

)聚集函数常用聚集函数(Aggregationfunction)或内部函数(Build-infunction)关系演算中的聚集函数函数名功能COUNT对元组计数TOTAL求总和MAX求最大值MIN求最小值AVG求平均值-128聚集函数(续)[例15]查询学生所在系的数目。G

ETW(COUNT(Student.Sdept))COUNT函数在计数时会自动排除重复值。[例16]查询信息系学生的平均年龄GETW(AVG(Student.Sage):Student.Sdept='IS‘)-129二、更新操作(1)修改操作(2)插

入操作(3)删除操作-130(1)修改操作步骤①用HOLD语句将要修改的元组从数据库中读到工作空间中HOLD工作空间名(表达式1)[:操作条件]HOLD语句是带上并发控制的GET语句②用宿主语言修改工作空间中元组的属性③用UPDATE语句将修改后的元组送回数据库中UPDA

TE工作空间名-131修改操作(续)[例17]把200215121学生从计算机科学系转到信息系。HOLDW(Student.Sno,Student.Sdetp):Student.Sno=‗200215121'(从Student关系中读出95007学生的数据)MOVE'IS'TOW.S

dept(用宿主语言进行修改)UPDATEW(把修改后的元组送回Student关系)-132(2)插入操作步骤①用宿主语言在工作空间中建立新元组②用PUT语句把该元组存入指定关系中PUT工作空间名(关系名)PUT语句只对一个

关系操作,关系演算中的聚集函数-133插入操作(续)[例18]学校新开设了一门2学分的课程‚计算机组织与结构‛,其课程号为8,直接先行课为6号课程。插入该课程元组MOVE'8'TOW.CnoMOVE'计算机组织与结构'

TOW.CnameMOVE'6'TOW.CpnoMOVE'2'TOW.CcreditPUTW(Course)-134(3)删除操作步骤①用HOLD语句把要删除的元组从数据库中读到工作空间中②用DELETE语句删除该元组DELETE工作空间名-135删除操作(续)[例19]2002151

25学生因故退学,删除该学生元组HOLDW(Student):Student.Sno=‗200215125'DELETEW-136删除操作(续)[例20]将学号200215121改为200215126HOLDW(Stude

nt):Student.Sno=‗200215121'DELETEWMOVE‗200215126'TOW.SnoMOVE'李勇'TOW.SnameMOVE'男'TOW.SsexMOVE'20‗TOW.

SageMOVE'CS'TOW.SdeptPUTW(Student)-137删除操作(续)[例21]删除全部学生HOLDW(Student)DELETEW为保证参照完整性,删除Student中元组时相应地要删除SC中的元组HOLDW(SC)DELETEW-138

小结:元组关系演算语言ALPHA检索操作GETGET工作空间名[(定额)](表达式1)[:操作条件][DOWN/UP表达式2]插入操作建立新元组--PUT修改操作HOLD--修改--UPDATE删除操作HOLD--DELETE-139元组关系演算

形式化定义{t|φ(t)}表示所有使谓词φ为真的元组集合t为元组变量•如果元组变量前有‚全称‛()或‚存在‛()量词,则称其为约束变量,否则称为自由变量φ是公式•由原子公式和运算符组成-140元组关

系演算原子公式•R(t):R是关系名,t是元组变量。R(t)表示t是R中的一个元组。于是关系R可表示为{t|R(t)}•t[i]u[j]T和u是元组变量,是算术比较运算符。t[i]u[j]表示元组t的第

i个分量与元组u的第j个分量之间满足比较关系。•t[i]c或ct[i]表示元组t的第i个分量与常量c之间满足比较关系-141元组关系演算公式的递归定义•原子公式是公式•如果φ是公式,那么┑φ也是公式•如果φ1,φ2是公式,则φ1φ2,φ1φ2,φ1φ2也是公式•如

果φ(t)是公式,R是关系,则tR(φ(t))和tR(φ(t))也是公式-142元组关系演算公式的等价性•φ1φ2┑(┑φ1┑φ2)•tR(φ(t))┑tR(┑φ(t))•φ1φ2┑φ1φ2φ1φ2┑φ1φ1φ2φ1φ2φ1φ2┑φ1φ2TTFT

TTTTFFFTFFFTTFTTTFFTFFTT-143元组关系演算ABC123456789ABC123346569RSABC123456{t|R(t)t[A]<5}ABC456789{t|R(t)┑S(t)}-144元组关系演算ABC123346{t|(u)(S(t)R(u)t[C]<

u[B])}ABC456789{t|(u)(R(t)S(U)t[C]<u[A])}R.BS.CR.A534837867897{t|(u)(v)S(v)R(u)u[A]>v[B]t[A]=u[B]t[B]=v[C]t[C]=u[A])}

-145元组关系演算表达式的安全性元组关系演算有可能会产生无限关系,这样的表达式是不安全的如{t|┑(tR)},求所有不在R中的元组引入公式P的域概念,用dom(P)表示dom(P)=显式出现在P中的值+在P中出现的关系的元组中出现的值(不必是最小集)如dom(t|┑(t

R))是R中出现的所有值的集合如果出现在表达式{t|P(t)}结果中的所有值均来自dom(P),则称{t|P(t)}是安全的-146元组关系演算ABA1B1A1B2A2B3dom(┑(tR))={{A1,A2},{B1,B2,B3}}ABA1B3A2B1A2B2R{t

|┑(tR)}-147元组关系演算元组关系演算与关系代数的等价性投影∏A(R)={t|sR(s[A]=t[A])}选择F(A)(R)={t|tRF(t[A])}广义笛卡儿积R(A)S(B)={t|uRsS(t[A]=u[A]

t[B]=s[B])}并RS={t|tRtS}交RS={t|tR┑tS}-148元组关系演算举例例1用元组关系演对学生-课程数据库进行查询。查询信息系统(IS系)全体学生{t|Student(t)t(5)=‘

IS’}查询年龄小于20岁的学生{t|Student(t)t(4)<20}查询学生的姓名和所在系{t(2)|(u)(Student(u)t(1)=u(2)t(2)=u(5))}-149例2设有关

系R和S,写出下列元组表达式的结果A1A2A31a13a54c42b0A1A2A31a17f89e90c5R1={t|R(t)∧¬S(t)}R2={t|R(t)∧t[2]=a}RS-150元组关系演算举例例3R(A,B)是二元关系{t|(u)

(R(t)(R(u)(t[A]≠u[A]t[B]≠u[B])}求R中的那些元组,其中在R中存在与之不同的元组,因此当R中元组个数为0或1时,结果为空;当R中元组个数大于1时,表达式的结果是R本身-1512.5关系演算2.5.1元组关系演算语言ALPHA2.5.2域关系演算语言Q

BE-1522.5.2域关系演算语言QBE一种典型的域关系演算语言由M.M.Zloof提出以元组变量的分量即域变量作为谓词变元的基本对象QBE:QueryByExample基于屏幕表格的查询

语言查询要求:以填写表格的方式构造查询用示例元素(域变量)来表示查询结果可能的情况查询结果:以表格形式显示-153QBE操作框架关系名属性名操作命令元组属性值或查询条件或操作命令-154一、检索

操作1.简单查询[例1]求信息系全体学生的姓名操作步骤为:(1)用户提出要求;(2)屏幕显示空白表格;-155简单查询(续)(3)用户在最左边一栏输入要查询的关系名Student;(4)系统显示该关系的属性名StudentStudentS

noSnameSsexSageSdept-156简单查询(续)(5)用户在上面构造查询要求李勇是示例元素,即域变量(6)屏幕显示查询结果StudentSnoSnameSsexSageSdeptP.李勇ISS

tudentSnoSnameSsexSageSdept李勇张立IS-157构造查询的几个要素示例元素即域变量一定要加下划线示例元素是这个域中可能的一个值,它不必是查询结果中的元素打印操作符P.实际上是显示查询条件可使用比较运算符>,≥,<,≤,=和≠其中=可

以省略-158简单查询(续)[例2]查询全体学生的全部数据StudentSnoSnameSsexSageSdeptP.200215121P.李勇P.男P.20P.CS-159简单查询(续)显示全部数据也可以简单地把P.操作符作用在关系名上。StudentSnoSname

SsexSageSdeptP.-1602.条件查询[例3]求年龄大于19岁的学生的学号StudentSnoSnameSsexSageSdeptP.200215121>19-161条件查询(与条件)[例4]求计算机科学系年龄大于19岁的学生的学号。方法(1

):把两个条件写在同一行上StudentSnoSnameSsexSageSdeptP.200215121>19CS-162条件查询(与条件)方法(2):把两个条件写在不同行上,但使用相同的示例元素值StudentSnoSnameSsexSageSdeptP.200215121P.2002

15121>19CS-163条件查询(与条件)[例5]查询既选修了1号课程又选修了2号课程的学生的学号。ScSnoCnoGradeP.200215121P.20021512112-164条件查询(或条件)[例6]查询计算机科学系或者年

龄大于19岁的学生的学号。StudentSnoSnameSsexSageSdeptP.200215121P.200215122>19CS-165条件查询(多表连接)[例7]查询选修1号课程的学生姓名。St

udentSnoSnameSsexSageSdept200215121P.李勇注意:示例元素Sno是连接属性,其值在两个表中要相同。ScSnoCnoGrade2002151211-166条件查询(非条件)[例8]查询未

选修1号课程的学生姓名StudentSnoSnameSsexSageSdept200215121P.李勇思路:显示学号为200215121的学生名字,而该学生选修1号课程的情况为假ScSnoCnoGrade

2002151211-167条件查询(续)[例9]查询有两个人以上选修的课程号。思路:查询这样的课程1,它不仅被200215121选修而且也被另一个学生(200215121)选修了ScSnoCnoGrade200215121200215

121P.11-1683.聚集函数常用聚集函数:QBE中的聚集函数函数名功能CNT对元组计数SUM求总和AVG求平均值MAX求最大值MIN求最小值-169聚集函数(续)[例10]查询信息系学生的平均年龄。StudentSnoSnameSsexSageSdeptP.AVG.ALL

IS-1704.对查询结果排序升序排序:对查询结果按某个属性值的升序排序,只需在相应列中填入‚AO.‖降序排序:按降序排序则填‚DO.‖多列排序:如果按多列排序,用‚AO(i).‖或‚DO(i).‖表示,其中i为

排序的优先级,i值越小,优先级越高-171对查询结果排序(续)[例11]查全体男生的姓名,要求查询结果按所在系升序排序,对相同系的学生按年龄降序排序。StudentSnoSnameSsexSageSd

eptP.李勇男DO(2).AO(1).-172二、更新操作1.修改操作[例12]把200215121学生的年龄改为18岁。方法(1):将操作符‚U.‖放在值上StudentSnoSnameSsexSageSdept200215121U.18-173修

改操作(续)方法(2):将操作符‚U.‖放在关系上码200215121标明要修改的元组。‚U.‖标明所在的行是修改后的新值。由于主码是不能修改的,所以系统不会混淆要修改的属性。StudentSnoSnameSsexSageSdeptU.20021512118-174修改操作

(续)[例13]把200215121学生的年龄增加1岁操作涉及表达式,必须将操作符‚U.‖放在关系上StudentSnoSnameSsexSageSdeptU.2002151212002151211717+1-175修改操作(续)[例14]将计算机系所有

学生的年龄都增加1岁StudentSnoSnameSsexSageSdeptU.2002151222002151221818+1CS-1762.插入操作[例15]把信息系女生200215701,姓名张三,年龄17岁存入数据

库中。StudentSnoSnameSsexSageSdeptI.200215701张三女17IS-1773.删除操作[例17]删除学生200215089为保证参照完整性,删除200215089学生前,先删除20021

5089学生选修的全部课程StudentSnoSnameSsexSageSdeptD.200215089ScSnoCnoGradeD.200215089-178域关系演算形式化定义{<x1,x2,…,xn>|P(x1,x2,…,xn)}xi代表域变量,P为由原子构成的

公式原子公式•<x1,x2,…,xn>Rxi是域变量或域常量•xy域变量x与域变量y之间满足比较关系•xc域变量x与常量c之间满足比较关系-179域关系演算举例ABC123456789ABC123346569RSABC456ABC1234

56789346R2={<x,y,z>|R(x,y,z)(S(x,y,z)y=4)}R1={<x,y,z>|R(x,y,z)x<5y>3}-180域关系演算举例ABC123456789DE75

48BDA574877847R3={<x,y,z>|(u)(v)(R(z,x,u)W(y,v>)u>v)}RW-181域关系演算举例ABC5b14a61c8ABC5b65d32c4DEF2ad5be4cfRSWR1={XYZ|R(XYZ)∧(Z>5∨

Y=a)}R2={XYZ|R(XYZ)∨S(XYZ)∧X=5∧Z≠6}R3={VYX|(Z)(u)(R(XYZ)∧W(UVT)∧Z>U)}例2:设有关系R、S和W,写出下列域表达式的结果-182关系运算综合举例例3:

R(A,B)是二元关系,求R中的那些元组,其属性列交换后组成的元组仍在R中,请用关系代数、元组表达式、域表达式分别表示。∏1,2(1=42=3(RR)){t|(u)(R(t)R(u)t[A

]=u[B]∧t[B]=u[A])}{<a,b>|R(a,b)R(b,a)}-183第二章关系数据库2.1关系模型概述2.2关系数据结构2.3关系的完整性2.4关系代数2.5关系演算2.6小结-1842.6小结关系数据库系统是目前使用最广泛的数据库系统

关系数据库系统与非关系数据库系统的区别:关系系统只有‚表‛这一种数据结构;非关系数据库系统还有其他数据结构,以及对这些数据结构的操作-185小结(续)关系数据结构关系•域•笛卡尔积•关系–关系,属性,元组–候选码,主码,主属性–基本关系的性质关系模式关系数据库-

186小结(续)关系操作查询•选择、投影、连接、除、并、交、差数据更新•插入、删除、修改-187小结(续)关系的完整性约束实体完整性参照完整性•外码用户定义的完整性-188小结(续)关系数据

语言关系代数语言关系演算语言•元组关系演算语言ALPHA•域关系演算语言QBE

小橙橙
小橙橙
文档分享,欢迎浏览!
  • 文档 25747
  • 被下载 7
  • 被收藏 0
相关资源
广告代码123
若发现您的权益受到侵害,请立即联系客服,我们会尽快为您处理。侵权客服QQ:395972555 (支持时间:9:00-21:00) 公众号
Powered by 太赞文库
×
确认删除?