文档详情

《03第3 章关系数据库介绍》.pdf

发布:2015-12-29约2.3万字共17页下载文档
文本预览下载声明
下载 第3章 关系数据库介绍 3.1 引言 在第1章中已经介绍,本书的重点主要是在关系系统。特别是第二部分比较深入地阐述了 这些系统(关系模型)的理论基础。为了更好地理解本书随后部分的内容,本章对第二部分 的内容(附带随后的部分)做一个直观、非正式的介绍。本章所述的多数论题将在后面章节 做更详细、更正式的讨论。 3.2 关系模型概述 如前所述,关系系统基于正规的关系基础或理论,即关系数据模型。直观地说,关系系 统是这样的系统: 1) 结构化方面:数据库中的数据对用户来说是表,并且只是表; 2) 完整性方面:数据库中的这些表满足一定的完整性约束(在本节最后讨论); 3) 操纵性方面:用户可以使用用于表操作的操作符—例如,为了检索数据,需要使用 从一个表导出另一个表的操作符。其中,选择、投影和连接这三种尤为重要。 图3 - 1 中显示的是一个简单的关系数据库,即部门和雇员数据库。正像你所看到的,数据 库给人的感觉就是一张张的表(这些表的含义是不言而喻的)。 图3-1 部门和雇员数据库(样本值) 图3 - 2 中显示了对图3 - 1 中数据库的选择、投影和连接操作。下面给出这些操作的定义: • 选择操作是从表中提取特定的几行。 • 投影操作是从表中提取特定的几列。 • 连接操作是根据某一列的值将两个表连接起来。 以上三个例子中,最后一个关于连接的例子需要进一步解释。先观察到 D E P T和E M P两个 表都有一个共同的列 D E P T # ,因此它们可以根据这一列的相同值连接起来。当且仅当两个表 中对应行的D E P T #值相同时,D E P T 的一行才能连接E M P表中对应的一行(产生结果表的一行)。 第3章 关系数据库介绍使用39 下载 图3-2 选择、投影和连接(例子) 例如,D E P T和E M P行 连接起来产生如下的结果行: 因为在公共列它们有相同的值 D 1 。注意在结果行中相同的值只出现一次。连接的结果包含了 这样所有可能得到的行。尤其注意尽管在 D E P T表中有D 3 一行,但因为E M P 行中没有D E P T # 的值D 3 ,结果中就没有出现D 3行。 现在,图3 - 2 中清楚地显示出三种操作的每个结果都是一个表(如前所述,实际上是从一个 表导出另一个表的操作)。这是关系系统的闭包特性,这一特性非常重要。基本上,因为任何操 作的输出和其输入的对象种类相同—它们都是表—所以一个操作的输出能变成另一个的输 入。因此,可以采取如连接的投影、两个选择后的连接或一个投影的选择等等操作。即我们可 以编写嵌套的表达式来处理数据—操作数本身也是由一个表达式来表示的,而不仅仅是一个 表名。这样随之而来又有许多重要结论,在后面会见到(在本章和后面的许多章)。 顺便提一下,当提到一个操作的输出是另一个表时,要知道这是从概念视图的角度来说 的,这一点非常重要。这并不是意味着系统实际上必须将每个单独操作的结果实例化。例如, 假设要计算一个连接的选择,那么,连接后的行一形成,系统就立即检查该行是否满足指定 的条件以判定是否属于最终结果,如果不是就立即抛弃。也就是说,连接操作的中间结果根 本不会以完整的实例表形式存在。在实际操作中,通常为了提高效率,系统尽可能不将中间 结果生成完整的表。注意:如果中间结果全部实例化,整个表达式的计算策略就是实例化的 计算;如果中间结果分块地提供给下一步操作,就称作流水线计算。 图3 - 2 中还清楚地说明了一点:操作是一次一集合,而不是一次一行;也就是说,操作数和 40使用第一部分 基 础 知 识 下载 结果是完整的表,而不只是单行,是包含行集的表(当然,只包含一行的表是合法的;空表, 即根本不包含任何行的表,也是合法的)。例如,图3 - 2中,分别对两个表对应的3行和4行的连接 操作,就返回一个4行的结果表。相
显示全部
相似文档