- 1、本文档共103页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[IT认证]db_chapter2之关系代数
数据库系统概论 2.4 关系代数 2.4 关系代数 2.4.1 基本运算 2.4.2 附加的关系运算 2.4.3 用关系代数表达式表示查询 *2.4.4 扩展的关系运算 概述 关系代数是过程化查询语言,包括一系列严格定义的运算 这些运算以一个或两个关系为运算对象,并产生一个新的关系作为运算结果 关系代数的一些运算是沿用集合论关系的传统运算 如并、差、交和笛卡儿积 另一些运算是为了满足数据库查询需要引进的 如选择、投影、连接等, 基本运算 基本的关系运算有五种 选择、投影、并、差和笛卡儿积 其中并、差和笛卡儿积是传统的集合运算 选择和投影是为了满足数据库查询需要而引进的运算 这些运算之所以称为基本的,因为其中任何运算都不能用其他运算表示 基本运算(续) 有些文献还引入了“更名”运算,并把它也看作基本运算 所有的基本运算的定义都可以不依赖属性名 直接使用属性名是方便的,并且使得运算的含义更直观 本书,对所有的运算定义都使用关系的属性名,但容易将它们转换成关系的列序号 基本运算(续) 1. 选择运算 选择是一元运算,它从给定的关系中选取满足一定条件的元组 设R是一个关系,F是一个公式,涉及 (1) 运算对象,它们是常量或属性名 (2) 算术比较运算符?、?、?、?、?和? (3) 逻辑运算符?、?和? 基本运算(续) 选择?F(R)是R中使得公式F为真的元组t的集合 元组t使得公式F为真意指当我们将F中所有的属性名用t的对应属性值替换时,公式F为真 用F(t)表示元组t使得公式F为真,则 ?F(R) = {t | t?R ? F(t)} 注意:选择的结果形成一个新的关系,它与R具有相同的属性 基本运算(续) 选择是行运算,它从表中选择满足给定条件的行 图2.5图示了一个选择操作?B=’b’ (R) 基本运算(续) 2. 投影运算 投影也是一元运算,它基于这样的想法: 给定一个关系R,去掉其中一些属性,重新排列剩下的属性,形成一个新关系 设R是一个n元关系,A1, …, Ak(k ? n)都是R的属性 基本运算(续) 关系R在属性A1, …, Ak上的投影记作?A1, …, Ak(R),它是满足如下条件的k-元组(a1, …, ak)的集合: 存在R中的元组u,对于1 ? i ? k,u在属性Ai上的值等于ai。设u是R的元组, A1, …, Ak表示u在属性A1, …, Ak上的值形成的k元组,则 ?A1, …, Ak(R) = {t | (?u) (u?R ? t=u[A1, …, Ak]) } 基本运算(续) 投影是列运算,它从表中删除某些列,但它可能导致删除运算结果的重复行。图2.6显示了一个投影运算?A,C(R)的结果,其中重复行已经删除 基本运算(续) 3. 并运算 并和差都是传统的集合运算,只要求参与运算的两个关系具有相同的元,对应分量取自相同的域 结果关系的属性名可以任意给定 使用更名运算,可以对关系的属性重新命名 不失一般性,假定参与并和差运算的两个关系具有相同的属性 设R和S是具有相同属性的关系。关系R和S的并记作R?S,它是属于R,或属于S,或属于二者的所有元组的集合 采用集合论的记号,有R?S = {t | t?R ? t?S} 基本运算(续) 4. 差运算 设R和S是具有相同属性的关系。关系R和S的差记作R?S,它是属于R但不属于S的所有元组的集合 采用集合论的记号,有R ? S = {t | t?R ? t?S} 基本运算(续) 5. (广义)笛卡儿积运算 设R和S分别为n元和m元关系。R和S的(广义)笛卡儿积记作R?S,它是一个(n+m)-元关系,其每个元组的前n个分量是关系R的一个元组,后m个分量是关系S的一个元组 基本运算(续) 注意:R?S的前n个属性来自R,后m个属性来自S。如果属性A同时出现在R和S中,则R?S中分别用R.A和S.A表示 设u = (u1, …, un),v = (v1, …, vm),u和v的串接记作uv ,定义为 uv= (u1, …, un, v1, …, vm) 于是 R?S = {t | (?u) (?v) (u?R ? v?S ? t = uv} 笛卡尔积 – 例子 基本运算(续) 6. 更名运算 前面介绍的基本运算有一个共同的特点: 运算对象是关系,运算的结果也是关系 这些运算结果可以作为下一步运算的运算对象 可以使用这些关系运算组成关系代数表达式 关系代数表达式的结果是一个关系,但是它不像数据库中的基本关系,没有名字可供引用 基本运算(续) 引进更名运算是方便的 设E是关系代数表达式,其运算结果是n元关系,更名运算 返回表达式E的结果关系,并用R对该关系命名,用A1, …, An对该关系的n个属性重新命名。 当(A1, …, An)省略时,只对
文档评论(0)