四、结论fficeffice" />
我们想充分利用异构的计算环境,其中不同类型的处理资源和互连技术得到有效的利用。使用分布式资源,提供了使各种各样的科学与分布式应用程序的性能与成本效益达到最大化的潜力。
由联网的不同种类的工作站构成的分布式计算环境,正在成为工程和科研环境的标准配置。然而,统一的并行计算模型(与冯•诺伊曼模型对应的并行模型)的缺乏,意味着现行的并行应用程序是不可移植的。
课文A:进入关系数据库的世界
一、什么是关系数据库?
在今天的商界,信息技术正在充分发展。数据处理和信息提取已经成为现今计算环境的焦点。视其以后的使用方式,数据可以各种各样的方式存储。这种数据存储被称为数据库。数据存储的最原始形式是一种不带任何属性、特征或链接而存储数据的文件。要处理这种数据需要大量的编程工作,于是演变出了关系数据模型。关系数据模型将数据和数据元素之间的关系表现出来。这种模型基于现实世界的情况,包括被称为实体的基本对象以及构成这些实体间关系的互连方式。这种概念的表示方式被称为实体关系图。我们来看一个书店数据库的简单例子。书名和作者是该数据库(许多实体)中的两个实体。作者与书之间的关系是,许多作者可以写一本书,或者一个作者可以写数本书。这种关系称为“一对多”关系。任意两个实体(如“A”和“B”)可以具有以下关系类型中的一种:
● 一对一
“A”只与“B”的一个值相关,反之亦然。
● 一对多
“A”可以与“B”的多个值相关,但“B”只与“A”的一个值相关。
● 多对一
“A”只与“B”的一个值相关,而“B”则可以与“A”的多个值相关。
● 多对多
“A”与“B”的一个或多个值相关,反之亦然。
识别所有的实体及其关系是关系型数据建模的第一步。这也称为“逻辑数据库设计”。一旦逻辑设计完成,就需要创建某种类型的物理对象(称为“表”)来存储这种信息。我们可能需要一个能够使实体及其属性与关系的存储变得容易的系统。该系统也应提供检索关于实体的所需信息的能力。
二、数据库管理系统的介绍
数据库管理系统是记录相互关联数据的基于计算机的系统,它为访问数据提供界面。数据库系统旨在处理大量的数据,使用起来既方便又高效。
1、数据库管理系统的目的
数据库系统的总体目的是以适当的方式保存信息,以便:
● 减少数据冗余
数据重复应尽可能减少,这是消除数据不一致的有效存储策略。如果同一个数据项存储在数据库的两个不同地方,却仅在一个地方进行了修改,就会导致数据的不一致。为避免这种情况,数据要以适当的方式存储,以使重复最小化。
● 保持数据完整性
存储在数据库中的数据应准确。导致数据不准确的原因可能是数据不一致(如前所述)或未遵循某些有效的约束——例如,2月30号是一个不准确的数据值。因此,数据库中存储的数据值必须满足一定的约束,才能使数据准确。
● 便于访问数据
数据访问是任何数据库系统的关键特征之一。除非可以对数据进行处理,生成信息,否则数据是无用的。因此,一个数据库管理系统应提供良好的工具和界面来访问数据。
● 确保数据安全
一个数据库管理系统可以支持多个用户,但不是每个用户都应该能够访问所有的数据。为了保证安全,数据库管理系统提供了限制用户访问的措施。
● 能够处理并行访问异常现象
这一点的起因也是由于多个用户可以同时使用一个数据库。如果两个人想以不同的值修改同一个数据项,那么结果就可能产生不准确的数据。数据库管理系统提供了处理这种情况的功能。
● 可以共享数据
数据库管理系统允许不同的应用程序共享所存储的同一个数据。
2、典型的数据库管理系统结构
数据库系统分成数个模块,来实现总的功能。它与操作系统密切协作,以获得基本的服务——例如,磁盘的输入/输出。数据在磁盘上的存储方式要么是放在文件系统之上,要么是直接置于原始磁盘本身上。数据库管理系统为数据访问提供查询语言。因此,一个“查询”就是用户为访问数据而发出的一个查询语言语句。查询由系统进行处理,并将结果返回给用户。最常见的查询语言是SQL(结构化查询语言)。它由IBM开发,而美国国家标准协会则为SQL制定了标准。SQL是访问数据库的直接方法。
访问数据的另一种方法是通过程序。这些被称为“应用程序”的程序,是用主机语言编写的,并嵌入了用以与数据库管理系统进行交互的数据修改语言调用。数据修改语言是一种用户通过它可以用编程方法访问或处理数据的语言。SQL通常也被称为数据修改语言,但它不能由应用程序直接使用。
数据库管理系统的主要组件有:
● 存储引擎
存储引擎管理磁盘存储的空间分配。它也保存用户数据和元数据(所有用户数据库的数据库)。
● 数据库管理器
这是数据库中存储的低级数据与应用程序及查询的接口。
● 查询处理器
查询处理器将查询语言中的语句翻译成传送给数据库管理器的低级指令。它也为最有效的查询执行生成策略。这种策略被称为“查询执行计划”,而这种计划的生成过程则称为“查询优化”。
● 语言预编译程序
这是数据库管理系统所提供的主机语言的预编译程序。它将嵌入应用程序的数据修改语言语句转变为常规的过程调用。预编译程序与查询处理器进行交互,以处理嵌入的SQL代码。(见图ffice:smarttags" />7A-1) |