嵌入式关系数据库的市场需求
随着科技的发展和社会的进步,全过程自动化产品制造、大范围电子商务活动、高度协同科学实验以及现代化家庭起居,为嵌入式产品造就了崭新而巨大的商机。在办公自动化领域,消费领域,通信领域,工业控制领域和军事领域等等领域中,都可以见到嵌入式系统的影子。尤其是在办公自动化、消费电子和通信领域中,可以说嵌入式系统应用得非常普遍。
在这许许多多的嵌入式应用中,很多应用都存在着对设备中的数据的管理问题。移动数据库技术的许多特性都与信息时代的需求特点相吻合,因此在许多领域获得了成功的应用。下面我们仅列举几个已经或是将要出现的典型移动数据库应用,以说明研究移动数据库技术的必要性及其应用前景。
公共信息发布在移动计算环境中,大量的移动用户将通过笔记本电脑、掌上电脑、PDA、车载平台等移动设备的无线通讯接口获取各种各样的公共信息,如股票行情、天气状况和交通信息等。以交通信息发布为例,一个大城市的移动信息系统将同时为超过10多万个移动用户提供服务。
实时数据采集以保险业务员为例,目前许多保险业务员都使用笔记本电脑或掌上电脑管理有关客户和保单数据。在外出联系业务的途中,业务员需要随时从总部调出最新的数据资料,并随时查询某个客户的信息;完成交易后,他又需要将最新输入的保单信息即时反馈给总部。这种模式摆脱了时间、地点和场合的限制,克服了传统数据处理方式造成的延误和混乱,提高了数据管理的效率。
位置相关查询位置相关查询是移动数据库应用中最具特色也是最吸引人之处。设想一个旅游者抵达一个陌生的城市,他可以通过随身携带的移动设备查询许多信息,如最近的餐厅在哪里,怎样去最近的医院等等。与传统的数据库查询不同的是,上述查询的结果是与位置相关的,同样一个问题在不同的地理位置得到的回答可能是不同的。
此外,移动数据库技术配合GPS技术,可以用于智能交通管理、大宗货物运输管理和消防现场作业等。移动数据库技术还在零售业、制造业、金融业、医疗卫生等领域展现了广阔的应用前景。
随着应用向着分散化、小型化的方向延伸,智能的网络设备交换机、路由器、PDA、 smartPhone、信息家电等设备越来越多地走进了我们的生活,我们也已经越来越离不开它们了。类似这些对信息量要求不大,可以方便存取数据的环境中都需要一个小的数据库管理系统来管理本地的信息,这就有了嵌入式数据库的需求。毫无疑问,伴随着嵌入式市场的蓬勃发展,会有越来越多的嵌入式设备希望得到嵌入式数据库管理系统的支持,进行数据的统一管理。在强大的市场需求下,如果能开发出一个优秀的嵌入式数据库管理系统软件,无疑具有巨大的社会效益和经济效益。
主要的嵌入式关系数据库产品几种主要的嵌入式数据库产品的比较,如表1.1所示。
|| || 几种主要的入式数据库产品的比较
1.Pervasive.SQL:由Pervasive公司提供,该数据库有三种版本,我们选取适合智能手机、PDA等消费类电子的版本进行分析。
2.Polyhedra:由PolyhedraPlc公司提供,它是一个实时数据库,且是主存系统。
3.TimesTen:由TimesTen Performance Software公司提供,它是一个主存数据库系统。
4.BerkeleyDB:由Sleepycat Software Inc.提供,严格意义上它不是一个数据库管理系统而是一个数据管理软件,因为它不遵循关系模型。
至于BerkeleyDB它是源代码开发的软件,它采用嵌入式库的形式。用户通过它提供的对操作数据,其数据(其中的data)不具有格式含义,只是二进制数据流,其内容由用户解释。此外,它提供本地的C/C++接口,不遵循标准的SQL接口。自身代码占用内存175kb,支持平台包括VxWorks和几乎所有的Unix及Linux。
简介嵌入式关系数据库嵌入式关系系统是以应用为中心,以计算机技术为基础,并且软硬件可裁剪,适用于应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。它一般由嵌入式微处理器、外围硬件设备、嵌入式操作系统以及用户的应用程序等四个部分组成,用于实现对其他设备的控制、监视或管理等功能。1
嵌入式系统一般指非Pc系统,它包括硬件和软件两部分。硬件包括处理器/微处理器、存储器及外设器件和lio端口、图形控制器等。软件部分包括操作系统软件(os)(要求实时和多任务操作)和应用程序编程。有时设计人员把这两种软件组合在一起。应用程序控制着系统的运作和行为;而操作系统控制着应用程序编程与硬件的交互作用。
嵌入式关系数据库的体系结构嵌入式数据库将数据库系统与操作系统和具体应用集成在一起,运行在各种智能嵌入式设备上。与传统的数据库系统相比,它体积小,有较强的便携性和易用性,以及较为完备的功能来实现用户对数据的管理操作。在实际应用中,嵌入式数据库存储容量较小、稳定性和可靠性比较低,我们可以在PC机上配置嵌入式数据库来实现大容量数据的存储和管理。
从结构上可以将嵌入式数据库管理系统分为外壳和内核两大部分。
外壳
嵌入式数据库提供可直接调用的内部接口函数,开发人员可以通过接口函数对数据库直接进行管理和访问。数据库应用程序是数据管理体系与终端的中间层,数据库应用开发人员在本层进行编码工作,完成对嵌入式数据库的访问链接。
开发人员在使用数据库系统向上提供的接口函数时,只需要调用标准的接口,不需要考虑下层的实现细节。其主要工作是对接口函数的输入项进行处理,然后将需要处理的输入项转化为数据库内部可处理的数据结构。
内核
这部分是嵌入式数据库的内核,包含了嵌入式数据库的核心功能。主要有:系统管理、事务管理器等。
嵌入式关系数据库系统的特点从上述嵌入式系统的特点可以看出,作为嵌入式系统中一个软件中间件的嵌入式数据库管理系统,也必然受到嵌入式系统速度、资源以及应用等各方面因素的制约。当然,嵌入式数据库管理系统本质上是由通用数据库管理系统发展而来,它也可以是层次、网状或是关系型的数据库,甚至也可以是面向对象式的,但我们应该清楚,嵌入式数据库管理系统和通用型数据库管理系统在运行环境、应用领域等许多方面都是不一样的,所以,不能简单地把嵌入式数据库管理系统看成是通用数据库管理系统在嵌入式设备上的缩微版。
概括地说,嵌入式关系数据库管理系统具有以下特点:
1.专用性:由于嵌入式系统一般是专为某个应用和一组任务而设计的,这类系统的运行环境是比较明确的,所有的软硬件的配置与选择是在充分己知应用需求的前提下做出的。
**2.微型化:**由于嵌入式数据库的专用性,人们通常希望它是较小且简单的系统。此外,其运行的硬件平台的特点(诸如计算能力较弱、存储资源较小、电源以电池供电等)要求,它必须是一个小的系统尺寸并提供较短的代码执行路径及与应用紧密藕合的编程接口。
**3.健壮性:**嵌入式系统是与嵌入式硬件设备集成在一起的,如直接烧注在ROM中或者应用配置完成后几乎不再变化,所以系统一旦生成,就必须保证它可靠运行,具有很强的。
**4.可伸缩性:**由于不同嵌入式应用环境的软硬件平台、应用需求之间的差异相当的大,嵌入式数据库要求能够针对不同的应用环境进行相应的调整,或者说可以由具体的嵌入式应用来定制它所需的功能,因此要求嵌入式数据库在设计上有很高可伸缩性、系统的可配置性。
**5.零管理:**嵌入式关系数据库对最终用户应该是透明的,因为我们不可能要求智能手机或用户都具有数据库管理员的专业知识,也不可能要求应用的用户对应用底层的数据库系统进行管理,所以这类数据库系统的管理应该是自动完成的,称为“无干扰运行”。
**6.互操作性:**嵌入式数据库往往需要能与其它的嵌入式数据库或大型数据库进行通信,因此它必须提供一定的机制实现和其它系统的互操作性,比如网络通信、数据同步和传递、复制和缓存等。
**7.可移植性:**由于嵌入式系统的应用领域非常广泛,所采用的操作系统也多种多样,为了适应这种差异,嵌入式数据库必须考虑它的可移植性和不同平台之间的兼容。
除了上面较普遍的几点之外,针对特定的应用,还可能要求嵌入式数据库具有安全性和实时性。
关键技术移动数据库涉及的理论和技术涵盖了当今通信和计算机发展的最新成果,其中,在移动环境下如何进行数据管理是实现移动数据库的关键,根据目前国际上有关机构的研究表明,这些关键技术主要集中在如下几个方面:2
备份恢复嵌入式数据库的备份和恢复与大型DBMS管理数据库不同,不能简单以独立的服务或类似形式进行,而要按照某种简化方式完成。
复制与同步嵌入式数据库一般采用某种数据复制模式(上载、下载或混合方式)与服务器数据库进行映射,满足人们在任意地点、任意时刻访问任意数据的需求。由于存在数据复制,则在系统中各个应用前端和后端服务器之间可能需要各种必要的同步控制过程,甚至某些或全部应用前端、中间也要进行数据同步。
事务处理嵌入式数据库系统中的事务处理在前端可以简单化,但在整个应用系统中可能需要结合移动计算环境的特征进行事务处理控制。
安全性许多应用领域的嵌入式设备是系统中数据管理或处理的关键设备,因此嵌入式设备上的数据库系统对存取权限的控制较严格。同时,许多嵌入式设备具有较高的移动性、便携性和非固定的工作环境,也带来潜在的不安全因素。同时,某些数据的个人隐私性又很高,因此在防止碰撞、磁场干扰、遗失、盗窃等对个人数据安全的威胁上需要提供充分的安全性保证。
系统快速启动嵌入/移动设备的系统可靠性和可用性相对于固定主机而言一般相对偏低,因此发生系统故障的概率可能大大提高。因此,在这样的计算环境或计算平台上必须保证系统在发生不可软件纠错的情况下能够通过硬件进行系统的快速启动。
系统涉及的主要问题嵌入式关系数据库有不同于传统数据库的独特之处。绝大多数传统数据库的设计是事务吞吐量最大化而平均响应时间最小化,然而嵌入式数据库的主要目标是内存消耗和CPU资源的使用情况,换言之,获得和响应时间相关的可预测性。也就是说,如果一个数据库其最糟糕的响应时间或最大的内存消耗能够得到保证,那么系统是可预测的。另外,传统数据库的出发点是支持多种应用,因此它开发者能想到的所有功能集成为一个强大的通用的系统软件;而嵌入式数据库则一般提供一个轻量级的数据库引擎,其外围由特定的应用来定制所需的服务,可见嵌入式数据库相对于传统数据库的又一个明显特色是它的专用性,也就是说,和应用紧密相关。还有一个值得注意的问题是,一般来说嵌入式数据库的用户是数据库开发人员而非普通的用户,数据库开发人员利用嵌入式数据库提供的访问接口开发数据库应用程序,普通用户不会直接接触嵌入式数据库,他所接触到的是基于嵌入式数据库的应用程序。3
嵌入式数据库管理系统涉及的主要问题有:
最小化内存消耗((Small Footprint)出于商业上的考虑通常嵌入式系统中不会配置很大的内存数量,典型的配置一般在几Kbytes到几Mbytes。这必然要求嵌入式数据库管理系统不能占有过多的内存空间,内存消耗越少越好。
减少资源分配在嵌入式系统中,数据库管理系统和应用程序通常运行在同一个处理器上,数据库系统占用CPU资源越多就意味着应用程序获得的资源空间越少。
支持多个操作系统对于企业级的数据库服务器,它通常运行在专用的计算机和普通的操作系统上,访问它的客户可以是桌面计算机、其它的服务器甚至嵌入式系统,它们之间通过网络进行连接。而在嵌入式系统中,数据库和应用程序使用相同的硬件资源,而且嵌入式系统一般使用专门的操作系统,所以嵌入式数据库系统必须能支持多种操作系统。
高可靠性和传统数据库相比,大多数的嵌入式数据库运行时不需要系统管理员,因而嵌入式数据库必须以自己的方式可靠的运行。
尽管嵌入式数据库面临以上的主要问题,但是,嵌入式数据库和应用紧密联系,和它依赖的嵌入式硬件系统密不可分,所以上面几点中,不同的应用会有不同的侧重点。事实上,一些嵌入式数据库厂商一般会提供多种产品,针对不同的需求和应用进行裁剪和定制。