随着嵌入式技术的发展,嵌入式数据库逐步走向应用。本质上,嵌入式数据库是由通用数据库发展而来的,在各种嵌入式设备上或移动设备上运行,在嵌入式系统中更显示出其优越性,由于受到嵌入式系统本身应用环境的制约,嵌入式数据库有着与通用数据库不同的特点。
通常,嵌入式数据库管理系统就是在嵌入式设备上使用的数据库管理系统。由于用到嵌入式数据库管理系统的多是移动信息设备,诸如掌上电脑 、PDA、 车载设备等移动通信设备,位置固定的嵌入式设备很少用到,所以,嵌入式数据库也称为移动数据库或嵌入式移动数据库。其作用主要是解决移动计算环境下数据的管理问题,移动数据库是移动计算环境中的分布式数据库。
在嵌入式系统中引入数据库技术,主要是因为直接在嵌入式操作系统或裸机之上开发信息管理应用程序存在如下缺点:
(1)所有的应用都要重复进行数据的管理工作,增加了开发难度和代价。
(2)各应用之间的数据共享性差。
(3)应用软件的独立性 、 可移植性差,可重用度低。
在嵌入式系统中引入数据库管理系统可以在很大程度上解决上述问题,提高应用系统的开发效率和可移植性。
1 使用环境的特点
嵌入式数据库系统是一个包含嵌入式数据库管理系统在内的跨越移动通信设备 、 工作站或台式机及数据服务器的综合系统,系统所具有的这个特点及该系统的使用环境对嵌入式数据库管理系统有着较大的影响,直接影响到嵌入式数据库管理系统的结构。其使用环境的特点可以简单地归纳如下:
(1)设备随时移动性,嵌入式数据库主要用于移动信息设备上,设备的位置经常随使用者一起移动。
(2)网络频繁断接,移动设备或移动终端在使用的过程中,位置经常发生变化,同时也受到使用方式 、 电源 、 无线通信及网络条件等因素的影响。所以,一般并不持续保持网络连接,而是经常主动或被动地间歇性断接和连接。
(3)网络条件多样化,由于移动信息设备位置的经常变化,所以移动信息设备同数据服务器在不同的时间可能通过不同的网络系统连接。这些网络在网络带宽 、 通信代价 、 网络延迟 、 服务质量等方面可能有所差异。
(4)通信能力不对称,由于受到移动设备的资源限制,移动设备与服务器之间的网络通信能力是非对称的。移动设备的发送能力都非常有限,使得数据服务器到移动设备的下行通信带宽和移动设备到数据服务器之间的上行带宽相差很大。
2 系统组成与关键技术
一个完整的嵌入式数据库管理系统由若干子系统组成,包括主数据库管理系统 、 同步服务器 、 嵌入式数据库管理系统 、 连接网络等几个子系统,如图 1 所示。
(1)嵌入式数据库管理系统。嵌入式数据库管理系统是一个功能独立的单用户数据库管理系统。它可以独立于同步服务器和主数据库管理系统运行,对嵌入式系统中的数据进行管理,也可以通过同步服务器连接到主服务器上,对主数据库中的数据进行操作,还可以通过多种方式进行数据同步。
(2)同步服务器。同步服务器是嵌入式数据库和主数据库之间的连接枢纽,保证嵌入式数据库和主数据库中数据的一致性。
(3)数据服务器。数据服务器的主数据库及数据库管理系统可以采用 Oracle 或 Sybase 等大型通用数据库系统。
(4)连接网络。主数据库服务器和同步服务器之间一般通过高带宽 、 低延迟的固定网络进行连接。移动设备和同步服务器之间的连接根据设备的具体情况可以是无线局域网 、 红外连接 、 通用串行线或公众网等。
2.1 嵌入式移动数据库在应用中的关键点
嵌入式移动数据库在实际应用中必须解决好数据的一致性(复制性) 、 高效的事务处理和数据的安全性等问题。
(1)数据的一致性。嵌入式移动数据库的一个显着特点是,移动数据终端之间及与同步服务器之间的连接是一种弱连接,即低带宽 、 长延迟 、 不稳定和经常性断接。为了支持用户在弱环境下对数据库的操作,现在普遍采用乐观复制方法( Optimistic Replication 或 Lazy Replication )允许用户对本地缓存上的数据副本进行操作。待网络重新连接后再与数据库服务器或其他移动数据终端交换数据修改信息,并通过冲突检测和协调来恢复数据的一致性。
(2)高效的事务处理。移动事务处理要在移动环境中频繁的 、 可预见的断接情况下进行。为了保证活动事务的顺利完成,必须设计和实现新的事务管理策略和算法。可能包括:
- 根据网络连接情况来确定事务处理的优先级,网络连接速度高的事务请求优先处理;
- 根据操作时间来确定事务是否迁移,即长时间的事务操作将全部迁移到服务器上执行,无须保证网络的一直畅通;
- 根据数据量的大小来确定事务是上载执行还是下载数据副本执行后上载;
- 完善的日志记录策略;
- 事务处理过程中,网络断接处理时采用服务器发现机制还是采用客户端声明机制;
- 事务移动(如:位置相关查询)过程中的用户位置属性的实时更新。
(3)数据的安全性。许多应用领域的嵌入式设备是系统中数据管理或处理的关键设备,因此嵌入式设备上的数据库系统对存取权限的控制较严格。同时,许多嵌入式设备具有较高的移动性 、 便携性和非固定的工作环境,也带来潜在的不安全因素。此外,某些数据的个人隐私性又很高,因此在防止碰撞 、 磁场干扰 、 遗失 、 盗窃等方面对个人数据的安全性需要提供充分的保证。
保证数据安全的主要措施是:对移动终端进行认证,防止非法终端的欺骗性接入;对无线通信进行加密,防止数据信息泄漏;对下载的数据副本加密存储,以防移动终端物理丢失后的数据泄密。
2.2 移动数据库管理系统的特性
移动 DBMS 的计算环境是传统分布式 DBMS 的扩展,它可以看做客户端与固定服务器结点动态连接的分布式系统。因此移动计算环境中的数据库管理系统是一种动态分布式数据库管理系统。由于嵌入式移动数据库管理系统在移动计算的环境下应用在嵌入式操作系统之上,所以它有自己的特点和功能需求:
(1)微核结构,便于实现嵌入式功能。考虑到嵌入式设备的资源有限,嵌入式移动 DBMS 应采用微型化技术实现,在满足应用的前提下紧缩其系统结构以满足嵌入式应用的需求。
(2)对标准 SQL 的支持。嵌入式移动 DBMS 应能提供对标准 SQL 的支持。支持 SQL 92标准的子集,支持数据查询(连接查询 、 子查询 、 排序 、 分组等) 、 插入 、 更新 、 删除多种标准的 SQL 语句,充分满足嵌入式应用开发的需求。
(3)事务管理功能。嵌入式移动 DBMS 应具有事务处理功能,自动维护事务的完整性 、 原子性等特性;支持实体完整性和引用完整性。
(4)完善的数据同步机制。数据同步是嵌入式数据库最重要的特点。通过数据复制,可以将嵌入式数据库或主数据库的变化情况应用到对方,保证数据的一致性。
嵌入式移动数据库管理系统的数据同步机制应具有以下几个特点:
- 提供多种数据同步方式,具有上载同步 、 下载同步和完全同步3种同步方式;
- 具有完善的冲突检测机制和灵活的冲突解决方案,具有冲突日志记录功能;
- 支持快速同步,系统同步时,只传递变化的数据,节省了大量的同步时间;
- 支持表的水平分割和垂直分割复制,最大限度地降低了嵌入式数据库的大小;
- 支持异构数据源连接同步,可以用支持 ODBC 的异构数据源作为主数据库和嵌入式设备上的数据库进行数据同步;
- 具有主动同步的功能,允许用户对系统提供的同步事件自定义过程实现,提供了最大灵活度的同步过程。
(5)支持多种连接协议。嵌入式移动 DBMS 应支持多种通信连接协议。可以通过串行通信 、 TCP/IP 、 红外传输 、 蓝牙等多种连接方式实现与嵌入式设备和数据库服务器的连接。
(6)完备的嵌入式数据库管理功能。嵌入式移动 DBMS 应具有自动恢复功能,基本无须人工干预进行嵌入式数据库管理并能够提供数据的备份和恢复,保证用户数据的安全可靠。
(7)平台无关性与支持多种嵌入式操作系统。嵌入式移动 DBMS 应能支持Windows CE 、 Palm OS等多种目前流行的嵌入式操作系统,这样才能使嵌入式移动数据库管理系统不受移动终端的限制。
(8)零管理特性。嵌入式数据库具有自动恢复功能,不需要人工干预就可以进行嵌入式数据库管理,并提供数据的备份与同步。
另外,一种理想的状态是用户只用一台移动终端(如手机)就能对与它相关的所有移动数据库进行数据操作和管理。这就要求前端系统具有通用性,而且要求移动数据库的接口有统一 、 规范的标准。前端管理系统在进行数据处理时自动生成统一的事务处理命令,提交当前所连接的数据服务器执行。这样就有效地增强了嵌入式移动数据库管理系统的通用性,扩大了嵌入式移动数据库的应用前景。
总之,在嵌入式移动数据库管理系统中还需要考虑诸多传统计算环境下不需要考虑的问题,如对断接操作的支持 、 对跨区长事务的支持 、 对位置相关查询的支持 、 对查询优化的特殊考虑及对提高有限资源的利用率和对系统效率的考虑等。为了有效地解决上述问题,诸如复制与缓存技术 、 移动事务处理 、 数据广播技术 、 移动查询处理与查询优化 、 位置相关的数据处理及查询技术 、 移动信息发布技术 、 移动 Agent 等技术仍在不断地发展和完善,会进一步促进嵌入式移动数据库管理系统的发展。