ccidnet????

出版日期:2000-05-08 总期号:919 本年期号:31

本期导读
要闻综合
电脑工作室
市场
硬件
软件
infotimes
浓缩造就精华
记嵌入式数据库系统openbase mini
吕新宇、彭成宝、张霞

  嵌入式数据库管理系统是近几年才兴起的一项新的数据管理技术。它以目前成熟的数据库技术为基础,针对嵌入式设备的具体特点,实现对移动设备和嵌入式设备上数据的存储、组织和管理。openbasemini是东北大学软件中心为了适应嵌入式数据管理领域的新需求,以大型国产数据库管理系统openbase为基础而研究开发的嵌入式数据库系统。

  嵌入式设备本身的特性和嵌入式应用的特点决定了嵌入式数据库管理系统除了具有一般数据库管理系统具有的完整性约束、事务管理等数据库功能外,还必须具有以下特征:

  *最小的footprint———占用最少的系统空间;

  *数据同步能力———可以实现与主数据源的数据交换;

  *多通信协议支持和偶然连接(occasionaly connection)同步———保证在各种通信条件下实现数据的同步;

  *对标准sql的支持———由于目前很多的嵌入式操作平台的文件系统都具有一定的数据库能力(或具有专门的数据库接口),因此嵌入式数据库系统必须提供更为方便的数据库操作能力;

  *安全可靠的数据备份恢复机制———一般的嵌入式设备上的数据不保存在永久介质中,因此数据的备份和恢复功能就成为了嵌入式数据库系统一项重要的功能。


   系统结构


  openbase mini的系统结构如图1。




  图1 openbase mini系统组成结构图

  openbase mini主要由运行在嵌入式设备上的嵌入式数据库系统openbase satellite和运行在服务器上的openbase mini server两部分组成。

  openbase satellite是一个可以单独运行的、功能完善的嵌入式数据库系统。它支持sql89标准的子集,并吸收了部分sql92标准的特征,在某些方面还对sql标准作了扩展;它具有事务处理功能,支持事务的提交和回滚,可以保证操作的原子性;实现了对数据库的完整性约束,通过主关键字、外关键字等约束进行完整性控制;它具有完善的故障恢复机制;此外它还包含了一个同步接口,提供了与主数据源进行数据同步的能力。

  openbaseminiserver包含了同步服务器和其他的一些同步协同机构。同步服务器是完成系统同步的最重要的构件,它响应系统的嵌入式设备的同步请求、分析同步请求、检测和解决同步冲突、返回同步结果。同步服务器还提供了与异构数据源连接和主动同步的的能力。

  同步协同机构主要完成记录主数据源变化数据等辅助的同步功能。


   系统微型化


  一般的嵌入式设备或移动设备具有的资源都非常有限,而存储空间的限制则是制约各种嵌入式系统的主要因素。因此,嵌入式数据库系统的微型化就成为了实现嵌入式系统的关键。

  嵌入式数据库的微型化主要包括两方面:数据库的微型化和数据库管理系统的微型化。

  数据库的微型化是指提高数据存储空间的利用率,增加嵌入式设备的数据存储能力。数据库微型化的方法主要包括对关系模式的优化和数据的压缩存储。

  对关系模式优化的常用方法是模式的水平分解和垂直分解。模式的水平分解是根据相关条件把关系元组分成若干子集合,每个子集合定义为一个新关系。在嵌入式设备上,通常使用的数据只是一个大型关系中的一部分。因此,可以采用这种方法把经常使用的数据分解出来,形成一个子关系,可以有效减少数据的存储量。模式的垂直分解是把一个关系中经常使用的属性分解出来,形成一个独立的子关系,同样可以有效减少数据的存储空间。

  数据的压缩存储是数据库系统常用的一种数据存储方式,它不仅能减小系统占用的空间,还可以提高系统安全性。

  除了对数据库的微型化外,减少数据库管理系统大小也是系统微型化的一项重要内容。根据应用需要,选择系统必须的功能是实现数据库管理系统微型化的一个主要方式。

  openbase mini采用以上技术,较好地完成了系统的微型化工作。目前使用openbase mini开发的最小嵌入式应用为50k左右,完全可以满足嵌入式设备的需求。


   数据同步


  同步是嵌入式数据库系统最重要的一个功能特点。数据同步包含的内容很多,除了数据的传递以外,还包括对同步数据冲突的检测和解决、同步过程中事务的完整性的保持、主动同步的实现、与异构数据源同步以及与异构数据源之间数据类型的变化等。其中,对同步冲突的检测和解决是同步最重要的一项功能。

  同步冲突是指嵌入式数据库变化的数据与主数据源的变化不一致或者嵌入式数据库数据的变化违反了主数据源的一致性。一旦发生冲突,系统必须对冲突的数据进行舍取,造成数据的丢失。因此,在嵌入式应用中必须避免冲突的发生。

  防止冲突最根本的方法就是不允许在不同的场地对相同的数据进行更新。系统可以通过设置场地的权限来控制对数据的更新:在包括主场地和所有复制场地在内的所有场地中,只能有一个场地具有数据的更新权,其他场地只能进行只读操作。由于这种静态权限的分配方法限制了应用的灵活性,因此可以采用一种数据更新权的动态分配方式:数据更新的权限从一个场地移动到另外一个场地,依然确保在任何一个给定的事件点,只有一个场地具有对特定数据的更新的权力,而其他场地在没有更新权时,只能作只读操作,从而避免了冲突的发生。另外一种避免冲突的方法是对数据进行水平正交分割,使不同的复制场地持有不同的数据,同样也能防止对同一数据的更新。

  openbase mini采用了复制场地更新权限控制的方法,配合完善的冲突检测和解决方案,较好地解决了系统的冲突。

  openbase mini还提供了上载同步、下载同步和完全同步三种同步方式。它与异构数据源的连接主要通过odbc接口。通过该接口,openbase mini可以实现大多数支持odbc的数据源的同步。

  openbase mini还具有主动同步的能力。主动同步是指允许用户利用自己编写的过程实现同步。openbase mini允许用户使用vbscript编写同步事件的处理过程。为了提高同步的效率,openbase mini的同步机构实现了快速同步,在同步时只传递那些变化的数据。


   安全备份


  一般数据库系统数据的备份都是在本地通过系统提供的备份工具来完成的。而对于嵌入式设备,这种本地备份保存的方式就不再适用了。这主要是由于备份的目的是为了数据的永久保存,而大多数的嵌入式设备并不具备永久保存介质。为了解决这个问题,openbase mini采用了一种嵌入式数据库数据的远程备份保存方法:数据备份工具运行在与嵌入式设备连接的桌面系统上,通过网络连接直接操作嵌入式设备上的数据库,并将获得的数据保存到桌面系统的指定位置。备份下来的数据在进行恢复时,同样可以通过网络连接远程实现。


   多平台支持


  当前嵌入式操作平台的种类很多,如windows ce、palmos等。openbasemini在最初设计时就决定面向各种主流的嵌入式平台,支持多种移动设备。目前openbase mini可以运行在手持设备(handheld pc)和掌上设备(palm-sizepc)上,支持windows ce和palmos等流行的嵌入式操作系统。


   应用开发接口


  openbase mini为嵌入式应用的开发提供了灵活的应用编程接口,提供了包括c语言例行程序接口、支持标准c和java调用的sql模块接口和嵌入式c接口在内的多种灵活的应用开发接口。为了简化嵌入式应用的开发,openbasemini还提供了一系列高效的系统开发工具,提高了嵌入式应用开发的效率。

  openbase mini具有广阔的应用前景,可以广泛地应用在金融、医疗、国防、制造、信息家电等领域。