关系模型和关系运算理论.ppt

上传人:w****2 文档编号:18696583 上传时间:2021-01-03 格式:PPT 页数:63 大小:642.31KB
返回 下载 相关 举报
关系模型和关系运算理论.ppt_第1页
第1页 / 共63页
关系模型和关系运算理论.ppt_第2页
第2页 / 共63页
关系模型和关系运算理论.ppt_第3页
第3页 / 共63页
点击查看更多>>
资源描述
第 2章 关系模型和关系运算理 论 本章重要概念(一) ( 1) 基本概念 关系模型 , 关键码 ( 主键和外键 ) , 关系 的定义和性质 , 三类完整性规则 , ER模 型到关系模型的转换规则 , 过程性语言与 非过程性语言 。 ( 2) 关系代数 五个基本操作,四个组合操作,七个扩充 操作。 本章重要概念(二) ( 3) 关系演算 元组关系演算和域关系演算的原子公式 、 公式 的定义 。 关系演算的安全性和等价性 。 ( 4) 关系代数表达式的优化 关系代数表达式的等价及等价转换规则 , 启化 式优化算法 。 ( 5) 关系逻辑 谓词、原子、规则和查询,规则的安全性,用 规则模拟关系代数表达式。 本章概要 本章先介绍关系模型的基本概念;然后介绍关 系运算的三种理论:关系代数、关系演算和关 系逻辑。 关系模型和关系运算理 2.1 关系模型的基本概念 2.2 关系代数 2.3 关系演算 2.4 关系代数表达式的优化 2.5 关系逻辑 2.1 关系模型的基本概念 2.1.1 基本术语 2.1.2 关系的定义和性质 2.1.3 关系模型的三类完整性规则 2.1.4 ER模型向关系模型的转换规则 2.1.5 关系模型的三级体系结构 2.1.6 关系模型的形式定义和优点 2.1.7 关系查询语言和关系运算 返 回 基本术语 (1) 定义 2.1 用二维表格表示实体集,用关键码进行数据导 航的数据模型称为关系模型( relational Model)。这里 数据导航 (data navigation)是指从已知数据查找未知数 据的过程和方法。 工号 姓名 年龄 性别 工资 4001 zhang 50 M 2000 4 002 li 40 F 1500 4124 liu 35 M 2000 5018 wang 25 M 1000 图 2.1 职工登记表 基本术语 (2) 在关系模型中 , 字段称为属性 , 字段值称为属性值 , 记录类型称为关系模式 。 在图 2.2中 , 关系模式名是 R。 记录称为元组 ( tuple) , 元组的集合称为关系 ( relation) 或实例 ( instance) 。 一般用大写字母 A、 B、 C、 表示单个属性 , 用大写字母 、 X、 Y、 Z表 示属性集 , 用小写字母表示属性值 , 有时也习惯称呼关 系为表或表格 , 元组为行 (row), 属性为列 (column)。 关系中属性个数称为 “ 元数 ” ( arity),元组个数为 “ 基数 ” (cardinality)。 基本术语 (3) 关系元数为 5,基数为 4 R A B C D E a 1 b 1 c 1 d 1 e 1 a 2 b 2 c 2 d 2 e 2 a 3 b 3 c 3 d 3 e 3 a 4 b 4 c 4 d 4 e 4 一般术语 关系模型术语 字段 、 数据项 属性 记录类型 关系模式 记录 1 元组 1 记录 2 元组 2 记录 3 元组 3 记录 4 元组 4 字段值 属性值 图 2.2 关系模型的术语 基本术语 (4) 关键码 (key,简称键 )由一个或多个属性组成 。 在实际 使用中 , 有下列几种键 。 ( 1) 超建 ( super Key) ( 2) 候选键 ( candidate Key) ( 3) 主键 (primary Key) 在图 2.1中 , ( 工号 , 姓名 ) 是模式的一个超键 , 但不是候选键 , 而 ( 工号 ) 是候选 键 。 在实际使用中 , 如果选择 ( 工号 ) 作为删除或查找 元组的标志 , 那么称 ( 工号 ) 是主键 。 ( 4) 外键 ( foreign Key) 返 回 关系的定义和性质 定义 2.2 关系是一个属性数目相同的元组的集合。 在关系模型中 , 对关系作了下列规范性限制: ( 1) 关系中每一个属性值都是不可分解的; ( 2) 关系中不允许出现重复元组 ( 即不允许出现相同的 元组 ) ; ( 3) 由于关系是一个集合 , 因此不考虑元组间的顺序 , 即没有行序; ( 4) 元组中的属性在理论上也是无序的 , 但使用时按习 惯考虑列的顺序 。 返 回 关系模型的三类完整性规则 (1) 实体完整性规则 ( entity integrity rule) 要求关系中元组在组成主键的属性上不能有空值 。 如果出 现空值 , 那么主键值就起不了惟一标织元组的作用 。 关系模型的三类完整性规则 (2) 参照完整性规则 ( reference integrity rule) 定义 2.3 参照完整性规则的形式定义如下: 如果属性集 K是关系模式 R1的主键 , K也是关系模式 R2 的外键 , 那么在 R2的关系中 , K的取值只允许两种可能 , 或者为空值 , 或者等于 R1关系中某个主键值 。 这条规则的实质是“不允许引用不存在的实体”。 在上述形式定义中 , 关系模式 R1的关系称为 “ 参照关 系 ” , 关系模式 R2的关系称为 “ 依赖关系 ” 。 “ 主表 ” 和 “ 副表 ” , “ 父表 ” 和 “ 子表 ” 。 关系模型的三类完整性规则 (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# 值不允许空 。 关系模型的三类完整性规则 (4) 设工厂数据库中有两个关系模式: DEPT(D#, DNAME) EMP(E#, ENAME, SALARY, D# ) 车间模式 DEPT的属性为车间编号 、 车间名 , 职工模式 EMP的属性为工号 、 姓名 、 工资 、 所在车间的编号 。 每 个模式的主键与外键已标出 。 在 EMP中 , 由于 D# 不在 主键中 , 因此 D# 值允许空 。 关系模型的三类完整性规则 (5) 设课程之间有先修 、 后继联系 。 模式如下: R(C# , CNAME, PC# ) 其属性表示课程号、课程名、先修课的课程号。如果 规定,每门课程的直接先修课只有一门,那么模式 R的 主键是 C#,外键是 PC#.。这里参照完整性在一个模式中 实现。即每门课程的直接先修课必须在关系中出现。 关系模型的三类完整性规则 (6) 用户定义的完整性规则 在建立关系模式时 , 对属性定义了数据类型 , 即使这 样可能还满足不了用户的需求 。 此时 , 用户可以针对具 体的数据约束 , 设置完整性规则 , 由系统来检验实施 , 以使用统一的方法处理它们 , 不再由应用程序承担这项 工作 。 例如学生的年龄定义为两位整数 , 范围还太大 , 我们可以写如下规则把年龄限制在 15 30岁之间: CHECK( AGE BETWEEN 15 AND 30) 返 回 ER模型向关系模型的转换规则 (1) ER模型向关系模型的转换 , 实际上就是把 ER图转换成关 系模式的集合 。 规则 2.1( 实体类型的转换 ) :将每个实体类型转换成 一个关系模式 , 实体的属性即为关系模式的属性 , 实体 标识符即为关系模式的键 。 规则 2.2( 二元联系类型的转换 ) 若实体间联系是 1:1。 若实体间联系是 1:N。 若实体间联系是 M:N。 ER模型向关系模型的转换规则 (2) 校名 地址 校长 任职 学校 电话 任职年月 姓名 性别 年龄 1 1 职称 图 2.3 一对一联系 ER模型向关系模型的转换规则 (3) 系号 系名 教师 聘用 系 电话 聘期 工号 姓名 性别 年龄 1 N 图 2.4 一对多联系 ER模型向关系模型的转换规则 (4) 学号 姓名 课程 学生 年龄 成绩 课程号 课程名 教师名 选课 性别 M N 图 2.5 多对多联系 返回 关系模型的三级体系结构 - 关系 模式 在关系模型中,记录类型称为关系模式,而关系模 式的集合就是数据库的概念模式。在系统实现时,关系 模式和属性的命名一般都用英文单词。譬如图 2.5的 ER 图转换成的关系模式集可用图 2.6表示。而图 2.7是这个 关系模型的三个具体关系。 学生关系模式 S( S # , SN AM E , AGE , SEX) 选 课 关系模式 SC ( S# , C# , GRADE) 课程关系模式 C( C# , CN AM E , TEACHER) 关系模型的三级体系结构 -子模 式 子模式是用户所用到的那部分数据的描述。除此之外, 还应指出数据与关系模式中相应数据的联系。例如,用 户需要用到子模式 G(图 2.8)。 成绩子模式 G (S # , SNAME , C# , GRADE) 关系模型的三级体系结构 -存储 模式 SC PTR S# C# GRADE S S# SNAME AGE SEX PTR S1 C1 80 S1 Wang 20 M S3 C1 90 S2 Liu 21 F S1 C2 70 S3 Chen 22 M S3 C2 85 S3 C3 95 图 2.10 关系 S和 SC的环结构 在有些 DBMS中,关系存储是作为文件看待的,每个元 组就是一个记录。由于关系模式有键,因此存储一个关 系可用散列方法或索引方法实现。如果关系的元组数目 较少( 100个以内),那么也可以用 “ 堆文件 ” 方式实现 (即没有特定的次序)。此外,还可对任意的属性集建 立辅助索引。 关系模型的形式定义 关系模型有三个重要组成部分:数据结构 , 数据操纵 , 数据完整性规则 。 ( 1) 数据结构:数据库中全部数据及其相互联系都被组 织成 “ 关系 ” ( 二维表格 ) 的形式 。 关系模型基本的数 据结构是关系 。 ( 2) 数据操纵:关系模型提供一组完备的高级关系运算 , 以支持对数据库的各种操作 。 关系运算分成关系代数 、 关系演算和关系逻辑等三类 。 ( 3)数据完整性规则:数据库中数据必须满足实体完 整性,参照完整性和用户定义的完整性等三类完整性规 则。 关系模型的优点 与其它数据模型相比 , 关系模型突出的优点如下: ( 1) 关系模型提供单一的数据结构形式 , 具有高度的简 明性和精确性 。 ( 2) 关系模型的逻辑结构和相应的操作完全独立于数据 存储方式 , 具有高度的数据独立性 。 ( 3) 关系模型使数据库的研究建立在比较坚实的数学基 础上 。 ( 4) 关系数据库语言与一阶谓词逻辑的固有内在联系 , 为以关系数据库为基础的推理系统和知识库系统的研究 提供了方便 。 返 回 关系查询语言和关系运算 关系数据库的数据操纵语言 ( DML) 的语句分成查询语 句和更新语句两大类 。 查询语句用于描述用户的各种检 索要求;更新语句用于描述用户进行插入 、 删除 、 修改 等操作 。 关于查询的理论称为 “ 关系运算理论 ” 。 关系查询语言根据其理论基础的不同分成三类: ( 1) 关系代数语言 。 ( 2) 关系演算语言 。 ( 3)关系逻辑语言。 返 回 2.2 关系代数 2.2.1 关系代数的五个基本操作 2.2.2 关系代数的四个组合操作 2.2.3 关系代数运算的应用实例 2.2.4 关系代数的七个扩充操作 返 回 关系代数的五个基本操作 (1) 并 ( Union) 设关系 R和 S具有相同的关系模式 , R和 S的并是由属于 R 或属于 S的元组构成的集合 , 记为 R S。 形式定义如下: R St | t R t S, t是元组变量 , R和 S的元数相同 。 差 ( Difference) 设关系 R和 S具有相同的关系模式 , R和 S的差是由属于 R 但不属于 S的元组构成的集合 , 记为 R S。 形式定义如 下: R S t | t R t S, R和 S的元数相同 。 关系代数的五个基本操作 (2) 投影 ( Projection) 这个操作是对一个关系进行垂直分割 , 消去某些列 , 并 重新安排列的顺序 。 设关系 R是 k元关系 , R在其分量 Ai1, , Aim( mk , 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) 是等价的 。 关系代数的五个基本操作 (3) 选择 ( Selection) 选择操作是根据某些条件对关系做水平分割 , 即选取符 合条件的元组 。 条件可用命题公式 ( 即计算机语言中的 条件表达式 ) F表示 。 F中有两种成分: 关系 R关于公式 F的选择操作用 F( R) 表示 , 形式定义 如下: F( R) t | tR F( t) = true 为选择运算符 , F( R) 表示从 R中挑选满足公式 F为真 的元组所构成的关系 。 例如 , 2 3 ( R) 表示从 R中挑选第 2个分量值大于 3的 元组所构成的关系 。 书写时 , 为了与属性序号区别起见 , 常量用引号括起来 , 而属性序号或属性名不要用引号括 起来 。 关系代数的五个基本操作 (例 ) 例 2.3 图 2.12有两个关系 R和 S, 图 2.13的 ( a) 、 ( b) 表示 RS 和 R S。 ( c) 表示 R S, 此处 R和 S的属性名 相同 , 就应在属性名前注上相应的关系名 , 例如 R.A、 S.A等 。 图 2.13的 ( d) 表示 C, A( R) , 即 3, 1( R) 。 ( e) 表示 B=b ( R) 。 A B C A B C a b C b g a d a F d a f c b d ( a)关系 R ( b)关系 S 图 2.12 两个关系 关系代数的五个基本操作 (例 ) A B C A B C R.A R.B R.C S .A S.B S.C C A A B C a b c a b c a b c b g a c a a b c d a f c d b a b c d a f f d c b d c b d d a f b g a d c b g a d a f d a f c b d b g a c b d d a f ( a) R S ( b) R S ( c) R S ( d) C, A( R) ( e) B=b( R) 图 2.13 关系代数操作的结果 返 回 关系代数的四个组合操作 (1) 交 ( intersection) 关系 R和 S的交是由属于 R又属于 S的元组构成的集合 , 记 为 RS, 这里要求 R和 S定义在相同的关系模式上 。 形 式定义如下: RSt t R t S, R和 S的元数相同 。 由于 RS = R-( R-S) , 或 RS = S-( S-R) , 因此交操 作不是一个独立的操作 。 在图 2.12中, RS的结果是只有一个元组( d, a, f)。 关系代数的四个组合操作 (2) 联接 ( join) 联接有两种: 联接和 F联接 ( 这里 是算术比较符 , F是 公式 ) 。 联接 R St t= t rR t sS tr i ts j F联接 F联接是从关系 R和 S的笛卡尔积中选取属性间满足 某一公式 F的元组 , 这里 F是形为 F1F 2 F n的公式, 每个 FP是形为 i j的式子,而 i和 j分别为关系 R和 S的第 i、第 j个分量的序号。 关系代数的四个组合操作 (3) 自然联接 ( natural join) 两个关系 R和 S的自然联接操作具体计算过程如下: 计算 R S ; 设 R和 S的公共属性是 A1, ,AK, 挑选 R S中满足 R.A1=S.A1, , R.AK=S.AK 的那些元组; 去掉 S.A1, , S.AK这些列 。 定义: i1, ,im ( R.A1=S.A1. R.A K=S.AK(R S),其中 i1, ,im为 R和 S的全部属性,但公共属性只出现一次。 关系代数的四个组合操作 (4) 除法( division) 设关系 R和 S的元数分别为 r和 s(设 rs0),那么 R S 是一个( r-s)元的元组的集合。( R S)是满足下列 条件的最大关系:其中每个元组 t与 S中每个元组 u组成 的新元组 必在关系 R中。 R S 1, 2, , r-s( R) - 1, 2, , r-s ( 1, 2, , r-s( R) S) -R) 返 回 关系代数运算的应用实例 在关系代数运算中 , 把由五个基本操作经过有限次复 合的式子称为关系代数表达式 。 这种表达式的运算结果 仍是一个关系 。 我们可以用关系代数表达式表示各种数 据查询操作 。 例 2.7 返 回 关系代数的七个扩充操作 改名 广义投影 赋值 外联接( outer join) 外部并( outer union) 半联接( semijoin) 聚集操作 返 回 2.3 关系演算 把数理逻辑的谓词演算引入到关系运算中,就可得到以 关系演算为基础的运算。关系演算又可分为元组关系演 算和域关系演算,前者以元组为变量,后者以属性(域) 为变量。 2.3.1 元组关系演算 2.3.2 域关系演算 2.3.3 关系运算的安全约束和等价性 返 回 元组关系演算 (1) 在元组关系演算 ( Tuple Relational Calculus) 中 , 元组关系演算表达式简称为元组表达式 , 其一般形式为 t | P( t) 其中, t是元组变量,表示一个元数固定的元组; P是公 式,在数理逻辑中也称为谓词,也就是计算机语言中的 条件表达式。 t | P( t) 表示满足公式 P的所有元组 t的集合。 元组关系演算 (2) 在元组表达式中 , 公式由原子公式组成 。 定义 2.4 原子公式 ( Atoms) 有下列三种形式: R( s) si uj si a或 a uj。 在定义关系演算操作时,要用到 “ 自由 ” ( Free)和 “ 约束 ” ( Bound)变量概念。在一个公式中,如果元 组变量未用存在量词 或全称量词 符号定义,那么称 为自由元组变量,否则称为约束元组变量。 元组关系演算 (3) 定义 2.5 公式 ( Formulas) 的递归定义如下: 每个原子是一个公式 。 其中的元组变量是自由变量 。 如果 P1和 P2是公式,那么 P1、 P1P 2、 P1P 2和 P1P2也都是公式。 如果 P1是公式,那么( s)( P1)和( s)( P1) 也都是公式。 公式中各种运算符的优先级从高到低依次为: , 和 , , 和 , 。在公式外还可以加括号,以改 变上述优先顺序。 公式只能由上述四种形式构成,除此之外构成的都 不是公式。 元组关系演算 (4) 例 2.16 图 2.20的( a)、( b)是关系 R和 S,( c)( g)分别是下面五个元组表 达式的值 A B C A B C A B C A B C 1 2 3 1 2 3 3 4 6 4 5 6 4 5 6 3 4 6 5 6 9 7 8 9 7 8 9 5 6 9 ( a )关系 R ( b )关系 S ( c ) R1 ( d ) R2 A B C A B C R.B S .C R.A 1 2 3 4 5 6 5 3 4 3 4 6 7 8 9 8 3 7 8 6 7 8 9 7 ( e ) R3 ( f ) R4 ( g ) R5 图 2.20 元组关系演算的例子 R1 = t | S( t) t12 R2 = t | R( t) S( t) R3 = t |( u) ( S( t) R( u) t3u1) R5 = t |( u)( v)( R ( u) S( v) u1v2t1=u2t 2=v3t3=u1 ) 元组关系演算 (5) 在元组关系演算的公式中 , 有下列三个等价的转换规 则: P1 P2等价于 (P1 P2); P1 P2等价于 ( P1 P2) 。 ( s) ( P1( s) 等价于 (s)( P1( s) ; ( s) ( P1( s) 等价于 (s) ( P1( s) 。 P1P2等价于 P1 P2。 元组关系演算 (6) 关系代数表达式到元组表达式的转换 例 2.17 R S可用 t | R( t) S( t) 表示; R-S可用 t | R( t) S( t) 表示; R S 可用 t | ( u ) ( v ) ( R ( u ) S(V) t1=u1 t2=u2 t3=u3 t4=v1 t5=v2 t6=v3) 表示 。 设投影操作是 2,3( R) , 那么元组表达式可写成: t |(u)( R( u) tl=u2 t2=u3) F( R)可用 t |R(t) F表示, F是 F的等价表示形式。譬如 2=d ( R)可写成 t |( R( t) t2=d)。 返 回 域关系演算 (1) 原子公式有两种形式: R( x1 xk) ; x y。 公式中也可使用 、 、 和 等逻辑运算符 ,(x)和 ( x) , 但变量 x是域变量 , 不是元组变量 。 自由域变量 、 约束域变量等概念和元组演算中一样 。 域演算表达式是形为 t1 tkP ( t1, , tk) 的表达式 , 其中 P( t1, , tk) 是关于自由域变量 t1, , tk 的公式 。 域关系演算 (2) 例 2.20 图 2.21的 ( a) 、 ( b) 、 ( c) 是三个关系 R、 S、 W, ( d) 、 ( e) 、 ( f) 分别表示下面三个域表达式的值 。 ( a) 关系 R ( b) 关系 S ( c) 关系 W ( d) R1 ( e) R2 ( f) R3 图 2.21 域关系演算的例子 A B C A B C D E A B C A B C B D A 1 2 3 1 2 3 7 5 4 5 6 1 2 3 5 7 4 4 5 6 3 4 6 4 8 4 5 6 8 7 7 7 8 9 5 6 9 7 8 9 8 4 7 3 4 6 R1= xyz| R( xyz) x3 R2= xyz| R( xyz) ( S( xyz) y = 4) R3= xyz|( u)( v)( R( zxu) w( yv ) uv ) 域关系演算 (3) 元组表达式到域表达式的转换 我们可以很容易地把元组表达式转换成域表达式 , 转换 规则如下: 对于 k元的元组变量 t, 可引入 k个域变量 t1 tk, 在公 式中 t用 t1 tk替换 , 元组分量 ti用 ti替换 。 对于每个量词( u)或( u),若 u是 m元的元组变 量,则引入 m个新的域变量 u1 um。在量词的辖域内, u 用 u1 um替换, ui用 ui替换,( u)用( u1) ( um) 替换,( u)用( u1) ( um)替换。 返 回 关系运算的安全约束和等价性 定义 2.6 在数据库技术中 , 不产生无限关系和无穷验 证的运算称为安全运算 , 相应的表达式称为安全表达式 , 所采取的措施称为安全约束 。 并、差、笛尔卡积、投影和选择是关系代数最基本的操 作,并构成了关系代数运算的最小完备集。已经证明, 在这个基础上,关系代数、安全的元组关系演算、安全 的域关系演算在关系的表达和操作能力上是完全等价的。 返 回 2.4 关系代数表达式的优化 2.4.1 关系代数表达式的优化问题 2.4.2 关系代数表达式的等价变换规则 2.4.3 关系代数表达式的优化算法 返 回 关系代数表达式的优化 (1) 在关系代数表达式中需要指出若干关系的操作步骤 。 那 么 , 系统应该以什么样的操作顺序 , 才能做到既省时间 , 又省空间 , 而且效率也比较高呢 ? 这个问题称为查询优 化问题 。 在关系代数运算中,笛卡儿积和联接运算是最费时间的。 关系代数表达式的优化 (2) 例 2.23 设关系 R和 S都是二元关系 , 属性名分别为 A, B和 C, D。 设 有一个查询可用关系代数表达式表示: E1= A( B=CD= 99( R S) 也可以把选择条件 D=99移到笛卡儿积中的关系 S前面: E2= A( B=C( R D=99( S) 还可以把选择条件 B C与笛卡儿积结合成等值联接形式: B=C E3= A( R D=99( S) 这三个关系代数表达式是等价的,但执行的效率大不一样。显然, 求 El, E2, E3的大部分时间是花在联接操作上的。 返 回 关系代数表达式的等价变换规则 (1) 联接和笛卡尔积的交换律 联接和笛卡尔积的结合律 投影的级联 选择的级联 选择和投影操作的交换 选择对笛卡尔积的分配律 选择对并的分配律 关系代数表达式的等价变换规则 (2) 选择对集合差的分配律 选择对自然联接的分配律 投影对笛卡尔积的分配律 投影对并的分配律 选择与联接操作的结合 并和交的交换律 并和交的结合律 返 回 关系代数表达式的优化算法 (1) 在关系代数表达式中 , 最花费时间和空间的运算是笛 卡尔积和联接操作 , 为此 , 引出三条启发式规则 , 用于 对表达式进行转换 , 以减少中间关系的大小 。 尽可能早地执行选择操作; 尽可能早地执行投影操作; 避免直接做笛卡尔积,把笛卡尔积操作之前和之后的一 连串选择和投影合并起来一起 做。 关系代数表达式的优化算法 (2) 算法 2.1 关系代数表达式的启发式优化算法 。 输入:一个关系代数表达式的语法树 输出:计算表达式的一个优化序列 例 2.24 返 回 2.5 关系逻辑 (自学 ) 2.5.1 关系运算的成分 2.5.2 规则的安全性 2.5.3 从关系代数到关系逻辑的转换 2.5.4 递归过程 2.5.5 关系逻辑与关系代数的差异 小 结 在 2.3.3节中提到关系代数和关系演算在表达功能上是 等价的 。 那么关系代数和关系逻辑在表达功能上是否等 价 ? 已有文献证明 , 这两者之间相差甚大 。 在规则中没 有否定时 , 关系代数与关系逻辑在表达功能方面已不相 适应 , 每个都能表达另一个不能表达的内容 。 在规则中 带有否定时 , 关系逻辑比关系代数更富于表现力 。 只有 在规则被约束为安全的 、 非递归的 、 在带有某些否定的 情况下 , 关系代数才与关系逻辑等价 。 由于关系逻辑中 引进了基于逻辑的规则概念 , 使得关系逻辑比关系代数 在模拟现实世界能力方面更强 。 关系逻辑一般是用在知 识库的知识表达中 。 本章的重点篇幅 ( 1) 教材中 P56的例 2.7( 关系代数表达式 的应用实例 ) 。 ( 2) 教材中 P63的例 2.19( 元组表达式的应 用实例 ) 。 ( 3)教材中 P81的例 2.36(关系逻辑的规 则表示)。 重要内容分析(一) ( 1) 一般规则 对于只涉及到选择 、 投影 、 联接的查询可用下列 表达式表示: ( ( R S) 或者 ( ( RS) 对于否定的操作 , 一般要用差操作表示 , 例如 “ 检索不学 C2课的学生姓名 ” 。 对于检索具有“全部”特征的操作,一般要用 除法操作表示,例如“ 检索学习全部课程的学 生姓名”。 重要内容分析(二) ( 2) “ 检索不学 C2课的学生姓名 ” , 决不能用下 式表示: SNAME, AGE( C#C2( SSC) 一定要用 “ 差 ” 的形式: SNAME , AGE ( S ) SNAME , AGE ( C#=C2 ( SSC) ( 3) “ 检索学习全部课程的学生学号 ” , 要用 S#, C#( SC) C#( C) 表示 , 而不能写成 S# ( SC C#( C) 形式。这 是因为一个学生学的课程的成绩可能是不一样 的。 重要内容分析(三) 2 非过程性语言与过程性语言的区别 编程时必须指出 “ 干什么 ” 及 “ 怎么干 ” 的 语言 , 称为过程性语言;编程时只须指出 “ 干什么 ” , 不必指出 “ 怎么干 ” 的语言 , 称为非过程性语言 。
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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