多媒体数据库的互联机制与策略算法
摘 要:多媒体数据库系统是数据库研究领域的热点之一。主要介绍了多媒体数据库dm3及dm3数据库系统间的信息共享机制,探索了多个dm3数据库系统间的信息共享的策略算法。
关键词:多媒体数据库;dm3;联邦数据库;数据字典
1 多媒体数据库定义
多媒体数据库mmdb(multimedia database)是由若干多媒体对象所构成的集合,这些数据对象按一定的方式被组织在一起,可为其他应用共享。
2 多媒体数据库管理系统dm3
2.1 dm3简介
dm3是由达梦公司生产的具有我国自主版权的分布式多媒体数据库管理系统。能将多媒体信息(如声音、文字、图形、图像等)、地理信息等复杂对象视同常规数据一样进行一体化地定义、存储和处理。我们利用该平台提供的各种功能,能够方便、高效地建立复杂的多媒体信息管理系统。
dm3采用创混合数据类型,扩展的多媒体和gis数据类型等技术,成功实现了空间数据、多媒体数据与常规数据的一体化定义、存储和管理,在空间信息和多媒体信息管理方面具有明显优势。
2.2 dm3的特性及主要关键技术
2.2.1 dm3的特性
(1)跨平台的分布式系统:dm3是分布式数据库管理系统,能够在多种操作系统上运行,dm3分布管理的实现依赖于dm3全局数据字典、客户/服务器接口、分布数据管理及服务器/服务器接口等。Www.11665.cOM
(2)dm3支持开放互连接口:odbc开放数据库互连,定义了所有的数据库系统公用的函数接口和sql语法,基于odbc的应用程序可实现与具体的dbms无关。
(3)支持多媒体和地理信息系统功能:
dm3能够直接管理和处理多媒体信息,实现了地理信息的分段存储。
(4) 利用网络索引技术实现地图的空间检索。
2.2.2 主要关键技术
(1)多线程调技术: dm3核心系统采用了先多线程调度技术。
(2)事务管理与并发控制技术: dm3采用的是基于消息通信的多线程客户/服务器模型。
(3)查询优化及索引技术:dm3实现了逻辑优化和物理优化,采用了性能优良的bn树索引技术,可以充分利用空间,提高系统的效率。
(4)动态模式修改及空值处理技术:(1)动态模式修改:dm3允许在一个站点建立任意多个模式,且可以随时增加、随时删除。 (2)空值处理:在元组前留(基表属性个数/8)个前导字节,每一个二进
制位对应基表的一个属性。
(5)dm3存储过程/函数机制:是一种技术,它是执行dm3 sql过程语言的一种机器.允许用户使用dm3提供的sql过程语言创建过程和函数,避免重复编码,提高生产率。
(6)dm3异构数据库连接技术:dm3提供的odbc驱动程序、jdbc驱动程序解决了与其它dbms及通用工具软件的接口,从而实现了支持异构数据库之间的互操作。
(7)dm3智能报表工具:dm3智能报表工具是以dm3 odbc驱动程序和数据仓库技术为基础,支持异构平台,支持异构数据库之间的互操作,便于报表数据统计和辅助决策。
2.3 dm3系统的体系结构
dm3采用了基于消息通信的客户/服务器总体模型。在这种结构中,一般包含一台或多台档次较高的小型机或工作站作为服务器,他们互相协作来完成客户对数据库的各种请求,用户的应用程序、dm3提供的各种工具集(交互式isql、预编译系统、odbc接口、jdbc接口、安装工具、)运行在档次较低的客户机上,客户机与服务器之间、服务器与服务器之间通过网络联接。极端情况下,当网络系统中的每一台机器都既是服务器,又是客户机时,dm3系统即演化为一个典型的分布式数据库管理系统。
3 dm3互联机制
分布式数据库管理系统的工作流程是:客户机登录到一台服务器上,这台服务器便成为它的代理服务器;它接收来自客户机的消息,然后根据全局数据字典决定是自己独立完成该操作,还是与其它服务器协作处理这条消息,处理完成之后,再由代理服务器将处理结果返回给客户机。
4 算法
为了使协调器正常工作,我们对底层数据库管理系统dm3进行了修改。在基表控制块tv_ctrl_block中增加一项isreplication。建表时,该项初始化为false;当为该表建立一个副本时,该项赋值为true。具体算法如下。
4.1 初始化算法
4.1.1 协调器:
①从用户或应用程序接收待连接的两个系统中的服务器名,需复制的表名;②分别登录到两个系统的服务器上;③向存有待复制表的服务器发预复制消息;④等待服务器消息;⑤若失败,发一条失败的消息给服务器和用户或应用程序,转11);⑥ 若成功,从消息中取出待复制表的有关信息,根据这些信息,发一条建表消息给另一个系统的服务器;⑦等待服务器消息;⑧ 若失败,发一条失败的消息给服务器和用户或应用程序,转11; ⑨若成功,调数据转移程序,进行数据复制 ;⑩将有关信息写入组间字典;b11退出。
4.1.2 服务器
当服务器收到预复制消息后,将基表控制块tv_ctrl_block中的isreplication赋为true。同时,取出待复制表的有关信息,组成应答消息发给协调器。当服务器收到失败的消息后,将基表控制块tv_ctrl_block中的isreplication赋为false。
4.2 维护算法
4.2.1 协调器
(1)从组间字典读出相关信息,根据这些信息,登录到相应系统上;
(2)等待消息;
(3)从某系统的服务器上收到一条修改消息后,通过查找组间字典,确定该消息的目的地,然后将它转发过去;
(4)若失败,定时重发,转2.
4.2.2 服务器:
(1)等待消息;
(2)当收到某客户或应用程序的消息后,检查它是否是修改数据的操作(如delete,update或insert等);
(3)若不是,转7;
(4)若是,检查基表控制块tv_ctrl_block中的isreplication是否为true;
(5)若不是,转7;
(6)若是,向协调器发修改消息;
(7)继续执行服务器程序的其它部分。
4.3 恢复算法
若协调器所联接的系统中有一个跨掉了,则对副本的修改无法及时地反映到跨掉的系统中来这时,需要恢复算法来进行处理。
协调器:当协调器发现有一个系统已经崩溃后,采取以下步骤
(1)将与该系统相关的变量open赋值为false;
(2)打开记时器 ;
(3)等待消信;
(4)若收到的消息是其它系统发出的修改崩溃了的系统上的副本的命令,则依次将这些消息存储起来,转3);
(5)若收到的消息是记时器发出的时间到的消息,则向崩溃的系统发登录命令;
(6)若登录成功,将open的值改为true;
(7)将存储的消息依次发送过去,转9;
(8)若登录失败,转3;
(9)退出。
5 结论
我们曾在三个dm3数据库系统上,用两个协调器进行联接,运行情况良好,各副本最终都能保证一致,且各副本间存在差异的时间间隔很短。另外,在出现异常的情况下,协调器也能正常工作。
数据库管理系统dm3在数据模型、安全技术、智能报表等方面具有创造性,在总体设计和技术上处于国内领先地位,实现了数据分布和站点的透明性,其通用性、开放性设计使dm3可以与oracle、sybase、sqlserver等流行dbms互连互访或共存于一个系统中,符合国家/国际标准的dbms,为国产dbms替代进口产品奠定了基础。
参考文献
[1]周龙骧.分布式数据库管理系统实现技术[m].北京:科学出版社.
[2]王珊.数据仓库技术与联机分析处理[m].北京:科学出版社.
[3]多李瑞轩,卢正鼎.媒体数据库系统原理与技术[m].北京:电子工业出版社.
[4]汤庸,彭重嘉,区海翔.多媒体数据库与网络应用[m].北京:人民邮电出版社.
上一篇: 2015年家电消费问卷调查
下一篇: 关于讨论课的调查表