- 1、本文档共53页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第2章 关系模型与关系数据库-医学课件.ppt
* * 约束指定--应用实例 * * 2.2 关系操作与关系查询语言 2.2.1 关系代数 2.2.2 关系演算 本章查询表达说明用例模式( “水手值勤服务”) Sailors(sid:integer, sname:string, rating:integer, age:integer); Boats(bid:integer, bname:string, color:string); Reserves(sid:integer, bid:integer, day:date); 关系查询语言的两种属性引用方法: (1) 属性名 (2) 属性在关系模式中的位置或顺序号 关系模型中除了引入描述DB结构和约束的概念外,还引用了一组可操纵DB的操作----通过基于模型的专门语言,来表达模型操作。 本节介绍:基于关系模型的两种模型语言--关系代数/关系演算。 下节介绍:以这两种形式语言为基础的关系模型标准化语言(SQL) * * “水手值勤服务”的一个简单模式实例 * * 2.2.1 关系代数 关系代数由一组操作符构成。每个操作符接受1或2个关系实例作为参数,返回一个关系实例作为结果。以下三个方面因素,可突显关系代数在RDBMS中的重要性和地位: 它为关系模型操作提供了一个形式化的基础; 是RDBMS查询实现和优化的基础; SQL结合并保留了很多关系代数的基本概念 关系代数操作符的两种主要类型: 基于集合论的操作,包括并、交、差和叉积等,这些操作的适用性源于“关系”本质上是元组集合; 另一类操作则是专门为RDBMS开发的操作,包括选择、投影、连接,以及为聚合运算引入的相关操作。 * * 1. 并、交、差运算 并、交、差这三个运算操作都可对应到集合论操作,它们都属于二元操作符,要求有两个被操作对象,且要求这两个关系是相容的。 并(R∪S): R∪S={t | t?R ? t?S } 交(R∩S): R∩S={t | t?R ∧ t?S } 差(R-S): R-S={t | t?R ∧ t?S } * * 2. 叉积操作 叉积,也称为笛卡儿积(cartesian product),操作符用?表示,属于二元关系操作符,代数表达式为R?S。 * * 3. 选择操作与投影操作 选择操作符表示为σc(R) ,其中,c为条件表达式。 投影操作符表示为 πL(R) ,其中,L为投影输出的属性子集列表A1’,…,Am’。 * * 4. 重命名操作 在许多场合,输出列名可以直接使用输入关系的属性名。但当输出列为表达式,或二元操作两个输入关系中含同名属性,或希望改善原属性名的可读性等,都需要重命名机制。 关系代数中引入了一个重命名操作符(ρ),其代数表达形式为: ρ ( R’(A1?A1’, …, Ai?Ai’,…), E ) 例2.6 基于图2.4(d) 的S1×R1,写出表达式ρ ( R’(1?sid1, 5?sid2), S1×R1) 返回的R’模式。 * * 5. 连接操作 连接操作(?c),用来合并两个关系中的信息――将两关系中相关的“元组对”合并成一个元组输出。 虽然在概念上,R?cS =? L(σc(R?S));但按这种方法实现连接操作的效率很低。在RDBMS中,连接操作通常以独立于叉积结果的方法实现。 * * 6. 消除重复与排序运算 消除重复运算的表达式为 ?(RB),其操作对象可以是包型关系或集合型关系。 消除重复是一个代价较大的操作,故在很多实际系统中,默认情况下的投影输出都不自动消除重复。 排序操作的代数符号表达式为T L(R)。该操作用来将关系R的所有元组,按L所指定方式排序输出。 L是一个属性表达列表,具有形如A1 [asc|desc], A2 [asc|desc], … 的形式 * * 7. 分组与聚合操作 分组(grouping)与聚合(aggregating)操作的代数表达式为γL(R),该操作将关系R的所有元组按L指定方式进行分组。 L是一个列表表达式。 聚合关系与原关系R一般具有不同的模式结构。 聚合关系中的属性,必须或者是出现L中的属性,或是一个聚合函数表达式。 很多DB书籍或文献中,都将aggregating运算译为聚集。本书中,考虑到已将clustering译为聚簇、聚集。为避免混淆,同时也考虑到合计汇总运算这个语义,故采用‘聚合’这个译法。 * * 2.2.2 关系演算(relational calculus) 关系演算为关系DB查询提供了一种高级描述性表示法。 它是一种形式化语言,其基础是被称为谓词(predicate)演算的数理逻辑分支――一阶谓词逻辑(First Order Logic, FOL)。 在演算表达式中,不需给出如何应获取结果的操作次序指示信息,只描述了结
文档评论(0)