浅析多DM3数据库体系及其互联机制的策略

时间:2020-10-02 13:37:54 计算机应用毕业论文 我要投稿

浅析多DM3数据库体系及其互联机制的策略

  摘要:随着经济的发展,企业的规模越来越大,其积累的信息也越来越多。存在着各部门所处理的信息多数只对本部门有效,仅有少数信息需给其它某些部门共享的问题。这种信息的分布性和独立性要求对所处理的数据进行分类,使各部门既能独立地处理本部门大多数数据,也使部门间能协调处理跨部门的事务。在这种情况下,对整个企业建立一个完全的紧密耦合的分布式数据库是很困难的,也是没必要的,特别是大型企业,这样的数据库的效率往往是很低的。为解决这个问题,我们采用以下策略:每个部门使用一套紧密耦合的数据库系统,而在存在跨部门事务处理的数据库系统间用一个协调器联起来。这样就组成了一个横跨整个企业,各部门高度自治的联邦数据库系统。本文主要介绍多DM3数据库系统间的信息共享机制。
  关键词:DM3数据库;互联机制;设计
  
  多数据库系统是分布式数据库系统的一个重要分支,是一个新兴的数据库研究领域。随着企业规模的不断扩大,各部门所需信息既相互交错,又相对独立。这就要求各部门所用的数据库既能高度自治地工作,又能进行信息共享。
  DM2是采用客户/服务器模型,客户机与服务器,服务器与服务器均通过网络互连,通过消息相互通讯,组成一个紧密耦合的分布式数据库系统。它的工作流程如下:客户机登录到一台服务器上,这台服务器便成为它的代理服务器;它接收来自客户机的消息,然后根据全局数据字典决定是自己独立完成该操作,还是与其它服务器协作处理这条消息,处理完成之后,再由代理服务器将处理结果返回给客户机。由于DM2上各个服务器站点的全局字典完全相同,任何全局表的信息都会记入全局字典。若用它来构建一个企业的数据库系统,则大量只对企业某部门有用的信息将会充斥在各部门所有服务器的全局字典中,增加了冗余。而且,当对全局表进行DDL操作时,为了确保全局字典的一致性,须对所有服务器的全局字典进行加锁。DM2对全局字典的封锁方式是采用令牌环方式,即令牌绕虚环(非实环)传输,某个服务器想对全局字典进行操作,必须等令牌到达该服务器才可以执行。每个部门建立的全局表绝大多数只对本部门有用,当对这些表进行DDL操作时,却要对所有服务器的全局字典进行封锁,通过令牌来实现对全局字典的互斥访问。这严重损害了数据库的效率。
  为弥补以上不足,在DM2的改进版本DM3中增加了协调器,用以联接各个独立的DM3数据库子系统,并协调各子系统间的各种关系,使各子系统既能高度自治地工作,又能进行有效的信息共享。
  一、多数据库体系结构
  本系统可看作多个数据库子系统被协调器联起来的,高度自治的一个联邦数据库系统。其中,每个子系统独立处理本系统内部的事务,而子系统间的信息共享由复制技术提供,副本间的一致性由协调器协调处理,处理所需的信息在初始化时写入协调器的组间数据字典中。当对某子系统中的一份数据副本进行修改时,该子系统会将修改通知协调器,由协调器对该数据的其它副本进行修改,从而保证了所有副本的一致性。
  由以上可知,子系统彼此并不直接接触,而是各自都与协调器直接相联,由协调器统一管理子系统间的通信。这样,当子系统对副本进行修改时,不必关心相应的子系统处于何种状态,也不必等待回应消息,以及异常处理,所有这些都由协调器进行管理。因此,既提高了系统运行的效率,也保证了子系统的独立性。
  协调器主要有三大功能,首先,它对协调器和服务器进行初始化,并将有关信息存入组间字典;其次,它管理不同子系统间的通信,维护副本的一致性;最后,它在子系统出现崩溃时,进行异常管理及恢复工作。

  二、多数据库互联机制的主要策略
  多个DM3系统间的信息共享是通过副本实现的,副本的一致性是由协调器来维持的,是一种弱一致性。通常,多数据库系统间的一致性是通过协调器周期性地访问服务器的日志来完成的。由于副本的更新带有随机性,因此,若采用这种方法,可能数据被修改多次,但其相对应的副本仍未被修改,这样就损害了数据的一致性;也可能数据并未被修改,但协调器已多次访问了服务器的日志了,这样就降低了系统的效率。
  所以,本系统采用的'方法是当数据被修改时,由服务器通知协调器有关信息,再由协调器通知相关系统,修改相关数据。这样,数据的修改及时(仍然是弱一致性),而协调器也不会在数据未被修改的情况下访问服务器,提高了准确性。
  为了使协调器正常工作,我们对底层数据库管理系统DM2进行了修改。在基表控制块TV_CTRL_BLOCK中增加一项IsReplication。建表时,该项初始化为false;当为该表建立一个副本时,该项赋值为true。具体算法如下。
  1、初始化算法。