关模型和关系运算理论精选PPT.ppt

上传人:石*** 文档编号:78718880 上传时间:2023-03-19 格式:PPT 页数:92 大小:4.12MB
返回 下载 相关 举报
关模型和关系运算理论精选PPT.ppt_第1页
第1页 / 共92页
关模型和关系运算理论精选PPT.ppt_第2页
第2页 / 共92页
点击查看更多>>
资源描述

《关模型和关系运算理论精选PPT.ppt》由会员分享,可在线阅读,更多相关《关模型和关系运算理论精选PPT.ppt(92页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、关模型和关系运算理论第1页,此课件共92页哦本章重要概念(一)(1)基本概念关系模型,关键码(主键和外键),关系的定义和性质,三类完整性规则,ER模型到关系模型的转换规则,过程性语言与非过程性语言。(2)关系代数五个基本操作,四个组合操作,七个扩充操作。第2页,此课件共92页哦本章重要概念(二)(3)关系演算元组关系演算和域关系演算的原子公式、公式的定义。关系演算的安全性和等价性。(4)关系代数表达式的优化关系代数表达式的等价及等价转换规则,启化式优化算法。(5)关系逻辑谓词、原子、规则和查询,规则的安全性,用规则模拟关系代数表达式。第3页,此课件共92页哦关系模型和关系运算理 l2.1 关系

2、模型的基本概念 l2.2 关系代数 l2.3 关系演算 l2.4 关系代数表达式的优化 l2.5 关系逻辑 第4页,此课件共92页哦2.1 关系模型的基本概念 l2.1.1 基本术语 l2.1.2 关系的定义和性质l2.1.3 关系模型的三类完整性规则 l2.1.4 ER模型向关系模型的转换规则 l2.1.5 关系模型的三级体系结构 l2.1.6 关系模型的形式定义和优点 l2.1.7 关系查询语言和关系运算 返回第5页,此课件共92页哦基本术语(1)l定义2.1 用二维表格表示实体集,用关键码进行数据导航的数据模型称为关系模型(relational Model)。这里数据导航(data na

3、vigation)是指从已知数据查找未知数据的过程和方法。图2.1 职工登记表 第6页,此课件共92页哦基本术语(2)n关系:关系:一个关系对应一张二维表(非形式化描述)关系名一个关系对应一张二维表(非形式化描述)关系名 表名。表名。记录类型称为关系模式。记录类型称为关系模式。n元组:元组:表中的一行称为一个元组(元组的集合即为关系)。表中的一行称为一个元组(元组的集合即为关系)。n属性属性:表中的一列称为属性,列名即属性名。:表中的一列称为属性,列名即属性名。字段值称字段值称为属性值,为属性值,n元数(元数(arityarity):关系中属性的个数。:关系中属性的个数。n基数基数(cardi

4、nality)(cardinality):元组个数称为基数。元组个数称为基数。n属性的值域:属性的值域:属性的取值范围(数据类型),记作属性的取值范围(数据类型),记作DOM(DOM(属性名属性名),每一个属性对应一个值域不同属性可对应同一个值域。比如:职称每一个属性对应一个值域不同属性可对应同一个值域。比如:职称=教授,副教授,讲师,助教教授,副教授,讲师,助教 第7页,此课件共92页哦学号学号9800019800029800039800028:9800029姓名姓名赵学众赵学众钱习志钱习志孙雷成孙雷成:李锋城李锋城甘甘 清清性别性别男男女女:男男男男女女班级班级力力91化化81物物71:汽

5、汽93仪仪81元元组组(行行)关系模式关系模式数据库术语数据库术语关系模型术语关系模型术语记记录录字段值字段值属性值属性值字段字段属性属性记录类型记录类型关系关系文件文件基本术语(3)图2.2 关系模型的术语 第8页,此课件共92页哦基本术语(4)职工关系模式ZG(工号,姓名,年龄,性别,工资)1.超键:能唯一标识元组的一个或一组属性,称为关系的超键超键,例如:(工号,姓名)。2.候选键key:不含多余属性的超键叫候选键,如(工号)。3.主键primary key:当一个关系中有多个候选键时,我们从候选键中选择一个用作元组标识的称为主键,若实际使用中,用工号作为插入、查找的操作变量,称工号为主

6、键。n每个关系都必定有且只有一个主键n对于一个关系,主键一经选定,通常是不能随意改变的4、外部键(Foreign Key)如果关系R2的一个或一组属性不是R2的主键,而是另一关系R1的主键,则该属性或属性组成为关系R2的外部键。第9页,此课件共92页哦数据库应用实例及比较n学生信息管理系统实例n该系统用来管理学生的基本情况,开设课程情况,学生的选课情况及成绩;n数据库:以表格的形式储存了学生,课程,选课的记录;n数据管理系统(DBMS)负责存储和检索这些表格的数据;n建立相关的应用程序,负责处理数据输入,数据查询和产生报表第10页,此课件共92页哦学生课程成绩管理学生学生(学号,姓名,年龄,性

7、别)(学号,姓名,年龄,性别)S(S#,SNAME,SEX,AGE)课程(课程号,课程名,学分)课程(课程号,课程名,学分)C(C#,CNAME,GRADE)选课选课(课程号,学号,成绩)(课程号,学号,成绩)SC(C#,S#,SCORE)举例说明超键、候选键、主键、外键Student(number,name,age,sex)Class(number,name,grade)Sc(classnum,studentnum,score)建议:同学们记下这三个关系模式。好好理解第11页,此课件共92页哦练习:n1 1、现有关系表:学生(宿舍编号,宿舍地址,学号,姓名,性、现有关系表:学生(宿舍编号,宿

8、舍地址,学号,姓名,性别,专业)的主键为:别,专业)的主键为:nA A宿舍编号宿舍编号 B B学号学号nC C宿舍地址,姓名宿舍地址,姓名 D D宿舍编号,学号宿舍编号,学号n2 2、现有关系表:医疗(患者编号,医生编号,医生姓名,诊、现有关系表:医疗(患者编号,医生编号,医生姓名,诊断日期,诊断结果,恢复情况)的主键是:断日期,诊断结果,恢复情况)的主键是:nA A患者编号,医生编号,诊断日期患者编号,医生编号,诊断日期 B B医生编号医生编号nC C诊断日期诊断日期 D D患者编号患者编号第12页,此课件共92页哦练习:1 1、现有如下关系:、现有如下关系:部门(部门编号、部门名称、部门地

9、址、电话)部门(部门编号、部门名称、部门地址、电话)职工(职工号、姓名、性别、职务、部门编号、电话)职工(职工号、姓名、性别、职务、部门编号、电话)其中,职工关系中的外键是()其中,职工关系中的外键是()A A部门编号部门编号 B B姓名姓名nC C职工号职工号 D D职工号,姓名职工号,姓名答案:1、A 2、CDEPT(D#,DNAME)EMP(E#,ENAME,SALARY,D#)第13页,此课件共92页哦2.1.2关系的定义和性质 l定义2.2 关系是一个属性数目相同的元组的集合。l 在关系模型中,对关系作了下列规范性限制:(1)关系中每一个属性值都是不可分解的;关系中每一个属性值都是不

10、可分解的;(2)关系中不允许出现重复元组(即不允许出现相同的元组);(3)由由于于关关系系是是一一个个集集合合,因因此此不不考考虑虑元元组组间间的的顺顺序序,即即没没有行序;有行序;(4)元组中的属性在理论上也是无序的,但使用时按习惯考虑列的顺序。返回第14页,此课件共92页哦2.1.3关系模型的三类完整性规则(1)关系模型的三类完整性 三类完整性是实体完整性、参照完整性和用户定义的完整性(其三类完整性是实体完整性、参照完整性和用户定义的完整性(其中前两类完整性是关系模型必须满足的约束条件)中前两类完整性是关系模型必须满足的约束条件)实体完整性规则(entity integrity rule)

11、要求关系中元组在组成主键的属性上不能有空值。如果出现空值,那么主键值就起不了惟一标织元组的作用。n意义:关系对应到现实世界中的实体集,元组对应到实体,实体是相互可区分的,通过主键来唯一标识,若主键为空,则出现不可标识的实体,这是不容许的。第15页,此课件共92页哦关系模型的三类完整性规则(2)l参照完整性规则(reference integrity rule)l定义2.3 参照完整性规则的形式定义如下:如果属性集K是关系模式R1的主键,K也是关系模式R2的外键,那么在R2的关系中,K的取值只允许两种可能,或者为空值,或者等于R1关系中某个主键值。这条规则的实质是“不允许引用不存在的实体”。在上

12、述形式定义中,关系模式R1的关系称为“参照关系”,关系模式R2的关系称为“依赖关系”。“主表”和“副表”,“父表”和“子表”。第16页,此课件共92页哦关系模型的三类完整性规则(3)l例2.1 下面各种情况说明了参照完整性规则在关系中如何实现的。在关系数据库中有下列两个关系模式:S(S#,SNAME,AGE,SEX)SC(S#,C#,GRADE)这里带下划线者为主键,红色者为外键。据规则要求关系SC中的S#值应该在关系S中出现。如果关系SC中有一个元组(S7,C4,80),而学号S7却在关系S中找不到,那么我们就认为在关系SC中引用了一个不存在的学生实体,这就违反了参照完整性规则。另外,在关系

13、SC中S#不仅是外键,也是主键的一部分,因此这里S#值不允许空。第17页,此课件共92页哦关系模型的三类完整性规则(4)设工厂数据库中有两个关系模式:DEPT(D#,DNAME)EMP(E#,ENAME,SALARY,D#)车间模式DEPT的属性为车间编号、车间名,职工模式EMP的属性为工号、姓名、工资、所在车间的编号。每个模式的主键与外键已标出。在EMP中,由于D#不在主键中,因此D#值允许空。l级联更新级联更新/级联删除级联删除 示例 产品订单产品订单.mdb/.mdb/客户客户-订单订单第18页,此课件共92页哦关系模型的三类完整性规则(5)设课程之间有先修、后继联系。模式如下:R(C#

14、,CNAME,PC#)其属性表示课程号、课程名、先修课的课程号。如果规定,每门课程的直接先修课只有一门,那么模式R的主键是C#,外键是PC#。这里参照完整性在一个模式中实现。即每门课程的直接先修课必须在关系中出现。n注意事项:注意事项:n外键和相应的主键可以不同名,只要定义在相同值域上即可。nR1和R2也可以是同一个关系模式,表示了属性之间的联系。n外键值是否允许空,应视具体问题而定。第19页,此课件共92页哦关系模型的三类完整性规则(6)l用户定义的完整性规则 在建立关系模式时,对属性定义了数据类型,即使这样可能还满足不了用户的需求。此时,用户可以针对具体的数据约束,设置完整性规则,由系统来

15、检验实施,以使用统一的方法处理它们,不再由应用程序承担这项工作。例如学生的年龄定义为两位整数,范围还太大,我们可以写如下规则把年龄限制在1530岁之间:CHECK(AGE BETWEEN 15 AND 30)n用户针对具体的应用环境定义的完整性约束条件。n如S#要求是8位整数,SEX要求取值为“男”或“女”。n关系模型应提供定义和检验这类完整性的机制,以便用统一的系统的方法处理它们而不要由应用程序来承担这一功能。第20页,此课件共92页哦2.1.5关系模型的优点l与其它数据模型相比,关系模型突出的优点如下:(1)关系模型提供单一的数据结构形式,具有高度的简明性和精确性。(2 2)关关系系模模型

16、型的的逻逻辑辑结结构构和和相相应应的的操操作作完完全全独独立立于于数数据据存存储储方方式式,具有高度的数据独立性。具有高度的数据独立性。(3)关系模型使数据库的研究建立在比较坚实的数学基础上。(4 4)关关系系数数据据库库语语言言与与一一阶阶谓谓词词逻逻辑辑的的固固有有内内在在联联系系,为为以以关关系数据库为基础的推理系统和知识库系统的研究提供了方便。系数据库为基础的推理系统和知识库系统的研究提供了方便。返回第21页,此课件共92页哦2.1.6关系查询语言和关系运算 l关系数据库的数据操纵语言(DML)的语句分成查询语句和更新语句两大类。查询语句用于描述用户的各种检索要求;更新语句用于描述用户

17、进行插入、删除、修改等操作。关于查询的理论称为“关系运算理论”。l关系查询语言根据其理论基础的不同分成三类:(1 1)关系代数语言。)关系代数语言。(2)关系演算语言。(3)关系逻辑语言。返回第22页,此课件共92页哦2.2关系代数 关系代数是一种抽象的查询语言,用对关系的运算来表达查询,作为研究关系数据语言的数学工具。l关系数据库的数据操作分为查询和更新两类。l查询用于各种检索操作,更新语句用于插入、删除和修改等操作。l更新在查询的基础上工作,查询更复杂。关于查询的理论称为“关系运算理论”。返回第23页,此课件共92页哦2.2关系代数l2.2.1 关系代数的五个基本操作 l2.2.2 关系代

18、数的四个组合操作 l2.2.3 关系代数运算的应用实例 l2.2.4 关系代数的七个扩充操作 第24页,此课件共92页哦关系代数的五个基本操作(1)l 并(Union)设关系R和S具有相同的关系模式,R和S的并是由属于R或属于S的元组构成的集合,记为RS。形式定义如下:RSt|tR tS,t是元组变量,R和S的元数相同。R Sn两个关系R和S若进行并运算,则它们必须是相容的:n关系R和S必须是同元的,即它们的属性数目必须相同。n对i,R的第i个属性的域必须和S的第i个属性的域相同。第25页,此课件共92页哦集合运算并Union()第26页,此课件共92页哦关系代数的五个基本操作(1)l 差(D

19、ifference)设关系R和S具有相同的关系模式,R和S的差是由属于R但不属于S的元组构成的集合,记为RS。形式定义如下:R SR和S必须同类型(属性集相同,但属性名可以不同)RS=t|tRtS第27页,此课件共92页哦集合运算差Minus(-)第28页,此课件共92页哦关系代数的五个基本操作(1)l笛卡尔积 关系R和S的元数分别为r和s,定义R和S的笛卡尔积是一个(r+s)元的元组集合,每个元组的前r个分量来自R的一个元组,后s个分量来自S的一个元组,记为R S。RS t|t tr,ts tr R ts S 若R有m个元组,S有n个元组,则R S有m*n个元组。nRS的元数为R与S的元数之

20、和(r+s),RS的基数为R和S的基数的乘积m*n。第29页,此课件共92页哦笛卡儿积()关系r,s:r x s:AB12CD10102010EaabbAB11112222CD 1019201010102010Eaabbaabbrs第30页,此课件共92页哦笛卡儿积()R.AR.BR.CS.AS.BS.C第31页,此课件共92页哦笛卡儿积()引伸性别男女姓名王强李明李梅姓名姓名性别性别王强男李明男李梅男王强女李明女李梅女=说明:笛卡尔积的元组数量虽然庞大,但很多数据是没有意义的,正是有意义的数据(自然连接)组成关系,即笛卡尔积的一个子集。第32页,此课件共92页哦关系代数的五个基本操作(2)l

21、 投影(Projection)这个操作是对一个关系进行垂直分割,消去某些列,并重新安排列的顺序。设关系R是k元关系,R在其分量Ai1,Aim(mk,i1,im为1到k间的整数)上的投影用 i1,im(R)表示,它是一个m元元组集合,形式定义如下:i1,im(R)t|tti1,timt1,tkR 例如,3,1(R)表示关系R中取第1、3列,组成新的关系,新关系中第1列为R的第3列,新关系的第2列为R的第1列。如果R的每列标上属性名,那么操作符 的下标处也可以用属性名表示。例如,关系R(A,B,C),那么 C,A(R)与 3,1(R)是等价的。第33页,此课件共92页哦关系运算投影()l例:sse

22、x,sage(student)第34页,此课件共92页哦关系运算投影()l关系R:ABC102030401112AC1112=AC112lA,C(R)n投影运算的结果中,也要去除重复元组第35页,此课件共92页哦关系代数的五个基本操作(3)l 选择(Selection)选择操作是根据某些条件对关系做水平分割,即选取符合条件的元组。条件可用命题公式(即计算机语言中的条件表达式)F表示。F中有两种成分:关系R关于公式F的选择操作用F(R)表示,形式定义如下:F(R)t|tR F(t)=true 为选择运算符,F(R)表示从R中挑选满足公式F为真的元组所构成的关系。例如,23(R)表示从R中挑选第2

23、个分量值大于3的元组所构成的关系。书写时,为了与属性序号区别起见,常量用引号括起来,而属性序号或属性名不要用引号括起来。第36页,此课件共92页哦关系运算选择()l例:ssex=男 AND sdep=IS(Student)第37页,此课件共92页哦练习:n1、R和S的结构相同,且各有20个元组,那么两个关系的并操作结果的元组个数为()A.20 B.小于等于20 C.40 D.小于等于40 2、R和S的结构相同,且各有20个元组,那么两个关系的差操作结果的元组个数为()A.20 B.小于等于20 C.40 D.小于等于40 答案:1、D 2、B第38页,此课件共92页哦 与与 V V或或 NOT

24、NOT非非 量词:量词:存在,存在,任一个任一个运算结果T TT FF FT V V TT V V FF V V F第39页,此课件共92页哦2.2.2关系代数的四个组合操作(1)l 交(intersection)n定义n所有同时出现在两个关系中的元组集合。n交运算可以通过差运算来重写:RS=R (R S)nR和S必须同类型(属性集相同、次序相同,但属性名可以不同)R R S=r|rS=r|r R R r r S S R S第40页,此课件共92页哦关系运算交Intersect()第41页,此课件共92页哦关系代数的四个组合操作(2)l连接(join)连接有两种:连接和F连接(这里是算术比较符

25、,F是公式)。l从RS的结果集中,选取属性集满足某一操作的元组,组成新的关系l是一个关于属性集的逻辑表达式l如果是等号“”,则该联接操作叫“等值联接”。R R S=t|t=tS=t|t=t tr r R R t ts s S S t ti i t tj j rsij元组tr的第i个分量元组ts的第i个分量第42页,此课件共92页哦关系代数的四个组合操作(2)l连接(join)连接 R St t=trR tsS tr its j F连接 F连接是从关系R和S的笛卡儿积中选取属性间满足某一公式F的元组,这里F是形为F1F2Fn的公式,每个FP是形为ij的式子,而i和j分别为关系R和S的第i、第j个

26、分量的序号。记为 R S R S F第43页,此课件共92页哦关系代数的四个组合操作(2)987654321CBADE3162ABCDE123311236245662 R S R S B s0),那么RS是一个(r-s)元的元组的集合。(RS)是满足下列条件的最大关系:其中每个元组t与S中每个元组u组成的新元组必在关系R中。lRS 1,2,r-s(R)-1,2,r-s(1,2,r-s(R)S)-R)返回第49页,此课件共92页哦第50页,此课件共92页哦2.2.3关系代数运算的应用实例 l 在关系代数运算中,把由五个基本操作经过有限次复合的式子称为关系代数表达式。这种表达式的运算结果仍是一个关

27、系。我们可以用关系代数表达式表示各种数据查询操作。例2.7 学生选课系统有三个关系:学生(学号,姓名,年龄,性别)S(S#,SNAME,SEX,AGE)课程(课程号,课程名,教师)C(C#,CNAME,TEACHER)选课(课程号,学号,成绩)SC(C#,S#,GRADE)第51页,此课件共92页哦3.2.3关系代数表达式及其应用实例在关系代数运算中,把五个基本操作经过有限次复合的式子称为关系代数表达式。这个表达式的运算结果依然是一个关系。可以用关系代数表达式表示各种数据查询操作。查询语句的关系代数表达式的一般形式为:(RS)(R S)第52页,此课件共92页哦3.2.3关系代数表达式及其应用

28、实例用关系代数表达式写查询语句的方法:确定查询所涉及哪些关系表。执行笛卡尔积或自然联接操作得到一张大的表格。根据查询对大表格执行水平分割(选择操作)或垂直分割(投影操作)。当查询涉及“否定否定”时,要用差操作差操作;当查询涉及“全部值全部值”时,要用除法操作除法操作。第53页,此课件共92页哦关系代数实例Student(Sno,Sname,Ssex,Sage,Sdept)Course(Cno,Cname,Cpno,Credit)SC(Sno,Cno,Grade)第54页,此课件共92页哦关系代数实例1l检索选修了2号课程的课程号、学号和成绩。ncno=2(SC)学生(学号,姓名,年龄,性别)学

29、生(学号,姓名,年龄,性别)S(S#,SNAME,SEX,AGE)课程(课程号,课程名,教师)课程(课程号,课程名,教师)C(C#,CNAME,TEACHER)选课(课程号,学号,成绩)选课(课程号,学号,成绩)SC(C#,S#,GRADE)第55页,此课件共92页哦关系代数实例2l检索选修2号课程的学生的学号和成绩Sno,Grade(cno=2(SC)学生(学号,姓名,年龄,性别)学生(学号,姓名,年龄,性别)S(S#,SNAME,SEX,AGE)课程(课程号,课程名,教师)课程(课程号,课程名,教师)C(C#,CNAME,TEACHER)选课(课程号,学号,成绩)选课(课程号,学号,成绩)

30、SC(C#,S#,GRADE)第56页,此课件共92页哦关系代数实例3l检索学习课程号为2的学生的学号和姓名。n学号Sno、姓名SnameStudent表n学号Sno、课程号CnoSC表nStudent SCsno用到Student和SC两个表,先对两个关系执行自然联接,再执行选择和投影操作。学生(学号,姓名,年龄,性别)学生(学号,姓名,年龄,性别)S(S#,SNAME,SEX,AGE)课程(课程号,课程名,教师)课程(课程号,课程名,教师)C(C#,CNAME,TEACHER)选课(课程号,学号,成绩)选课(课程号,学号,成绩)SC(C#,S#,GRADE)第57页,此课件共92页哦关系代

31、数实例3学号姓名性别年龄所在系课程号成绩95001李勇男20CS19295001李勇男20CS28595001李勇男20CS38895002刘晨女19IS29095001刘晨女19IS380Sno,Sname(cno=2(SC Student)第58页,此课件共92页哦关系代数例4l检索学习课程名为数学的学生的学号和姓名。l学号Sno、姓名SnameStudent表l课程名称Cname、课程号CnoCourse表l学号Sno、课程号CnoSC表lStudent SCCoursesnocno学生(学号,姓名,年龄,性别)学生(学号,姓名,年龄,性别)S(S#,SNAME,SEX,AGE)课程(课

32、程号,课程名,教师)课程(课程号,课程名,教师)C(C#,CNAME,TEACHER)选课(课程号,学号,成绩)选课(课程号,学号,成绩)SC(C#,S#,GRADE)第59页,此课件共92页哦关系代数实例4Sno,Sname(Cname=数学(Course SC Student)用到Student、SC、Course三个表,先对三个关系执行自然联接,再执行选择和投影操作。第60页,此课件共92页哦关系代数实例4l检索学习课程号为2或3的学生的学号。l学号Sno、课程号CnoSC表用到SC一个表,但做选择操作时是复合条件l检索学习课程号为2或3的学生的学号。学生(学号,姓名,年龄,性别)学生(

33、学号,姓名,年龄,性别)S(S#,SNAME,SEX,AGE)课程(课程号,课程名,教师)课程(课程号,课程名,教师)C(C#,CNAME,TEACHER)选课(课程号,学号,成绩)选课(课程号,学号,成绩)SC(C#,S#,GRADE)第61页,此课件共92页哦关系代数实例5l学号Sno、课程号CnoSC表用到SC一个表,但做选择操作时是复合条件.一个学生可以学习多门课程,即一个学号可以对应多个课程号。n检索至少学习课程号为2和3的学生的学号。学生(学号,姓名,年龄,性别)学生(学号,姓名,年龄,性别)S(S#,SNAME,SEX,AGE)课程(课程号,课程名,教师)课程(课程号,课程名,教

34、师)C(C#,CNAME,TEACHER)选课(课程号,学号,成绩)选课(课程号,学号,成绩)SC(C#,S#,GRADE)第62页,此课件共92页哦学号课程号成绩学号课程号成绩950012859500128595001285950013889500128595002290950022909500128595002290950022909500229095002380关系代数实例51(1=4 22 5=3(SCSC)第63页,此课件共92页哦思考:以下表示方法是否可以?1(22(SC)1(2=3(SC)学号课程号成绩950012859500138895002290950023989500338

35、6n检索至少学习课程号为2和3的学生的学号。学号课程号成绩9500128595001388950022909500239895003386可以得到正确结果,但是查询进行了两次!第64页,此课件共92页哦思考:以下表示方法是否可以?Sno(CNO2(SC)Sno(CNO=3(SC)l检索学习课程号为2或3的学生的学号。Sno(Cno2 Cno3(SC)第65页,此课件共92页哦关系代数实例6l检索不学习课程号为2的学生的姓名和年龄。l学号Sno、姓名Sname、年龄SageStudent表l学号Sno、课程号CnoSC表lStudent SCsno涉及否定用“差”操作,先求出全体学生的姓名和年龄

36、,再求出学习了2号课程的学生姓名和年龄,最后执行两个集合的差操作。学生(学号,姓名,年龄,性别)学生(学号,姓名,年龄,性别)S(S#,SNAME,SEX,AGE)课程(课程号,课程名,教师)课程(课程号,课程名,教师)C(C#,CNAME,TEACHER)选课(课程号,学号,成绩)选课(课程号,学号,成绩)SC(C#,S#,GRADE)第66页,此课件共92页哦关系代数实例6sname,Sage(Cno=2(SC Student)Sname,Sage(S)求出全体学生的姓名和年龄。求出学习了2号课程的学生姓名和年龄。执行两个集合的差操作。Sname,Sage(S)sname,Sage(Cno

37、=2(SC Student)第67页,此课件共92页哦关系代数实例7l检索学习全部课程的学生姓名。涉及“全部值”用除法操作,先求全部课程,再用除法求出学习了全部课程的学生的学号,最后求出学生姓名。l学号Sno、姓名SnameStudent表l课程号CnoCourse表l学号Sno、课程号CnoSC表lStudent SCCoursesnocno学生(学号,姓名,年龄,性别)学生(学号,姓名,年龄,性别)S(S#,SNAME,SEX,AGE)课程(课程号,课程名,教师)课程(课程号,课程名,教师)C(C#,CNAME,TEACHER)选课(课程号,学号,成绩)选课(课程号,学号,成绩)SC(C#

38、,S#,GRADE)第68页,此课件共92页哦关系代数实例7学生的选课情况可用Sno,Cno(SC)表示全部课程可用Cno(C)表示学了全部课程的学号可以用除法得到(学号集)Sno,Cno(SC)Cno(C)从学号求出学生的姓名:sname(S (Sno,Cno(SC)Cno(C)第69页,此课件共92页哦l检索所学课程包含学号S3所学课程的学生学号。涉及“全部值”用除法操作,先求学生的选课情况,再求S3学生所学的课程,最后用除法求出学习了所学课程包含学生S3所学课程的学生学号。l学号Sno、课程号CnoSC表关系代数实例8学生(学号,姓名,年龄,性别)学生(学号,姓名,年龄,性别)S(S#,

39、SNAME,SEX,AGE)课程(课程号,课程名,教师)课程(课程号,课程名,教师)C(C#,CNAME,TEACHER)选课(课程号,学号,成绩)选课(课程号,学号,成绩)SC(C#,S#,GRADE)第70页,此课件共92页哦关系代数实例8学生的选课情况可用Sno,Cno(SC)表示学生S3所学课程可用Cno(S#=S3(SC)表示所学课程包含学生S3所学课程的学生学号,可以用除法得到Sno,Cno(SC)Cno(S#=S3(SC)第71页,此课件共92页哦863S5983S2902S2883S1852S1成绩课程号学号所学课程包含学生S3所学课程的学生学号,可以用除法得到Sno,Cno(

40、SC)Cno(S#=S3(SC)2S33S3课程号学号第72页,此课件共92页哦练习(课堂消化)n用关系代数表达式实现:n1.查找所有女科长的姓名和家庭地址:姓名,家庭地址(性别=女 职务科长(职工)l现有关系数据库如下:职工(职工号,姓名,性别,职务,家庭地址,所在部门编号)l部门(部门编号,部门名称,地址,电话)l保健(保健卡编号,职工号,检查身体日期,健康状况)第73页,此课件共92页哦练习:n2.查找部门名称为“办公室”的科长姓名和家庭地址:姓名,家庭住址(职务=科长部门名称=办公室(职工部门)姓名,家庭住址(职务=科长(职工)部门名称=办公室(部门)l现有关系数据库如下:l职工(职工

41、号,姓名,性别,职务,家庭地址,所在部门编号)l部门(部门编号,部门名称,地址,电话)l保健(保健卡编号,职工号,检查身体日期,健康状况)第74页,此课件共92页哦练习:n3.查找部门名称为“财务科”中健康状况为“良好”的职工姓名和家庭住址。姓名,家庭住址(部门名称=财务科 健康状况=良好(职工部门保健)姓名,家庭住址(职工部门名称=财务科(部门)健康状况=良好(保健)l现有关系数据库如下:l职工(职工号,姓名,性别,职务,家庭地址,所在部门编号)l部门(部门编号,部门名称,地址,电话)l保健(保健卡编号,职工号,检查身体日期,健康状况)第75页,此课件共92页哦练习:n用关系代数表达式实现:

42、n1.检索学习“数据库原理”课程且成绩不及格的学生的学号和教师编号。学号,教师编号(课程名称=数据库原理 成绩60(授课)l现有关系数据库如下:l学生(学号,姓名,性别,专业,出生日期)l教师(教师编号,姓名,所在部门,职称)l授课(教师编号,学号,课程编号,课程名称,教材,学分,学生成绩)第76页,此课件共92页哦练习:n2.检索学习“英语”课程的“计算机应用”专业的学生学号、姓名、成绩。学号,姓名,成绩(专业=计算机应用 课程名称=英语(学生授课)l现有关系数据库如下:l学生(学号,姓名,性别,专业,出生日期)l教师(教师编号,姓名,所在部门,职称)l授课(教师编号,学号,课程编号,课程名

43、称,教材,学分,学生成绩)第77页,此课件共92页哦练习:n3.检索没有任何一门课程成绩不及格的所有学生的信息,包括学号、姓名和专业;学号,姓名,专业(学生)学号,姓名,专业(分数60(学生授课)l现有关系数据库如下:l学生(学号,姓名,性别,专业,出生日期)l教师(教师编号,姓名,所在部门,职称)l授课(教师编号,学号,课程编号,课程名称,教材,学分,学生成绩)第78页,此课件共92页哦2.2.4关系代数的七个扩充操作(自学)l改名 l广义投影 l赋值 l外连接(outer join)左外连接、右外连接l外部并(outer union)l半连接(semijoin)l聚集操作 返回第79页,此

44、课件共92页哦*2.3 关系演算 l把数理逻辑的谓词演算引入到关系运算中,就可得到以关系演算为基础的运算。关系演算又可分为元组关系演算和域关系演算,前者以元组为变量,后者以属性(域)为变量。l2.3.1 元组关系演算 l2.3.2 域关系演算 l2.3.3 关系运算的安全约束和等价性 返回第80页,此课件共92页哦2.4 关系代数表达式的优化 l2.4.1 关系代数表达式的优化问题 l2.4.2 关系代数表达式的等价变换规则 l2.4.3 关系代数表达式的优化算法 返回第81页,此课件共92页哦查询优化查询优化关系代数表达式的优化(1)l在关系代数表达式中需要指出若干关系的操作步骤。那么,系统

45、应该以什么样的操作顺序,才能做到既省时间,又省空间,而且效率也比较高呢?这个问题称为查询优化问题。在关系代数运算中,笛卡儿积和连接运算是最费时间的。(关系模型不像层次模型和网状模型的数据联系是通过指针,是通过公共属性即外键)第82页,此课件共92页哦关系代数表达式的优化算法(1)l 在关系代数表达式中,最花费时间和空间的运算是笛卡儿积和连接操作,为此,引出三条启发式规则,用于对表达式进行转换,以减少中间关系的大小。l尽可能早地执行选择操作;尽可能早地执行选择操作;l尽可能早地执行投影操作;尽可能早地执行投影操作;l避免直接做笛卡儿积,把笛卡儿积操作之前避免直接做笛卡儿积,把笛卡儿积操作之前和之

46、后的一连串选择和投影合并起来一起做。和之后的一连串选择和投影合并起来一起做。第83页,此课件共92页哦关系代数表达式的优化算法(2)l算法2.1 关系代数表达式的启发式优化算法。输入:一个关系代数表达式的语法树 输出:计算表达式的一个优化序列l例2.24 返回第84页,此课件共92页哦3.4.4 关系代数表达式的优化算法S(SS(S,SNAME,AGE,SNAME,AGE,SEX)SEX)SC(S#,C#,GRADE)SC(S#,C#,GRADE)C(CC(C,CNAME,TEACHER),CNAME,TEACHER)查询至少学习LIU老师所授一门课程的女学生学号和姓名。该查询语句的关系代数表

47、达式为:S#,SNAME(TEACHER=LIU SEX=F(S SC C)第85页,此课件共92页哦l自然联接的计算过程如下:l计算RS;-计算笛卡尔积l设R和S的公共属性是A1,A2Ak,挑选RS中满足R.A1=S.A1,R.AK=S.AK的那些元组;-选择公共属性值相等的元组。l去掉S.A1,S.AK这些列。-做投影操作。3.4.4 关系代数表达式的优化算法查询至少学习LIU老师所授一门课程的女学生学号和姓名。则此查询语句的关系代数表达式为:S#,SNAME(TEACHER=LIU SEX=F(L(SC.C#=C.C#SC.S#=S.S#(SSCC)这里L为S,SNAME,AGE,SEX

48、,C#,GRADE,CNAME,TEACHER第86页,此课件共92页哦3.4.4 关系代数表达式的优化算法S#,SNAMETEACHER=LIU SEX=FSC.C#=C.C#SC.S#=S.S#S,SNAME,AGE,SEX,C#,GRADE,CNAME,TEACHERSCSC笛卡尔积笛卡尔积等值连接投影选择投影第87页,此课件共92页哦S#,SNAMESC.S#=S.S#SCSCSC.C#=C.C#SEX=FTEACHER=LIU第88页,此课件共92页哦SC.S#CSCSC.C#=C.C#TEACHER=LIUSC.S#,SC.C#C,C#S#,SNAMESC.S#=S.S#SEX=F

49、S#,SNAMES第89页,此课件共92页哦*2.5 关系逻辑(自学)l2.5.1 关系运算的成分 l2.5.2 规则的安全性 l2.5.3 从关系代数到关系逻辑的转换 l2.5.4 递归过程 l2.5.5 关系逻辑与关系代数的差异 第90页,此课件共92页哦小 结l关系代数和关系演算在表达功能上是等价的。那么关系代数和关系逻辑在表达功能上是否等价?已有文献证明,这两者之间相差甚大。在规则中没有否定时,关系代数与关系逻辑在表达功能方面已不相适应,每个都能表达另一个不能表达的内容。在规则中带有否定时,关系逻辑比关系代数更富于表现力。只有在规则被约束为安全的、非递归的、在带有某些否定的情况下,关系代数才与关系逻辑等价。由于关系逻辑中引进了基于逻辑的规则概念,使得关系逻辑比关系代数在模拟现实世界能力方面更强。关系逻辑一般是用在知识库的知识表达中。第91页,此课件共92页哦作业 P72l2.1名词解释:关系模型,关系模式,候选键,主键,三类完整性规则。l2.6l2.17 1-5l2.22为什么要对关系代数表达式进行优化,有哪三条启发式规则?第92页,此课件共92页哦

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 资格考试

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com