解析移动嵌入式数据库市场与技术行业资讯
随着各类移动终端的广泛应用,移动嵌入式数据库的应用越来越广泛。本文介绍移动嵌入式数据库的市场前景、典型产品。然后,分析了其技术发展趋势,最后指出移动嵌入式数据库研发所需要解决的若干技术问题。
1 概述
数据库技术一直随着计算的发展而不断进步,随着移动计算时代的到来,嵌入式操作系统对数据库系统的需求为数据库技术开辟了新的发展空间。嵌入式数据库技术目前已经从研究领域逐步走向广泛的应用领域。随着智能移动终端的普及,人们对移动数据实时处理和管理要求的不断提高,嵌入式数据库越来越体现出其优越性,从而被学界和业界所重视。
移动计算环境比传统的计算环境更为复杂和灵活。计算平台的移动性、连接的频繁断接性、网络条件的多样性、网络通讯的非对称性、系统的高伸缩性和低可靠性以及电源能力的有限性等因素对移动数据库的性能提出了相当高的要求。移动技术的发展必将对嵌入式移动数据库的发展起强大的推动作用,同时嵌入式移动数据库的发展也能促进移动计算的广泛应用。
随着嵌入式系统广泛应用及嵌入式实时操作系统的不断普及,为嵌入式环境提供数据管理成为系统中需要解决的重要问题。当前的数据管理不仅限于大型通用的后台数据库中,在各种网络设备(路由器、交换机等),移动通信、计算和娱乐设备(掌上电脑、移动电话、便携式媒体播放机等),数据采集与控制设备,数字家庭智能家电产品,交通、建筑、医疗智能设备的应用领域,计算和数据技术向微型化、网络化、移动性方向的发展,业界预测将来会出现数以亿计的嵌入式设备存在数据管理的需要,数据采用集中式方法进行管理是远远不够的,这些都是嵌入式数据库应用的潜在市场。
2 典型产品介绍
目前,嵌入式数据库技术目前已经从研究领域逐步走向广泛的应用领域。国内外的相关产品包括:
Oracle的嵌入式数据库产品:嵌入式Oracle数据库10g提供关系数据库功能;Oracle TimesTen内存数据库具有在内存中实时进行关系数据管理的能力和高速缓存功能;Oracle Berkeley数据库实现了高性能嵌入式数据管理;Oracle数据库Lite则方便了在线/离线移动数据管理。这些产品的所有管理功能都不需要人工干预,非常适合通信、高科技、航空航天/国防等行业的应用,因为这些行业对智能化边缘设备和服务的要求非常苛刻。
Oracle TimesTen内存数据库——这个内存型实时关系数据库以中档产品为目标,满足性能关键应用的数据管理需求。
Oracle Berkeley数据库——这个产品系列由3个高性能开源嵌入式数据库组成。2006年9月发布了新版Berkeley数据库和Berkeley数据库Java版,而Berkeley数据库XML 2.3则刚于2006年12月发布。
Oracle数据库Lite——这是一个完整的集成式环境,用于为多种产品开发、实施和管理移动应用。Oracle数据库Lite中包含一个适用于移动产品的小型关系数据库和一个用来实现与Oracle数据库同步的移动服务器,还具有应用处理和设备管理功能。
SQLite作为一个开源的嵌入式数据库产品,具有系统开销小,检索效率高的特性,适用于手机、PDA、机顶盒设备等电器。SQLite 是一个小型C库实现的一种强有力的嵌入式关系数据库管理系统。它提供了对SQL92 的大多数支持:支持多表和索引、事务、视图、触发和一系列的用户接口及驱动,实现了完备的、可嵌入的、零配置的SQL数据库引擎。
日立公司的嵌入式数据库Entier,该数据库软件已经在日本用于十种嵌入式终端,还有三十多种终端产品正在开发过程当中。这款数据库软件只占用1MB内存,可以用于媒体播放器或者汽车导航系统中,可以提供快速的数据查询。
RDM是由Mbrane公司的优质产品,已有20年的发展历史。它是当前唯一一个实现了网状数据库模式的产品,由于其快速而且可靠性高的特点,广泛应用于许多嵌入式产品中。RDM引擎本身开销很小,一般只需要200K左右的内存运行开销,如果应用需要,数据库也可以全部在RAM中运行。由于使用了网状结构,从设计初始,RDM就避免了不必要的索引开销,可以显著地减少磁盘空间、I/O和CPU周期。
RDM使用了缓存技术,用户可以在程序中和设计过程中确定页面大小和缓存大小,因此可以直接控制纪录在磁盘上的存储方式,从而实现最佳的存取性能。
3 技术发展趋势
在嵌入式系统中,计算和应用环境比传统的计算环境更为复杂和灵活。传统的大型通用关系型数据库产品虽然非常优秀而且非常成熟,但是由于他们依赖于高性能的主机、运行速度慢、资源开销庞大,所以不能适用于嵌入式系统。嵌入式数据库系统应用有独特的要求,计算资源的有限性、计算平台的移动性、系统的高伸缩性、电源能力的有限性等因素对嵌入式数据库的性能提出了相当高的要求。
嵌入式数据库的技术发展趋势主要体现在:
(1) 模块化的可裁剪的体系结构
嵌入式系统的应用领域非常广泛,目前存在数十种软件体系结构和操作系统,产品及功能相当丰富和多样化。在这种背景下,嵌入式数据库系统必须满足宽范围内的、灵活部署的、可伸缩的应用需求,这就要求数据库本身采用可根据应用裁减、可配制的,模块化的系统体系结构。同时,嵌入式数据还应该支持彼此协同计算以获得高可伸缩性、提高可靠性。
(2) 微内核、低功耗和低成本
作为嵌入式数据库的基础平台,嵌入式系统本身计算、存储和能源等资源都比较有限,在开发嵌入式系统应用时,各方面的开销大小是最关键的考虑因素之一,应用对价格也比较敏感。因此,嵌入式数据库必须满足微内核、低功耗和低成本,最大程度提高嵌入式系统的整体性价比。
(3) 多样化的数据检索界面
各种嵌入式设备面向广大最终用户,为用户所乐于使用的重要因素之一是它们与使用者之间的亲和力,用户与设备交互要求以图形界面屏幕为中心的多媒体界面,显示在嵌入式系统的平板显示器上。手写文字输入、语音控制、图象识别等需求对于嵌入式数据库的数据检索提出了新的要求,对非结构化数据的访问需要提供快速的检索技术,这对于提高数据的利用效率是非常重要的,因此,实现基于内容的微内核的索引和查询技术是嵌入式数据库发展的趋势。
(4) 嵌入式数据库的数据安全
随着大量的嵌入式系统的应用,其面临的安全威胁也日益增长,黑客的攻击目标已经从台式机转向嵌入式系统,而嵌入式数据库的应用情况,使我们对它们的可靠性期望值比普通的大多数其它数据库系统高得多。另一方面嵌入式数据库的用户经常是最终用户,而缺乏有经验的数据库安全管理员。因此,嵌入式数据库需要在数据安全方面提供更加可靠的保障。
4 关键技术研究
嵌入式移动数据库的研发,需要在以下几个方面进行研究以解决相关问题。
(1) 微内核嵌入式数据库研究
考虑到嵌入式设备在计算、存储、能源等方面的资源有限,嵌入式数据库应采用微内核技术实现,在满足嵌入式应用的前提下紧缩其系统结构以满足嵌入式应用的需求。微内核数据库必须能满足在1M内存以内系统中运行的需求。
(2) 内存数据库技术研究
与基于磁盘文件的传统系统不同,需要为内存数据库研究特有的索引结构和查询优化算法。传统的B+树结构对于磁盘上的数据和索引文件比较适合,但并不适合于管理内存中的数据。将数据保存到内存中以后,索引模式的目标是减少 CPU 开销而非磁盘I/O开销。需要研究特殊的的内存数据库索引,并开发适应的开销评估和查询优化算法,以达到内存数据管理的目标:减低空间要求、消除磁盘 I/O 以及简化算法、代码路径和内存使用量。
(3) 嵌入式数据库事务管理技术研究
嵌入式数据库的日志可以记录在非易失型存储器中,也可以记录在内存中。这样事务并非完全满足传统数据库的ACID特性。为此,需要在事务管理上研究特有的管理算法,包括事务的分组提交、模糊匹配检查点、实现数据库在性能和可用性方面的平衡。
(4) 嵌入式数据库安全技术研究
嵌入式设备是系统中业务处理的关键设备,因此对于数据安全的要求很高。同时,许多嵌入式设备具有较高的移动性、便携性和非固定的工作环境,其用户本身又非有经验的数据库安全管理人员。这都对数据库带来潜在的不安全因素。嵌入式数据库某些数据(如个人金融信息)的个人隐私性又很高,为此在防止非授权数据访问、设备丢失或盗窃、黑客攻击等对数据安全威胁上需要提供充分的安全性保证。
(5) 自动化管理技术研究
考虑嵌入式系统终端的用户主要为普通消费者,并不熟悉数据管理技能。嵌入式数据库的管理满足自主性的要求,即:无需数据库管理员人工干预即可进行数据库管理、自我备份、自我恢复、自动化配置。嵌入式数据库系统应具有自动恢复功能,保证用户数据的安全可靠,实现无人值守的运行。
(6) 数据高速缓存技术研究
作为一个微内核数据库,嵌入式数据库本身数据管理的能力有限。因此应该研究嵌入式数据库与后台数据库的集成和缓存技术,嵌入式应用与嵌入式数据库相连接,嵌入式数据库维护一个后台数据库的高速缓存,并能够把自身不能满足的数据请求透明地转交给后台数据库的处理。
对于车载设备和移动通信终端中的嵌入式数据库,其与后台数据库的连接重要是通过无线连接,具有带宽低、延迟高、稳定性差等特点。为此,需要研究专门的缓存管理与更新策略。
(7) 数据复制技术研究
嵌入式移动数据库提供数据同步机制,支持移动设备与中心数据库服务器之间的双向数据同步。
(8) 非结构化数据处理技术
嵌入式数据库处理的数据不仅仅限于传统的结构化的关系数据,也包括大量的半结构化和非结构化的数据。娱乐和定位导航是移动通信终端和车载智能终端的两项主要应用。对于电子娱乐设备,需要管理语音、图像等媒体数据。对于车载设备中的嵌入式数据库,汽车车辆定位、导航、调度、交通信息等方面的数据包含大量的空间地理数据。为此,需要研究对于媒体信息基于内存的内容检索和索引技术,以及对于基于内存的空间数据的索引和空间检索技术。
(9) 嵌入式应用环境关键技术研究
针对移动通信终端和车载智能终端的嵌入式应用,由于其运行环境在振动、温度、湿度、电磁辐射等方面比较复杂和恶劣,需要研究针对性的可靠性保障技术。