《数据库技术课件Chapter2关系数据库.pptx》由会员分享,可在线阅读,更多相关《数据库技术课件Chapter2关系数据库.pptx(154页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、数据库系统概论数据库系统概论Principle of Database Systems第二章 关系数据库刘洁2关系数据库简介n美国IBM公司的E.F.Codd于于1970年提出年提出关系数据模型nE.F.Codd,“A Relational Model of Data for Large Shared Data Banks”,Communications of the ACM,Vol.13,No.6,1970,pp.377-387.n提出了关系代数和关系演算的概念n提出了关系的第一、第二、第三范式n奠定了关系数据库的理论基础3第二章 关系数据库n2.1 关系数据结构及形式化定义n2.2 关系操
2、作n2.3 关系的完整性n2.4 关系代数n2.5 关系演算n2.6 小结42.1 关系数据结构及形式化定义n2.1.1 关系n2.1.2 关系模式n2.1.3 关系数据库52.1.1 关系n关系模型的数据结构非常简单,只包含单一的数据结构:关系。n从用户角度,关系模型中数据的逻辑结构是一张二维表n建立在集合代数的基础上6 域(Domain)n域是一组具有相同数据类型的值的集合。例:n自然数n整数n实数n介于某个取值范围的整数n指定长度的字符串集合n男,女72.笛卡尔积(Cartesian Product)n给定一组域D1,D2,Dn,这些域中可以有相同的。nD1,D2,Dn的笛卡尔积为:D1
3、D2Dn(d1,d2,dn)diDi,i1,2,nn所有域的所有取值的一个组合n不能重复8n元组(Tuple)n笛卡尔积中每一个元素(d1,d2,dn)叫作一个n元组(n-tuple)或简称元组(Tuple)n分量(Component)n笛卡尔积元素(d1,d2,dn)中的每一个值di叫作一个分量9笛卡尔积笛卡尔积n基数(Cardinal number)n若Di(i1,2,n)为有限集,其基数为mi(i1,2,n),则D1D2Dn的基数M为:n M=mii=1n10笛卡尔积的表示方法笛卡尔积的表示方法n笛卡尔积可表示为一个二维表n表中的每一行对应一个元组n表中的每一列的值来自一个域11举举 例
4、例n n例如:给出三个域n nD D1 1=SUPERVISOR=SUPERVISOR=张清玫,刘逸张清玫,刘逸 n nD D2 2=SPECIALITY=SPECIALITY=计算机专业,信息专业计算机专业,信息专业 n nD D3 3=POSTGRADUATE=POSTGRADUATE=李勇,刘晨,王敏李勇,刘晨,王敏 1213n nD1,D2,D3的笛卡尔积为:D1D2D3(张张清清玫玫,计计算算机机专专业业,李李勇勇),(张张清清玫玫,计计算算机机专专业业,刘刘晨晨),(张张清清玫玫,计计算算机机专专业业,王王敏敏),(张张清清玫玫,信信息息专专业业,李李勇勇),(张张清清玫玫,信信息
5、息专专业业,刘刘晨晨),(张张清清玫玫,信信息息专专业业,王王敏敏),(刘刘逸逸,计计算算机机专专业业,李李勇勇),(刘刘逸逸,计计算算机机专专业业,刘刘晨晨),(刘刘逸逸,计计算算机机专专业业,王王敏敏),(刘刘逸逸,信信息息专专业业,李李勇勇),(刘刘逸逸,信信息息专专业业,刘刘晨晨),(刘逸,信息专业,王敏刘逸,信息专业,王敏)143.关系(Relation)nD1D2Dn的子集叫做在域D1,D2,Dn上的关系,表示为 R(D1,D2,Dn)nR:关系名nn:关系的目或度(Degree)15n元组n关系中的每个元素是关系中的元组,通常用t表示。n单元关系与二元关系n当n=1时,称该关系为
6、单元关系(Unary relation)或一元关系n当n=2时,称该关系为二元关系(Binary relation)16关系的表示关系的表示n关系也是一个二维表,表的每行对应一个元组,表的每列对应一个域17n属性n关系中不同列可以对应相同的域n为了加以区分,必须对每列起一个名字,称为属性(Attribute)nn目关系必有n个属性18n码n候选码(Candidate key)n若关系中的某一属性组的值能唯一地标识一个元组,则称该属性组为候选码n简单的情况:候选码只包含一个属性n全码(All-key)n最极端的情况:关系模式的所有属性是这个关系模式的候选码,称为全码(All-key)19n主码n
7、若一个关系有多个候选码,则选定其中一个为主码(Primary key)n主属性n候选码的诸属性称为主属性(Prime attribute)n不包含在任何侯选码中的属性称为非主属性(Non-Prime attribute)或非码属性(Non-key attribute)20nD1,D2,Dn的笛卡尔积的某个子集才有实际含义。n关系:SAP(SUPERVISOR,SPECIALITY,POSTGRADUATE)n假设:导师与专业:1:1,导师与研究生:1:nn主码:POSTGRADUATE(假设研究生不会重名)nSAP关系可以包含三个元组n(张清玫,计算机专业,李勇),n(张清玫,计算机专业,刘晨
8、),n(刘逸,信息专业,王敏)21三类关系三类关系n基本关系(基本表或基表)n实际存在的表n实际存储数据的逻辑表示n查询表n查询结果对应的表n视图表n由基本表或其他视图表导出的表,是虚表,不对应实际存储的数据22基本关系的性质基本关系的性质n列是同质的(Homogeneous)n不同的列可出自同一个域n其中的每一列称为一个属性n不同的属性要给予不同的属性名n列的顺序无所谓,列的次序可以任意交换n任意两个元组的候选码不能相同n行的顺序无所谓,行的次序可以任意交换n分量必须取原子值,即每一个分量都必须是不可分的数据项。232.1.2 关系模式n什么是关系模式n定义关系模式n关系模式与关系241什么
9、是关系模式n关系模式(Relation Schema)是型n关系是值n关系模式是对关系的描述n元组集合的结构n属性构成n属性来自的域n属性与域之间的映像关系n元组语义以及完整性约束条件n属性间的数据依赖关系集合252定义关系模式n关系模式可以形式化地表示为:R(U,D,DOM,F)nR 关系名nU 组成该关系的属性名集合nD 属性组U中属性所来自的域nDOM 属性向域的映像集合nF 属性间数据的依赖关系集合26定义关系模式n关系模式通常可以简记为R(U)或R(A1,A2,An)nR:关系名nA1,A2,An:属性名n注:域名及属性向域的映像常常直接说明为属性的类型、长度273.关系模式与关系n
10、关系模式n对关系的描述n静态的、稳定的n关系n关系模式在某一时刻的状态或内容n动态的、随时间不断变化的n关系模式和关系往往统称为关系n通过上下文加以区别282.1.3 关系数据库n在一个给定的应用领域中,所有实体及实体之间联系的关系的集合构成一个关系数据库。292.关系数据库的型与值n关系数据库的型n关系数据库模式,是对关系数据库的描述。n关系数据库模式包括:n若干域的定义n在这些域上定义的若干关系模式n关系数据库的值n关系模式在某一时刻对应的关系的集合,简称为关系数据库30第二章 关系数据库n2.1 关系模型概述n2.2 关系操作n2.3 关系的完整性n2.4 关系代数n2.5 关系演算n2
11、.6 小结312.2.1 基本的关系操作n常用的关系操作n查询:选择(Select)、投影(Project)、连接(Join)、除(Divide)、并(Union)、差(Except)、交(Intersection)、笛卡尔积(Cartesian Product)n数据更新:插入、删除、修改n查询的表达能力是其中最主要的部分n选择、投影、并、差、笛卡尔积是5种基本操作n关系操作的特点n集合操作方式:操作的对象和结果都是集合,一次一集合(set-at-a-time)的方式。322.2.2 关系数据库语言的分类n关系代数语言(e.g.ISBL)n用对关系的运算来表达查询要求n关系演算语言:用谓词来
12、表达查询要求n元组关系演算语言(e.g.ALPHA,QUEL)n域关系演算语言(e.g.QBE)n具有关系代数和关系演算双重特点的语言n代表:SQL(Structured Query Language)33第二章 关系数据库n2.1 关系模型概述n2.2 关系操作n2.3 关系的完整性n2.4 关系代数n2.5 关系演算n2.6 小结342.3 关系的完整性n2.3.1 关系的三类完整性约束n2.3.2 实体完整性(Entity Integrity)n2.3.3 参照完整性(Referential Integrity)n2.3.4 用户定义的完整性(User-defined Integrity
13、)352.3.1 关系的三类完整性约束n实体完整性和参照完整性n关系模型必须满足的完整性约束条件n称作关系的两个不变性n应该由关系系统自动支持n用户定义的完整性n应用领域需要遵循的约束条件n体现了具体领域中的语义约束362.3.2 实体完整性n实体完整性规则(Entity Integrity)n若属性若属性(指一个或一组属性指一个或一组属性)A是基本关系是基本关系R的主属性,则的主属性,则A不能取空值不能取空值n例:nSAP(SUPERVISOR,SPECIALITY,POSTGRADUATE)nPOSTGRADUATE是主码(假设研究生不会重名),不能取空值37实体完整性规则的说明(1)实体
14、完整性规则是针对基本关系而言的。一个基本表通常对应现实世界的一个实体集。(2)现实世界中的实体是可区分的,即它们具有某种唯一标识。(3)关系模型中以主码作为唯一标识(4)主码中的属性即主属性不能取空值。如果主属性取空值,就说明存在某个不可标识的实体,即存在不可区分的实体,这与第(2)点相矛盾,因此这个规则称为实体完整性382.3.3 参照完整性n关系间的引用n外码n参照完整性规则391.关系间的引用n在关系模型中实体及实体间的联系都是用关系来描述的,因此可能存在着关系与关系间的引用。n例1.学生实体,专业实体n学生(学号,姓名,性别,专业号,年龄)n专业(专业号,专业名)n学生关系中的“专业号
15、”的取值需要参照专业关系的专业号取值。40关系间的引用n例2.学生、课程、学生与课程之间的多对多联系n学生(学号,姓名,性别,专业号,年龄)n课程(课程号,课程名,学分)n选修(学号,课程号,成绩)41关系间的引用n n例例3.3.学生实体及其内部的一对多联系n学生(学号学号,姓名,性别,专业号,年龄,班长班长)n“学号”是主码,“班长”是外码,它引用了本关系的“学号”属性n“班长”必须是确实存在的学生的学号422外码(Foreign Key)n设F是基本关系R的一个或一组属性,但不是关系R的码。如果F与基本关系S的主码Ks相对应,则称F是基本关系R的外码n基本关系R 称为参照关系(Refer
16、encing Relation)n基本关系S 称为被参照关系(Referenced Relation)或目标关系(Target Relation)43n n例1:学生关系的“专业号”与专业关系的主码“专业号”相对应n“专业号”属性是学生关系的外码n专业关系是被参照关系n学生关系是参照关系学生关系专业关系专业号44n例2:选修关系的“学号”与学生关系的主码“学号”相对应n选修关系的“课程号”与课程关系的主码“课程号”相对应n“学号”和“课程号”是选修关系的外码n学生关系和课程关系均为被参照关系n选修关系为参照关系选修关系课程关系学生关系课程号学号45n例3:“班长”与本身的主码“学号”相对应n“
17、班长”是外码n学生关系既是参照关系也是被参照关系学生关系学号46外码外码n关系R和S不一定是不同的关系n目标关系S的主码Ks和参照关系R的外码F必须定义在同一个(或一组)域上n外码并不一定要与相应的主码同名n当外码与相应的主码属于不同关系时,往往取相同的名字,以便于识别473.参照完整性规则n若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码Ks相对应(基本关系R和S不一定是不同的关系),则对于R中每个元组在F上的值必须为:n或者取空值(F的每个属性值均为空值)n或者等于S中某个元组的主码值48参照完整性规则n n例1:学生关系中每个元组的“专业号”属性只能取两类值:n空值,表示尚未
18、给该学生分配专业n非空值,这时该值必须是专业关系中某个元组的“专业号”值,表示该学生不可能分配一个不存在的专业49参照完整性规则n n例2:选修(学号,课程号,成绩)n“学号”和“课程号”可能的取值:n选修关系中的主属性,不能取空值n只能取相应被参照关系中已经存在的主码值50参照完整性规则n例3:学生(学号,姓名,性别,专业号,年龄,班长)n“班长”属性值可以取两类值:n空值,表示该学生所在班级尚未选出班长n非空值,该值必须是本关系中某个元组的学号值512.3.4 用户定义的完整性n针对某一具体关系数据库的约束条件,反映某一具体应用所涉及的数据必须满足的语义要求n关系模型应提供定义和检验这类完
19、整性的机制,以便用统一的系统的方法处理它们,而不要由应用程序承担这一功能52用户定义的完整性n n例:课程(课程号,课程名,学分)n非主属性“课程名”也不能取空值n“学分”属性只能取值1,2,3,453第二章 关系数据库n2.1 关系模型概述n2.2 关系操作n2.3 关系的完整性n2.4 关系代数n2.5 关系演算n2.6 小结542.4 关系代数n概述n传统的集合运算n专门的关系运算55关系代数运算符关系代数运算符(Page 52)n n集合运算符n n(并并),(差差),(交交),(笛卡尔积笛卡尔积)n n专门的关系运算符n n(选择选择),(投影投影),(连接连接),(除除)n n比较
20、运算符n n(大于大于),(大于等于大于等于),(小于小于),(小于等于小于等于),=(=(等于等于),(不等于不等于)n n逻辑运算符n n(非非),(与与),(或或)562.4.1 传统的集合运算n n1.并(Union)n关系R和S具有相同的目n(即两个关系都有n个属性),相应的属性取自同一个域n结果仍为n目关系,由属于R或属于S的元组组成nR S=t|t R t S 571.并并(Union)582.差(Except)nR和Sn具有相同的目nn相应的属性取自同一个域nR-Sn结果仍为n目关系,由属于R而不属于S的所有元组组成nR-S=t|tR t S 59差差603.交(Interse
21、ction)nR和Sn具有相同的目nn相应的属性取自同一个域nRSn仍为n目关系,由既属于R又属于S的元组组成nRS=t|t R t S nRS=R (R-S)61交交624.笛卡尔积(Cartesian Product)n严格地讲应该是广义的笛卡尔积(Extended Cartesian Product)nR:n目关系,k1个元组nS:m目关系,k2个元组nRSn列:(n+m)列元组的集合n元组的前n列是关系R的一个元组n后m列是关系S的一个元组n行:k1k2个元组nRS=tr ts|tr R ts S 63笛卡尔积笛卡尔积642.4.2 专门的关系运算(选择、投影、连接、除运算)nR,tR
22、,tAin设关系模式为R(A1,A2,An)n它的一个关系设为RntR表示t是R的一个元组ntAi则表示元组t中属性Ai上的一个分量65nA,tA,n若A=Ai1,Ai2,Aik,其中Ai1,Ai2,Aik是A1,A2,An中的一部分,则A称为属性列或属性组。ntA=(tAi1,tAi2,tAik)表示元组t在属性列A上诸分量的集合。n 则表示A1,A2,An中去掉Ai1,Ai2,Aik后剩余的属性组。AA66nR为n目关系,S为m目关系ntr R,tsS,称为元组的连接(Concatenation)n 是一个n+m列的元组,前n个分量为R中的一个n元组,后m个分量为S中的一个m元组。trts
23、trtstrts67n象集(Image Set)ZXn给定一个关系R(X,Z),X和Z为属性组。n当tX=x时,x在R中的象集为:nZx=t Z|t R,tX=xn它表示R中属性组X上值为x的诸元组在Z上分量的集合。68象集举例象集举例(Page 55)nx1在R中的象集nZx1=Z1,Z2,Z3nx2在R中的象集nZx2=Z2,Z3nx3在R中的象集nZx3=Z1,Z369专门的关系运算n选择n投影n连接n除701.选择(Selection)n选择又称为限制(Restriction)n选择运算符的含义(Semantics)n在关系R中选择满足给定条件的诸元组nSyntaxnF(R)=t|tR
24、F(t)=真nF表示选择条件,它是一个逻辑表达式,取逻辑值“真”或“假”。n逻辑表达式F的基本形式为:X1Y1,其中表示比较运算符,X1,Y1是属性名。71n选择运算是从关系R中选取使逻辑表达式F为真的元组,是从行的角度进行的运算t1t2t3t4t5t6t7t1t3t5t772选择选择n n例1.查询信息系(IS系)全体学生nSdept=IS(Student)n5=IS(Student)73选择选择n例2.查询年龄小于20岁的学生nSage20(Student)n或420(Student)742.投影(Projection)n投影运算符的含义(Semantics)n从R中选择出若干属性列组成新
25、的关系nSyntaxnA(R)=tA|t R,其中A为R中的属性列75投影投影n投影操作主要是从列的角度进行运算n但投影之后不仅取消了原关系中的某些列,而且还可能取消某些元组(避免重复行)76投影投影n例3.查询学生的姓名和所在系ni.e.,求Student关系上学生姓名和所在系两个属性上的投影77Sname,Sdept(Student)或2,5(Student)78投影投影n查询学生关系Student中都有哪些系nSdept(Student)793.连接 (Join)n连接也称为连接n连接运算的含义(Semantics)n从两个关系的笛卡尔积中选取属性间满足一定条件的元组nSyntaxnA和
26、B:分别为R和S上度数相等且可比的属性组n:比较运算符n连接运算从R和S的笛卡尔积RS中选取R关系在A属性组上的值与S关系在B属性组上值满足比较关系的元组。80两类常用连接运算n等值连接(Equijoin)n为“”的连接运算称为等值连接nSemanticsn从关系R与S的广义笛卡尔积中选取A,B属性值相等的那些元组。nSyntax81自然连接(Natural join)n自然连接是一种特殊的等值连接n两个关系中进行比较的分量必须是相同的属性组n在结果中把重复的属性列去掉n自然连接的含义(Semantics)nR和S具有相同的属性组BnSyntaxn一般的连接操作是从行的角度进行运算。自然连接还
27、需要取消重复列,所以是同时从行和列的角度进行运算。82举例举例(Page 58)83等值连接等值连接84自然连接自然连接85n外连接n如果把舍弃的元组也保存在结果关系中,而在其他属性上填空值(Null),这种连接就叫做外连接(OUTER JOIN)。n左外连接n如果只把左边关系R中要舍弃的元组保留就叫做左外连接(LEFT OUTER JOIN或LEFT JOIN)n右外连接n如果只把右边关系S中要舍弃的元组保留就叫做右外连接(RIGHT OUTER JOIN或RIGHT JOIN)。86外连接运算举例外连接运算举例(Page 59)874.除(Division)n给定关系R(X,Y)和S(Y,
28、Z),其中X,Y,Z为属性组。nR中的Y与S中的Y可以有不同的属性名,但必须出自相同的域集。nSemanticsnR与S的除运算得到一个新的关系P(X)nP是R中满足下列条件的元组在X 属性列上的投影:n元组在X上分量值x的象集Yx包含S在Y上投影的集合nSyntaxnRS=trX|trR Y(S)Yx,Yx为x在R中的象集,x=trXn除操作是同时从行和列角度进行运算88除运算举例除运算举例(Page 59)89n在关系R中,A可以取四个值a1,a2,a3,a4na1的象集为(b1,c2),(b2,c3),(b2,c1)na2的象集为(b3,c7),(b2,c3)na3的象集为(b4,c6)
29、na4的象集为(b6,c6)nS在(B,C)上的投影为n(b1,c2),(b2,c1),(b2,c3)n只有a1的象集包含了S在(B,C)属性组上的投影n所以RS=a1905综合举例n以学生-课程数据库为例n例7.查询至少选修1号课程和3号课程的学生号码n首先建立一个临时关系Kn然后求:Sno,Cno(SC)K91200215121象集1,2,3200215122象集2,3K=1,3于是:Sno,Cno(SC)K=20021512192n n例8.查询选修了2号课程的学生的学号。93n例9.查询至少选修了一门其直接先行课为5号课程的学生姓名94n例10.查询选修了全部课程的学生号码和姓名。95
30、关系代数运算小结n关系代数运算n并、差、交、笛卡尔积、投影、选择、连接、除n5种基本运算n选择、投影、并、差、笛卡尔积n交、连接、除n可以用5种基本运算来表达n引进它们并不增加语言的能力,但可以简化表达n关系代数表达式n关系代数运算经有限次复合后形成的式子96第二章 关系数据库n2.1 关系模型概述n2.2 关系操作n2.3 关系的完整性n2.4 关系代数n2.5 关系演算n2.6 小结972.5 关系演算n以数理逻辑中的谓词演算为基础n按谓词变元不同进行分类n元组关系演算n以元组变量作为谓词变元的基本对象n元组关系演算语言ALPHAn域关系演算n以域变量(元组变量的分量)作为谓词变元的基本对
31、象n域关系演算语言QBE982.5.1 元组关系演算语言ALPHAn由E.F.Codd提出nINGRES最初所用的QUEL语言是参照ALPHA语言研制的n语句n检索语句nGETn更新语句nPUT,HOLD,UPDATE,DELETE,DROP99nALPHA 语句的基本格式n n操作语句 工作空间名(表达式):操作条件n n表达式:用于说明要查询的结果n n操作条件:逻辑表达式,说明查询结果要满足的条件n n排序要求n n定额要求100(1)简单检索简单检索(不带条件的检索不带条件的检索)nGET 工作空间名(表达式1)n例1.查询所有被选修的课程号码。nGET W(SC.Cno)n例2.查询
32、所有学生的数据。nGET W(Student)101(2)限定的检索(带条件的检索)n格式nGET 工作空间名(表达式1):操作条件n例3.查询信息系(IS)中年龄小于20岁的学生的学号和年龄nGET W(Student.Sno,Student.Sage):Student.Sdept=ISStudent.Sage20102(3)带排序的检索n格式nGET 工作空间名(表达式1):操作条件 DOWN/UP 表达式2n例4.查询计算机科学系(CS)学生的学号、年龄,结果按年龄降序排序nGET W(Student.Sno,Student.Sage):Student.Sdept=CS DOWN Stu
33、dent.Sage103(4)带定额的检索n格式nGET 工作空间名(定额)(表达式1):操作条件 DOWN/UP 表达式2n例5.取出一个信息系学生的学号nGET W(1)(Student.Sno):Student.Sdept=ISn例6.查询信息系年龄最大的三个学生的学号及其年龄,结果按年龄降序排序nGET W(3)(Student.Sno,Student.Sage):Student.Sdept=IS DOWN Student.Sage104(5)用元组变量的检索n元组变量的含义n表示可以在某一关系范围内变化(也称为范围变量 Range Variable)n元组变量的用途n简化关系名:设一
34、个较短名字的元组变量来代替较长的关系名。n操作条件中使用量词时必须用元组变量。n定义元组变量n格式:RANGE 关系名 变量名n一个关系可以设多个元组变量105n n例7.查询信息系学生的名字n nRANGERANGE Student X Student Xn nGET W(X.Sname)GET W(X.Sname):X.Sdept=ISX.Sdept=IS106(6)用存在量词的检索n操作条件中使用量词时必须用元组变量n例8.查询选修2号课程的学生名字nRANGE SC X GET W(Student.Sname):X(X.Sno=Student.SnoX.Cno=2)n例9.查询选修了这
35、样课程的学生学号,其直接先行课是6号课程nRANGE Course CX GET W(SC.Sno):CX(CX.Cno=SC.CnoCX.Pcno=6)107n例10.查询至少选修一门其先行课为6号课程的学生名字nRANGE Course CX SC SCXnGET W(Student.Sname):SCX (SCX.Sno=Student.SnoCX(CX.Cno=SCX.CnoCX.Pcno=6)n前束范式形式nGET W(Student.Sname):SCX CX(SCX.Sno=Student.Sno CX.Cno=SCX.CnoCX.Pcno=6)108(7)带有多个关系的表达式的
36、检索n例11.查询成绩为90分以上的学生名字与课程名字。109(8)用全称量词的检索n例12.查询不选1号课程的学生名字110(9)用两种量词的检索n例13.查询选修了全部课程的学生姓名。nRANGE Course CX SC SCX GET W(Student.Sname):CX SCX(SCX.Sno=Student.Sno SCX.Cno=CX.Cno)111(10)用蕴函(Implication)的检索n例14.查询最少选修了200215122学生所选课程的学生学号112(11)聚集函数n关系演算中常用的聚集函数(Aggregation function)或内部函数(Building
37、function)113聚集函数举例n例15.查询学生所在系的数目nGET W(COUNT(Student.Sdept)nCOUNT函数在计数时会自动排除重复值。n例16.查询信息系学生的平均年龄nGET W(AVG(Student.Sage):Student.Sdept=IS)114二、更新操作n修改操作n插入操作n删除操作115(1)修改操作步骤n用HOLD语句将要修改的元组从数据库中读到工作空间中nHOLD 工作空间名(表达式1):操作条件nHOLD语句是带上并发控制的GET语句n用宿主语言(高级程序设计语言)修改工作空间中元组的属性值n用UPDATE语句将修改后的元组送回数据库中nUP
38、DATE 工作空间名116修改操作举例n例17.把95007学生从计算机科学系转到信息系nHOLD W(Student.Sno,Student.Sdetp):Student.Sno=95007nMOVE IS TO W.SdeptnUPDATE W从Student关系中读出95007学生的数据用宿主语言进行修改把修改后的元组送回Student关系117(2)插入操作步骤n用宿主语言在工作空间中建立新元组n用PUT语句把该元组存入指定的关系中nPUT 工作空间名(关系名)nPUT语句只对一个关系操作118插入操作举例举例n例18.学校新开设了一门2学分的课程“计算机组织与结构”,其课程号为8,直
39、接先行课为6号课程。插入该课程元组nMOVE 8 TO W.CnonMOVE 计算机组织与结构 TO W.CnamenMOVE 6 TO W.CpnonMOVE 2 TO W.CcreditnPUT W(Course)119(3)删除操作步骤n用HOLD语句把要删除的元组从数据库中读到工作空间中n用DELETE语句删除该元组nDELETE 工作空间名120删除操作举例删除操作举例n例19.200215125学生因故退学,删除该学生元组nHOLD W(Student):Student.Sno=200215125nDELETE W121n例20.将学号95001改为95102nHOLD W(Stu
40、dent):Student.Sno=95001nDELETE WnMOVE 95102 TO W.SnonMOVE 李勇 TO W.SnamenMOVE 男 TO W.SsexnMOVE 20 TO W.SagenMOVE CS TO W.SdeptnPUT W(Student)122n例21.删除全部学生nHOLD W(Student)nDELETE Wn为保证参照完整性,删除Student中元组时相应地要删除SC中的元组nHOLD W(SC)nDELETE W123元组关系演算语言ALPHA小结小结n检索操作GETnGET 工作空间名(定额)(表达式1):操作条件 DOWN/UP 表达式2
41、n插入操作n建立新元组 PUTn修改操作nHOLD 修改 UPDATEn删除操作nHOLD DELETE1242.5.2 域关系演算语言QBEn以元组变量的分量即域变量作为谓词变元的基本对象n由M.M.Zloof提出nQBE(Query By Example)n基于屏幕表格的查询语言n查询要求:以填写表格的方式构造查询n用示例元素(域变量)来表示查询结果可能的情况n查询结果:以表格形式显示125QBE操作框架126一、检索操作n简单查询n例1.求信息系全体学生的姓名n操作步骤为:n用户提出要求n屏幕显示空白表格127n用户在最左边一栏输入要查询的关系名Studentn系统显示该关系的属性名12
42、8n用户在上面构造查询要求n屏幕显示查询结果李勇是示例元素,即域变量129构造查询的几个要素n示例元素即域变量一定要加下划线n示例元素是这个域中可能的一个值,它不必是查询结果中的元素n打印操作符P.表示打印(Print),实际是显示n查询条件n可使用比较运算符,和n其中可以省略130简单查询n例2.查询全体学生的全部数据n显示全部数据也可以简单地把P.操作符作用在关系名上。1312.条件查询n例3.求年龄大于19岁的学生的学号132条件查询(与条件)n例4.求计算机科学系年龄大于19岁的学生的学号。n方法(1):把两个条件写在同一行上133条件查询(与条件)n方法(2):把两个条件写在不同行上
43、,但使用相同的示例元素值134条件查询(与条件)n例5.查询既选修了1号课程又选修了2号课程的学生的学号。135条件查询(或条件)n例6.查询计算机科学系或者年龄大于19岁的学生的学号。136条件查询(多表连接)n例7.查询选修1号课程的学生姓名。示例元素Sno是连接属性,其值在两个表中要相同。137条件查询(非条件)n例8.查询未选修1号课程的学生姓名138条件查询n例9.查询有两个人以上选修的课程号1393.QBE中的中的聚集函数140聚集函数n例10.查询信息系学生的平均年龄1414.对查询结果排序n升序排序n对查询结果按某个属性值的升序排序,只需在相应列中填入“AO.”n降序排序n按降
44、序排序则填“DO.”n多列排序n如果按多列排序,用“AO(i).”或“DO(i).”表示,其中i为排序的优先级,i值越小,优先级越高142n例11.查全体男生的姓名,要求查询结果按所在系升序排序,对相同系的学生按年龄降序排序。143二、更新操作n修改操作n例12.把200215121学生的年龄改为18岁n方法(1):将操作符“U.”放在值上144n方法(2):将操作符“U.”放在关系上n码200215121标明要修改的元组。n“U.”标明所在的行是修改后的新值。n由于主码是不能修改的,所以系统不会混淆要修改的属性。145n例13.把200215121学生的年龄增加1岁146n例14.将计算机系
45、所有学生的年龄都增加1岁修改前的示例元素修改后的示例元素1472.插入操作n例15.把信息系女生200215701,姓名张三,年龄17岁存入数据库中。1483.删除操作n例17.删除学生200215089n为保证参照完整性,删除200215089学生前,先删除200215089学生选修的全部课程149第二章 关系数据库n2.1 关系模型概述n2.2 关系操作n2.3 关系的完整性n2.4 关系代数n2.5 关系演算n2.6 小结1502.6 小结n关系数据库系统是目前使用最广泛的数据库系统n关系数据库系统与非关系数据库系统的区别n关系系统只有“表”这一种数据结构n非关系数据库系统还有其他数据结构151n关系数据结构n关系n域n笛卡尔积n关系n关系,属性,元组n候选码,主码,主属性n基本关系的性质n关系模式n关系数据库152n关系操作n查询n选择、投影、连接、除、并、交、差n数据更新n插入、删除、修改153n关系的完整性约束n实体完整性n参照完整性n用户定义的完整性154n关系数据语言n关系代数语言n关系演算语言n元组关系演算语言ALPHAn域关系演算语言QBE