




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
关模型和关系运算理论第一页,共九十二页,编辑于2023年,星期日本章重要概念(一)(1)基本概念 关系模型,关键码(主键和外键),关系的定义和性质,三类完整性规则,ER模型到关系模型的转换规则,过程性语言与非过程性语言。(2)关系代数 五个基本操作,四个组合操作,七个扩充操作。
第二页,共九十二页,编辑于2023年,星期日本章重要概念(二)(3)关系演算 元组关系演算和域关系演算的原子公式、公式的定义。关系演算的安全性和等价性。(4)关系代数表达式的优化 关系代数表达式的等价及等价转换规则,启化式优化算法。(5)关系逻辑 谓词、原子、规则和查询,规则的安全性,用规则模拟关系代数表达式。
第三页,共九十二页,编辑于2023年,星期日关系模型和关系运算理2.1关系模型的基本概念2.2关系代数2.3关系演算2.4关系代数表达式的优化2.5关系逻辑
第四页,共九十二页,编辑于2023年,星期日2.1关系模型的基本概念
2.1.1基本术语
2.1.2关系的定义和性质2.1.3关系模型的三类完整性规则
2.1.4ER模型向关系模型的转换规则
2.1.5关系模型的三级体系结构
2.1.6关系模型的形式定义和优点
2.1.7关系查询语言和关系运算
返回第五页,共九十二页,编辑于2023年,星期日基本术语(1)定义2.1用二维表格表示实体集,用关键码进行数据导航的数据模型称为关系模型(relationalModel)。这里数据导航(datanavigation)是指从已知数据查找未知数据的过程和方法。
图2.1职工登记表
第六页,共九十二页,编辑于2023年,星期日基本术语(2)关系:一个关系对应一张二维表(非形式化描述)关系名-表名。记录类型称为关系模式。元组:表中的一行称为一个元组(元组的集合即为关系)。属性:表中的一列称为属性,列名即属性名。字段值称为属性值,元数(arity):关系中属性的个数。基数(cardinality):元组个数称为基数。属性的值域:属性的取值范围(数据类型),记作DOM(属性名),每一个属性对应一个值域不同属性可对应同一个值域。比如:职称={教授,副教授,讲师,助教}第七页,共九十二页,编辑于2023年,星期日学号9800019800029800039800028:9800029姓名赵学众钱习志孙雷成:李锋城甘清性别男女:男男女班级力91化81物71:汽93仪81元组(行)关系模式数据库术语关系模型术语记录字段值属性值字段属性记录类型关系文件基本术语(3)图2.2关系模型的术语
第八页,共九十二页,编辑于2023年,星期日基本术语(4)职工关系模式ZG(工号,姓名,年龄,性别,工资)1.超键:能唯一标识元组的一个或一组属性,称为关系的超键,例如:(工号,姓名)。2.候选键key:不含多余属性的超键叫候选键,如(工号)。3.主键primarykey:当一个关系中有多个候选键时,我们从候选键中选择一个用作元组标识的称为主键,若实际使用中,用工号作为插入、查找的操作变量,称工号为主键。每个关系都必定有且只有一个主键对于一个关系,主键一经选定,通常是不能随意改变的4、外部键(ForeignKey)
如果关系R2的一个或一组属性不是R2的主键,而是另一关系R1的主键,则该属性或属性组成为关系R2的外部键。第九页,共九十二页,编辑于2023年,星期日数据库应用实例及比较学生信息管理系统实例该系统用来管理学生的基本情况,开设课程情况,学生的选课情况及成绩;数据库:以表格的形式储存了学生,课程,选课的记录;数据管理系统(DBMS)负责存储和检索这些表格的数据;建立相关的应用程序,负责处理数据输入,数据查询和产生报表第十页,共九十二页,编辑于2023年,星期日学生课程成绩管理学生(学号,姓名,年龄,性别)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)建议:同学们记下这三个关系模式。好好理解第十一页,共九十二页,编辑于2023年,星期日练习:1、现有关系表:学生(宿舍编号,宿舍地址,学号,姓名,性别,专业)的主键为:A宿舍编号B学号C宿舍地址,姓名D宿舍编号,学号2、现有关系表:医疗(患者编号,医生编号,医生姓名,诊断日期,诊断结果,恢复情况)的主键是:A患者编号,医生编号,诊断日期B医生编号C诊断日期D患者编号第十二页,共九十二页,编辑于2023年,星期日练习:1、现有如下关系:部门(部门编号、部门名称、部门地址、电话)职工(职工号、姓名、性别、职务、部门编号、电话)其中,职工关系中的外键是()A部门编号B姓名C职工号D职工号,姓名答案:1、A2、CDEPT(D#,DNAME)EMP(E#,ENAME,SALARY,D#)第十三页,共九十二页,编辑于2023年,星期日2.1.2关系的定义和性质
定义2.2关系是一个属性数目相同的元组的集合。
在关系模型中,对关系作了下列规范性限制:(1)关系中每一个属性值都是不可分解的;(2)关系中不允许出现重复元组(即不允许出现相同的元组);(3)由于关系是一个集合,因此不考虑元组间的顺序,即没有行序;(4)元组中的属性在理论上也是无序的,但使用时按习惯考虑列的顺序。返回第十四页,共九十二页,编辑于2023年,星期日2.1.3关系模型的三类完整性规则(1)
关系模型的三类完整性
三类完整性是实体完整性、参照完整性和用户定义的完整性(其中前两类完整性是关系模型必须满足的约束条件)
实体完整性规则(entityintegrityrule)要求关系中元组在组成主键的属性上不能有空值。如果出现空值,那么主键值就起不了惟一标织元组的作用。意义:关系对应到现实世界中的实体集,元组对应到实体,实体是相互可区分的,通过主键来唯一标识,若主键为空,则出现不可标识的实体,这是不容许的。第十五页,共九十二页,编辑于2023年,星期日关系模型的三类完整性规则
(2)参照完整性规则(referenceintegrityrule)定义2.3参照完整性规则的形式定义如下:如果属性集K是关系模式R1的主键,K也是关系模式R2的外键,那么在R2的关系中,K的取值只允许两种可能,或者为空值,或者等于R1关系中某个主键值。这条规则的实质是“不允许引用不存在的实体”。在上述形式定义中,关系模式R1的关系称为“参照关系”,关系模式R2的关系称为“依赖关系”。“主表”和“副表”,“父表”和“子表”。
第十六页,共九十二页,编辑于2023年,星期日关系模型的三类完整性规则
(3)例2.1下面各种情况说明了参照完整性规则在关系中如何实现的。①在关系数据库中有下列两个关系模式:
S(S#,SNAME,AGE,SEX)
SC(S#,C#,GRADE)这里带下划线者为主键,红色者为外键。据规则要求关系SC中的S#值应该在关系S中出现。如果关系SC中有一个元组(S7,C4,80),而学号S7却在关系S中找不到,那么我们就认为在关系SC中引用了一个不存在的学生实体,这就违反了参照完整性规则。另外,在关系SC中S#不仅是外键,也是主键的一部分,因此这里S#值不允许空。第十七页,共九十二页,编辑于2023年,星期日关系模型的三类完整性规则
(4)②设工厂数据库中有两个关系模式:
DEPT(D#,DNAME) EMP(E#,ENAME,SALARY,D#)
车间模式DEPT的属性为车间编号、车间名,职工模式EMP的属性为工号、姓名、工资、所在车间的编号。每个模式的主键与外键已标出。在EMP中,由于D#不在主键中,因此D#值允许空。级联更新/级联删除示例产品订单.mdb/客户-订单第十八页,共九十二页,编辑于2023年,星期日关系模型的三类完整性规则
(5)③设课程之间有先修、后继联系。模式如下:
R(C#
,CNAME,PC#)
其属性表示课程号、课程名、先修课的课程号。如果规定,每门课程的直接先修课只有一门,那么模式R的主键是C#,外键是PC#。这里参照完整性在一个模式中实现。即每门课程的直接先修课必须在关系中出现。
注意事项:外键和相应的主键可以不同名,只要定义在相同值域上即可。R1和R2也可以是同一个关系模式,表示了属性之间的联系。外键值是否允许空,应视具体问题而定。第十九页,共九十二页,编辑于2023年,星期日关系模型的三类完整性规则
(6)用户定义的完整性规则
在建立关系模式时,对属性定义了数据类型,即使这样可能还满足不了用户的需求。此时,用户可以针对具体的数据约束,设置完整性规则,由系统来检验实施,以使用统一的方法处理它们,不再由应用程序承担这项工作。例如学生的年龄定义为两位整数,范围还太大,我们可以写如下规则把年龄限制在15~30岁之间:
CHECK(AGEBETWEEN15AND30)用户针对具体的应用环境定义的完整性约束条件。如S#要求是8位整数,SEX要求取值为“男”或“女”。关系模型应提供定义和检验这类完整性的机制,以便用统一的系统的方法处理它们而不要由应用程序来承担这一功能。
第二十页,共九十二页,编辑于2023年,星期日2.1.5关系模型的优点与其它数据模型相比,关系模型突出的优点如下:(1)关系模型提供单一的数据结构形式,具有高度的简明性和精确性。(2)关系模型的逻辑结构和相应的操作完全独立于数据存储方式,具有高度的数据独立性。(3)关系模型使数据库的研究建立在比较坚实的数学基础上。(4)关系数据库语言与一阶谓词逻辑的固有内在联系,为以关系数据库为基础的推理系统和知识库系统的研究提供了方便。
返回第二十一页,共九十二页,编辑于2023年,星期日2.1.6关系查询语言和关系运算
关系数据库的数据操纵语言(DML)的语句分成查询语句和更新语句两大类。查询语句用于描述用户的各种检索要求;更新语句用于描述用户进行插入、删除、修改等操作。关于查询的理论称为“关系运算理论”。关系查询语言根据其理论基础的不同分成三类:(1)关系代数语言。(2)关系演算语言。(3)关系逻辑语言。
返回第二十二页,共九十二页,编辑于2023年,星期日2.2关系代数
关系代数是一种抽象的查询语言,用对关系的运算来表达查询,作为研究关系数据语言的数学工具。关系数据库的数据操作分为查询和更新两类。查询用于各种检索操作,更新语句用于插入、删除和修改等操作。更新在查询的基础上工作,查询更复杂。关于查询的理论称为“关系运算理论”。返回第二十三页,共九十二页,编辑于2023年,星期日2.2关系代数2.2.1关系代数的五个基本操作
2.2.2关系代数的四个组合操作
2.2.3关系代数运算的应用实例
2.2.4关系代数的七个扩充操作
第二十四页,共九十二页,编辑于2023年,星期日关系代数的五个基本操作
(1)并(Union)设关系R和S具有相同的关系模式,R和S的并是由属于R或属于S的元组构成的集合,记为R∪S。形式定义如下:R∪S≡{t|t∈R∨t∈S},t是元组变量,R和S的元数相同。RS两个关系R和S若进行并运算,则它们必须是相容的:关系R和S必须是同元的,即它们的属性数目必须相同。对i,R的第i个属性的域必须和S的第i个属性的域相同。第二十五页,共九十二页,编辑于2023年,星期日集合运算——并Union(∪)第二十六页,共九十二页,编辑于2023年,星期日关系代数的五个基本操作
(1)差(Difference)设关系R和S具有相同的关系模式,R和S的差是由属于R但不属于S的元组构成的集合,记为R-S。形式定义如下:RSR和S必须同类型(属性集相同,但属性名可以不同)R-S={t|t∈R∧t∈S}第二十七页,共九十二页,编辑于2023年,星期日集合运算——差Minus(-)第二十八页,共九十二页,编辑于2023年,星期日关系代数的五个基本操作
(1)笛卡尔积关系R和S的元数分别为r和s,定义R和S的笛卡尔积是一个(r+s)元的元组集合,每个元组的前r个分量来自R的一个元组,后s个分量来自S的一个元组,记为RχS。
RχS≡{t|t=〈
tr,ts〉∧tr∈R∧ts∈S}
若R有m个元组,S有n个元组,则RχS有m*n个元组。RS的元数为R与S的元数之和(r+s),RS的基数为R和S的基数的乘积m*n。第二十九页,共九十二页,编辑于2023年,星期日笛卡儿积(×)关系r,s:rx
s:AB12CD10102010EaabbAB11112222CD1019201010102010Eaabbaabbrs第三十页,共九十二页,编辑于2023年,星期日笛卡儿积(×)R.AR.BR.CS.AS.BS.C第三十一页,共九十二页,编辑于2023年,星期日笛卡儿积(×)引伸性别男女姓名王强李明李梅×姓名性别王强男李明男李梅男王强女李明女李梅女=说明:笛卡尔积的元组数量虽然庞大,但很多数据是没有意义的,正是有意义的数据(自然连接)组成关系,即笛卡尔积的一个子集。第三十二页,共九十二页,编辑于2023年,星期日关系代数的五个基本操作
(2)投影(Projection)这个操作是对一个关系进行垂直分割,消去某些列,并重新安排列的顺序。设关系R是k元关系,R在其分量Ai1,…,Aim(m≤k,i1,…,im为1到k间的整数)上的投影用∏i1,…,im(R)表示,它是一个m元元组集合,形式定义如下:∏i1,…,im(R)≡{t|t=〈ti1,…,tim〉∧〈t1,…,tk〉∈R}
例如,∏3,1(R)表示关系R中取第1、3列,组成新的关系,新关系中第1列为R的第3列,新关系的第2列为R的第1列。如果R的每列标上属性名,那么操作符∏的下标处也可以用属性名表示。例如,关系R(A,B,C),那么∏C,A(R)与∏3,1(R)是等价的。第三十三页,共九十二页,编辑于2023年,星期日关系运算——投影(π)例:πssex,sage(student)第三十四页,共九十二页,编辑于2023年,星期日关系运算——投影()关系R:ABC102030401112AC1112=AC112A,C(R)投影运算的结果中,也要去除重复元组第三十五页,共九十二页,编辑于2023年,星期日关系代数的五个基本操作
(3)选择(Selection)选择操作是根据某些条件对关系做水平分割,即选取符合条件的元组。条件可用命题公式(即计算机语言中的条件表达式)F表示。F中有两种成分:关系R关于公式F的选择操作用σF(R)表示,形式定义如下:σF(R)={t|t∈R∧F(t)=true}σ为选择运算符,σF(R)表示从R中挑选满足公式F为真的元组所构成的关系。例如,σ2>ˊ3ˊ(R)表示从R中挑选第2个分量值大于3的元组所构成的关系。书写时,为了与属性序号区别起见,常量用引号括起来,而属性序号或属性名不要用引号括起来。第三十六页,共九十二页,编辑于2023年,星期日关系运算——选择(σ)例:σssex=‘男’ANDsdep=‘IS’(Student)
第三十七页,共九十二页,编辑于2023年,星期日练习:1、R和S的结构相同,且各有20个元组,那么两个关系的并操作结果的元组个数为()A.20B.小于等于20C.40D.小于等于40
2、R和S的结构相同,且各有20个元组,那么两个关系的差操作结果的元组个数为()A.20B.小于等于20C.40D.小于等于40答案:1、D2、B第三十八页,共九十二页,编辑于2023年,星期日与V或NOT非量词:存在,任一个运算结果TTTFFFTVTTVFFVF第三十九页,共九十二页,编辑于2023年,星期日2.2.2关系代数的四个组合操作
(1)交(intersection)定义所有同时出现在两个关系中的元组集合。交运算可以通过差运算来重写:RS=R(RS)R和S必须同类型(属性集相同、次序相同,但属性名可以不同)RS={r|rRrS}RS第四十页,共九十二页,编辑于2023年,星期日关系运算——交Intersect(∩)第四十一页,共九十二页,编辑于2023年,星期日关系代数的四个组合操作
(2)连接(join)连接有两种:θ连接和F连接(这里θ是算术比较符,F是公式)。从R×S的结果集中,选取属性集满足某一θ操作的元组,组成新的关系θ是一个关于属性集的逻辑表达式如果θ是等号“=”,则该联接操作叫“等值联接”。R
S={t|t=<tr,ts>trRtsStiθ
tj}rsiθj元组tr的第i个分量元组ts的第i个分量第四十二页,共九十二页,编辑于2023年,星期日关系代数的四个组合操作
(2)连接(join)①θ连接
RS≡{t︱t=<tr,ts>∧tr∈R∧ts∈S∧tr
iθts
j}②F连接
F连接是从关系R和S的笛卡儿积中选取属性间满足某一公式F的元组,这里F是形为F1∧F2∧…∧Fn的公式,每个FP是形为iθj的式子,而i和j分别为关系R和S的第i、第j个分量的序号。记为
RSF第四十三页,共九十二页,编辑于2023年,星期日关系代数的四个组合操作(2)987654321CBADE3162ABCDE123311236245662
RSB<D
R
S第四十四页,共九十二页,编辑于2023年,星期日关系运算——等值连接(θ)RSR.B=S.B第四十五页,共九十二页,编辑于2023年,星期日关系代数的四个组合操作
(3)自然连接(naturaljoin)两个关系R和S的自然连接操作具体计算过程如下:计算R×S;--计算笛卡尔积设R和S的公共属性是A1,A2…Ak,挑选R×S中满足R.A1=S.A1,…R.AK=S.AK的那些元组;--选择公共属性值相等的元组。去掉S.A1,…S.AK这些列。--做投影操作。RS=i1…im(R.A1=S.A1…R.AK=S.AK(RxS))第四十六页,共九十二页,编辑于2023年,星期日987654321CBACD3162
R
SABCD12314562
RS关系运算——自然连接()ABS.CS.CD1233145662
RSR.C=S.C第四十七页,共九十二页,编辑于2023年,星期日关系运算——自然连接()说明:在自然连接构成的结果关系中,相同的属性名不必重复。一般自然连接使用在R和S有公共属性的情况。当R与S无相同属性时,RS=R×S。自然连接是组装关系的有效方法。第四十八页,共九十二页,编辑于2023年,星期日关系代数的四个组合操作
(4)除法(division)设关系R和S的元数分别为r和s(设r>s>0),那么R÷S是一个(r-s)元的元组的集合。(R÷S)是满足下列条件的最大关系:其中每个元组t与S中每个元组u组成的新元组<t,u>必在关系R中。R÷S≡∏1,2,…,r-s(R)-∏1,2,…,r-s((∏1,2,…,r-s(R)×S)-R)
返回第四十九页,共九十二页,编辑于2023年,星期日第五十页,共九十二页,编辑于2023年,星期日2.2.3关系代数运算的应用实例
在关系代数运算中,把由五个基本操作经过有限次复合的式子称为关系代数表达式。这种表达式的运算结果仍是一个关系。我们可以用关系代数表达式表示各种数据查询操作。例2.7学生选课系统有三个关系:学生(学号,姓名,年龄,性别)S(S#,SNAME,SEX,AGE)课程(课程号,课程名,教师)C(C#,CNAME,TEACHER)选课(课程号,学号,成绩)SC(C#,S#,GRADE)第五十一页,共九十二页,编辑于2023年,星期日3.2.3关系代数表达式及其应用实例在关系代数运算中,把五个基本操作经过有限次复合的式子称为关系代数表达式。这个表达式的运算结果依然是一个关系。可以用关系代数表达式表示各种数据查询操作。查询语句的关系代数表达式的一般形式为:Π…(σ…
(R×S))Π…(σ…
(RS))第五十二页,共九十二页,编辑于2023年,星期日3.2.3关系代数表达式及其应用实例用关系代数表达式写查询语句的方法:确定查询所涉及哪些关系表。执行笛卡尔积或自然联接操作得到一张大的表格。根据查询对大表格执行水平分割(选择操作)或垂直分割(投影操作)。当查询涉及“否定”时,要用差操作;当查询涉及“全部值”时,要用除法操作。第五十三页,共九十二页,编辑于2023年,星期日关系代数——实例Student(Sno,Sname,Ssex,Sage,Sdept)Course(Cno,Cname,Cpno,Credit)SC(Sno,Cno,Grade)第五十四页,共九十二页,编辑于2023年,星期日关系代数——实例1检索选修了2号课程的课程号、学号和成绩。σcno=‘2’(SC)学生(学号,姓名,年龄,性别)S(S#,SNAME,SEX,AGE)课程(课程号,课程名,教师)C(C#,CNAME,TEACHER)选课(课程号,学号,成绩)SC(C#,S#,GRADE)第五十五页,共九十二页,编辑于2023年,星期日关系代数——实例2检索选修2号课程的学生的学号和成绩ΠSno,Grade(σcno=‘2’(SC))学生(学号,姓名,年龄,性别)S(S#,SNAME,SEX,AGE)课程(课程号,课程名,教师)C(C#,CNAME,TEACHER)选课(课程号,学号,成绩)SC(C#,S#,GRADE)第五十六页,共九十二页,编辑于2023年,星期日关系代数——实例3检索学习课程号为2的学生的学号和姓名。学号Sno、姓名Sname←Student表学号Sno、课程号Cno←SC表Student←SCsno用到Student和SC两个表,先对两个关系执行自然联接,再执行选择和投影操作。学生(学号,姓名,年龄,性别)S(S#,SNAME,SEX,AGE)课程(课程号,课程名,教师)C(C#,CNAME,TEACHER)选课(课程号,学号,成绩)SC(C#,S#,GRADE)第五十七页,共九十二页,编辑于2023年,星期日关系代数——实例3学号姓名性别年龄所在系课程号成绩95001李勇男20CS19295001李勇男20CS28595001李勇男20CS38895002刘晨女19IS29095001刘晨女19IS380ΠSno,Sname(σcno=‘2’(SCStudent))第五十八页,共九十二页,编辑于2023年,星期日关系代数—例4检索学习课程名为‘数学’的学生的学号和姓名。学号Sno、姓名Sname←Student表课程名称Cname、课程号Cno←Course表学号Sno、课程号Cno←SC表Student←SC→Coursesnocno学生(学号,姓名,年龄,性别)S(S#,SNAME,SEX,AGE)课程(课程号,课程名,教师)C(C#,CNAME,TEACHER)选课(课程号,学号,成绩)SC(C#,S#,GRADE)第五十九页,共九十二页,编辑于2023年,星期日关系代数——实例4ΠSno,Sname(σCname=‘数学’(CourseSCStudent))用到Student、SC、Course三个表,先对三个关系执行自然联接,再执行选择和投影操作。第六十页,共九十二页,编辑于2023年,星期日关系代数——实例4检索学习课程号为2或3的学生的学号。学号Sno、课程号Cno←SC表用到SC一个表,但做选择操作时是复合条件检索学习课程号为2或3的学生的学号。学生(学号,姓名,年龄,性别)S(S#,SNAME,SEX,AGE)课程(课程号,课程名,教师)C(C#,CNAME,TEACHER)选课(课程号,学号,成绩)SC(C#,S#,GRADE)第六十一页,共九十二页,编辑于2023年,星期日关系代数——实例5学号Sno、课程号Cno←SC表用到SC一个表,但做选择操作时是复合条件.一个学生可以学习多门课程,即一个学号可以对应多个课程号。检索至少学习课程号为2和3的学生的学号。学生(学号,姓名,年龄,性别)S(S#,SNAME,SEX,AGE)课程(课程号,课程名,教师)C(C#,CNAME,TEACHER)选课(课程号,学号,成绩)SC(C#,S#,GRADE)第六十二页,共九十二页,编辑于2023年,星期日学号课程号成绩学号课程号成绩950012859500128595001285950013889500128595002290950022909500128595002290950022909500229095002380关系代数——实例5Π1(σ1=4∧2=’2’∧5=‘3’(SC×SC))第六十三页,共九十二页,编辑于2023年,星期日思考:以下表示方法是否可以?Π1(σ2=’2’(SC))
∧
Π1(2=‘3’(SC))学号课程号成绩9500128595001388950022909500239895003386检索至少学习课程号为2和3的学生的学号。学号课程号成绩9500128595001388950022909500239895003386可以得到正确结果,但是查询进行了两次!第六十四页,共九十二页,编辑于2023年,星期日思考:以下表示方法是否可以?ΠSno(σCNO=’2’(SC))
ΠSno(CNO=‘3’(SC))检索学习课程号为2或3的学生的学号。ΠSno(σCno=’2’Cno=’3’(SC))第六十五页,共九十二页,编辑于2023年,星期日关系代数——实例6检索不学习课程号为2的学生的姓名和年龄。学号Sno、姓名Sname、年龄Sage←Student表学号Sno、课程号Cno←SC表Student←SCsno涉及否定用“差”操作,先求出全体学生的姓名和年龄,再求出学习了2号课程的学生姓名和年龄,最后执行两个集合的差操作。学生(学号,姓名,年龄,性别)S(S#,SNAME,SEX,AGE)课程(课程号,课程名,教师)C(C#,CNAME,TEACHER)选课(课程号,学号,成绩)SC(C#,S#,GRADE)第六十六页,共九十二页,编辑于2023年,星期日关系代数——实例6Πsname,Sage(σCno=‘2’(SCStudent))ΠSname,Sage(S)求出全体学生的姓名和年龄。求出学习了2号课程的学生姓名和年龄。执行两个集合的差操作。ΠSname,Sage(S)Πsname,Sage(σCno=‘2’(SCStudent))-第六十七页,共九十二页,编辑于2023年,星期日关系代数——实例7检索学习全部课程的学生姓名。涉及“全部值”用除法操作,先求全部课程,再用除法求出学习了全部课程的学生的学号,最后求出学生姓名。学号Sno、姓名Sname←Student表课程号Cno←Course表学号Sno、课程号Cno←SC表Student←SC→Coursesnocno学生(学号,姓名,年龄,性别)S(S#,SNAME,SEX,AGE)课程(课程号,课程名,教师)C(C#,CNAME,TEACHER)选课(课程号,学号,成绩)SC(C#,S#,GRADE)第六十八页,共九十二页,编辑于2023年,星期日关系代数——实例7学生的选课情况可用ΠSno,Cno(SC)表示全部课程可用ΠCno(C)表示学了全部课程的学号可以用除法得到(学号集)ΠSno,Cno(SC)ΠCno(C)从学号求出学生的姓名:Πsname(S(ΠSno,Cno(SC)ΠCno(C)))第六十九页,共九十二页,编辑于2023年,星期日检索所学课程包含学号S3所学课程的学生学号。涉及“全部值”用除法操作,先求学生的选课情况,再求S3学生所学的课程,最后用除法求出学习了所学课程包含学生S3所学课程的学生学号。学号Sno、课程号Cno←SC表关系代数—实例8学生(学号,姓名,年龄,性别)S(S#,SNAME,SEX,AGE)课程(课程号,课程名,教师)C(C#,CNAME,TEACHER)选课(课程号,学号,成绩)SC(C#,S#,GRADE)第七十页,共九十二页,编辑于2023年,星期日关系代数——实例8学生的选课情况可用ΠSno,Cno(SC)表示学生S3所学课程可用ΠCno(σS#=‘S3’(SC))表示所学课程包含学生S3所学课程的学生学号,可以用除法得到ΠSno,Cno(SC)ΠCno(σS#=‘S3’(SC))第七十一页,共九十二页,编辑于2023年,星期日863S5983S2902S2883S1852S1成绩课程号学号所学课程包含学生S3所学课程的学生学号,可以用除法得到ΠSno,Cno(SC)ΠCno(σS#=‘S3’(SC))2S33S3课程号学号第七十二页,共九十二页,编辑于2023年,星期日练习(课堂消化)用关系代数表达式实现:1.查找所有女科长的姓名和家庭地址:П姓名,家庭地址(σ性别=‘女’∧职务=‘科长’(职工))现有关系数据库如下:职工(职工号,姓名,性别,职务,家庭地址,所在部门编号)部门(部门编号,部门名称,地址,电话)保健(保健卡编号,职工号,检查身体日期,健康状况)第七十三页,共九十二页,编辑于2023年,星期日练习:2.查找部门名称为“办公室”的科长姓名和家庭地址:П姓名,家庭住址(σ职务=‘科长’∧部门名称=‘办公室’(职工∞部门))П姓名,家庭住址(σ职务=‘科长’(职工)∞σ部门名称=‘办公室’(部门))现有关系数据库如下:职工(职工号,姓名,性别,职务,家庭地址,所在部门编号)部门(部门编号,部门名称,地址,电话)保健(保健卡编号,职工号,检查身体日期,健康状况)第七十四页,共九十二页,编辑于2023年,星期日练习:3.查找部门名称为“财务科”中健康状况为“良好”的职工姓名和家庭住址。П姓名,家庭住址(σ部门名称=‘财务科’∧健康状况=‘良好’(职工∞部门∞保健))П姓名,家庭住址(职工∞σ部门名称=‘财务科’(部门)∞σ健康状况=‘良好’(保健)
)现有关系数据库如下:职工(职工号,姓名,性别,职务,家庭地址,所在部门编号)部门(部门编号,部门名称,地址,电话)保健(保健卡编号,职工号,检查身体日期,健康状况)第七十五页,共九十二页,编辑于2023年,星期日练习:用关系代数表达式实现:1.检索学习“数据库原理”课程且成绩不及格的学生的学号和教师编号。П学号,教师编号(σ课程名称=‘数据库原理’∧成绩<60(授课))现有关系数据库如下:学生(学号,姓名,性别,专业,出生日期)教师(教师编号,姓名,所在部门,职称)授课(教师编号,学号,课程编号,课程名称,教材,学分,学生成绩)第七十六页,共九十二页,编辑于2023年,星期日练习:2.检索学习“英语”课程的“计算机应用”专业的学生学号、姓名、成绩。П学号,姓名,成绩(σ专业=‘计算机应用’∧课程名称=‘英语’(学生∞授课))现有关系数据库如下:学生(学号,姓名,性别,专业,出生日期)教师(教师编号,姓名,所在部门,职称)授课(教师编号,学号,课程编号,课程名称,教材,学分,学生成绩)第七十七页,共九十二页,编辑于2023年,星期日练习:3.检索没有任何一门课程成绩不及格的所有学生的信息,包括学号、姓名和专业;П学号,姓名,专业(学生)-П学号,姓名,专业(σ分数<‘60’(学生∞授课))现有关系数据库如下:学生(学号,姓名,性别,专业,出生日期)教师(教师编号,姓名,所在部门,职称)授课(教师编号,学号,课程编号,课程名称,教材,学分,学生成绩)第七十八页,共九十二页,编辑于2023年,星期日2.2.4关系代数的七个扩充操作(自学)
改名广义投影赋值外连接(outerjoin)左外连接、右外连接外部并(outerunion)半连接(semijoin)聚集操作
返回第七十九页,共九十二页,编辑于2023年,星期日*2.3关系演算
把数理逻辑的谓词演算引入到关系运算中,就可得到以关系演算为基础的运算。关系演算又可分为元组关系演算和域关系演算,前者以元组为变量,后者以属性(域)为变量。2.3.1元组关系演算
2.3.2域关系演算
2.3.3关系运算的安全约束和等价性返回第八十页,共九十二页,编辑于2023年,星期日2.4关系代数表达式的优化
2.4.1关系代数表达式的优化问题
2.4.2关系代数表达式的等价变换规则
2.4.3关系代数表达式的优化算法
返回第八十一页,共九十二页,编辑于2023年,星期日查询优化关系代数表达式的优化(1)在关系代数表达式中需要指出若干关系的操作步骤。那么,系统应该以什么样的操作顺序,才能做到既省时间,又省空间,而且效率也比较高呢?这个问题称为查询优化问题。在关系代数运算中,笛卡儿积和连接运算是最费时间的。(关系模型不像层次模型和网状模型的数据联系是通过指针,是通过公共属性即外键)第八十二页,共九十二页,编辑于2023年,星期日关系代数表达式的优化算法
(1)在关系代
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度婚内房产赠与撤销及财产返还协议
- 二零二五年度教师实习实训基地与实习生实习期间生活管理合同
- 2025年度绿色农业病虫害防治药害赔偿协议
- 二零二五年度互联网医疗领域股权转让合同终止执行函
- 2025年度银行与企业绿色金融存款合作框架协议
- 二零二五年度林业碳汇项目树木购销协议
- 期中家长会发言稿
- 甲状腺结节发言稿
- 2025年哈尔滨货运车辆从业资格证考试题
- 2025年鹤岗b2货运资格证多少道题
- 售后电池服务方案
- 辽宁省沈阳市名校2024年中考物理模拟试题含解析
- 2024年反诈骗知识竞赛题库与答案
- 初中英语不规则动词表(译林版-中英)
- 车辆维修、保养审批单
- 【A酒店员工敬业度提升对策探究10000字(论文)】
- 科普版六年级下册英语全册教学课件
- 版NCCN直肠癌指南解读
- 电力系统的微电网区域规划管理
- 智能割草机器人的概述外文翻译
- 井下作业工:初级井下作业工考试答案二
评论
0/150
提交评论