一种异构数据库的解决方案docWord文档格式.docx
- 文档编号:14866801
- 上传时间:2022-10-25
- 格式:DOCX
- 页数:7
- 大小:21.91KB
一种异构数据库的解决方案docWord文档格式.docx
《一种异构数据库的解决方案docWord文档格式.docx》由会员分享,可在线阅读,更多相关《一种异构数据库的解决方案docWord文档格式.docx(7页珍藏版)》请在冰豆网上搜索。
今天人们对数据处理和信息系统的要求越来越高,过去各自为营的异构数据库所形成的“信息孤岛”,已带来很多不便。
企业和部门迫切需要整和信息资源,联合异构数据库。
解决异构数据库的协同,成为一个很有意义的研究课题。
2基于Agent的三层协作模型实现协调控制器解决异构数据库问题,可以采用CSCW的联邦结构。
当应用需要访问某一数据库时,首先向协调控制器发出请求,不直接同所要访问的数据库发生作用。
协调控制器负责各数据库之间的联系与消息传输。
它是一个特殊的主体,是各数据库的神经中枢,负责协同数据库间的消息转换、任务的规划、分解和管理。
在计算机支持的环境中(CS),一个群体协同工作完成一项共同的任务(CW)——异构数据库协同,是一个复杂的过程,可模仿人们协同工作的方式。
比较可行的方法是,用对单一数据库操作的任务,作为异构数据库协同共作的基本运行单位与控制单位。
若干任务采用联邦结构加以协调,以便克服冲突,达到共同完成协同工作的目的。
任务可分为若干子任务,即应用任务分层的思想。
同时任务还有其任务上下文。
采用一种基于Agent的三层协作模型[8]来实现协调控制器,它符合现实世界人们协同工作的特点,是一种模型运行控制机制,可以描述协作机制中的各种协同工作,以及支持各种协同方式。
将视协调控制器中参与CSCW协同工作处理过程的自主实体为Agent,将CSCW协同工作过程看作是若干Agent相互协作的活动序列,通过描述Agent的动作、行为及其相互关系来描述CSCW应用系统的协作过程,这样更加符合现实世界中的人们的协同工作的特点。
以基于Agent的协作模型来实现协调控制器,其核心是组件化任务的管理与监控,实现异构数据库系统各成员间组件化任务的协作,具有任务指派、任务确认、任务查询与结果返回等功能。
在整个协作模型中,所有Agent按其所提供的服务类型可分为三层(见图1):
(1)任务管理与监控层。
任务管理与监控Agent,相当于一个协同任务引擎,它根据一定的规则把异构数据库系统的协同过程模型中的共同任务划分为多个关联的子任务,并建立起它们之间的逻辑和时序关系,同时它要把各个子任务分门别类地分配给各个任务协作Agent去执行。
任务管理与监控Agent要协调、监控各个任务协作Agent的运行,如果运行中出错,还要有相应的故障恢复机制,从而保证整个CSCW系统的正常运行.任务管理与监控Agent要有以下知识:
协同任务域的模式;
完成整个协同任务的知识,如把任务分解为各个任务步的知识、任务步的排序等;
为了完成整个任务,它要包含协调与管理的各个任务协作代理和信息存取代理的知识;
故障检测与处理的知识。
(2)任务协作层任务协作层中,每个任务协作Agent完成某一项特定的任务,它们之间相互协作,从而解决了CSCW系统中的冲突或集成信息到系统中。
当任务协作Agent接收到管理与监控Agent传来的一个指定任务时,它根据自身包含的知识库中的规则把指定任务分解为一些子任务,并指派其它相应的任务协作Agent辅助该协作Agent完成。
在任务执行过程中,任务协作Agent向信息存取Agent请求执行中所需的信息。
任务协作Agent要包含以下知识:
任务所属的领域、如何完成任务的知识、如何收集任务中用到的信息、哪些任务协作Agent和信息存取Agent与之相协作、与其它Agent协作的协议以及解决冲突和信息融合的策略等。
(3)信息存取层.信息存取层中Agent的行为是由上层任务协作Agent启动的,它们相互协作为上层任务协作Agent提供所请求的信息。
而信息来自许多功能各异的数据。
这里的数据是一个广义的概念,它既包括普通信息的数据,也包括完成一定功能的软件组件数据。
信息存取Agent需要包含以下知识:
它所与之关联的数据库的信息、如何访问数据库、如何解决冲突和信息融合的策略以及与其它Agent协作的协议等。
图1基于Agent的三层协作模型3异构数据库的一种解决方案首先构建一个数据库元数据目录服务,有了它应用才可能以统一访问接口透明地访问不同数据库的资源。
这个服务可采用以下方法实现:
先将各个数据库的位置和元数据信息注册到LDAP目录中,这样,用户通过目录服务便可查询到所需要的数据库资源位置和元数据信息,然后根据需要去访问各个数据库。
因为主流数据库都属于关系型,结构上是同构的,所以元数据信息大体上相似,这为以统一方式获取和保存元数据提供了可能。
图2表示了执行过程。
图2执行过程本解决方案采用CSCW体系结构中的联邦结构,对应用(可视化界面)中输入的要求,在通信处理器的支持下,由协调控制器调用数据库元数据目录服务,协同查询处理、事务管理、完整性约束模块,访问底层数据库,较好地屏蔽了异构性,其中协调控制器以基于Agent的三层协作模型来实现。
中间的数据转换可以采用统一的数据转换格式XML。
解决方案的结构如图3所示:
图4方案结构框图工作过程如下:
用户在可视化界面输入操作要求,应用程序将其提交至联邦结构的CSCW数据库中间件,中间件的协调控制器在通信处理器的支持下,调用数据库元数据目录服务,协同查询处理、事务管理、完整性约束等模块,向不同的数据库发出操作指令,将取得的结果返回给应用。
3.1关于数据库元数据信息需注意的问题为了保证用户查询到的是最新的数据库元数据,在数据库和目录之间必须有一个实时动态的注册过程,负责将元数据的注册更新。
用户也要遵循LDAP协议查询目录服务。
这对用户来说,要求比较高。
我们可以知道每个数据库在目录结构中是一个节点,它可以有多个属性(attribute)来描述其信息,如名称、描述、创建时间、管理员、DBMS、类别和版本等等,另外还需要有操作系统信息和访问参数信息。
这些在LDAP中用文件的形式定义下来,然后归类成一些“对象类(ObjectClass)”,每个“对象类(ObjectClass)”代表一类属性的集合。
每个节点都有一些特定的属性,这些就是所谓的数据库元数据。
这种树状结构对于查询来说是比较复杂的,有一些需注意的问题,比如:
(1)如果要查询某个数据库的DBMS信息,需先得到目录的基本结构,再确定查找的范围,然后利用LDAP的搜索命令来查找。
这需要一个过程。
(2)如果想将数据库中的某些动态信息,如当前某个数据库的总数据量大小,存入LDAP,应自动算出该数据库的数据量总和,然后填入LDAP,不要人工干预。
(3)对于动态实时信息,程序生成后自动填入到LDAP中,保证用户查询的时候是最新的,要采用某种程序调用机制来保证实时性。
3.2中间件的数据转换中间件的数据转换由接口、包装器、解析器组成。
中间件向外表现为一个统一的接口,通过接口接受异构数据库的访问请求。
在中间件内部,由包装器把从接口得到的访问请求包装为XML文档,再由解析器将XML文档解析为对应的被访问异构数据库的语言格式。
被访问的异构数据库将结果数据返回,由包装器转换为XML文档,然后由解析器把结果数据转换成相应格式,最后返回给发出请求的数据库。
如图3。
具体的关系数据库文件与XML文档双向映射方法请见3节。
图3中间件的数据转换3.3查询处理模块查询处理模块是系统中的重要部分。
用户输入的SQL查询语句是针对全局的,要分解成在局部数据库上执行的SQL语句。
查询处理模块的功能是将通过语法检查的全局查询请求分解,转换成多个数据源上的子查询,优化效率、并行处理后将子查询的结果汇总返回。
查询处理[3]包含下列步骤:
1、语法检查:
首先需要进行语法检查,确认正确后方能进行下一步处理。
语法检查进行如下处理,对全局查询语句进行关键字析出和语法判别,并对应全局数据字典检查涉及的表名和字段名称。
出错则终止并将错误信息返回给系统。
2、分解翻译:
将正确的全局查询语句分解为面向各局部数据库的查询语句,包括表名、列名、相应函数的替换,生成对应各局部数据库的查询语句。
3、查询优化:
提高查询效率是重要目标,尤其是对涉及多个异构数据库的连接查询。
可以采用启发式方法,寻找一个最优方案。
4、并行处理:
各局部数据库接收到分解翻译后的子查询语句后,应互不干扰地并行执行,但须保证任意一个发出多个局部查询的应用中的处理串行性,即只有在一个局部数据库完成其局部查询语句的执行后,另一局部数据库方才开始工作。
这会导致系统资源的浪费和效率的降低。
5、结果汇总:
结果汇总就是将从各局部数据库得到的查询结果进行汇总,且以统一的数据形式输出。
应用获得的是统一包装的全局数据形式的数据,不必关心其在具体数据库的形态。
3.4事务管理模块事务可分为两类:
局部事务和全局事务。
局部事务就是局部数据库的本地应用向本地DBMS提交的事务。
全局事务就是全局应用向数据库中间件提交的事务。
虽然数据库中间件屏蔽了各个数据库的异构性与不同,但仍要维护各局部数据库事务的作业独立性。
因而局部事务照旧直接提交给局部DBMS就够了,无需通知数据库中间件或征得其同意。
对于局部数据库来说,原有的事务管理器仍能保证其事务的ACID特性。
从全局应用角度来看,全局应用提交的事务需要分解成一组子事务,然后将这些子事务提交给局部数据库管理系统执行。
当所有的子事务均完成后,这个全局事务才成功结束。
如果其中某一个子事务终止(Abort)了,则该全局应用原则上宣判失败了。
这些子事务是全局事务的一部份,为了并发执行和可靠提交,应协同工作各相关的局部数据库的本地事务管理。
应将本地事务与全局事务整体考虑,如可串行化、优先级、恢复等操作须各组件数据库协同工作。
另外全局应用还有间接冲突、死锁等问题。
局部读协议在满足下面条件时,可以保证强正确性:
局部事务可以访问局部数据项,也可以读取存储在本地的全局数据项。
(但是不能写全局数据项);
全局事务只能访问全局数据项;
不存在含有值依赖的事务。
3.5完整性约束模块数据库的完整性[3]是指数据的正确性和相容性。
加在数据库之上的语义约束条件称为数据库完整性约束条件,它们作为模式的一部分存入数据库中。
DBMS中检查数据是否满足完整性条件的机制称为完整性检查。
协同多数据库的完整性约束,可能会产生问题。
一种解决办法是依据各局部数据库的完整性约束规则重新生成新的全局完整性约束规则,并存入系统字典,从某一点开始强制执行。
3.6通信处理器模块负责各模块之间的通信,要求响应快、可靠性高、延迟短、数据抖动不明显、Qos(QualityofService)好。
其功能有:
(1)向协调控制器提供多
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 一种 数据库 解决方案 doc