数据库系统概念关系模型总结课件.ppt

上传人(卖家):晟晟文业 文档编号:4106174 上传时间:2022-11-11 格式:PPT 页数:110 大小:752.13KB
下载 相关 举报
数据库系统概念关系模型总结课件.ppt_第1页
第1页 / 共110页
数据库系统概念关系模型总结课件.ppt_第2页
第2页 / 共110页
数据库系统概念关系模型总结课件.ppt_第3页
第3页 / 共110页
数据库系统概念关系模型总结课件.ppt_第4页
第4页 / 共110页
数据库系统概念关系模型总结课件.ppt_第5页
第5页 / 共110页
点击查看更多>>
资源描述

1、2022年11月11日星期五2数据库系统概念-关系模型提纲l2.1关系数据库的结构l2.2关系代数基本运算l2.3附加的关系代数运算l2.4扩展的关系代数运算l2.5空值l2.6数据库的修改l本章之后讲解 5.1:元组关系演算 Chapter3-4:sql2022年11月11日星期五3数据库系统概念-关系模型关系模型回顾lE.F.Codd于70年代初提出关系数据理论,他因此获得1981年的ACM图灵奖l关系理论是建立在集合代数理论基础上的,有着坚实的数学基础l早期代表系统 System:由IBM研制 INGRES:由加州Berkeley分校研制l目前主流的商业数据库系统 Oracle,SQL

2、Server,DB2 Access,Foxpro,Foxbase2022年11月11日星期五4数据库系统概念-关系模型2.1.1关系数据结构l单一的数据结构-关系 现实世界的实体以及实体间的各种联系均用关系来表示l数据的逻辑结构-二维表 从用户角度,关系模型中数据的逻辑结构是一张二维表 2022年11月11日星期五5数据库系统概念-关系模型2.1.1关系基本概念l域(Domain)一组值的集合,这组值具有相同的数据类型 如整数的集合、字符串的集合、全体学生的集合l笛卡尔积(Cartesian Product)一组域D1,D2,Dn的笛卡尔积为:D1D2Dn=(d1,d2,dn)|diDi,i=

3、1,n 笛卡尔积的每个元素(d1,d2,dn)称作一个n-元组(n-tuple)元组的每一个值di叫做一个分量(component)若Di的基数为mi,则笛卡尔积的基数为inim12022年11月11日星期五6数据库系统概念-关系模型2.1.1关系基本概念 例:设 D1为教师集合(T)=t1,t2 D2为学生集合(S)=s1,s2,s3 D3为课程集合(C)=c1,c2 则D1D2D3是个三元组集合,元组个数为232,是所有可能的(教师,学生,课程)元组集合 笛卡尔积可表示为二维表的形式TSCt1s1c1t1s1c2t1s2c1t2s3c22022年11月11日星期五7数据库系统概念-关系模型

4、2.1.1关系基本概念l关系 笛卡尔积D1D2Dn的子集叫做在域D1,D2,Dn上的关系,用R(D1,D2,Dn)表示 R是关系的名字,n是关系的度或目 关系是笛卡尔积中有意义的子集 关系也可以表示为二维表关系TEACH(T,S,C)TSCt1s1c1t1s1c2t1s2c1t2s3c2元组属性2022年11月11日星期五8数据库系统概念-关系模型2.1.1关系基本概念l关系的性质 列是同质的l即每一列中的分量来自同一域,是同一类型的数据l如TEACH(T,S,C)=(t1,s1,c1),(t1,t2,c1)是错误的 不同的列可来自同一域,每列必须有不同的属性名l如P=t1,t2,s1,s2,

5、s3,C=c1,c2,则TEACH不能写成TEACH(P,P,C),还应写成TEACH(T,S,C)2022年11月11日星期五9数据库系统概念-关系模型2.1.1关系基本概念 行列的顺序无关紧要l遵循这一性质的数据库产品(如ORACLE),增加新属性时,永远是插至最后一列l但也有许多数据库产品没有遵循这一性质,例如FoxPro仍然区分了属性顺序 任意两个元组不能完全相同(集合内不能有相同的两个元素)l由笛卡尔积的性质决定,但许多关系数据库产品没有遵循这一性质 例如,Oracle,FoxPro等都允许关系表中存在两个完全相同的元组,除非用户特别定义了相应的约束条件2022年11月11日星期五1

6、0数据库系统概念-关系模型2.1.1关系基本概念 每一分量必须是不可再分的数据。满足这一条件的关系称作满足第一范式(1NF)的2022年11月11日星期五11数据库系统概念-关系模型2.1.2 数据库模式DB schemal关系的模式和实例关系模式(型),关系(变量),实例(值)l表述方式 关系模式:S(sno,sname,dept)关系及关系模式:scSCl不同关系中属性名称相同,用以阐述不同关系的元组之间的联系ssccSnoSnameDeptSnoCnoScoreCnoCnameS1甲计S1C180C1DSS2乙软S1C290C2DBS3丙软S2C1702022年11月11日星期五12数据

7、库系统概念-关系模型2.1.2 数据库模式l关系模式表现了型的概念,它代表着表的框架;关系表现为值的概念,成为关系实例l一个关系模式下可以建立多个关系,例如在学生关系的关系模式下,可以为全校所有班级各建一个学生表l表是动态的,是数据库中数据的快照l关系数据库是关系的集合,其中每个关系都有自己的关系模式 2022年11月11日星期五13数据库系统概念-关系模型2.1.2模式构造问题lS同SC合并为一个表如何?优点:表的数量少 缺点:数据冗余、被迫引入空值、插入异常、删除异常l模式构造的方法和原则SCSnoCnoScoreS1C180S1C290S2C170SSnoSnameS1甲S2乙S3丙S-

8、SCSnoSnameCnoScoreS1甲C180S1甲C290S2乙C170S3丙2022年11月11日星期五14数据库系统概念-关系模型2.1.2模式构造问题 银行例子2022年11月11日星期五15数据库系统概念-关系模型2.1.2模式构造问题2022年11月11日星期五16数据库系统概念-关系模型其他可能的模式优点:表的数量少缺点:数据冗余、被迫引入空值、插入异常、删除异常2022年11月11日星期五17数据库系统概念-关系模型2.1.3码l超码(superkey)是一个或多个属性的集合,这些属性的集合可以使我们在一个关系中唯一地标识一个元组l候选码(Candidate Key)关系中

9、的一个属性组,其值能唯一标识一个元组。若从属性组中去掉任何一个属性,它就不具有这一性质了,这样的属性组称作候选码,如DEPT中的D#,DN都可作为候选码 任何一个候选码中的属性称作主属性,如SC中的S#,C#2022年11月11日星期五18数据库系统概念-关系模型2.1.3码l主码(Primary Key)进行数据库设计时,从一个关系的多个候选码中选定一个作为主码,如可选定D#作为DEPT的主码l外部码(Foreign Key)关系R中的一个属性组,它不是R的码,但它与另一个关系S的码相对应,则称这个属性组为R的外部码,如S关系中的D#属性 R是参照关系(Referencing Relatio

10、n)S是被参照关系(Referenced Relation)R通过外码F参照关系Sl如何确定超码 按照现实世界语义约束定义码 不能依据对数据的归纳总结定义码2022年11月11日星期五19数据库系统概念-关系模型模式图schema diagram模式图表示各关系模式l属性l主码l关系引用2022年11月11日星期五20数据库系统概念-关系模型我们常用的例子l数据结构 单一的数据结构关系 实体集、联系都表示成关系学生学生选修选修属于属于系系教师教师工作工作管理管理课程课程先修先修2022年11月11日星期五21数据库系统概念-关系模型关系模型DEANDNDEPTD#AGESEXSNSPC#CRE

11、DITCNCD#SALPNPROFSCORESC2022年11月11日星期五22数据库系统概念-关系模型例子S#SNAGESDS#C#G9801张三20D19801C1629805李四21D29801C2739805C380S SC 2022年11月11日星期五23数据库系统概念-关系模型关系模式的完整性l实体完整性 关系的主码中的属性值不能为空值 空值:不知道或无意义 意义:关系对应到现实世界中的实体集,元组对应到实体,实体是相互可区分的,通过主码来唯一标识,若主码为空,则出现不可标识的实体,这是不容许的2022年11月11日星期五24数据库系统概念-关系模型关系模式的完整性l关系模型必须遵

12、守实体完整性规则的原因 实体完整性规则是针对基本关系而言的。一个基本表通常对应现实世界的一个实体集或多对多联系 现实世界中的实体和实体间的联系都是可区分的,即它们具有某种唯一性标识 相应地,关系模型中以主码作为唯一性标识 主码中的属性即主属性不能取空值l空值就是“不知道”或“无意义”的值l主属性取空值,就说明存在某个不可标识的实体,即存在不可区分的实体,这与实体的可区分性相矛盾,因此这个规则称为实体完整性2022年11月11日星期五25数据库系统概念-关系模型关系模式的完整性l注意实体完整性规则规定基本关系的所有主属性都不能取空值例l选修(学号,课程号,成绩)l“学号、课程号”为主码,则两个属

13、性都不能取空值。2022年11月11日星期五26数据库系统概念-关系模型关系模式的完整性l参照完整性(Referential Integrity)在关系模型中实体及实体间的联系都是用关系来描述的,因此可能存在着关系与关系间的引用 例1 学生实体、专业实体以及专业与学生间的一对多联系 学生(学号,姓名,性别,院系编号,年龄)专业(院系编号,专业名)2022年11月11日星期五27数据库系统概念-关系模型关系模式的完整性 参照完整性l如果关系R2的外部码Fk与关系R1的主码Pk相对应,则R2中的每一个元组的Fk值或者等于R1 中某个元组的Pk 值,或者为空值l意义:如果关系R2的某个元组t2参照了

14、关系R1的某个元组t1,则t1必须存在l例如关系S在D#上的取值有两种可能 空值,表示该学生尚未分到任何系中 若非空值,则必须是DEPT关系中某个元组的D#值,表示该学生不可能分到一个不存在的系中2022年11月11日星期五28数据库系统概念-关系模型关系模式的完整性2022年11月11日星期五29数据库系统概念-关系模型关系模式的完整性学生、课程、学生与课程之间的多对多联系 学生(学号,姓名,性别,专业号,年龄)课程(课程号,课程名,学分)选修(学号,课程号,成绩)2022年11月11日星期五30数据库系统概念-关系模型关系模式的完整性l学生实体及其内部的领导联系(一对多)2022年11月1

15、1日星期五31数据库系统概念-关系模型关系模式的完整性 用户定义的完整性l用户针对具体的应用环境定义的完整性约束条件l如S#要求是8位整数,SEX要求取值为“男”或“女”系统支持l实体完整性和参照完整性由系统自动支持l系统应提供定义和检验用户定义的完整性的机制2022年11月11日星期五32数据库系统概念-关系模型关系模式的完整性课程(课程号,课程名,学分)“课程名”属性必须取唯一值 非主属性“课程名”也不能取空值“学分”属性只能取值1,2,3,42022年11月11日星期五33数据库系统概念-关系模型关系模式的完整性供应商号供应商名所在城市B01红星北京S10宇宙上海T20黎明天津Z01立新

16、重庆零件号颜色供应商号010红B01312白S10 201蓝T20 今要向关系P中插入新行,新行的值分别列出如下。哪些行能够插入?A.(037,绿,null)B.(null,黄,T20)C.(201,红,T20)D.(105,蓝,B01)E.(101,黄,T11)零件关系P(主码是“零件号”,外码是“供应商号”)供应商关系S(主码是“供应商号”)2022年11月11日星期五34数据库系统概念-关系模型2.1.4查询语言 l关系操作 关系操作是集合操作,操作的对象及结果都是集合,是一次一集合(Set-at-a-time)的方式 而 非 关 系 型 的 数 据 操 作 方 式 是 一 次 一 记

17、录(Record-at-a-time)关系操作可以用关系代数和关系演算两种方式来表示,它们是相互等价的 如用关系代数来表示关系的操作,可以有选择、投影、连接、除、交、差、并等2022年11月11日星期五35数据库系统概念-关系模型2.1.4查询语言l关系数据语言的特点 一体化l一般关系系统的数据语言都同时具有数据定义、数据操纵和数据控制语言,而不是分为几个语言。对象单一,都是关系,因此操作符也单一。而非关系型系统,如DBTG,有对记录的操作,有对关系的操作 非过程化l用户只需提出“做什么”,无须说明“怎么做”,存取路径的选择和操作过程由系统自动完成 面向集合的存取方式l操作对象是一个或多个关系

18、,结果是一个新的关系(一次一关系)。非关系系统是一次一记录的方式2022年11月11日星期五36数据库系统概念-关系模型2.1.4查询语言l抽象的查询语言 关系代数l用对关系的运算来表达查询,需要指明所用操作 关系演算l用谓词来表达查询,只需描述所需信息的特性l元组关系演算 谓词变元的基本对象是元组变量l域关系演算 谓词变元的基本对象是域变量2022年11月11日星期五37数据库系统概念-关系模型2.1.4查询语言l具体系统中的实际语言 SQLl介于关系代数和关系演算之间,由IBM公司在研制System R时提出 QUELl基于Codd提出的元组关系演算语言ALPHA,在INGRES上实现 Q

19、BEl基于域关系演算,由IBM公司研制2022年11月11日星期五38数据库系统概念-关系模型2.2关系代数运算汇总l基本运算 一元运算l选择、投影、更名 多元运算l笛卡儿积、并、集合差l其它运算 集合交、连接、自然连接、除、赋值2022年11月11日星期五39数据库系统概念-关系模型2.2关系代数的一些记号 给定关系模式R(A1,A2,An),设R是它的一个具体的关系,tR是关系的一个元组l分量 设tR,则tAi表示元组t中相应于属性Ai的一个分量l属性列 A=Ai1,Ai2,AikA1,A2,An,称A为属性列 A表示A1,A2,An中去掉A后剩余的属性组 tA=(tAi1,tAi2,tA

20、ik)2022年11月11日星期五40数据库系统概念-关系模型2.2.1基本运算-选择运算l定义在关系R中选择满足给定条件的元组(从行的角度)F(R)=t|t R,F(t)=真真F是选择的条件,t R,F(t)要么为真,要么为假F的形式:由逻辑运算符连接算术表达式而成逻辑表达式:,算术表达式:X Y X,Y是属性名、常量、或简单函数 是比较算符,,2022年11月11日星期五41数据库系统概念-关系模型2.2.1基本运算-选择运算l选择运算是从行的角度进行的运算2022年11月11日星期五42数据库系统概念-关系模型2.2.1基本运算-选择运算ABC367257723443RA5(R)ABC3

21、67257443A5 C=7(R)ABC3672572022年11月11日星期五43数据库系统概念-关系模型2.2.1基本运算-选择运算l示例 找perridge 支行的存款branch_name=perridge(account)找年龄不小于20的男学生AGE20 SEX=male(S)2022年11月11日星期五44数据库系统概念-关系模型2.2.2基本运算-投影l定义 从关系R中取若干列组成新的关系(从列的角度)A A(R)=tA|t(R)=tA|t R ,AR ,A R R 投影的结果中要去掉相同的行cbcfedcbaCBABCbcef R R B,C(R)2022年11月11日星期五

22、45数据库系统概念-关系模型2.2.2基本运算-投影l投影操作主要是从列的角度进行运算2022年11月11日星期五46数据库系统概念-关系模型2.2.2基本运算-投影l示例给出所有学生的姓名和年龄SN,AGE(S)2022年11月11日星期五47数据库系统概念-关系模型2.2.2基本运算-投影l示例找001号学生所选修的课程号C#(S#=001(SC)2022年11月11日星期五48数据库系统概念-关系模型2.2.3基本运算-并运算l定义 所有至少出现在两个关系中之一的元组集合R R S=r|rS=r|r R R r r S S R R S Sl两个关系R和S若进行并运算,则它们必须是相容的:

23、l关系R和S必须是同元的,即它们的属性数目必须相同l对i,R的第i个属性的域必须和S的第i个属性的域相同l不要求对应列同名2022年11月11日星期五49数据库系统概念-关系模型2.2.3基本运算-并运算ABC367257723443RABC345723SABC367257723443345RS 2022年11月11日星期五50数据库系统概念-关系模型2.2.3基本运算-并运算l示例 求选修了001号或002号课程的学生号方案1:S#(C#=001 C#=002(SC)方案2:S#(C#=001(SC)S#(C#=002(SC)2022年11月11日星期五51数据库系统概念-关系模型2.2.4

24、基本运算-差运算l定义 所有出现在一个关系而不在另一关系中的元组集合R R S=r|rS=r|r R R r r S S R和S必须是相容的R R S SS S R R2022年11月11日星期五52数据库系统概念-关系模型2.2.4基本运算-差运算ABC367257723443RABC345723SABC367257443RS ABC345SR 2022年11月11日星期五53数据库系统概念-关系模型2.2.4基本运算-差运算l示例 求选修了001号而没有选002号课程的学生号S#(C#=001(SC)S#(C#=002(SC)求未选修c1号课程的学生号 方案1:S#(S)S#(C#=c1(

25、SC)方案2:S#(C#c1(SC)哪一个哪一个正确?正确?96c2s195c1s290c1s1GC#S#s3s2s1AGESNS#2022年11月11日星期五54数据库系统概念-关系模型基本运算的分配律l投影和并可以分配pid,name(ST)pid,name(S)pid,name(T)l投影和差不可分配pid,name(S-T)pid,name(S)-pid,name(T)tPidTnoTnamep1t1甲p3t2丙sPidSnoSnamep1s1甲p2s2乙2022年11月11日星期五55数据库系统概念-关系模型2.2.5基本运算-笛卡尔积运算l元组的连串(Concatenation)若

26、r=(r1,rn),s=(s1,sm),则定义r与s的连串为:l定义 两个关系R,S,其度分别为n,m,则它们的笛卡尔积是所有这样的元组集合:元组的前n个分量是R中的一个元组,后m个分量是S中的一个元组 RS的度为R与S的度之和,RS的元组个数为R和S的元组个数的乘积rs=(r1,rn,s1,sm)RS=rs|rR sS 2022年11月11日星期五56数据库系统概念-关系模型2.2.5基本运算-笛卡尔积运算l运算结果的命名 r.a1 l关系名前缀的省略l不要求同属性值相同,即允许新元组中s.snosc.sno2022年11月11日星期五57数据库系统概念-关系模型2.2.5基本运算-笛卡尔积

27、运算AB12rCD10102010EaabbsAB11112222CD 1010201010102010Eaabbaabbr x s2022年11月11日星期五58数据库系统概念-关系模型2.2.5基本运算-笛卡尔积运算lA=C(r x s)r x s A=C(r x s)aab AB11112222CD1010201010102010EaabbaabbABCDE1221020202022年11月11日星期五59数据库系统概念-关系模型2.2.5基本运算-笛卡尔积运算l求计算机系学生的选课情况(sno,sname,cno,score)l思考:有几种写法?哪种效率更高?SSCCSnoSnameD

28、eptSnoCnoScoreCnoCnameS1甲计S1C180C1DSS2乙软S1C290C2DBS3丙软S2C170S4丁计S3C2602022年11月11日星期五60数据库系统概念-关系模型2.2.6基本运算-更名运算(rename)l定义 给一个关系表达式赋予名字 x x(E E)返回表达式E的结果,并把名字x赋给E x x(A A1 1,A A2 2,A An n )(E E)返回表达式E的结果,并把名字x赋给E,同时将各属性更名为A1,A2,An 关系被看作一个最小的关系代数表达式,可以将更名运算施加到关系上,得到具有不同名字的同一关系。这在同一关系多次参与同一运算时很有帮助202

29、2年11月11日星期五61数据库系统概念-关系模型2.2.6基本运算-更名运算(rename)ABC367257723443RABC345723S R1(R),R2(R S)R3(x,y,z)(A5 C=7(R)2022年11月11日星期五62数据库系统概念-关系模型2.2.6基本运算-更名运算(rename)l示例 求数学成绩比王红同学高的学生89数学张军86数学王红93物理张军成绩课程姓名S.姓名(R.成绩S.成绩 R.课程=数学 S.课程=数学 R.姓名=王红(RS(R)R R86数学王红86数学王红86数学王红R.成绩R.课程R.姓名89数学张军86数学王红93物理张军S.成绩S.课程

30、S.姓名2022年11月11日星期五63数据库系统概念-关系模型2.2.6基本运算-更名运算(rename)l找出所有与smith居住在同一城市同一街道的客户customer.name(customer.street=s_add.street customer.ity=s_add.city(customer s_add(street,city)(street,city(name=smith(customer)2022年11月11日星期五64数据库系统概念-关系模型2.2.7关系代数的形式化定义l关系代数的基本表达式:数据库中的一个关系 一个常数关系l关系代数中的表达式是由更小的子表达式构成的,

31、假设E1和E2是关系代数表达式,则下列都是关系代数表达式:E1 E2 E1-E2 E1 X E2 p(E1)p(E1)x(E1)l关系代数表达式仅限于上述运算的有限次有限次复合2022年11月11日星期五65数据库系统概念-关系模型2.2关系代数查询实例 求未选修c1号课程的学生号 方案1:S#(S)S#(C#=c1(SC)方案2:S#(C#c1(SC)哪一个哪一个正确?正确?96c2s195c1s290c1s1GC#S#s3s2s1AGESNS#2022年11月11日星期五66数据库系统概念-关系模型 求仅选修了c01号课程的学生号选修c01号课程的学生选c01号课程之外的学生S#(C#=c

32、01(SC)S#(SCC#=c01(SC)2.2关系代数查询实例S#C#SCOREP01C0196P02C0190P03C0288P01C0392S#C#SCOREP01C0196P02C0190S#C#SCOREP03C0288P01C0392S#P01P02S#P01P03S#P022022年11月11日星期五67数据库系统概念-关系模型2.2关系代数基本运算-练习1.求学了c1课程的学生sno,sname2.求没有学c1课程的学生sno,sname3.求哪些学生没有学哪些课(sno,cno)SSCCSnoSnameDeptSnoCnoScoreCnoCnameS1甲计S1C180C1DS

33、S2乙软S1C290C2DBS3丙软S2C170S4丁计S3C2602022年11月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)SSCCSnoSnameDeptSnoCnoScoreCnoCnam

34、eS1甲计S1C180C1DSS2乙软S1C290C2DBS3丙软S2C170S4丁计S3C2602022年11月11日星期五69数据库系统概念-关系模型2.3附加运算l为了书写方便,扩展了若干操作,称为附加运算l附加运算没有实质地扩展关系代数的能力l附加运算的种类交(rs)自然连接(r s)除(rs)赋值运算()2022年11月11日星期五70数据库系统概念-关系模型l定义 所有同时出现在两个关系中的元组集合R R S=r|rS=r|r R R r r S S 交运算可以通过差运算来重写RS=R (R S)=S (S R)2.3.1交运算R R S S2022年11月11日星期五71数据库系

35、统概念-关系模型2.3.1交运算344327752763CBAR327543CBAS327CBARS 2022年11月11日星期五72数据库系统概念-关系模型2.3.1交运算l示例求同时选修了001号和002号课程的学生号错误的写法:S#(C#=001 C#=002(SC)正确的写法:S#(C#=001(SC)S#(C#=002(SC)2022年11月11日星期五73数据库系统概念-关系模型l定义 从两个关系的广义笛卡儿积中选取给定属性间满足一定条件的元组 A,B为R和S上度数相等且可比的属性列 为算术比较符,为等号时称为等值连接 R S=rA SB(RS)补充-连接A B2022年11月11

36、日星期五74数据库系统概念-关系模型B D补充-连接 求数学成绩比王红同学高的学生。987654321CBADE3162ABCDE123311236245662R S R S R R S SS.姓名(课程=数学 姓名=王红(R)(课程=数学S(R)R.成绩S.成绩2022年11月11日星期五75数据库系统概念-关系模型l定义 从两个关系的广义笛卡儿积中选取在相同属性列B上取值相等的元组,并去掉重复的列。自然连接与等值连接的不同l自然连接中相等的分量必须是相同的属性组,并且要在结果中去掉重复的属性,而等值连接则不必。当R与S无相同属性时,R S RS 可交换,可结合ls sc sc sl(s s

37、c)c s (sc c)2.3.2自然连接R S=rsB|rR S=rsB|r R R s s S S rB=SB rB=SB 2022年11月11日星期五76数据库系统概念-关系模型2.3.2自然连接AB12412CDaababrB13123DaaabbEs11112aaaabABC DEr s2022年11月11日星期五77数据库系统概念-关系模型2.3.2自然连接l示例求001号学生所在系的名称DN(S#=001(S)DEPT)987654321CBACD3162 R R S SABCD12314562 R SR S2022年11月11日星期五78数据库系统概念-关系模型2.3.3除运算

38、课程数学物理物理李明数学张军数学王红物理张军课程姓名姓名张军2022年11月11日星期五79数据库系统概念-关系模型2.3.3除运算l象集(Image Set)关系R(X,Z),X,Z是属性组,x是X上的取值,定义x在R中的象集为Zx=tZ|tR tX=x 从R中选出在X上取值为x的元组,去掉X上的分量,只留Z上的分量X Z张军同学所张军同学所选修的全部选修的全部课程课程x=x=张军张军Z Zx x数学张军数学王红物理张军课程姓名课程数学物理2022年11月11日星期五80数据库系统概念-关系模型2.3.3除运算给定关系R(X,Y)和S(Y,Z),其中X,Y,Z为属性组。R中的Y与S中的Y可以

39、有不同的属性名,但必须出自相同的域集。R与S的除运算得到一个新的关系P(X),P是R中满足下列条件的元组在X属性列上的投影:元组在X上分量值x的象集Yx包含S在Y上投影的集合。RS=t X|t R Y(S)Yx Yx:x在R中的象集,x=tX2022年11月11日星期五81数据库系统概念-关系模型2.3.3除运算 做法:逐个考虑选课关系SC中的元组r,求r在姓名SN上的分量x,再求x在选课关系中的象集课程Cx,若Cx包含了所有的课程C,则x是满足条件的一个元组如何得到选修了全部课程的学生?x|x=rSN rSC CxC 选修全部课程的学生全部课程x同学所选修的全部课程2022年11月11日星期

40、五82数据库系统概念-关系模型2.3.3除运算l除定义 R(X,Y)S(Y)=x|x=rX rR YxS R(X,Y)S(Y)=t|tX(R)uS(tu R)RS=X(R)X(X(R)Y(S)R)2022年11月11日星期五83数据库系统概念-关系模型2.3.3除运算张军物理数学课程物理王红数学张军数学王红物理张军课程姓名王红张军姓名没有选修全部课程的学生所有学生选修全部课程数学张军数学王红物理张军课程姓名物理王红数学张军数学王红物理张军课程姓名姓名王红姓名王红姓名王红姓名张军选修了全部课程的学生2022年11月11日星期五84数据库系统概念-关系模型2.3.3除运算ABCDabcdabefa

41、bdebcefedcdedefCDcdefABabeddecbbaBAdccbfededcdefecbfebadcbaDCBAR R AB AB(R)(R)S S AB AB(R)(R)CD CD(S)(S)AB AB(R)(R)CD CD(S)-R(S)-R ABCDbccdR R S=S=decbbaBAABbc-=2022年11月11日星期五85数据库系统概念-关系模型2.3.3除运算l示例求同时选修了001和002号课程的学生号 方案1:S#,C#(SC)C#=001 C#=002(C)方案2:S#(SC C#=001 C#=002(C)哪一个正确?2022年11月11日星期五86数据

42、库系统概念-关系模型2.3.3除运算课程数学物理92物理王红938693成绩数学张军数学王红物理张军课程姓名课程数学物理物理王红数学张军数学王红物理张军课程姓名姓名张军王红姓名成绩张军93选修了全部课程并且成绩都相同的学生选修了全部课程的学生2022年11月11日星期五87数据库系统概念-关系模型2.3.3除运算l示例,求学了所有课的学生学号:思考1:使用,有几种写法?思考2:不使用,如何书写?SSCCSnoSnameDeptSnoCnoScoreCnoCnameS1甲计S1C180C1DSS2乙软S1C290C2DBS3丙软S2C170S4丁计S3C2602022年11月11日星期五88数据

43、库系统概念-关系模型2.3.4赋值运算l定义 为使查询表达简单、清晰,可以将一个复杂的关系代数表达式分成几个部分,每一部分都赋予一个临时关系变量,该变量可被看作关系而在后面的表达式中使用临时关系变量关系代数表达式 赋值给临时关系变量只是一种结果的传递,而赋值给永久关系则意味着对数据库的修改2022年11月11日星期五89数据库系统概念-关系模型2.3.4赋值运算l示例RS=X(R)X(X(R)Y(S)R)用赋值重写为:temp1 X(R)temp2 X(temp1 Y(S)R)result temp1 temp22022年11月11日星期五90数据库系统概念-关系模型2.3附加运算:练习 1、

44、求计算机系学生的“DB”成绩(sno,sname,score)2、使用,求学了s5 所学全部课程的学生3、不使用,求学了s5 所学全部课程的学生SSCCSnoSnameDeptSnoCnoScoreCnoCnameS1甲计S1C180C1DSS2乙软S1C290C2DBS3丙软S2C170S4丁计S3C2602022年11月11日星期五91数据库系统概念-关系模型2.5空值,Nulll空值的语义不知道 或 不存在l空值的表现 参与算术运算:结果为Null 参与比较运算:结果为Null 参与逻辑运算:1、Null or true=ture 2、Null and false=false3、其它情况

45、结果为nulll空值是一种状态,不是一个明确的值SSnoSnameDeptSageS1甲计20S2乙软21S3丙软S4丁202022年11月11日星期五92数据库系统概念-关系模型2.5关系代数对空值的处理l不是总有道理,更多的时候是定义l(E)保留使确定地为真的元组 求20岁的学生 求不是20岁的学生lA1,A2(E)元组表现相同(认为表示的语义相同),则保留一个元组 求各系年龄分布(dept,sage)l:与的处理原则一致SSnoSnameDeptSageS1甲计20S2乙软21S3丙软S4丁软2022年11月11日星期五93数据库系统概念-关系模型2.4扩展的关系代数l关系代数扩展的几个

46、运算:广义投影 聚集、分组聚集 外连接l扩展的关系代数运算:对关系代数的查询能力进行了一些经常需要的扩展 一般地讲,扩展的运算属于关系代数 严格地说,扩展的运算不属于关系代数运算2022年11月11日星期五94数据库系统概念-关系模型2.4.1广义投影l定义 在投影列表中使用算术表达式来对投影进行扩展F1,F2,Fn(E)F1 ,F2 ,Fn 是算术表达式 as更名l示例 求教工应缴纳的所得税P#,SAL*5/100(PROF)R(p#,INCOME-TAX)(P#,SAL*5/100(PROF)2022年11月11日星期五95数据库系统概念-关系模型2.4.2聚集函数l定义 求一组值的统计信

47、息,返回单一值 使用聚集的集合可以是多重集,即一个值可以重复出现多次。如果想去除重复值,可以用连接符-将distinct附加在聚集函数名后,如sum-distinct sum:求和 求全体教工的总工资sumSALSAL(PROF)求001号学生的总成绩sumSCORESCORE(S#=001(SC)2022年11月11日星期五96数据库系统概念-关系模型2.4.2聚集函数 avg:求平均 求001号同学选修课程的平均成绩。avgSCORESCORE(S#=001(SC)count:计数 求001号同学选修的课程数。countC#C#(S#=001(SC)求任课老师的总数。count-disti

48、nctP#P#(PC)2022年11月11日星期五97数据库系统概念-关系模型 max:求最大值 min:求最小值 求学生选修数学的最高成绩maxSCORE(CN=数学(C)SC)l分组 将一个元组集合分为若干个组,在每个分组上使用聚集函数。属性下标属性下标 G G 聚集函数聚集函数属性下标属性下标(关系)(关系)2.4.2聚集函数对此属性在每个分对此属性在每个分组上运用聚集函数组上运用聚集函数按此属性上的按此属性上的值对关系分组值对关系分组2022年11月11日星期五98数据库系统概念-关系模型2.4.2聚集函数 分组运算G G 的一般形式G G1 1,G,G2 2,.,G,.,Gn n G

49、 G F F1 1,A,A1 1,F,F2 2,A,A2 2,F,Fmm,A,Amm(E E)G Gi i是用于分组的属性,F Fi i是聚集函数,A Ai i是属性名。G G 将E分为若干组,满足:1)同一组中所有元组在G G1 1,G,G2 2,.,G,.,Gn n上的值相同。2)不同组中元组在G G1 1,G,G2 2,.,G,.,Gn n上的值不同。l示例求每位学生的总成绩和平均成绩S#S#G GsumsumSCORE SCORE ,avgavgSCORESCORE(SCSC)2022年11月11日星期五99数据库系统概念-关系模型RABC77310g sum(c)sum(c)(R)s

50、um-C272.4.2聚集函数2022年11月11日星期五100数据库系统概念-关系模型2.4.2聚集函数branch-nameaccount-numberbalancePerryridgePerryridgeBrightonBrightonRedwoodA-102A-201A-217A-215A-222400900750750700branch-namebalancePerryridgeBrightonRedwood13001500700accountbranch-name g sum(balance)(account)2022年11月11日星期五101数据库系统概念-关系模型2.4.2聚集

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(数据库系统概念关系模型总结课件.ppt)为本站会员(晟晟文业)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|