数据库系统概念关系模型总结.ppt_第1页
数据库系统概念关系模型总结.ppt_第2页
数据库系统概念关系模型总结.ppt_第3页
数据库系统概念关系模型总结.ppt_第4页
数据库系统概念关系模型总结.ppt_第5页
免费预览已结束,剩余105页可下载查看

下载本文档

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

文档简介

关系模型,2020年6月11日星期四,2,数据库系统概念-关系模型,提纲,2.1关系数据库的结构2.2关系代数基本运算2.3附加的关系代数运算2.4扩展的关系代数运算2.5空值2.6数据库的修改本章之后讲解5.1:元组关系演算Chapter3-4:sql,2020年6月11日星期四,3,数据库系统概念-关系模型,关系模型回顾,E.F.Codd于70年代初提出关系数据理论,他因此获得1981年的ACM图灵奖关系理论是建立在集合代数理论基础上的,有着坚实的数学基础早期代表系统System:由IBM研制INGRES:由加州Berkeley分校研制目前主流的商业数据库系统Oracle,SQLServer,DB2Access,Foxpro,Foxbase,2020年6月11日星期四,4,数据库系统概念-关系模型,2.1.1关系数据结构,单一的数据结构-关系现实世界的实体以及实体间的各种联系均用关系来表示数据的逻辑结构-二维表从用户角度,关系模型中数据的逻辑结构是一张二维表,2020年6月11日星期四,5,数据库系统概念-关系模型,2.1.1关系基本概念,域(Domain)一组值的集合,这组值具有相同的数据类型如整数的集合、字符串的集合、全体学生的集合笛卡尔积(CartesianProduct)一组域D1,D2,Dn的笛卡尔积为:D1D2Dn=(d1,d2,dn)|diDi,i=1,n笛卡尔积的每个元素(d1,d2,dn)称作一个n-元组(n-tuple)元组的每一个值di叫做一个分量(component)若Di的基数为mi,则笛卡尔积的基数为,2020年6月11日星期四,6,数据库系统概念-关系模型,2.1.1关系基本概念,例:设D1为教师集合(T)=t1,t2D2为学生集合(S)=s1,s2,s3D3为课程集合(C)=c1,c2则D1D2D3是个三元组集合,元组个数为232,是所有可能的(教师,学生,课程)元组集合笛卡尔积可表示为二维表的形式,2020年6月11日星期四,7,数据库系统概念-关系模型,2.1.1关系基本概念,关系笛卡尔积D1D2Dn的子集叫做在域D1,D2,Dn上的关系,用R(D1,D2,Dn)表示R是关系的名字,n是关系的度或目关系是笛卡尔积中有意义的子集关系也可以表示为二维表关系TEACH(T,S,C),元组,属性,2020年6月11日星期四,8,数据库系统概念-关系模型,2.1.1关系基本概念,关系的性质列是同质的即每一列中的分量来自同一域,是同一类型的数据如TEACH(T,S,C)=(t1,s1,c1),(t1,t2,c1)是错误的不同的列可来自同一域,每列必须有不同的属性名如P=t1,t2,s1,s2,s3,C=c1,c2,则TEACH不能写成TEACH(P,P,C),还应写成TEACH(T,S,C),2020年6月11日星期四,9,数据库系统概念-关系模型,2.1.1关系基本概念,行列的顺序无关紧要遵循这一性质的数据库产品(如ORACLE),增加新属性时,永远是插至最后一列但也有许多数据库产品没有遵循这一性质,例如FoxPro仍然区分了属性顺序任意两个元组不能完全相同(集合内不能有相同的两个元素)由笛卡尔积的性质决定,但许多关系数据库产品没有遵循这一性质例如,Oracle,FoxPro等都允许关系表中存在两个完全相同的元组,除非用户特别定义了相应的约束条件,2020年6月11日星期四,10,数据库系统概念-关系模型,2.1.1关系基本概念,每一分量必须是不可再分的数据。满足这一条件的关系称作满足第一范式(1NF)的,2020年6月11日星期四,11,数据库系统概念-关系模型,2.1.2数据库模式DBschema,关系的模式和实例关系模式(型),关系(变量),实例(值)表述方式关系模式:S(sno,sname,dept)关系及关系模式:scSC不同关系中属性名称相同,用以阐述不同关系的元组之间的联系,2020年6月11日星期四,12,数据库系统概念-关系模型,2.1.2数据库模式,关系模式表现了型的概念,它代表着表的框架;关系表现为值的概念,成为关系实例一个关系模式下可以建立多个关系,例如在学生关系的关系模式下,可以为全校所有班级各建一个学生表表是动态的,是数据库中数据的快照关系数据库是关系的集合,其中每个关系都有自己的关系模式,2020年6月11日星期四,13,数据库系统概念-关系模型,2.1.2模式构造问题,S同SC合并为一个表如何?优点:表的数量少缺点:数据冗余、被迫引入空值、插入异常、删除异常模式构造的方法和原则,2020年6月11日星期四,14,数据库系统概念-关系模型,2.1.2模式构造问题,银行例子,2020年6月11日星期四,15,数据库系统概念-关系模型,2.1.2模式构造问题,2020年6月11日星期四,16,数据库系统概念-关系模型,其他可能的模式,优点:表的数量少缺点:数据冗余、被迫引入空值、插入异常、删除异常,2020年6月11日星期四,17,数据库系统概念-关系模型,2.1.3码,超码(superkey)是一个或多个属性的集合,这些属性的集合可以使我们在一个关系中唯一地标识一个元组候选码(CandidateKey)关系中的一个属性组,其值能唯一标识一个元组。若从属性组中去掉任何一个属性,它就不具有这一性质了,这样的属性组称作候选码,如DEPT中的D#,DN都可作为候选码任何一个候选码中的属性称作主属性,如SC中的S#,C#,2020年6月11日星期四,18,数据库系统概念-关系模型,2.1.3码,主码(PrimaryKey)进行数据库设计时,从一个关系的多个候选码中选定一个作为主码,如可选定D#作为DEPT的主码外部码(ForeignKey)关系R中的一个属性组,它不是R的码,但它与另一个关系S的码相对应,则称这个属性组为R的外部码,如S关系中的D#属性R是参照关系(ReferencingRelation)S是被参照关系(ReferencedRelation)R通过外码F参照关系S如何确定超码按照现实世界语义约束定义码不能依据对数据的归纳总结定义码,2020年6月11日星期四,19,数据库系统概念-关系模型,模式图schemadiagram,模式图表示各关系模式属性主码关系引用,2020年6月11日星期四,20,数据库系统概念-关系模型,我们常用的例子,数据结构单一的数据结构关系实体集、联系都表示成关系,DEPT(D#,DN,DEAN)S(S#,SN,SEX,AGE,D#)C(C#,CN,PC#,CREDIT)SC(S#,C#,SCORE)PROF(P#,PN,D#,SAL),2020年6月11日星期四,21,数据库系统概念-关系模型,关系模型,2020年6月11日星期四,22,数据库系统概念-关系模型,例子,SSC,2020年6月11日星期四,23,数据库系统概念-关系模型,关系模式的完整性,实体完整性关系的主码中的属性值不能为空值空值:不知道或无意义意义:关系对应到现实世界中的实体集,元组对应到实体,实体是相互可区分的,通过主码来唯一标识,若主码为空,则出现不可标识的实体,这是不容许的,2020年6月11日星期四,24,数据库系统概念-关系模型,关系模式的完整性,关系模型必须遵守实体完整性规则的原因实体完整性规则是针对基本关系而言的。一个基本表通常对应现实世界的一个实体集或多对多联系现实世界中的实体和实体间的联系都是可区分的,即它们具有某种唯一性标识相应地,关系模型中以主码作为唯一性标识主码中的属性即主属性不能取空值空值就是“不知道”或“无意义”的值主属性取空值,就说明存在某个不可标识的实体,即存在不可区分的实体,这与实体的可区分性相矛盾,因此这个规则称为实体完整性,2020年6月11日星期四,25,数据库系统概念-关系模型,关系模式的完整性,注意实体完整性规则规定基本关系的所有主属性都不能取空值例选修(学号,课程号,成绩)“学号、课程号”为主码,则两个属性都不能取空值。,2020年6月11日星期四,26,数据库系统概念-关系模型,关系模式的完整性,参照完整性(ReferentialIntegrity)在关系模型中实体及实体间的联系都是用关系来描述的,因此可能存在着关系与关系间的引用例1学生实体、专业实体以及专业与学生间的一对多联系学生(学号,姓名,性别,院系编号,年龄)专业(院系编号,专业名),2020年6月11日星期四,27,数据库系统概念-关系模型,关系模式的完整性,参照完整性如果关系R2的外部码Fk与关系R1的主码Pk相对应,则R2中的每一个元组的Fk值或者等于R1中某个元组的Pk值,或者为空值意义:如果关系R2的某个元组t2参照了关系R1的某个元组t1,则t1必须存在例如关系S在D#上的取值有两种可能空值,表示该学生尚未分到任何系中若非空值,则必须是DEPT关系中某个元组的D#值,表示该学生不可能分到一个不存在的系中,2020年6月11日星期四,28,数据库系统概念-关系模型,关系模式的完整性,2020年6月11日星期四,29,数据库系统概念-关系模型,关系模式的完整性,学生、课程、学生与课程之间的多对多联系学生(学号,姓名,性别,专业号,年龄)课程(课程号,课程名,学分)选修(学号,课程号,成绩),2020年6月11日星期四,30,数据库系统概念-关系模型,关系模式的完整性,学生实体及其内部的领导联系(一对多),2020年6月11日星期四,31,数据库系统概念-关系模型,关系模式的完整性,用户定义的完整性用户针对具体的应用环境定义的完整性约束条件如S#要求是8位整数,SEX要求取值为“男”或“女”系统支持实体完整性和参照完整性由系统自动支持系统应提供定义和检验用户定义的完整性的机制,2020年6月11日星期四,32,数据库系统概念-关系模型,关系模式的完整性,课程(课程号,课程名,学分)“课程名”属性必须取唯一值非主属性“课程名”也不能取空值“学分”属性只能取值1,2,3,4,2020年6月11日星期四,33,数据库系统概念-关系模型,关系模式的完整性,今要向关系P中插入新行,新行的值分别列出如下。哪些行能够插入?A.(037,绿,null)B.(null,黄,T20)C.(201,红,T20)D.(105,蓝,B01)E.(101,黄,T11),零件关系P(主码是“零件号”,外码是“供应商号”),供应商关系S(主码是“供应商号”),2020年6月11日星期四,34,数据库系统概念-关系模型,2.1.4查询语言,关系操作关系操作是集合操作,操作的对象及结果都是集合,是一次一集合(Set-at-a-time)的方式而非关系型的数据操作方式是一次一记录(Record-at-a-time)关系操作可以用关系代数和关系演算两种方式来表示,它们是相互等价的如用关系代数来表示关系的操作,可以有选择、投影、连接、除、交、差、并等,2020年6月11日星期四,35,数据库系统概念-关系模型,2.1.4查询语言,关系数据语言的特点一体化一般关系系统的数据语言都同时具有数据定义、数据操纵和数据控制语言,而不是分为几个语言。对象单一,都是关系,因此操作符也单一。而非关系型系统,如DBTG,有对记录的操作,有对关系的操作非过程化用户只需提出“做什么”,无须说明“怎么做”,存取路径的选择和操作过程由系统自动完成面向集合的存取方式操作对象是一个或多个关系,结果是一个新的关系(一次一关系)。非关系系统是一次一记录的方式,2020年6月11日星期四,36,数据库系统概念-关系模型,2.1.4查询语言,抽象的查询语言关系代数用对关系的运算来表达查询,需要指明所用操作关系演算用谓词来表达查询,只需描述所需信息的特性元组关系演算谓词变元的基本对象是元组变量域关系演算谓词变元的基本对象是域变量,2020年6月11日星期四,37,数据库系统概念-关系模型,2.1.4查询语言,具体系统中的实际语言SQL介于关系代数和关系演算之间,由IBM公司在研制SystemR时提出QUEL基于Codd提出的元组关系演算语言ALPHA,在INGRES上实现QBE基于域关系演算,由IBM公司研制,2020年6月11日星期四,38,数据库系统概念-关系模型,2.2关系代数运算汇总,基本运算一元运算选择、投影、更名多元运算笛卡儿积、并、集合差其它运算集合交、连接、自然连接、除、赋值,2020年6月11日星期四,39,数据库系统概念-关系模型,2.2关系代数的一些记号,给定关系模式R(A1,A2,An),设R是它的一个具体的关系,tR是关系的一个元组分量设tR,则tAi表示元组t中相应于属性Ai的一个分量属性列A=Ai1,Ai2,AikA1,A2,An,称A为属性列A表示A1,A2,An中去掉A后剩余的属性组tA=(tAi1,tAi2,tAik),2020年6月11日星期四,40,数据库系统概念-关系模型,2.2.1基本运算-选择运算,定义在关系R中选择满足给定条件的元组(从行的角度)F(R)=t|tR,F(t)=真F是选择的条件,tR,F(t)要么为真,要么为假F的形式:由逻辑运算符连接算术表达式而成逻辑表达式:,算术表达式:XYX,Y是属性名、常量、或简单函数是比较算符,,2020年6月11日星期四,41,数据库系统概念-关系模型,2.2.1基本运算-选择运算,选择运算是从行的角度进行的运算,2020年6月11日星期四,42,数据库系统概念-关系模型,2.2.1基本运算-选择运算,R,A5(R),A5C=7(R),2020年6月11日星期四,43,数据库系统概念-关系模型,2.2.1基本运算-选择运算,示例找perridge支行的存款branch_name=perridge(account)找年龄不小于20的男学生AGE20SEX=male(S),2020年6月11日星期四,44,数据库系统概念-关系模型,2.2.2基本运算-投影,定义从关系R中取若干列组成新的关系(从列的角度)A(R)=tA|tR,AR投影的结果中要去掉相同的行,R,B,C(R),2020年6月11日星期四,45,数据库系统概念-关系模型,2.2.2基本运算-投影,投影操作主要是从列的角度进行运算,2020年6月11日星期四,46,数据库系统概念-关系模型,2.2.2基本运算-投影,示例给出所有学生的姓名和年龄SN,AGE(S),2020年6月11日星期四,47,数据库系统概念-关系模型,2.2.2基本运算-投影,示例找001号学生所选修的课程号C#(S#=001(SC),2020年6月11日星期四,48,数据库系统概念-关系模型,2.2.3基本运算-并运算,定义所有至少出现在两个关系中之一的元组集合RS=r|rRrS,RS,两个关系R和S若进行并运算,则它们必须是相容的:关系R和S必须是同元的,即它们的属性数目必须相同对i,R的第i个属性的域必须和S的第i个属性的域相同不要求对应列同名,2020年6月11日星期四,49,数据库系统概念-关系模型,2.2.3基本运算-并运算,R,S,RS,2020年6月11日星期四,50,数据库系统概念-关系模型,2.2.3基本运算-并运算,示例求选修了001号或002号课程的学生号方案1:S#(C#=001C#=002(SC)方案2:S#(C#=001(SC)S#(C#=002(SC),2020年6月11日星期四,51,数据库系统概念-关系模型,2.2.4基本运算-差运算,定义所有出现在一个关系而不在另一关系中的元组集合RS=r|rRrSR和S必须是相容的,RS,SR,2020年6月11日星期四,52,数据库系统概念-关系模型,2.2.4基本运算-差运算,R,S,RS,SR,2020年6月11日星期四,53,数据库系统概念-关系模型,2.2.4基本运算-差运算,示例求选修了001号而没有选002号课程的学生号S#(C#=001(SC)S#(C#=002(SC)求未选修c1号课程的学生号方案1:S#(S)S#(C#=c1(SC)方案2:S#(C#c1(SC),哪一个正确?,2020年6月11日星期四,54,数据库系统概念-关系模型,基本运算的分配律,投影和并可以分配pid,name(ST)pid,name(S)pid,name(T)投影和差不可分配pid,name(S-T)pid,name(S)-pid,name(T),2020年6月11日星期四,55,数据库系统概念-关系模型,2.2.5基本运算-笛卡尔积运算,元组的连串(Concatenation)若r=(r1,rn),s=(s1,sm),则定义r与s的连串为:定义两个关系R,S,其度分别为n,m,则它们的笛卡尔积是所有这样的元组集合:元组的前n个分量是R中的一个元组,后m个分量是S中的一个元组RS的度为R与S的度之和,RS的元组个数为R和S的元组个数的乘积,2020年6月11日星期四,56,数据库系统概念-关系模型,2.2.5基本运算-笛卡尔积运算,运算结果的命名r.a1关系名前缀的省略不要求同属性值相同,即允许新元组中s.snosc.sno,2020年6月11日星期四,57,数据库系统概念-关系模型,2.2.5基本运算-笛卡尔积运算,2020年6月11日星期四,58,数据库系统概念-关系模型,2.2.5基本运算-笛卡尔积运算,A=C(rxs)rxsA=C(rxs),2020年6月11日星期四,59,数据库系统概念-关系模型,2.2.5基本运算-笛卡尔积运算,求计算机系学生的选课情况(sno,sname,cno,score)思考:有几种写法?哪种效率更高?,2020年6月11日星期四,60,数据库系统概念-关系模型,2.2.6基本运算-更名运算(rename),定义给一个关系表达式赋予名字x(E)返回表达式E的结果,并把名字x赋给Ex(A1,A2,An)(E)返回表达式E的结果,并把名字x赋给E,同时将各属性更名为A1,A2,An关系被看作一个最小的关系代数表达式,可以将更名运算施加到关系上,得到具有不同名字的同一关系。这在同一关系多次参与同一运算时很有帮助,2020年6月11日星期四,61,数据库系统概念-关系模型,2.2.6基本运算-更名运算(rename),R,S,R1(R),R2(RS),R3(x,y,z)(A5C=7(R),2020年6月11日星期四,62,数据库系统概念-关系模型,2.2.6基本运算-更名运算(rename),示例求数学成绩比王红同学高的学生,S.姓名(R.成绩S.成绩R.课程=数学S.课程=数学R.姓名=王红(RS(R),R,2020年6月11日星期四,63,数据库系统概念-关系模型,2.2.6基本运算-更名运算(rename),找出所有与smith居住在同一城市同一街道的客户,(customer.street=s_add.streetcustomer.ity=s_add.city(customers_add(street,city)(street,city(name=smith(customer),2020年6月11日星期四,64,数据库系统概念-关系模型,2.2.7关系代数的形式化定义,关系代数的基本表达式:数据库中的一个关系一个常数关系关系代数中的表达式是由更小的子表达式构成的,假设E1和E2是关系代数表达式,则下列都是关系代数表达式:E1E2E1-E2E1XE2p(E1)p(E1)x(E1)关系代数表达式仅限于上述运算的有限次复合,2020年6月11日星期四,65,数据库系统概念-关系模型,2.2关系代数查询实例,求未选修c1号课程的学生号方案1:S#(S)S#(C#=c1(SC)方案2:S#(C#c1(SC),哪一个正确?,2020年6月11日星期四,66,数据库系统概念-关系模型,求仅选修了c01号课程的学生号选修c01号课程的学生选c01号课程之外的学生S#(C#=c01(SC)S#(SCC#=c01(SC),2.2关系代数查询实例,S#,P02,2020年6月11日星期四,67,数据库系统概念-关系模型,2.2关系代数基本运算-练习,1.求学了c1课程的学生sno,sname2.求没有学c1课程的学生sno,sname3.求哪些学生没有学哪些课(sno,cno),2020年6月11日星期四,68,数据库系统概念-关系模型,2.2关系代数基本运算-课外练习,1.求学了c1或c2课程的学生sno,sname2.求学了c1和c2课程的学生sno,sname3.求学了c1没有学c2课程的学生sno,sname4.求只学了c1课程的的学生sno5.求计算机系学生的“DB”成绩(sno,sname,score)请考虑:有几种写法?你能不能给出效率最高的写法?6.求每个学生的单科最高成绩以及相应课程号(sno,max_score,cno),2020年6月11日星期四,69,数据库系统概念-关系模型,2.3附加运算,为了书写方便,扩展了若干操作,称为附加运算附加运算没有实质地扩展关系代数的能力附加运算的种类交(rs)自然连接(rs)除(rs)赋值运算(),2020年6月11日星期四,70,数据库系统概念-关系模型,定义所有同时出现在两个关系中的元组集合RS=r|rRrS交运算可以通过差运算来重写RS=R(RS)=S(SR),2.3.1交运算,RS,2020年6月11日星期四,71,数据库系统概念-关系模型,2.3.1交运算,R,S,RS,2020年6月11日星期四,72,数据库系统概念-关系模型,2.3.1交运算,示例求同时选修了001号和002号课程的学生号错误的写法:S#(C#=001C#=002(SC)正确的写法:S#(C#=001(SC)S#(C#=002(SC),2020年6月11日星期四,73,数据库系统概念-关系模型,定义从两个关系的广义笛卡儿积中选取给定属性间满足一定条件的元组A,B为R和S上度数相等且可比的属性列为算术比较符,为等号时称为等值连接RS=rASB(RS),补充-连接,AB,AB,RS=rs|rRsSrASB,2020年6月11日星期四,74,数据库系统概念-关系模型,BD,补充-连接,求数学成绩比王红同学高的学生。,RS,R,S,2020年6月11日星期四,75,数据库系统概念-关系模型,定义从两个关系的广义笛卡儿积中选取在相同属性列B上取值相等的元组,并去掉重复的列。自然连接与等值连接的不同自然连接中相等的分量必须是相同的属性组,并且要在结果中去掉重复的属性,而等值连接则不必。当R与S无相同属性时,RSRS可交换,可结合sscscs(ssc)cs(scc),2.3.2自然连接,2020年6月11日星期四,76,数据库系统概念-关系模型,2.3.2自然连接,2020年6月11日星期四,77,数据库系统概念-关系模型,2.3.2自然连接,示例求001号学生所在系的名称DN(S#=001(S)DEPT),R,S,RS,2020年6月11日星期四,78,数据库系统概念-关系模型,2.3.3除运算,2020年6月11日星期四,79,数据库系统概念-关系模型,2.3.3除运算,象集(ImageSet)关系R(X,Z),X,Z是属性组,x是X上的取值,定义x在R中的象集为Zx=tZ|tRtX=x从R中选出在X上取值为x的元组,去掉X上的分量,只留Z上的分量,XZ,张军同学所选修的全部课程,x=张军,Zx,2020年6月11日星期四,80,数据库系统概念-关系模型,2.3.3除运算,给定关系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上投影的集合。RS=tX|tRY(S)YxYx:x在R中的象集,x=tX,2020年6月11日星期四,81,数据库系统概念-关系模型,2.3.3除运算,做法:逐个考虑选课关系SC中的元组r,求r在姓名SN上的分量x,再求x在选课关系中的象集课程Cx,若Cx包含了所有的课程C,则x是满足条件的一个元组,如何得到选修了全部课程的学生?,x|x=rSNrSCCxC,选修全部课程的学生,全部课程,x同学所选修的全部课程,2020年6月11日星期四,82,数据库系统概念-关系模型,2.3.3除运算,除定义R(X,Y)S(Y)=x|x=rXrRYxSR(X,Y)S(Y)=t|tX(R)uS(tuR)RS=X(R)X(X(R)Y(S)R),2020年6月11日星期四,83,数据库系统概念-关系模型,2.3.3除运算,2020年6月11日星期四,84,数据库系统概念-关系模型,2.3.3除运算,R,AB(R),S,AB(R)CD(S),AB(R)CD(S)-R,RS=,-,=,2020年6月11日星期四,85,数据库系统概念-关系模型,2.3.3除运算,示例求同时选修了001和002号课程的学生号方案1:S#,C#(SC)C#=001C#=002(C)方案2:S#(SCC#=001C#=002(C)哪一个正确?,2020年6月11日星期四,86,数据库系统概念-关系模型,2.3.3除运算,选修了全部课程并且成绩都相同的学生,选修了全部课程的学生,2020年6月11日星期四,87,数据库系统概念-关系模型,2.3.3除运算,示例,求学了所有课的学生学号:思考1:使用,有几种写法?思考2:不使用,如何书写?,2020年6月11日星期四,88,数据库系统概念-关系模型,2.3.4赋值运算,定义为使查询表达简单、清晰,可以将一个复杂的关系代数表达式分成几个部分,每一部分都赋予一个临时关系变量,该变量可被看作关系而在后面的表达式中使用临时关系变量关系代数表达式赋值给临时关系变量只是一种结果的传递,而赋值给永久关系则意味着对数据库的修改,2020年6月11日星期四,89,数据库系统概念-关系模型,2.3.4赋值运算,示例RS=X(R)X(X(R)Y(S)R)用赋值重写为:temp1X(R)temp2X(temp1Y(S)R)resulttemp1temp2,2020年6月11日星期四,90,数据库系统概念-关系模型,2.3附加运算:练习,1、求计算机系学生的“DB”成绩(sno,sname,score)2、使用,求学了s5所学全部课程的学生3、不使用,求学了s5所学全部课程的学生,2020年6月11日星期四,91,数据库系统概念-关系模型,2.5空值,Null,空值的语义不知道或不存在空值的表现参与算术运算:结果为Null参与比较运算:结果为Null参与逻辑运算:1、Nullortrue=ture2、Nullandfalse=false3、其它情况结果为null空值是一种状态,不是一个明确的值,2020年6月11日星期四,92,数据库系统概念-关系模型,2.5关系代数对空值的处理,不是总有道理,更多的时候是定义(E)保留使确定地为真的元组求20岁的学生求不是20岁的学生A1,A2(E)元组表现相同(认为表示的语义相同),则保留一个元组求各系年龄分布(dept,sage):与的处理原则一致,2020年6月11日星期四,93,数据库系统概念-关系模型,2.4扩展的关系代数,关系代数扩展的几个运算:广义投影聚集、分组聚集外连接扩展的关系代数运算:对关系代数的查询能力进行了一些经常需要的扩展一般地讲,扩展的运算属于关系代数严格地说,扩展的运算不属于关系代数运算,2020年6月11日星期四,94,数据库系统概念-关系模型,2.4.1广义投影,定义在投影列表中使用算术表达式来对投影进行扩展F1,F2,Fn(E)F1,F2,Fn是算术表达式as更名示例求教工应缴纳的所得税P#,SAL*5/100(PROF)R(p#,INCOME-TAX)(P#,SAL*5/100(PROF),2020年6月11日星期四,95,数据库系统概念-关系模型,2.4.2聚集函数,定义求一组值的统计信息,返回单一值使用聚集的集合可以是多重集,即一个值可以重复出现多次。如果想去除重复值,可以用连接符-将distinct附加在聚集函数名后,如sum-distinctsum:求和求全体教工的总工资sumSAL(PROF)求001号学生的总成绩sumSCORE(S#=001(SC),2020年6月11日星期四,96,数据库系统概念-关系模型,2.4.2聚集函数,avg:求平均求001号同学选修课程的平均成绩。avgSCORE(S#=001(SC)count:计数求001号同学选修的课程数。countC#(S#=001(SC)求任课老师的总数。count-distinctP#(PC),2020年6月11日星期四,97,数据库系统概念-关系模型,max:求最大值min:求最小值求学生选修数学的最高成绩maxSCORE(CN=数学(C)SC)分组将一个元组集合分为若干个组,在每个分组上使用聚集函数。属性下标G聚集函数属性下标(关系),2.4.2聚集函数,对此属性在每个分组上运用聚集函数,按此属性上的值对关系分组,2020年6月11日星期四,98,数据库系统概念-关系模型,2.4.2聚集函数,分组运算G的一般形式G1,G2,.,GnGF1,A1,F2,A2,Fm,Am(E)Gi是用于分组的属性,Fi是聚集函数,Ai是属性名。G将E分为若干组,满足:1)同一组中所有元组在G1,G2,.,Gn上的值相同。2)不同组中元组在G1,G2,.,Gn上的值不同。示例求每位学生的总成绩和平均成绩S#GsumSCORE,avgSCORE(SC),2020年6月11日星期四,99,数据库系统概念-关系模型,R,A,B,C,77310,gsum(c)(R),sum-C,27,2.4.2聚集函数,2020年6月11日星期四,100,数据库系统概念-关系模型,2.4.2聚集函数,branch-name,account-number,balance,PerryridgePerryridgeBrightonBrightonRedwood,A-102A-201A-217A-215A-222,400900750750700,branch-na

温馨提示

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

评论

0/150

提交评论