《关系数据库方法》PPT课件.ppt
《《关系数据库方法》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《关系数据库方法》PPT课件.ppt(90页珍藏版)》请在装配图网上搜索。
第4章关系数据库方法,本章主要内容,本章将主要介绍关系数据库的基本概念,关系运算和关系表达式的优化问题,其中关系运算和关系表达式的优化问题是本课程的重点内容之一。关系运算是关系数据模型的理论基础。,关系数据库方法,4.1关系数据库的基本概念4.2关系代数4.3关系演算4.4关系查询优化本章小结,4.1关系数据库的基本概念,4.1.1关系的形式化定义4.1.2关系模式、关系子模式和存储模式4.1.3关系模型的完整性规则4.1.4关系数据库模式,4.1.1关系的形式化定义,1.关系的集合表示一个关系由若干个不同元组组成。一个关系可以看成是元组的集合。关系中每个属性都有其相应的取值范围,即域,4.1.1关系的形式化定义,给定一组域D1,D2,Dn则其笛卡尔积D1D2Dn=(d1,d2,dn)diDi,i=1,2,n每个元素(d1,d2,dn)称为一个元组。若Di(i=1,2,n)为有限集,其基数为mi(i=1,2,n),则D1D2Dn的基数为:,4.1.1关系的形式化定义,【例4-1】设有两个域:教师名域T胡恒,丁伟、课程名域CC语言,数据结构,计算机原理,T和C的笛卡儿积定义为集合:TC(胡恒,C语言),(胡恒,数据结构),(胡恒,计算机原理),(丁伟,C语言),(丁伟,数据结构),(丁伟,计算机原理),该笛卡儿积的基数为236,也就是说,TC一共236个元组.,4.1.1关系的形式化定义,如果取该笛卡儿积的这六个元素,并将它们放到一张名为T_C的二维表中就构成一个关系。,例,给出三个域:D1=导师=张清玫,刘逸D2=专业=计算机专业,信息专业D3=研究生=李勇,刘晨,王敏,4.1.1关系的形式化定义,则D1,D2,D3的笛卡尔积为:D1D2D3(张清玫,计算机专业,李勇),(张清玫,计算机专业,刘晨),(张清玫,计算机专业,王敏),(张清玫,信息专业,李勇),(张清玫,信息专业,刘晨),(张清玫,信息专业,王敏),(刘逸,计算机专业,李勇),(刘逸,计算机专业,刘晨),(刘逸,计算机专业,王敏),(刘逸,信息专业,李勇),(刘逸,信息专业,刘晨),(刘逸,信息专业,王敏),4.1.1关系的形式化定义,在上述笛卡尔积中取出有实际意义的元组来构造关系。关系:SAP(SUPERVISOR,SPECIALITY,POSTGRADUATE)如,SAP关系可以包含三个元组:(张清玫,信息专业,李勇),(张清玫,信息专业,刘晨),(刘逸,信息专业,王敏),4.1.1关系的形式化定义,定义4-1:一个在域D1,D2,,Dn上的关系就是笛卡儿积D1D2Dn的子集,用R(D1,D2,,Dn)表示,关系的成员为元组,即笛卡儿积的子集的元素(d1,d2,dn)。当n=1时,称关系为单元关系当n=2时,称关系为二元关系,4.1.1关系的形式化定义,2.关键码和表之间的联系在关系数据库中,通常有如下几种键:(1)超键在一个关系中,能惟一标识元组但含有多余属性的属性组合,称为关系的超键。(2)候选键如果一个属性组能唯一标识元组,且又不含有多余的属性,那么这个属性组称为关系的候选键。(3)主键若一个关系中有多个候选键,则选其中的一个为关系的主键。,4.1.1关系的形式化定义,用主键实现关系定义中:表中任意两行(元组)不能相同的约束。主键中任何属性的取值不能为空,主键的值不能重复。包含在任何一个候选键中的属性称为主属性,不包含在任何键中的属性称为非主属性或非键属性。,4.1.1关系的形式化定义(8),在上表中,“职工编号”、“身份证号”可以作候选键。关系的候选键可以有多个,但不能同时使用,只能使用一个,譬如使用“职工编号”来标识职工,那么“职工编号”就是主键了。,4.1.1关系的形式化定义,(4)外键若一个关系R中包含有另一个关系S的主键所对应的属性集F,则称F为R的外键。并称关系S为被参照关系或目标关系,关系R为依赖关系或参照关系。,例如,职工关系和部门关系分别为:职工(职工编号,姓名,部门编号,性别,年龄,身份证号码)部门(部门编号,部门名称,部门经理),职工关系的主键为职工编号,部门关系的主键为部门编号,在职工关系中,部门编号是它的外键。,4.1.1关系的形式化定义,4.1.1关系的形式化定义,3.关系的一阶谓词表示关系模型不但可以用关系代数表示,还可以用一阶谓词演算表示。,定义4-2:设有关系模式R,其原子谓词表示形式为P(t)。其中,P是谓词,t为个体变元,以元组为其表现形式。,4.1.1关系的形式化定义,关系R(元组的集合)与谓词P(t)之间的联系描述为:RtP(t)表示所有使谓词P为真或满足谓词P的元组t都属于关系R。关系R与原子谓词P之间的关系如下:P(t)True,t在R内,P(t)False,t不在R内。,4.1.2关系模式、关系子模式和存储模式,1)关系模式关系模式是对关系的描述,它包括模式名,组成该关系的诸属性名、值域名和模式的主键。具体的关系称为实例。一般形式是R(A1,A2,,An),其中R是关系名,A1,A2,,An是该关系的属性名。,4.1.2关系模式、关系子模式和存储模式,学生关系模式S(SNO,SNAME,AGE,SEX,DNAME)课程关系模式C(CNO,CNAME,DNAME,TNAME)选课关系模式SC(SNO,CNO,SCORE),将该实体联系图(ER图)转换成关系模式集如下:,4.1.2关系模式、关系子模式和存储模式,4.1.2关系模式、关系子模式和存储模式,4.1.2关系模式、关系子模式和存储模式,2)关系子模式关系子模式是对用户所需数据的结构的描述是从若干关系模式中抽取满足一定条件的数据,其中包括这些数据来自哪些模式和应满足哪些条件。,4.1.2关系模式、关系子模式和存储模式,例如:用户需要用到成绩子模式G(SNO,SNAME,CNO,SCORE)。子模式G对应的数据来源于表S和表SC,构造时应满足它们的SNO值相等。子模式G的构造过程如图所示。,G,3)存储模式存储模式描述了关系是如何在物理存储设备上存储的。关系存储时的基本组织方式是文件。由于关系模式有键,因此存储一个关系可以用散列方法或索引方法实现。如果关系中元组数目较少(100以内),那么也可以用堆文件方式实现此外,还可以对任意的属性集建立辅助索引。,4.1.2关系模式、关系子模式和存储模式,SCORE,4.1.3关系模型的完整性规则,关系模型的完整性规则是对数据的约束。关系模型提供了三类完整性规则,实体完整性规则、参照完整性规则、用户定义的完整性规则。其中实体完整性规则和参照完整性规则是关系模型必须满足的完整性的约束条件,称为关系的两个不变性。,4.1.3关系模型的完整性规则,1)实体完整性规则实体完整性规则:关系中元组的主码值不能为空且不能重复。主码若包含多个属性,则其中的任何属性取值都不能为空。如:选课关系模式SC(SNO,CNO,SCORE),其主码由SNO,CNO组成,因此,SNO和CNO的取值都不能为空。,4.1.3关系模型的完整性规则,2)参照完整性规则(1)关系间的引用在关系模型中实体及实体间的联系都是用关系来描述的,因此可能存在着关系与关系间的引用。在关系数据库中,关系与关系之间的引用是通过公共属性实现的。,4.1.3关系模型的完整性规则,例1:学生实体、专业实体以及专业与学生间的一对多联系用关系模式表示如下,这两个关系之间通过公共属性“专业号”进行联系。学生(学号,姓名,性别,专业号,年龄)专业(专业号,专业名)说明:学生表中的“专业号”属性的取值要参照专业表中的主码“专业号”的值,不能取专业表中“专业号”以外的值。,学生(学号,姓名,性别,专业号,年龄),专业(专业号,专业名),4.1.3关系模型的完整性规则,4.1.3关系模型的完整性规则,例2、学生、课程、学生与课程之间的多对多联系学生(学号,姓名,性别,专业号,年龄)课程(课程号,课程名,学分)选修(学号,课程号,成绩),学生,学生选课,课程,4.1.3关系模型的完整性规则,例3学生实体及其内部的领导联系(一对多)学生(学号,姓名,性别,专业号,年龄,班长),4.1.3关系模型的完整性规则,(2)外码参照完整性规则是通过外码来实现的。外码(ForeignKey)的定义:设F是基本关系R的一个或一组属性,但不是关系R的主码。如果F与基本关系S的主码Ks相对应,则称F是基本关系R的外码.,4.1.3关系模型的完整性规则,基本关系R称为参照关系(ReferencingRelation)基本关系S称为被参照关系(ReferencedRelation)或目标关系(TargetRelation)。,4.1.3关系模型的完整性规则,(3)参照完整性规则:若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码Ks相对应,则对于R中的每个元组,其在F上的取值只有以下两种情况:或者取空值(F中的每个属性值均为空值)或者等于S中某个元组的主码值。,4.1.3关系模型的完整性规则,例4:学生(学号,姓名,性别,专业号,年龄)专业(专业号,专业名)学生关系中每个元组的“专业号”属性只能取以下两种值:(1)空值,表示尚未给该学生分配专业(2)非空值,这时该值必须是专业关系中某个元组的“专业号”值,表示该学生不可能分配到一个不存在的专业中,外码,4.1.3关系模型的完整性规则,例5、在选修(学号,课程号,成绩)中,“学号”和“课程号”是选修关系中的主属性,按照实体完整性和参照完整性规则,它们只能取被参照关系“学生”和“课程”中已经存在的主码值,而不能取空值。因为主码中的任何属性都不能为空。,推论:当外码是其所在表的主码中的一部分时,不能取空值。只有当外码不是其所在表的主码中的一部分时,才可以取空值。,4.1.3关系模型的完整性规则,例6、学生(学号,姓名,性别,专业号,年龄,班长)“班长”属性值可以取两类值:(1)空值,表示该学生所在班级尚未选出班长,或该学生本人即是班长;(2)本关系中某个元组的学号值,4.1.3关系模型的完整性规则,导师,研究生,允许为空值,这是一个错误值(引用了不存在的编码318),例如,图中研究生表的主码是学号,不包含空的数据项;导师表的主码是导师编号,也不包含空的数据项,所以,这两个表都满足实体完整性规则违反了参照完整性规则。,4.1.3关系模型的完整性规则,3)用户定义的完整性规则这是针对某一具体数据的约束条件,由应用环境决定。它反映某一具体应用所涉及的数据必须满足的语义要求。例如:学生成绩应该大于或等于零,职工的工龄应小于年龄,等等。,4.1.4关系数据库模式,一个关系数据库是多个关系的集合,这些具体关系构成了关系数据库的实例。由于每个关系都有一个模式,所以,构成该关系数据库的所有关系模式的集合构成了关系数据库模式。,例如,一个学生选课数据库系统的模式有下面三个关系模式构成:S(SNO,SNAME,SEX,AGE,DNAME)C(CNO,CNAME,PRE_CNO)SC(SNO,CNO,SCORE),4.2关系代数,4.2.1关系代数的五个基本操作4.2.2关系代数的组合操作4.2.3关系代数表达式应用举例,4.2.1关系代数的五个基本操作,关系代数操作集,是个完备的操作集,任何其他关系代数操作都可以用这五种操作来表示。这五种操作被称为关系代数的五个基本操作。,并,差,笛卡尔积,选择,投影,4.2.1关系代数的五个基本操作,设关系R和S具有相同结构的关系模式,R和S的并是由属于R或属于S的元组构成的集合,记为RS。形式定义如下:RSt|tRtS,t是元组变量,R和S的元数相同。,1)并(Union),4.2.1关系代数的五个基本操作,例如:有库存和进货两个表(见下表),要将两个表合并为一个表,可利用并运算来实现。,2)差(Difference),设关系R和S具有相同结构的关系模式,R和S的差是由属于R但不属于S的元组构成的集合,记为RS。形式定义如下:RSt|tRtS,R和S的元数相同。,例如:有考生成绩合格者名单和身体不合格名单两个关系,按录取条件将成绩合格且身体健康的考生中产生录取名单关系。,事例,3)笛卡尔积(CartesianProduct),设有关系R和S,它们分别是n目和m目关系(即它们的属性个数分别为n和m),分别有p和q个元组。则关系R,S经笛卡尔积运算的结果T是一个nm目关系,共有pq个元组,这些元组是由R与S的元组组合而成的。,关系R与S的笛卡尔积记为RS,形式定义如下:,3)笛卡尔积举例,表4.6(b)MANAGER(经理),例4.3:假定部门信息存放在表DEPTINFO中(见表4.7),则表MANAGER与表DEPTINFO的笛卡尔积如表4.8所示。,3)笛卡尔积举例,R,S,RS,4)选择运算(Selection),选择操作是根据某些条件对关系做水平分割,即在一个关系内选择符合条件的元组称为选择运算。选择运算可表示为:C(R)ttRCt=True选择运算是从行的角度进行的运算。,选择运算举例,1、对表WORKER执行下列选择运算:,练习题:查询1号部门年龄低于30的员工信息。,选择运算举例,Student,选择运算举例,例1查询信息系(IS系)全体学生Sdept=IS(Student)或5=IS(Student)结果:,选择运算举例,例2查询年龄小于20岁的学生Sage20(Student)或421SEX=男(S),(3)检索至少选修“陈军”老师所授全部课程的学生姓名(SNAME),SNAME(S(SNO,CNO(SC)CNO(TEACHER=陈军(C),S(SNO,SNAME,AGE,SEX,DNAME)C(CNO,CNAME,PRE_CNO,TEACHER)SC(SNO,CNO,SCORE),应用举例,(4)检索“李强”同学不学课程的课程号(CNO),CNO(C)CNO(SNAME=李强(S)SC),(5)检索至少选修两门课程的学生学号(SNO),SNO(1=425(SCSC),(6)检索全部学生都选修的课程的课程号(CNO)和课程名(CNAME),CNO,CNAME(C(SNO,CNO(SC)SNO(S),(7)检索选修课程包含“陈军”老师所授课程之一的学生学号(SNO),SNO(SCCNO(TEACHER=陈军(C),S(SNO,SNAME,AGE,SEX,DNAME)C(CNO,CNAME,PRE_CNO,TEACHER)SC(SNO,CNO,SCORE),应用举例,(10)检索选修课程包含学号为S2的学生所修课程的学生学号(SNO),SNO,CNO(SC)CNO(SNO=S2(SC),(11)检索选修课程名为“C语言”的学生学号(SNO)和姓名(SNAME),SNO,SNAME(S(SNO(SC(CNAME=C语言(C),SNO,CNO(SC)CNO(CNO=k1CNO=k5(C),(8)检索选修课程号为k1和k5的学生学号(SNO),(9)检索选修全部课程的学生姓名(SNAME),SNAME(S(SNO,CNO(SC)CNO(C),S(SNO,SNAME,AGE,SEX,DNAME)C(CNO,CNAME,PRE_CNO,TEACHER)SC(SNO,CNO,SCORE),4.3关系演算,把数理逻辑的谓词演算引入到关系运算中,就可得到以关系演算为基础的运算。关系演算又可分为元组关系演算和域关系演算,前者以元组为变量,后者以属性(域)为变量。4.3.1元组关系演算4.3.2域关系演算,4.3.1元组关系演算,在元组关系演算中,元组关系演算表达式的一般形式为:t|P(t)表示满足公式P的所有元组t的集合。,设关系R和S的谓词分别为R(u)和S(v),用它们表示并、差、选择、投影和笛卡儿积如下:1)并:RStR(t)S(t)2)差:RStR(t)S(t)3)选择:F(R)tR(t)F其中F是条件表达式F在谓词演算中的表示形式。,4.3.1元组关系演算,4)投影:5)笛卡儿积:,元组关系演算表达查询举例,设有关系模式S(SNO,SNAME,SEX,SA,SDEPT)例4.11:列出计算机科学系CS的所有学生:,例4.12:列出所有年龄大于或等于20的学生:,例4.13:求学生姓名及所在的系:,4.3.2域关系演算,域演算的运算符基本上与元组关系演算相同,主要区别是公式中的变元不再是元组而是元组分量的域,简称域变量。域演算表达式的形式是:X1,X2,Xk(X1,X2,Xk),原子公式有三类:(1)R(X1,X2,Xk),R是K元关系,Xi是域变量或常量。R(X1,X2,Xk)表示由分量X1,X2,Xk组成的元组属于R。(2)XY,X、Y是域变量,是算术比较符,XY表示X与Y满足比较关系。(3)Xc或cX,这里c为常数,表示域变量x与常数c之间满足比较关系。,4.4关系查询优化,查询是数据库的最基本、最常用、最复杂的操作。数据库的查询一般从查询语句出发,直到获得查询结果,需要一个处理过程,这个过程叫做查询处理。在关系数据库的查询中用户不必关心查询语言的具体执行过程,而由DBMS确定合理的、有效的执行策略,称为查询优化。,4.4.1查询优化的一般策略,(1)尽可能早地执行选择、投影等一目运算。(2)先做选择,后作连接运算。(3)把投影同其前面的双目运算结合起来,没有必要为了去掉某一个或某几个属性而扫描一遍关系。,本章小结,关系运算理论是关系数据库查询语言的理论基础。只有掌握了关系运算理论,才能深刻理解查询语言的本质和熟练使用查询语言。本章先介绍了关系数据库的基本概念。关系定义为元组的集合,但关系又有它特殊的性质。关系代数的五个基本操作以及由它们组成的组合操作,这是本章的重点。要能进行两方面的应用:一是计算关系代数表达式的值;二是根据查询语句写出关系代数表达式的表示形式。,本章小结,关系演算是基于谓词演算的关系运算,理论性较强。主要理解表达式的语义,计算其最优值,并能根据简单的查询语句写出元组表达式。查询优化是指系统对关系代数表达式要进行优化组合,以提高系统效率。本章介绍了关系代数的表达式的若干变换规则和优化的一般策略,然后提出了一个查询优化的算法。,练习题,1、关系代数表达式的优化策略中,要尽早执行的是()A.对文件进行预处理B.选择运算C.执行笛卡儿积运算D.投影运算2、关系数据模型上的关系运算分为()A.关系代数和集合运算B.关系代数和关系演算C.关系演算和谓词演算D.关系代数和谓词演算,练习题,3、在关系代数的传统集合运算中,假定有关系R和S,运算结果为RS。如果RS中的元组属于R或者属于S,则RS是运算的结果。4、在关系代数的传统集合运算中,假定有关系R和S,运算结果为RS,如果RS中的元组属于R而不属于S,则RS是运算的结果。,练习题,5、在关系代数的传统集合运算中,假定有关系R和S,运算结果为RS。如果RS中的元组既属于R又属于S,则RS是_运算的结果。6、自然连接是一种特殊的,它要求两个关系中进行比较的分量必须是,并且在结果中要把去掉。,练习题,7、设F是基本关系R的一个或一组属性,但不是关系R的码。如果F与基本关系S的主码Ks相对应,则称F是基本关系R的。R被称为关系,s被称为关系。8、关系代数中的选择运算可以从关系中选择满足条件的元组,它是从角度对关系进行的运算。,练习题,9、关系代数中专门的关系运算有、。基本的关系运算有、。10、和是关系模型必须满足的完整性约束条件,被称为关系的。11、关系代数中的运算可以从关系中选取若干列组成新的关系。,- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 关系数据库方法 关系 数据库 方法 PPT 课件
装配图网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
关于本文