在计算机系统发展初期,计算机数据处理采用磁带存贮的顺序文件;但为了全面开拓计算机在数据处理领域的潜力,日益需要直接进行数据访问,而不是按预先定出的顺序进行。这种要求得以实现,部分是由于硬件的进展,特别是磁盘技术的发展;部分是由于软件的进展,例如索引和其他按目录访问方法的发展。

在五十年代和六十年代,上述这些软件方法组合成称为文件系统的包。文件系统是数据处理技术向前发展的重要一步,但在六十年代推广应用时,受到一系列限制。于是发展了数据库管理系统(DBMS)。DBMS把应用程序同物理文件组织相分开,代之以引进逻辑数据组织。

物理文件形式可按应用要求的改变而改变,而不需要改变逻辑数据定义。DBMS也有助于子文件的定义,以保证程序所注意的仅限于逻辑文件的有关部分。

典型的DBMS有两种语言接口:数据定义语言(DDL)和数据操作语言(DML)。DDL用以定义数据的逻辑组织;而DML用来在操作时间说明所访问的数据。其重要性在于应用程序只经过DML便能访问数据库,这就保证程序仅需注意数据的逻辑结构,毋需顾及所支持的物理组织。

数据库管理已是一门成熟的技术,投入运行的已有5000-10,000个。八十年代的目标将是进一步提高适用性、性能和数据完整性。

1. 适用性   现有的DBMS,大部分要求访问数据一次一个记录,大量访问数据就需要写冗长的程序。同时,有些数据库组织只适合有些用途。到目前为止,尚无一套系统方法能找到一个折中的组织,来适合各种用途。预期在八十年代,这类适用性问题将会解决,使DBMS具有较好的访问语言、较好的数据库组织以及能适用于多种用途的组织选择工具。未来的DBMS,除了有描述组织特性的工具外,将具有描述数据动态特性的工具。

2. 性能   现今的最好DBMS,都是针对七十年代初期计算机和主机设计的,为实现虚拟存贮器系统和小型计算机(或较小型)系统的高性能,还需作一番研究。预期关键性的突破,是 · 在分布多处理机DBMS以及体系结构特别设计得适于管理数据的专用DBMS计算机 - 机器方面。

3. 数据完整性   当越来越多的用户要使用数据时,数据的质量(或正确性)正日益受到关注。针对不正确的数据进入项,不论是人为或程序错误引起的,都必须提供数据保护。面对硬件和DBMS发生故障,要能进行数据恢复。当流通量增加和采用多处理机体系结构时,这就日益变得复杂。流通量高,必定是由个用户对数据进行并行访问,加之采用多处理机和新奇的硬件体系结构,也会增加困难。最后(但不是不重要),就是数据的保密性(即检查和防止由越权的人或为未经许可的目的对计算机信息进行访问),尚未解决得使社会满意。以下讨论涉及上述三大问题的数据库系统的六个研究专题。

数据语义

从用户观点来看,数据库就是模拟现实社会中一些企业的信息的汇集。数据语义的作用,是保证所存贮的数据正确代表企业。数据语义的研究,包括对作为外界活动模型的数据库的建立、维护和解释工具的研究。数据语义对数据库专业人员尚未产生显著的效果,不过这种情况在八十年代将会改变,因为数据管理质量的改进必定要有数据语义的突破。

数据语义的主要表达式,是一种称为数据模型的概念。数据模型是DBMS用户用于定义数据项和数据项之间关系的工具的汇集,由数据定义语言和数据操作语言,按一级近似组成。现今广泛应用的有三种常用数据模型:层次模型,网络模型和关系数据模型。此外,在一些文献中也提出许多其他数据模型。数据模型提供了三种不同的工具:(1)形式定义的DBMS接口;(2)适合程序设计语言的DBMS接口;(3)高级规格说明语言,可适于构成数据库的初始使用说明。所引用的大多数数据模型,都打算提供所有这三种工具,不过几乎没有一个数据模型达到这一点。

业已提出的数据模型有几十种,而理论研究却很少。八十年代较重要的进展,将有赖于通过发展数据语义的坚实数学基础,来消除这种不平衡。不同的数据模型有不同的长处和弱点例如,表达式和效率可能是相互矛盾的特性),因此需要有一些方法使给定的数据库获得最佳折中

七十年代流行的DBMS,所提供的都是语法数据模型,就是说这些DBMS的类表几乎毫无例外地由DDL语句组成,只能代表数据的静态特性。在这类DBMS中,数据项和组织是不经解释的,即它们不明确地指任何现实社会的含义。

这种性质的问题在七十年代还不严重。不过当八十年代数据库的应用扩大时解决这类问题所花的费用将日益增大,但可通过提高程序员的工作效率来得到补偿。

数据库设计

数据库系统的主要目标之一,是提供正确地反映用户数据观点的应用环境模型,以及能有效存贮和访问数据。数据库设计的目的,是为给定的应用环境,作出物理设计和逻辑设计。

目前的数据库设计方法,基本上是试错法(trial and error),既没有科学基础,也没有工程准则。这种凑合式的设计方法,往往会使解决的办法不灵活,不能满足规定的要求。

数据库的设计过程一般可分五个步骤:1)对要求的分析——必须分析现实社会的问题或环境,以得出数据库所有可能的用户的数据要求和处理要求;(2)观点模拟——必须发展相当于现实社会各个用户观点的抽象表示式;(3)观点统——几个用户观点(或许是矛盾的)必须汇合成一个支持所有用户观点的数据库公共观点;(4)观点再组织——如果目标系统已知,则给定的公共观点可映照出特定系统的另一类逻辑组织;(5)数据库物理设计——此步骤可得到给_定目标系统中数据的存贮层表达式。

1. 对要求的分析   有关数据库设计要求的分析,研究报告很少。现有数据库设计方法,一般还未对信息要求和处理要求作出详尽的汇集和分析。例如,设计可能是按输入/输出资料中选出的数据项表和项间关系表着手进行的,或者可假定设计人员能命名和指定概念性组织中目标的特征。

2. 观点模拟   现有的观点模拟方法是不充分的,它们只模拟实体和关系。这些方法,必须扩充到包括执行的操作(处理)以及实体和关系所包含的完整性约束。今后数据语义的研究,将会有助于发展更为满意的观点模拟技术。

3. 观点统一   观点统一所得出的组织,代表了数据的公共观点,必须内部一致,正确地反映各个原始观点,并且支持给定的处理要求。观点统一包括迭加观点、匹配相同的成分、控制和解决其余项及相同的操作。

观点统一方法大致可分成三类:(1)利用访问频繁程度的数据项合成法,使最频繁访问的数据项放得最接近组织的进入点;(2)利用功能依赖关系的数据项合成法,把数据项分组得使在功能方面依赖于关键项;(3)目标层组织的归并。最好希望把这些方法汇总成一个观点统一处理方法。

4. 观点再组织 观点再组织处理,涉及到由统一公共观点以规范的表达式,映照出目标系统能接受的逻辑组织。等价的目标观点必须不失去信息,而且必须满足原始的处理规格说明。观点再组织的一般问题尚未完全研究解决,不过对数据翻译发展的再组织操作可能还是适用的。将来的研究,要求发展再组织算法和选择适当的再组织观点。

5. 数据库的物理设计   一旦适当的逻辑组织已选择好,就必须作出几个物理设计决定。每个应用都有特定的数据和处理要求,并且通常要求专用的文件组织。在包含一个以上文件的情况下,访问路径的选择是关键的,必须考虑以下三类问题:确定文件之间的连接或指针组织;选择所要维护索引的键以及确定给定的访问所要求的访问算法。如果文件的特征具有不同的访问性质,那么可能有利于把每个记录划分成段,并存贮在不同的文件中。这可以看作文件的“垂直”划分分段。记录的分簇是想完成文件的‘水平’划分,把要一起访问的记录分组在一个分段。

6. 数据库的计算机辅助设计   根据设计方法的形式,现有的数据库设计方法可分四类:手工、设计指南、设计规则和计算机辅助(即自动设计)。手工方法主要取决于设计人员的技巧,应用交互技术和其他系统分析技术,设计人员可熟悉应用语义并设计出模型。但数据库设计的经验表明,没有一套手工方法能满足这类处理;设计问题的规模和复杂性,要求应用计算机。但另一方面,人不要积极介入的全自动设计系统,也可能产生用户不能接受的类表。所以,似乎最希望出现能允许设计人员和系统之间对话的计算机辅助方法。

总之,在数据库设计方面,虽然已有了针对上述各个专门设计问题的技术,但还是希望发展综合的设计方法。到八十年代,将把这些已能应用的技术汇集和扩展成一种通用的设计系统技术,来辅助数据库设计人员。

数据库访问语言

数据库内的信息,可通过软件接口提供用户。这些接口是对数据进行检索、修改和控制的手段,它们有不同风格的数据访问语言形式。数据访问语言的对象是数据库的数据目标和这些目标的关系。数据访问语言操作人员的任务,就是进行检索(寻找出直接命名的数据目标或关系一致的数据目标,从而获得可用的目标)、进行修改(在以前已定义的数据类中插入、改变或删除新数据目标)以及进行控制(把访问局限于特定类型的功能、数据目标或相互关系)。

在现有数据访问语言发展过程中,已分三类用户:应用程序员、技术用户和专用用户。应用程序员是专业程序员,职责是编制和维护诸如付薪、盘存和预约等程序,这些程序的操作既频繁又有规则。程序员希望能制作正确有效的软件。面向程序员需要的数据访问语言称作数据操作语言。技术用户,他们同数据库的基本对话是检索。技术用户的信息需要,在某种意义上可能是不可预测的,所以,他们不经常重复同样的检索请求。技术用户要进行训练,来使用称作询问语言的专用数据访问语言。专用用户,他们同数据库的对话是固定有规律的。营业员和飞机订票员是典型的专用用户。专用用户使用的是专用接口,有一套简单固定的选择项,只要作一些有限的学习,甚至稍加指点就可以操作。这类接口的典型设计和实现,可由应用程序员利用数据操作语言来进行。

在数据访问语言发展中,操作正在从数据操作语言转移到询问语言,也就是已从应用程序员转移到技术用户以及转移到新用户——临时用户。数据库系统的临时用户同系统的对话,在时间上是无规律的,而且不是出于工作和社会的目的。这样的转移,要求询问语言更有效(为技术用户)、更容易应用(为临时用户)。获得这类语言的途径是:(1)要有更高级的操作人员,他们能更加适应用户的应用要求(例如受雇、解雇而不是插入和删除);(2)采用半自然语言作为一种对话查询工具;(3)提供图形接口。

要求应用容易,效率高,加之用户的技术训练又较少,因此这应赋予数据库系统更多职责,来确证用户已正确地叙述访问程序以及保持数据库的完整性和完全性。

分布数据库系统

分布数据库管理系统(DDBMS),允许数据存贮在计算机网络的多个地方,而仍作为单一的数据库进行访问。DDBMS比集中式系统有三个重要优点:(1)因为数据是在多个地方由多个计算机构成,所以可靠性更高;(2)数据可以存贮在经常要应用数据的各地处,使访问更快,通信费用更低;(3)系统能力更易调整,以满足变化的要求。

DDBMS的优点,加之所需技术的成熟,已产生实质性利益。最近文献中已报道了许多方法,但不少都是专用的。现在的目标是发展通用分布DBMS,可成为能解决众多数据管理问题的实用系统。

想象中的通用系统主要有两类:第一类是同族系统,所有数据通过DDBMS进入和访问;第二类是异族系统,它把已存贮在现有数据库管理系统中的数据汇集起来。目前的研究大部分针对同族系统。看来在八十年代初,标准通用的同族DDBMS将获应用。随之,一些初步的异族DDBMS也可获应用,但通用有效的系统或许在十年之后才能实用。

分布数据库技术的优点是清楚的,但在DDBMS实用之前,必须解决许多技术难题,如:修改作业的同步,分布询问处理,处理故障,目录管理,数据库设计,异族数据库。对这些问题的研究,已取得了令人满意的进展,并将继续改进DDBMS的性能和能力,预期随着硬件费用急剧下降以及数据通信能力的稳步改进,今后十年中,分布数据库管理将成为日常工作的一部分。这些系统将比现今的集中式机器更可靠,即使有故障也是“软性”的。当出现新技术时,分布系统将能吸收新的技术,而无需把现有系统废弃或退回给卖主。

数据和程序的翻译

最早的数据翻译程序,是把单个数据集翻译成新数据集的专用程序。然而,系统转换费用的提高和系统转换的日益频繁,以及DBMS出现引起的困难,促使六十年代后期重新考虑这种方法,有助于研究通用的数据翻译程序。

七十年代初期,通用数据翻译程序的设想已完全形成了。不过后来为了证实这些设想的可行性而建立的原型,其范围是非常局限的。现今主要研究问题有:

1)描述语言   源数据的描述必须足够详细,使翻译程序能读能分析,并能从中取出目标数据中必须有的项和关系。但在至今制作的所有翻译程序中,SDDL局限于相当简单的顺序文件体系的规格说明。因此,全部语言的完全性和实现可行性,还需进行试验。进一步的研究工作,可能不仅要产生比现有形式更通用化的数据翻译程序,而且要认识到数据组织的全部复杂性和“可转换性”。

2)性能和适用性 所处理数据的组织可能较复杂,所以翻译本身可能也较复杂。在最简单情况下,为了直接产生每个目标项和记录,翻译可能只要求每个源项和记录仅读出一次,这种翻译称作“一次性”翻译;而在复杂情况下,则需进行多次性翻译。有关设计更有效的中间翻译表达式和尽量减小工作空间尺寸的研究工作,一直在进行,诸如应用流水线等方法,或许能设计出非常有效的翻译程序,用于特定类型的翻译。

因为流过的数据不可能没有错,这就需要一种适用于这种环境的数据错误检测,校正和恢复理论,这方面的研究也在进行。

3)程序转换  在系统转换中,转换应用程序的问题甚至比数据的翻译更费钱更困难。在个数据库环境转换到另一个环境时,可能要改变数据语义、数据模型和存贮组织。此问题刚开始进行研究,注意力一直集中在研究数据组织(语义)的改变是如何影响访问程序的。现已考虑把构成数据翻译技术基础的存贮数据多层模型及其有关数据和翻译描述语言,作为发展自动转换辅助技术的基础。

八十年代初期,肯定会看到数据翻译程序将发挥出它们的潜力,成为重要而又方便的实用程序。将会出现简单的网络数据翻译程序,而再组织也会开始成为另一种数据库管理功能。解决程序转换问题的进展可能不快,但目前在数据语义模型方面的大量研究工作,到八十年代中期可能会很好地产生能写入程序的数据访问语言,这样将更易适应转换技术。至少可以预期,新的程序设计方法将奠定基础,其目标是产生既有可转换性又正确的软件。

数据库机器

七十年代对数据管理技术的主要贡献,在于出现通用的数据库管理系统。大规模集成电路(LSI)半导体技术的改进(自六十年代后期以来,其速度和密度每年增加一倍),有可能专为特殊数据库功能提供计算机资源,现在在技术上经济上都行得通。

前端通信处理机的出现,为证明专用机器的价值作出了重要贡献,它分担了主机或主中央处理单元的终端控制操作。同样,前端处理机的优点和获得成功,使计算机设计者可考虑把数据库管理功能,不同程度地分到后端处理机中。据此产生的装置,称为数据库机器(DBM)。DBM可定义为所有硬件、固件以及软件的复合体,它汇集或专供专用的计算机资源,来支持计算机系统的数据管理部分。

目前DBM技术的进展,大致可分三类,即智能控制器和存贮器、专用处理机、数据库计算机的综合系统。

与此同时DBM技术的研究人员面临着解决下列关键技术:

1)基本技术  智能存贮器的采用,将主要取决于诸如LSI-RAM,CCD和磁泡等半导体存贮器的价格、性能和可靠性。适合DBM应用的专用LSI(大规模集成电路)器件的设计,将主要取决于削减这些器件的设计成本和工程成本。如果继续提高,则DBM的实现将不得不把注意放在常用的存贮器和微处理机部件方面。

2)硬件结构  很明显,八十年代DBM技术人员所关心的主要是器件体系结构的组合及其性能。因为这类器件构成的系统原型机很贵,所以只能非常信赖于模拟和性能评价模拟试验。相关处理机能否成功地用作DBM,将主要取决于在广泛应用环境中要使应用最佳化。

定义逻辑接口和定义输入/输出结构协议的需要,将成为八十年代的主要课题。使系统能更容易地将各种DBM部件组合进综合系统,满足用户应用的需要。

数据库对控制并行、安全性、完整性和恢复所需要的保护机构,几乎未受到DBM研究人员的注意,往往当作软件问题。然而所有应急保护措施的处理要求,主要依靠复杂的询问分析。DBM研究人员能出成果的领域,将是设计支持这种功能的DBM结构。

3)软件结构   面临的问题是在DBC中或在智能存贮器/控制器层,应支持一种数据模型或数据模型汇集。然而更重要的课题(这将对DBM性能有重要影响)是,提供什么级语言接口。因为DBC将主要取决于内部和外部通信,所以尽量减少输入/输出是重要的。

随着成本、性能、特性和容量的改变,DBC将组合许多不同的处理机、大容量外存贮器和智能存贮器,所以将继续需要深入研究数据分簇、分割、分级以及文件的虚拟存贮方法。在八十年代,磁盘不大可能就此消失。

[本文选自Computer1978年9期46 ~ 58页。马远良摘译]