数据库系统结构的发展
几十年来,运行数据库的计算机系统结构依次发生了下面的变化。
- 主机式系统。大型机、小型机和高性能工作站被用来作数据库的原始宿主机。在宿主机中包括多用户的操作系统,DBMS 本身,访问数据库的各种应用程序,与用户终端之间发送接受数据的通信设施等。用户终端多是由没有处理能力的哑终端充当,或是由承担些处理屏幕图形和用户输入的 PC 机充当。所有的处理工作在宿主机的集中式系统中完成。
和集中式的运算模式相匹配的数据库系统称为集中式数据库系统,在这样的传统平台上建立的数据库管理系统就是人们一般了解的集中式数据库系统,如 SQL/DS DB2 早期版本的 lngres 和 Oracle 等。
- 文件共享式系统。80 年代流行将很多 PC 机互联成一个局域网
(LAN),LAN 中要共享的数据放在网上的一台计算机——文件服务器上。在这种方式下,所有的数据工作是在运行数据库应用程序的 PC 机上完成,文件服务器只是负责搜索文件并将其发送给合适的用户。为了维护数据的完整性和安全性,用户要更新、修改记录或数据文件时要加锁,当同时有多个用户要访问数据库时,会发生用户间的使用冲突。又因为是对整个文件进行传送, 当对数据库的访问频繁时,网络负担加重,形成网络传输瓶颈。随着用户的增加,并发事务的处理冲突,网络的传送限制,和 PC 机的处理能力限制,都导致系统性能下降和复杂行增加。目前广泛使用的 Novell 局域网就是这种模
式的典型。
- C/S 结构系统。C/S 数据库的一般形式是将数据的处理分成两个部分:客户机和服务器。前者通常由 PC 机来担任,运行访问、更新、删除数据库的应用程序。后者由 UNIX(RISC)工作站、小型机、超级服务器或高档 PC 机担任。运行网络操作系统(NOS)和全部或部分 DBMS,操作数据库的更新、查询、删除、传送等。文件服务器继续为应用程序提供可代享的数据,也可以和数据库服务器用一台机器。客户机利用 PC 机的运算能力,采用良好的GUI 界面,处理所有的输入输出,以及部分查询算法的优化、转化,查询结果的排序、报表生成等功能。DBMS 服务器完成客户机的查询、磁盘访问、返回查询结果等操作。C/S 方式下,处理工作恰当地分布在客户机和服务器两端,充分利用网上的各种机器资源,网上传送的不再是整个文件,而是查询与查询结果,流通量减少。
在典型的客户机/服务器结构中,把数据库的工作,例如数据修改、分类, 安全性确认,事务恢复和对共享数据的访问管理,全部放在服务器上进行。这样一来,事务逻辑所涉及到的安全性、数据完整性和逻辑完整性都可以集中在服务器上来统一由系统解决,而不是让访问该数据的每个应用程序自己解决,从而有利于提高性能和完善控制,并减少应用程序开发和维护的开销。
- 分布式处理。当 C/S 数据库系统需要和其他 C/S 系统或中心宿主机共享数据时,就形成了分布式处理系统。在一个分布式处理系统中,用户只要向本地数据库服务器发出请求,本地服务器确定它没有该数据后,就把该请求送入网络,从适当的数据库服务器中取得数据,并把数据和本地机上的数据一起发回给用户。
和运算模式的变化相关,数据库系统经历了集中式数据库系统
(Centralized DBS)、分散式数据库系统(DistributedDBS)、C/S 式数据库系统和分布式数据库系统的演变。在数据库应用领域,由于集中式数据库系统要求终端和主机不能相隔太远,而在实际应用中,却有这种要求,比如东城储蓄所和西城储蓄所之间,解决这个问题的是分散式数据库系统。在分散式数据库系统中,每个节点有自己的数据库系统,中心计算机只保留一些类似存款总数等的关键性帐目,而不保留每个节点的帐目副本。
像分散式 DBS 一样,分布式(Dietributed DBS)DBS 也是由计算机网络联结的一组结点组成。不同的是这组网络联结的一群结点共同构成了一个统一的分布式数据库,由一个统一的 DDBMS 来管理。对 DDBS 来说,其每一个结点上都是一个多用户系统。将 PC 机联网,由于每个结点上都是单用户的DBMS,不能算真正的 DDBMS。某结点上的一个用户所存取的数据可能物理地存放在网络上的其他结点上,甚至该用户所提交事务的计算工作也是在某个另外的结点上完成。但是该用户感觉不到这种物理上的分布性。这就是结点透明性(Site Tranparency)。无论用户在哪个结点上,他都感到整个 DDBS 就处于他所在的结点。
容易想象,这样的分布式数据库系统是非常复杂而庞大的软件系统。国际上对 DDBMS 的研究始于 70 年代中期,最有名的先驱系统是美国计算机公司
(CCA)公司为美国国防部制的 SDD-1 系统。对此后全球的 DDBMS 的研制产生了决定性的影响。这种完全透明的 DDBMS 是完全分布式的,不存在任何中心控制。例如 SDD-1 控制上百个军事基地,若其中某些军事基地被炸毁则余下的部分照常运转。反过来若要增加一些基地,则整个系统也立即可平滑地扩
大。
C/S 数据库系统是近几年计算机界的主要趋势之一,至今方兴未艾。C/S 结构汹涌澎湃的原因分析起来有几个方面。首先是微机以及工作站自 80 年代初面世以来的飞快发展速度。其处理速度、存储量及各种功能都已远超过当年的大型机(如 IBM 370 168),在其上已可配置众多的系统软件和工具。此外,在数据库管理系统方面有人们熟悉的 XBASE 系列、FOXPRO、ACCESS 等, 操作系统则装备有无人不知的 DOS、Windows 3.1 等。严格看来,以上在微机上流行的系统不“像”典型的操作系统和数据库管理系统。这些系统缺乏许多 OS 和 DBMS 的典型特征,有些更像是文件系统。但是应用和市场却毫不顾虑这些“不像”,普及全球数达几千万份之多。可是事实也证明了“真正的” 操作系统和数据库管理系统所实现的体系结构、可靠性、安全性、理论基础的严谨性等等并非无的放矢,困扰微机环境的病毒,不可靠性、不安全性等已对软便件环境提出了强烈的改进需求。但是微机究竟规模有限,要做好所有事情似不可能也无必要,C/S 结构是一条可取的途径。还有,现在的局域网(LAN)和广域网(WAN)的广泛普及已成大势所趋。网络所联的微机群的性能和功能有了极大的提高,大可与大型机相媲美,但其价格却仅为几十甚至上百分之一,这是一项无可匹敌的优势。许多公司和组织都在考虑规模向下适化(Downsizing)以降低成本,提高效率。在这种微机联网的结构中 C/S 是一种十分优秀的体系。
有了以上的解释之后,C/S 结构的一个决定性原因就清楚了。在今天全球应用计算机已达半个世纪,所积累的信息数据财富有上万亿美元之巨,且其中一些数据的价格难以用金钱衡量,在各公司、组织的软硬件环境的升级换代中,保护投资和压缩规模和复杂程序是最经济合算的。如何保证在这种转移中使数据财富安全可靠地、平滑地过渡到新环境,显然是各主管考虑的第一要务(Lagacy Application)。不容置疑,C/S 结构是最优候选结构, 从集中式的 DBS 往下过渡或向上升级,C/S 结构显然较分布式 DBS 更为自然。如此巨大的需求,它对于 C/S DBS 的推动力之惊人就不足为奇了。但是,C/S 结构并非什么从天而降的技术,它的产生有其背景,它与人们经历的过时的技术有平滑的密切的联系。