C/S系统比分时系统具有更多的优点:对最终用户来说,由于客户机采用了直观的图形接口,使用非常方便,建立系统的投资也比分时系统要小,而且比分时系统更容易吸收新的技术;对于应用开发人员来说,由于应用程序分成两部分,分别在同一环境中运行,所以C/S应用系统更容易开发和维护。
具有C/S结构的数据库系统在处理上是分布式的,但是数据仍然是集中的,即使系统中有多个数据库服务器,各分管一部分数据,如果它们彼此独立,那么在用户眼中它们是多个集中数据库。用户在访问数据库时,必须知道所访问的数据在哪个数据库服务器上。如果数据涉及多个库,则只能通过编程连接,最终达到统一的目的。因此,这种多库的服务系统仍属于集中式数据库的范畴。
(4)分布式数据库系统
一个部门常用的数据总有一定的范围,如果按数据来源及需求分别建立几个数据库,合理分布在系统中,以代替一个集中式数据库,则大部分数据可以就地或就近存取,同时又可以共享那些偶尔需要的其他数据库内的数据。数据在物理上分布,由系统统一管理,使用户感到数据仍然是集中的。这就是分布式数据库系统(DDBS),它由分布式数据库管理系统(DDBMS)支持。
从上面的说明可以看出,DDBS有以下3个特点:
a.数据是分布的,因此它不同于通过计算机网络共享的集中式数据库系统;
b.分布的数据相互关联,一般涉及一个单位或多个有关单位的数据,因此它不同于由网络互连的多个独立数据库系统;
c.数据由DDBMS统一管理,因此它不同于一般的分布式文件系统。
5.2.2.2存储机制
一些企业在实施信息化工程以前,已有的各种计算机系统都配置了软件,构成各种应用需要的平台,在企业信息集成中总希望能够保护现有资源。如果这些应用不是信息孤岛,可以利用下列存储机制支持数据共享:
(1)文件
文件是由操作系统(包括网络系统)支持的数据存储机制,由操作系统直接管理并支持对其存取。文件可以存储各种类型数据。文件可支持应用系统的开发,一般采用第三代语言进行开发。用这种方式开发应用系统时,周期长、维护和扩充困难,如果仅在文件级共享数据,则要求传送的信息很多,会增加网络传输的开销,而且数据的安全性也得不到保证。
(2)数据库
在进行企业信息集成时,管理信息系统(MIS)一般用数据库方法实现数据共享。MRPⅡ就是基于集中式数据库的软件系统,虽然处在分布式的网络环境下,其处理和数据却集中在一个结点上。如果要在分布式环境下实现MRPⅡ,数据分布在多个服务器上,处理分布在客户机上,那么必须重新设计系统。从当前的数据库支持能力来看,技术上还有一定难度,主要困难在于分布式数据库中数据分布透明性的实现。由于当前商品化分布式数据库系统实现(支持)数据分布透明性还有限,所以数据分布透明性要由应用系统实现和维护。C/S计算模式使这种状况有所改变,对于像MRPⅡ这样的大型应用,可以把数据库、应用程序、界面处理分别放在不同的机器上。
(3)工程数据库
工程数据库解决CAD/CAPP/CAM中的工程数据的管理,支持系统高效运行和信息集成。工程数据种类很多,数据结构复杂,而组成工程数据的3个主要数据源(CAD、CAPP和CAM)在历史上一直处在独立发展的状态,是基于工程图纸的分离系统。1991年美国国家标准与技术研究院(NIST)提出基于产品模型数据交换标准(STEP)的机械零件集成生产系统,包括零件设计、工艺计划、检验计划、车间生产制造等子系统的一般性可实现方案。遵循STEP规范的产品数据模型支持在CAD/CAPP/CAM系统之间直接进行产品数据交换和共享。一些国外公司已能提供管理工程数据的系统,如DEC的EDCS和CDC的EDL,这些系统建立在关系数据库上,实现了版本管理。还有一些公司如STEPTOOLS提供STEP程序员工具箱(toolkit),工具箱由实用程序库组成,用于支持STEP用户和STEP软件开发者。
(4)实时数据库
制造自动化系统(MAS)和集散控制系统(DCS)主要进行生产过程控制,需及时采集现场数据并快速地进行处理,常规的管理型数据库其处理速度不能满足要求,需要实时数据库管理系统的支持。实时数据库与关系数据库不同,实时数据库为了使系统有较快的处理速度,数据存放在内存,而关系数据库的大量数据存储在外存(磁盘)上,在处理时读入内存(数据库缓冲区),其占用内存的容量较小。关系数据库在处理实时数据时其速度往往不能满足实时性的要求。
5.2.3集成环境和数据分布技术
5.2.3.1集成环境
到目前为止,还没有形成一个统一的平台来支持企业级的信息集成,使整个企业信息达到共享,由系统软件来维护数据的一致性。因此,我们不得不利用多种存储机制来支持企业级信息集成,其目标并不是构成一个完美无缺的企业级信息集成平台,而是在实施企业信息化工程中因地制宜地构造一个分布式多库互连的集成环境。
在大部分情况下,用户需要自行开发接口转换程序,实现不同系统之间共享数据的转换。由于整个系统不是采用统一的机制实现数据的存储和管理,其数据的完整性、一致性必须通过应用程序的设计、编码才能得到保证,从而增加了开发应用系统的负担。为了方便各类数据的存取,便于各子系统互相调用,可以在多窗口环境中提供统一的用户界面,然后通过窗口选择,直接对各种存储机制操作。
5.2.3.2数据分布的基本形式
分布式数据存在以下6种不同的基本形式:
(1)复制数据
复制数据(replicated data)是指相同的数据在不同的地方存储的几个相同副本(拷贝)。这样做的主要原因是通过重复的存储数据避免了系统之间的数据传输,节约网络资源。只有当查阅数据的频率大大高于更新数据的频率时,这样组织才有意义。由于大容量存储设备的价格要比远程通信的价格下降快得多,因此,采用复制数据的方法越来越有经济上的吸引力。
(2)子集数据
存储在外围计算机中的数据常常是存储在一个大型计算机中的数据的子集。
这样做的原因有两个:一是外围地区频繁使用数据;二是这些数据是那个地区建立的。在一个数据录入操作中,数据常被键入本地计算机(local computer)。在本地计算机中使用精度控制和检查控制对一批数据进行检查,然后把它们发送到远程数据库中。
子集数据(subset data)是复制数据的一种形式,我们区分它是因为它通常没有完整的模式或完整的原始关键字集合。一般情况下,数据的主拷贝保存在较高层机器中,当较低层机器改变数据时,这种改变必须向上传送到较高层机器中,有时立即传送,有时按周期传送。在系统中较低层的机器中,可存放一些较高层机器中的数据,也可存放一些从来不向较高层机器传送的本地数据。例如,供应商地址、客户地址、分销点地址等非全局性数据一般存储在本地数据库,而供应商编码、供货信息、客户编码、订货信息等在上下层机器上都要存储,而下层对它们的任何修改必须向上传送到较高层机器中。经常出现的问题是,由于缺乏统一计划,在低层机器中的数据与高层机器中的数据不相容(例如字段定义不同等),这就限制了在两层计算机之间交换数据,如果要进行数据交换,就必须花力气进行数据转换。
(3)重组数据
企业的信息系统通常含有一些经常被检索的数据,这些数据用倒排表、辅助检索或多个次关键字进行检索。系统中的所有数据都可以从其他机器(或同一机器)的数据库或者文件中选取,选取数据可以进行摘录、编辑和重新组织。这些数据称为重组数据(reorganized data)。为了工作方便,两者的数据库必须相容,即应有相同的数据域表示,最好是从同一个数据模型和数据字典表示中导出。
(4)分区数据
分区数据(partitioned data)是指同一模式在两个或更多的机器中使用,但是在每台机器存储不同的数据,每台机器具有不同的记录(不同的主关键字),而它们的构造形式完全相同。数据的分区形式是一种普通而又有价值的形式,每个地区都保持自己的数据,使用方便,同时还减轻了网络的负担。在一个组织机构中,每一个分支机构,例如每个零售商店、每个仓库或其他业务场所,都可以有独立的计算机,它们使用相同的程序,大多数交易在本地产生并被处理,这些交易所用的数据也在这里处理。这些交易也许需要少量别处的数据,这些数据或者传送到数据存储区或者直接传送给这些交易。例如,工厂对分销商和销售点的管理就常常采用这种形式。
(5)独立模式数据
使用独立模式数据(separate-schema data)要求不同的计算机含有不同的数据和不同的程序,为不同的业务小组服务。例如,第1个系统处理生产数据,第2个系统处理采购数据,第3个系统处理财务数据等。虽然它们的模式不同,但是这些独立数据系统应该是一个公共的整体规划的一部分,否则,就可能产生有害的冗余和数据不一致。
从发展趋势看,在企业信息化工程中不主张采用独立模式数据。由于企业内部各业务小组的工作紧密地关联在一起,不同系统之间数据交换频繁,只有在统一模式下开发子系统才能满足要求。
(6)不相容数据
不相容数据(incompatible data)是指由不同机构建立的独立计算机系统或设计时未经协调的部门之间的数据。在这些独立系统中,一般说来,数据都没有统一设计和统一规划。一个用户有时从终端通过计算机网络去访问多个独立开发的系统,它们必须熟悉每一台计算机所存储的数据和如何访问、如何使用这些数据。有时,这些系统是由不同的机构为了不同的目的而建立的,这样的系统可以通过分组交换网访问。有时,由于没有自顶向下的规划,一个公司内部的系统也可能不相容,对这样的系统集成会遇到极大的困难。
5.2.3.3数据分布技术
数据分布技术有以下5种:
(1)人工抽取
在集中式环境下,所有数据都集中于一个中心结点上(例如,大型机上的共享数据库)。在分布式环境下,数据分布于多个点。但是,分布的数据在逻辑上仍属于一个集中的共享数据源。
分布式数据管理系统的设计者必须回答以下问题:
a.如何及时把数据从逻辑的中央源中“取出”进行分布;
b.什么地点适合数据存放。
分布数据最简单的方法就是让用户手工地将数据从中央点拷贝到其他地点,这种数据抽取的方法称为人工抽取(manual extract)。
(2)自动快照
为使人工抽取的用户操作自动化,数据分布的任务可以由DDBMS来完成。随着数据分布需求的复杂性的增加,DDBMS的智能化程度和复杂性也相应增加。在DDBMS所执行的任务中,自动快照(snapshot)是最简单的任务之一。例如:
CREA TESNAP SHOTAS SELECT…TIME
在自动快照过程中,用户可以定义哪个表及哪些字段用于建立snapshot,自动快照的时间和频率也可以由用户说明(例如下午几时,或每几个小时)。DDBMS将负责自动完成所需的工作。自动快照功能主要用于分布相对静止的信息(不经常改变)。汇率表是可使用自动快照的例子,因为汇率每天最多改变一次。虽然自动快照可以修改,但一般不支持修改复原功能。因此,自动快照通常限于只读访问。
(3)复制
对于那些需要对分布的数据进行多点更新的应用程序来说,自动快照处理能力就显得不足了。这些应用程序需要同一个表的拷贝在多个点上进行维护。
DDBMS通过支持以下两方面来完成所谓的复制(replication)功能:
a.在多点创建和维护一个表的拷贝(复制);
b.在多个复制间保持数据一致性(同步或异步)。
(4)分割
数据复制处理的对象是整个表,而数据分割(fragmentation)所处理的对象是整个表的部分数据。可以说,复制是分割的一种特殊情况,分割是一种更加复杂的数据分布技术。
(5)数据分布分析(data distributed analyses)。
5.2.4多数据库的集成
5.2.4.1多数据库集成的需求
企业信息化经历了单元技术集成的发展阶段后,往往形成了一些信息孤岛,例如CAD、CAM、CAPP、MRPⅡ等。它们之间难以协同工作,信息共享度低,因此,很难达到整体最优和提高企业的竞争能力。当我们考虑企业级信息集成时,除了面对结构化数据,还要面对大量的非结构化数据,例如CAD/CAM系统产生的工程设计数据、NC(数控)代码、图形、图像和声音等多媒体数据。因此,异构数据源的集成是企业级信息集成必须解决的重要技术问题。