现在的位置: 首页 > 综合 > 正文

直面数据库的复杂性

2018年03月15日 ⁄ 综合 ⁄ 共 2499字 ⁄ 字号 评论关闭


数据库技术正在迅速发展,以前的
bierarchical
和现在的关系型数据库模型正让位于面向对象的分布式的、
betergeneous
的和其他特殊的数据模型,系统设计师、程序员和用户需要新的工具在数据库的荆棘中闯出一条路来。

直面数据库的复杂性

Clement Yu,
芝加哥伊利诺大学

Weiyi Meng,
纽约州立大学


50
年代末
60
年代初的简单文件系统算起数据库技术成为人们感兴趣的研究领域已经有
30
年的历史了。文件系统的缺乏对数据的中心控制和其他一些问题,促进了
60
年代末
70
年代初的层次型(如
IMS

System 2000
)和网络型(如
Codasyl
)真正数据库系统的发展。

这些系统具有中心数据控制功能和其他一些需要的属性。如数据一致性和允许数据冗余,但仍然有较大的缺点。其中之一就是用户要想访问数据,被迫要用到一些原始的命令,这就使得访问数据变得十分困难。

在数据库技术上的重大突破就是
E.F.Codd
提出了关系型数据模型。在关系型模型中,实体集合和它们之间的关系被统一地用二维表和关系来表示。自
1970
年之后,许多商业的关系型数据库系统被开发出来,其中包括
Oracle

Sybase
、和
DB2

从用户的观点来看,关系型数据库系统的最大优点是相对来说易于应用。你可以用非过程化的或者说陈述式的查询语言来完成对数据库的访问和处理。你只要告诉系统你需要什么,而不许要告诉系统怎么做。

一个数据库系统要想具有商业价值,必须能够高效地处理相关的数据。关系型数据库系统在市场上取得成功的重要原因之一就是它的开发者提供了查询和优化技术来提高效率。

近年来,数据库技术已经发生了多样的变化。现在有面向对象型(基于面向对象技术)、科学应用型(适合科学研究)、演绎型(支持基于规则的查询和应用)、即时型(给数据加上时间约束)、分布式(在网络不同节点上存储数据)和奇异型(包含多种独立的数据库系统)。有一本专门的杂志
SIGMod Record
包含所有这些数据库系统的状态和研究发展方向。

研究方向

在过去
30
年开拓者和研究者们已经取得了很多成就,但仍有很多问题需要解决。为了实现简单高效容易的方法访问庞杂多样的数据的目标,我们至少必须解决以下五个主要问题。

查询语言(

Query Language

)。

我们需要非过程化的能够实现对不同类型数据库进行各种操作的查询语言。看起来这种语言应该来自于对
SQL
(结构化查询语言)的扩展。因为
SQL
是唯一标准的非过程化的查询语言,并且为广大用户所接受。许多数据库系统都有一个扩展自
SQL
的新的版本。如
David Beech

Iris
面向对象的数据库管理系统开发的
OSQL

Shamkant Navathe

Rafi Ahmed
为即时数据库系统开发的
TSQL

用户接口(

User Interface

)。

为用户提供友好的接口使初级用户也能非常轻松地访问数据是很重要的。在这一领域的发展表明,友好的用户接口应该是交互式的即支持文本用户界面又支持图形用户界面。例如,一个接口应该具有两个窗口,一个上面包含用户感兴趣的内容,另一个以文本方式显示查询过程。

查询进程(

Query Processing



。实现对各种类型的庞杂的数据的查询是非常困难的,尤其是对于无结构的数据,关于这方面的研究还很少。我们必须找到一种途径来解决这个问题,找出查询条件与目标之间的内在联系。高效的查询进程是数据库系统赢得用户青睐的保证。

事务管理和一致性控制

。这里的主题就是当局部数据库系统与全局事物不一致时确保全局一致性。
Weimin Du

Ahmed Elmagarmid
建议建立一个弱约束,当局部数据与全局数据不一致时起修正作用。
Yuri Brietbart
和同事们建议每一个局部数据库系统有一个严格的双方面的锁定协议和使数据库系统保持一致性的算法。这样确保全局一致性和避免死锁。然而每一个进展都不尽如人意。前者加了一个弱约束,后者限制了局部数据库系统。找出有实用价值的确保数据一致性的事务管理方法还有很多工作要做,我们还需要一个普遍适用的纠错算法。

大规模数据库

。将来数据库系统将会越来越复杂,且包含大量无类型的数据。
Sequoia 2000
地球科学项目的研究小组需要在他们的数据库中存储
10

14
次方字节的数据。即使以
1000
字节为计量单位可能要想立即综合所有的局部数据库也是不可能的。
Witold Liewin
和他的同事们建议建立一个与每个用户需要相关的临时视图,而不是构建一个永久的全局图表。然而建立和保留视图是用户们的义务。一个可能的更有前途的手段是让用户用一种受限的自然语言描述需要的信息。这样系统就能区分相关的图表信息并动态地组织他们,用户可以通过简洁的查询而得到所需的信息,这种类型的支持需要有关于检索方面的知识积累。

复杂数据库还向今天的动态选择和连接操作技术提出了挑战。当一个复杂大型的关系被存储到语言节点上时,保留索引结构的代价是高昂的。重新组织和定义网上的存储结构可能是一种更好的手段。

大型数据库还需要改进输入
/
输出操作,第三方存储技术和把数据由第三方存储位置移动到第二方存储位置的技术。

主要内容

这期杂志中我们研究了很多方面的内容:

在第一篇论文中,我们考察了一个包含很多复杂数据且数据都是无结构的和分布在很多节点上的数据库系统。

在第二篇论文中,
Andres Meier
和他的同事们描述了怎样在层次型数据库系统
IMS
和关系型数据库系统
DB2
之间转移数据。他们操作处理了瑞士银行计算机中心的客户和帐号数据库。

在下一篇论文中,
Michael Blaha,William Premerlan

Hwa Shen
研究探讨了日益发展的面向对象思想和怎样将其与今天的关系型数据库技术结合起来。他们的设计者将对象模型转换成了
SQL
代码。

第四篇文章也研究了面向对象数据库技术。
Oscar Didz

Norman Paton
描述了他们面向对象的数据库管理系统,使设计者能够用类的思想设计面向对象的数据库系统本身,而不需要太多额外代码。

最后,
Jason Gait
研究了怎样绕过
Unix
系统的内核而优化
Unix
系统文件的操作。
Gait
的合理的文件系统,提供了对数据完全控制。

 

抱歉!评论已关闭.