欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    数据库第三章关系数据库.ppt

    • 资源ID:5985713       资源大小:835.50KB        全文页数:117页
    • 资源格式: PPT        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    数据库第三章关系数据库.ppt

    第二章 关系数据库,提纲,2.1 关系数据结构及形式化定义2.2 关系操作2.3 关系的完整性2.4 关系代数2.5 关系演算,关系数据库简介,美国IBM公司的E.F.Codd于70年代初提出关系数据理论。1970年提出关系数据模型E.F.Codd,“A Relational Model of Data for Large Shared Data Banks”,Communication of the ACM,1970之后,提出了关系代数和关系演算的概念1972年提出了关系的第一、第二、第三范式1974年提出了关系的BC范式,他因此获得1981年的ACM图灵奖。,关系数据库简介,关系理论是建立在集合代数理论基础上的,有着坚实的数学基础早期代表系统System:由IBM研制INGRES:由加州Berkeley分校研制目前主流的商业数据库系统Oracle,Informix,Sybase,SQL Server,DB2Access,Foxpro,Foxbase,2.1关系数据结构及形式化定义,域(Domain)是一组具有相同数据类型的值的集合。例:整数实数介于某个取值范围的整数长度指定长度的字符串集合男,女.,2.1关系数据结构及形式化定义,笛卡尔积(Cartesian Product)给定一组域D1,D2,Dn,这些域中可以有相同的。D1,D2,Dn的笛卡尔积为:D1D2Dn=(d1,d2,dn)|diDi,i=1,n含义:所有域的所有取值的一个组合;不能重复,2.1关系数据结构及形式化定义,例:设 D1为教师集合(T)=t1,t2 D2为学生集合(S)=s1,s2,s3 D3为课程集合(C)=c1,c2 则D1D2D3是个三元组集合,是所有可能的(教师,学生,课程)元组集合.笛卡尔积可表为二维表的形式,表中的每行对应一个元组,表中的每列对应一个域。,多少行列?,含义?,2.1关系数据结构及形式化定义,1.元组(Tuple)笛卡尔积中每一个元素(d1,d2,dn)叫作一个n元组(n-tuple)或简称元组(Tuple)(t1,s1,c1)、(t1,s1,c2)等都是元组 2.分量(Component)笛卡尔积元素(d1,d2,dn)中的每一个值di叫作一个分量.t1,s1,c1等都是分量,2.1关系数据结构及形式化定义,3.基数(Cardinal number)若Di(i1,2,n)为有限集,其基数为mi(i1,2,n),则D1D2Dn的基数M为:4.笛卡尔积的表示方法笛卡尔积可表示为一个二维表表中的每行对应一个元组,表中的每列对应一个域,2.1关系数据结构及形式化定义,关系笛卡尔积D1D2Dn的子集叫做在域D1,D2,Dn上的关系,用R(D1,D2,Dn)表示R是关系的名字,n是关系的度或目(Degree)关系是笛卡尔积中有意义的子集关系也可以表示为二维表关系TEACH(T,S,C),元组,属性,含义?,2.1关系数据结构及形式化定义,1.元组关系中的每个元素是关系中的元组,通常用t表示。2.单元关系与二元关系当n=1时,称该关系为单元关系(Unary relation)或一元关系 当n=2时,称该关系为二元关系(Binary relation),2.1关系数据结构及形式化定义,3.关系的表示关系也是一个二维表,表的每行对应一个元组,表的每列对应一个域4.属性关系中不同列可以对应相同的域为了加以区分,必须对每列起一个名字,称为属性(Attribute)n目关系必有n个属性,2.1关系数据结构及形式化定义,5.码候选码(Candidate Key)关系中的一个属性组,其值能唯一标识一个元组。若从属性组中去掉任何一个属性,它就不具有这一性质了,这样的属性组称作候选码 如DEPT中的D#,DN都可作为候选码任何一个候选码中的属性称作主属性,不包含在任何侯选码中的属性称为非主属性,或非码属性。如SC中的S#,C#主码(Primary Key)进行数据库设计时,从一个关系的多个候选码中选定一个作为主码 如可选定D#作为DEPT的主码,2.1关系数据结构及形式化定义,全码(All-key)最极端的情况:关系模式的所有属性组是这个关系模式的候选码,称为全码(All-key)。如:教师授课关系(教师编码,课程编码)外部码(Foreign Key)关系R中的一个属性组,它不是R的码,但它与另一个关系S的码相对应,则称这个属性组为R的外部码 如S关系中的D#属性,如:s(sno,same,sex)c(cno,cname)sc(sno,cno,score),2.1关系数据结构及形式化定义,6.三类关系基本关系(基本表或基表)实际存在的表,是实际存储数据的逻辑表示查询表查询结果对应的表视图表由基本表或其他视图表导出的表,是虚表,不对应实际存储的数据,2.1关系数据结构及形式化定义,7.关系的性质 笛卡儿积不满足交换律,按照数学定义(d1,d2,dn)(d2,d1,dn)因此,当关系作为关系数据模型的数据结构时,需要做如下的限制和扩充:(1)无限关系在关系数据库中是无意义的。因此限定关系数据模型中的关系必须是有限集合。(2)通过对关系的每一列附加一个属性名的方法取消关系元组的有序性,即:(d1,d2,di,dj,dn)=d1,d2,dj,di,dn)(i,j=1,2,n),2.1关系数据结构及形式化定义,关系的性质:(1)列是同质的即每一列中的分量来自同一域,是同一类型的数据。其中的每一列称为一个属性,不同的属性要给予不同的属性名。如TEACH(T,S,C)=(t1,s1,c1),(t1,t2,c1)是错误的(2)不同的列可来自同一域,每列必须有不同的属性名。如P=t1,t2,s1,s2,s3,C=c1,c2,则TEACH不能写成TEACH(P,P,C),还应写成TEACH(T,S,C)(3)行列的顺序无关紧要,2.1关系数据结构及形式化定义,(4)任意两个元组不能完全相同(集合内不能有相同的两个元素,一般限制为任意两个元组的候选码不能相同)(5)每一分量必须是不可再分的数据。满足这一条件的关系称作满足第一范式(1NF)的。这是规范条件中最基本的一条.非规范化关系,2.1关系数据结构及形式化定义,关系模式关系的描述称作关系模式,包含:(1)元组集合的结构属性构成属性来自的域 属性与域之间的映象关系(2)元组语义以及完整性约束条件(3)属性间的数据依赖关系集合,2.1关系数据结构及形式化定义,关系模式可以形式化地表示为:R(U,D,DOM,F)R 关系名U 组成该关系的属性名集合D 属性组U中属性所来自的域DOM 属性向域的映象集合F 属性间的数据依赖关系集合关系模式通常可以简记为 R(U)或 R(A1,A2,An)R:关系名A1,A2,An:属性名注:域名及属性向域的映象常常直接说明为属性的类型、长度,2.1关系数据结构及形式化定义,关系模式对关系的描述,是型,静态的、稳定的关系关系模式在某一时刻的状态或内容动态的、随时间不断变化的关系模式和关系往往统称为关系,通过上下文加以区别,2.1关系数据结构及形式化定义,关系数据库 在一个给定的应用领域中,所有关系的集合构成一个关系数据库。1.关系数据库的型:关系数据库模式,对关系数据库的描述。关系数据库模式包括若干域的定义在这些域上定义的若干关系模式2.关系数据库的值:关系模式在某一时刻对应的关系的集合,简称为关系数据库其型是关系模式的集合,即数据库描述,称作数据库的内涵(Intension)其值是某一时刻关系的集合,称作数据库的外延(Extension),2.1关系数据结构及形式化定义,例子:用关系模型表达该概念模型,提示:(数据结构)单一的数据结构关系实体集、联系都表示成关系,如何表达实体和实体间的联系?,2.1关系数据结构及形式化定义,2.2 关系操作,一、常用的关系操作查询:选择、投影、连接、除、并、交、差数据更新:插入、删除、修改查询的表达能力是其中最主要的部分选择、投影、并、差、笛卡尔基是5种基本操作二、关系操作的特点关系操作是集合操作,操作的对象及结果都是集合,是一次一集合(Set-at-a-time)的方式,而非关系型的数据操作方式是一次一记录(Record-at-a-time),2.2 关系操作,三、关系数据语言概述1、关系数据语言的特点一体化一般关系系统的数据语言都同时具有数据定义、数据操纵和数据控制语言,而不是分为几个语言。对象单一,都是关系,因此操作符也单一。而非关系型系统,如DBTG,有对记录的操作,有对系的操作非过程化用户只需提出“做什么”,无须说明“怎么做”,存取路径的选择和操作过程由系统自动完成面向集合的存取方式操作对象是一个或多个关系,结果是一个新的关系(一次一关系)。非关系系统是一次一记录的方式,2.2 关系操作,2、关系数据语言抽象的查询语言关系代数用对关系的运算来表达查询,需要指明所用操作关系演算用谓词来表达查询,只需描述所需信息的特性元组关系演算谓词变元的基本对象是元组变量域关系演算谓词变元的基本对象是域变量,2.2 关系操作,具体系统中的实际语言SQL介于关系代数和关系演算之间,由IBM公司在研制System R时提出QUEL基于Codd提出的元组关系演算语言ALPHA,在INGRES上实现QBE基于域关系演算,由IBM公司研制,2.3 关系的完整性,关系模型的完整性 是对关系的某种约束条件。分为三类:实体完整性参照完整性用户定义的完整性 其中:(1)实体完整性和参照完整性是关系模型必须满足的完整性约束条件称为关系的两个不变性,应该由关系系统自动支持;(2)用户定义的完整性是应用领域需要遵循的约束条件,体现了具体领域中的语义约束。,2.3.1 实体完整性,实体完整性实现实体的标识。规则3.1 实体完整性规则(Entity Integrity)若属性A(可以是一个属性也可以是多个属性)是基本关系R的主属性,则属性A不能取空值。如:S(S#,SN,SEX,AGE,D#)S#为主码,则S#不能为空。空值:不知道或无意义,2.3.1 实体完整性,实体完整性规则的说明:(1)实体完整性规则是针对基本关系而言的。一个基本表通常对应现实世界的一个实体集。(2)现实世界中的实体是可区分的,即它们具有某种唯一性标识。(3)关系模型中以主码作为唯一性标识。(4)主码中的属性即主属性不能取空值。主属性取空值,就说明存在某个不可标识的实体,即存在不可区分的实体,这与第(2)点相矛盾,因此这个规则称为实体完整性。,2.3.2 参照完整性,1、关系间的引用在关系模型中实体及实体间的联系都是用关系来描述的,因此可能存在着关系与关系间的引用。例1 学生实体、专业实体 学生(学号,姓名,性别,专业号,年龄)专业(专业号,专业名),主码,主码,注:1、学生关系引用了专业关系的主码“专业号”。2、学生关系中的“专业号”值必须是确实存在的专业的专业号,即专业 关系中有该专业的记录。,2.3.2 参照完整性,例2 学生、课程、学生与课程之间的多对多联系 学生(学号,姓名,性别,专业号,年龄)课程(课程号,课程名,学分)选修(学号,课程号,成绩),2.3.2 参照完整性,例3 学生实体及其内部的一对多联系 学生(学号,姓名,性别,专业号,年龄,班长),“学号”是主码,“班长”引用了本关系的“学号”“班长”必须是确实存在的学生的学号,2.3.2 参照完整性,2、外码(Foreign Key)设F是基本关系R的一个或一组属性,但不是关系R的码。如果F与基本关系S的主码Ks相对应,则称F是基本关系R的外码基本关系R称为参照关系(Referencing Relation)基本关系S称为被参照关系(Referenced Relation)或目标关系(Target Relation),2.3.2 参照完整性,例1:学生关系的“专业号与专业关系的主码“专业号”相对应“专业号”属性是学生关系的外码专业关系是被参照关系,学生关系为参照关系,2.3.2 参照完整性,例2:学生选课 选修关系的“学号”与学生关系的主码“学号”相对应;选修关系的“课程号”与课程关系的主码“课程号”相对应;“学号”和“课程号”是选修关系的外码学生关系和课程关系均为被参照关系选修关系为参照关系,2.3.2 参照完整性,例3:“班长”与本身的主码“学号”相对应“班长”是外码学生关系既是参照关系也是被参照关系,2.3.2 参照完整性,说明:关系R和S不一定是不同的关系;目标关系S的主码Ks 和参照关系的外码F必须定义在同一个(或一组)域上;外码并不一定要与相应的主码同名;一般是 当外码与相应的主码属于不同关系时,往往取相同的名字,以便于识别。,2.3.2 参照完整性,规则3.2 参照完整性规则 若属性(或属性组)F是基本关系R的外码它与基本关系S的主码Ks相对应(基本关系R和S不一定是不同的关系),则对于R中每个元组在F上的值必须为:或者取空值(F的每个属性值均为空值)或者等于S中某个元组的主码值,2.3.2 参照完整性,例1:学生关系中每个元组的“专业号”属性只取两类值:(1)空值,表示尚未给该学生分配专业(2)非空值,这时该值必须是专业关系中某个元组的“专业号”值,表示该学生不可能分配一个不存在的专业,2.3.2 参照完整性,例2:选修(学号,课程号,成绩)“学号”和“课程号”可能的取值:(1)选修关系中的主属性,不能取空值(2)只能取相应被参照关系中已经存在的主码值,2.3.2 参照完整性,(例3:学生(学号,姓名,性别,专业号,年龄,班长)“班长”属性值可以取两类值:(1)空值,表示该学生所在班级尚未选出班长(2)非空值,该值必须是本关系中某个元组的学号值,2.3.3用户定义的完整性,针对某一具体关系数据库的约束条件,反映某一具体应用所涉及的数据必须满足的语义要求;关系模型应提供定义和检验这类完整性的机制,以便用统一的系统的方法处理它们,而不要由应用程序承担这一功能。如:学生(学号,姓名,性别,专业号,年龄,班长)“性别”属性只能取值(“男”,“女”),2.3.4 简单应用,零件关系P,供应商关系S,今要向关系P中插入新行,新行的值分别列出如下。哪些行能够插入?A(037,绿,null)B(null,黄,T20)C(201,红,T20)D(105,蓝,B01)E(101,黄,T11),2.3.5 完整性检查和违约处理,一、实体完整性的检查和违约处理插入或更新操作 在插入或对主码列进行更新操作时,RDBMS按照实体完整性规则自动进行检查。包括:1.检查主码值是否唯一,如果不唯一则拒绝插入或修改 2.检查主码的各个属性是否为空,只要有一个为空就拒绝插入或修改,2.3.5 完整性检查和违约处理,检查方法 一般采用全表扫描或索引扫描,如全表扫描方法是检查记录中主码值是否唯一。,2.3.5 完整性检查和违约处理,二、参照完整性的检查和违约处理,可能破坏参照完整性的情况及违约处理,2.3.5 完整性检查和违约处理,参照完整性违约处理方法1.拒绝(NO ACTION)执行一般为默认策略2.级联(CASCADE)操作3.设置为空值(SET-NULL),2.3.5 完整性检查和违约处理,Student(主),Sc(从),1.拒绝(NO ACTION)执行,插入,更新,删除,2.3.5 完整性检查和违约处理,Student(主),Sc(从),2.级联(CASCADE)操作,插入,更新,删除,2.3.5 完整性检查和违约处理,Student(主),Sc(从),3.设置为空值(SET-NULL),插入,更新,删除,2.3.5 完整性检查和违约处理,三、用户自定义完整性用户定义的完整性就是针对某一具体应用的数据必须满足的语义要求 RDBMS提供,而不必由应用程序承担,2.4 关系代数,基本运算一元运算选择、投影、更名多元运算笛卡儿积、并、集合差其它运算集合交、自然连接、除、赋值扩展运算广义投影、外连接、聚集修改操作插入、删除、更新,关系代数的一些记号,给定关系模式R(A1,A2,An),设R是它的一个具体的关系,tR是关系的一个元组分量设tR,则tAi表示元组t中相应于属性Ai的一个分量属性列Ai=Ai1,Ai2,AikA1,A2,An,称A为属性列;A表示A1,A2,An中去掉A后剩余的属性组。tAi=(tAi1,tAi2,tAik),示例数据库,学生-课程数据库:学生关系S、课程关系C和选修关系SC,选择运算,基本定义在关系R中选择满足给定条件的元组(从行的角度)F(R)=t|t R,F(t)=真F是选择的条件,t R,F(t)要么为真,要么为假F的形式:由逻辑运算符连接算术表达式而成逻辑表达式:,算术表达式:X YX,Y是属性名、常量、或简单函数是比较算符,,又称为限制;是从行的角度进行的运算,选择运算,R,A5(R),A5 C=7(R),选择运算,示例1、查询信息系(IS系)全体学生 Sdept=IS(S)或5=IS(S),2、找年龄小于20的男学生,AGE20 SEX=男(S),投影,定义从关系R中取若干列组成新的关系(从列的角度)A(R)=tA|tR,AR投影的结果中要去掉相同的行,R,B,C(R),投影,示例1、给出所有学生的姓名和所在的系Sname,Sdept(S)或 2,5(S),3、找001号学生所选修的课程号,Cno(Sno=001(SC),2、查询学生关系S中都有哪些系,Sdept(S),并运算,定义所有至少出现在两个关系中之一的元组集合RS=r|rR rS,两个关系R和S若进行并运算,则它们必须是相容的:关系R和S必须是同元的,即它们的属性数目必须相同对i,R的第i个属性的域必须和S的第i个属性的域相同,两个关系R和S若进行并运算,去掉重复的元组。,并运算,R,S,RS,并运算,示例求选修了001号或002号课程的学生号方案:Sno(Cno=001 Cno=002(SC)?Sno(Cno=001(SC)VSno(Cno=002(SC)?,方案1:Sno(Cno=001(SC)Sno(Cno=002(SC)方案2:Sno(Cno=001 Cno=002(SC),差运算,定义所有出现在一个关系而不在另一关系中的元组集合RS=r|rR rS R和S必须是相容的,差运算,R,S,RS,SR,差运算,示例求选修了001号而没有选002号课程的学生号,Sno(Cno=001(SC)Sno(Cno=002(SC),交运算,定义所有同时出现在两个关系中的元组集合RS=r|rR rS 交运算可以通过差运算来重写RS=R(R S),RS,交运算,R,S,RS,交运算,示例求同时选修了001号和002号课程的学生号Sno(Cno=001(SC)Sno(Cno=002(SC),错误的写法:Sno(Cno=001 Cno=002(SC),更名运算,定义给一个关系表达式赋予名字x(E)返回表达式E的结果,并把名字x赋给Ex(A1,A2,An)(E)返回表达式E的结果,并把名字x赋给E,同时将各属性更名为A1,A2,An 关系被看作一个最小的关系代数表达式,可以将更名运算施加到关系上,得到具有不同名字的同一关系。这在同一关系多次参与同一运算时很有帮助,第一节,广义笛卡尔积运算,元组的连串(Concatenation)若r=(r1,rn),s=(s1,sm),则定义r与s的连串为:定义两个关系R,S,其度分别为n,m,则它们的笛卡尔积是所有这样的元组集合:元组的前n个分量是R中的一个元组,后m个分量是S中的一个元组RS的度为R与S的度之和,RS的元组个数为R和S的元组个数的乘积,广义笛卡尔积运算,广义笛卡尔积运算,示例 求 A=C(r x s),1、求r x s,2、求A=C(r x s),广义笛卡尔积运算,示例求数学成绩比王红同学高的学生(如下表),S.姓名(R.成绩S.成绩 R.课程=数学 S.课程=数学 R.姓名=王红(RS(R),R,连接,定义从两个关系的广义笛卡儿积中选取给定属性间满足一定条件的元组:A,B为R和S上度数相等且可比的属性列 为算术比较符,为等号时称为等值连接含义:连接运算从R和S的广义笛卡尔积RS中选取(R关系)在A属性组上的值与(S关系)在B属性组上值满足比较关系的元组 R S=rASB(RS),A B,连接,求数学成绩比王红同学高的学生。,求:R S,B D,R,S,两类常用连接,等值连接(equijoin)什么是等值连接为“”的连接运算称为等值连接 等值连接的含义从关系R与S的广义笛卡尔积中选取A、B属性值相等的那些元组,即等值连接为:R S=|tr Rts StrA=tsB,A=B,两类常用连接,自然连接(Natural join)从两个关系的广义笛卡儿积中选取在相同属性列B上取值相等的元组,并去掉重复的属性列。自然连接与等值连接的不同自然连接中相等的分量必须是相同的属性组,并且要在结果中去掉重复的属性,而等值连接则不必。当R与S无相同属性时,R S RS,两类常用连接,一般的连接操作是从行的角度进行运算。自然连接还需要取消重复列,所以是同时从行和列的角度进行运算。,自然连接,自然连接,示例求001号学生所在系的名称Sdept(Sno=001(S)DEPT),R,S,R S,除运算,象集(Image Set)关系R(X,Z),X,Z是属性组,x是X上的取值,定义x在R中的象集为:Zx=tZ|tR tX=x 它表示R中属性组X上值为x的诸元组在Z上分量的集合,即从R中选出在X上取值为x的元组,去掉X上的分量,只留Z上的分量。如:关系R.,x1在R中的象集 Zx1=Z1,Z2,Z3,x2在R中的象集 Zx2=Z2,Z3,x3在R中的象集 Zx3=Z1,Z3,X,Y,除运算,又如:,X Z,张军同学所选修的全部课程,x=张军,Zx,除运算,RS的定义:给定关系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=tr X|tr RY(S)Yx Yx:x在R中的象集,x=trX,除运算,除操作是同时从行和列角度进行运算,除运算,示例1:设关系R、S分别为下图的(a)和(b),RS的结果为图(c),在关系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)属性组上的投影 所以 RS=a1,除运算,示例2求同时选修了1和2号课程的学生号 方案1:Sno,Cno(SC)Cno=1 Cno=2(C)方案2:Sno(SC Cno=1 Cno=2(C)哪一个正确?,除运算,Sno,Cno(SC),Cno=1 Cno=2(C),=,选修了全部课程的学生,除运算,Sno(SC,Cno=1 Cno=2(C),=,选修了全部课程并且成绩都相同的学生,92,=,除运算,除运算的实际意义:除运算适合于包含了“对所有的”此类短语的查询。,第二节,赋值运算,定义为使查询表达简单、清晰,可以将一个复杂的关系代数表达式分成几个部分,每一部分都赋予一个临时关系变量,该变量可被看作关系而在后面的表达式中使用临时关系变量关系代数表达式赋值给临时关系变量只是一种结果的传递,而赋值给永久关系则意味着对数据库的修改,赋值运算,示例RS=X(R)X(X(R)Y(S)R)用赋值重写为:temp1 X(R)temp2 X(temp1 Y(S)R)result temp1 temp2,广义投影,定义在投影列表中使用算术表达式来对投影进行扩展F1,F2,Fn(E)F1,F2,Fn 是算术表达式示例求教工应缴纳的所得税P#,SAL*5/100(PROF)p#,INCOME-TAX(P#,SAL*5/100(PROF),外连接,例:列出老师的有关信息,包括姓名、工资、所教授的课程P#,PN,SAL,C#,CN(PROF)PC C),问题:有关P03号职工的姓名和工资信息没有显示出来,外连接,外连接为避免自然连接时因失配而发生的信息丢失,可以假定往参与连接的一方表中附加一个取值全为空值的行,它和参与连接的另一方表中的任何一个未匹配上的元组都能匹配,称之为外连接外连接=自然连接+失配的元组外连接的形式:左外连接、右外连接、全外连接 左外连接=自然连接+左侧表中失配的元组右外连接=自然连接+右侧表中失配的元组全外连接=自然连接+两侧表中失配的元组,外连接,所有老师的信息,外连接,所有课程的信息,外连接,所有老师和课程的信息,聚集函数,定义求一组值的统计信息,返回单一值使用聚集的集合可以是多重集,即一个值可以重复出现多次。如果想去除重复值,可以用连接符-将distinct附加在聚集函数名后,如sum-distinctsum:求和 求全体教工的总工资sumSAL(PROF)求001号学生的总成绩sumSCORE(S#=001(SC),聚集函数,avg:求平均 求001号同学选修课程的平均成绩。avgSCORE(S#=001(SC)count:计数 求001号同学选修的课程数。countC#(Sno=001(SC)求任课老师的总数。count-distinctP#(PC),聚集函数,max:求最大值 min:求最小值 求学生选修数学的最高成绩maxSCORE(CN=数学(C)SC)分组将一个元组集合分为若干个组,在每个分组上使用聚集函数。属性下标 G 聚集函数属性下标(关系),对此属性在每个分组上运用聚集函数,按此属性上的值对关系分组,聚集函数,分组运算G 的一般形式G1,G2,.,Gn G F1,A1,F2,A2,Fm,Am(E)Gi是用于分组的属性,Fi是聚集函数,Ai是属性名。G 将E分为若干组,满足:1)同一组中所有元组在G1,G2,.,Gn上的值相同。2)不同组中元组在G1,G2,.,Gn上的值不同。示例求每位学生的总成绩和平均成绩S#G sumSCORE,avgSCORE(SC),关系代数查询实例,示例1:求未选修001号课程的学生号 方案1:S#(S)S#(C#=001(SC)方案2:S#(C#001(SC),哪一个正确?,关系代数查询实例,示例2:求仅选修了001号课程的学生号,S#(C#=001(SC)S#(C#001(SC),S#(C#=001(SC)(S#(C#=001(SC)S#(C#001(SC),选修001号课程的学生既选001号又选其它课程的学生,数据库修改,删除将满足条件的元组从关系中删除r r E是对永久关系的赋值运算例:删除001号老师所担任的课程PC PC PC#=001(PC)删除没有选课的学生S S(S#(S)S#(SC)S,关系,关系代数表达式,数据库修改,插入插入一个指定的元组,或者插入一个查询结果r r E示例:新加入一个老师Prof Prof(P07,“周正”,750,D08)示例:加入计算机系学生选修“数学”的信息SC SC S#(S DN=计算机系(DEPT)C#(CN=数学(C),数据库修改,更新利用广义投影改变元组的某些属性上的值r F1,F2,Fn(r)示例:给每位老师上调10%的工资Prof P#,PN,SAL SAL*1.1,D#(Prof)示例:对工资超过800的老师征收5%所得税Prof P#,PN,SAL SAL*0.95,D#(SAL 800(PC)P#,PN,SAL,D#(SAL 800(Prof),视图,定义视图是命名的、从基本表中导出的虚表,它在物理上并不存在,存在的只是它的定义视图中的数据是从基本表中导出的,每次对视图查询都要重新计算create view view_name as 视图之上可以再定义视图视图 Vs 临时关系变量,视图,视图的优点个性化服务简化了用户观点,使不同用户可以从不同角度观察同一数据安全性“知必所需”,限制用户数据的访问范围逻辑独立性视图作为基本表与外模式之间的映象,视图,示例给出老师所教授课程的信息create view p_course As PN,CN(PROF PC C)给出李明老师所教授的课程名称PN=李明(p_course),视图,视图更新create view p_salary as PN,SAL(PROF)在视图p_salary上执行:p_salary p_salary(李明,800)在基本表PROF上执行:PROF PROF(李明,800)往PROF中加入元组(李明,800),缺主码P#信息,可能出现信息缺失,视图,物化视图视图的计算结果被实际存储起来物化视图可以看成是数据库的cache查询物化视图比重新计算视图要快许多需要进行物化视图与基本表之间的一致性维护应用场合任何需要对派生数据的快速访问、或视图的重新计算非常昂贵、或查询需要耗费非常高的CPU和磁盘吞吐量的应用场合,都可以使用物化视图来提高效率,视图,如一个零售数据库,存储terabytes数量级的几个月的销售数据。而诸如某个商店的某件商品的销售总量这样的查询,每天可能要被零售商、仓库管理员、市场部人员执行若干次。这时可以将商品的销售总量查询结果定义为物化视图如一个处理定单与产品的事务系统,大量的查询需要连接定单与产品表,可以将定单与产品表的连接结果定义为物化视图,元组关系演算和域关系演算,关系演算是以数理逻辑中谓词演算为基础的,可以分为元组关系演算和域关系演算。,

    注意事项

    本文(数据库第三章关系数据库.ppt)为本站会员(牧羊曲112)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开