已阅读5页,还剩65页未读, 继续免费阅读
(通信与信息系统专业论文)嵌入式数据库在无线传感器网络中的应用研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 摘要 嵌入式数据库系统是最近几年才兴起的一项新的数据管理技术,它的出现, 极大的提高了嵌入式系统中数据存储的快速性、有效性和安全性。和传统数据 库相比,嵌入式数据库占用内存资源少,系统开销低,和应用紧密结合,健壮 性和伸缩性能好,b e r k e l e yd b 就是其中的优秀代表。b e r k e l e yd b 是开源的内 嵌式数据库管理系统,它不是关系型数据库,没有数据库服务器的概念,调用 简单的a p i 就能实现数据的快速、高效存储。 在多维多参量光纤光栅无线传感器网络系统中,网关节点起着数据转发和 本地数据存储备份的功能,是连接前端传感器节点和后端用户监控中心的纽带。 由于网关节点资源受限,不可能引入传统的关系型数据库,因此作者在网关节 点引入嵌入式数据库b e r k e l e yd b 对传感数据进行存储,改迸了传统的网关节点 只进行数据转发或用文件方式对数据进行存储,极大提高了系统性能。作者研 究了b e r k e l e yd b 在网关节点中的移植和具体实现,还对b e r k e l e yd b 在系统应 用中出现的数据存储速率问题和数据压缩问题作了详细探讨,并给出了具体的 解决方案。 在互联网广泛应用的前提下,作者改进了之前的无线传感器网络系统只有 在监控中心才能观测到传感数据的设计,在网关节点上搭建了嵌入式w e b 服务 器,利用嵌入式w r e b 服务器能远程访问本地b e r k e l e yd b 数据库,实现了随时 随地观测传感数据的目的,大大提高了系统应用的灵活性。文章最后还讨论了 通过互联网访问数据库的安全性问题,并给出了解决方案。 关键词:嵌入式数据库b e r k e l e yd b 无线传感器网络 网关嵌入式w e b 服 务器 a b s t r a c t a b s t r a c t t h ee m b e d d e dd a t a b a s es y s t e mi sar e c e n t l yr i s i n gd a t am a n a g i n gt e c h n o l o g y d u et oi t se x p r e s s ,e f f e c t i v e n e s sa n ds a f e t yo fd a t as t o r a g ei nt e r m so ft h ee m b e d d e d s y s t e m c o m p a r a t i v e l ys p e a k i n g ,e m b e d d e dd a t a b a s er e q u i r e sm u c hl e s sm e m o r y r e s o u r c e ,l o w e rs y s t e mc o n s u m p t i o na n da l s o i t c l o s e l yc o n n e c t sw i t h v a r i o u s a p p l i c a t i o n sb e c a u s eo fi t sb e t t e rp e r f o r m a n c ei nr o b u s t n e s sa n ds c a l a b i l i t y i ti sn o t e d t h a tb e r k e l e yd bi sa ne x c e l l e n te x a m p l ef o ri ti sa no p e ns o u r c ea n db u i l t i n e m b e d d e dd a t a b a s em a n a g e m e n ts y s t e m w ea r ea l s oa w a r et h a ti t sn o ts i m p l ya r e l a t i o n a ld a t a b a s e t h a tf a s t e ra n dm o r e e f f i c i e n td a t as t o r a g ei se x p e c t e db yt h e s i m p l ea p ic a l ls i n c ei ta v o i d st h et r a d i t i o n a lc o n c e p to f t h ed a t a b a s es e r v e r i nt h em u l t i d i m e n s i o n a la n dm u l t i - p a r a m e t e rf i b e rb r a g gg r a t i n gw i r e l e s ss e n s o r n e t w o r k ( w s n ) s y s t e m , t h eg a t e w a yn o d ew h i c hp l a y st h er o l eo fd a t af o r w a r da n d l o c a ld a t as t o r a g ef o rb a c k u p ,i st h el i n kb e t w e e nt h es e n s o rn o d e sa n du s e r m o n i t o r i n gc e n t e r i ti sn o tf i tt ou s et r a d i t i o n a lr e l a t i o n a ld a t a b a s ef o rd a t as t o r a g eb y l i m i t e dr e s o u r c e s ,s ow eb u i l ta ne m b e d d e dd a t a b a s e - - b e r k e l e yd bf o rd a t as t o r a g e i nt h eg a t e w a yn o d e ,t h i sd e s i g ni m p r o v e st h et r a d i t i o n a lg a t e w a yn o d ew h i c hj u s t h a st h ef u n c t i o no fd a t af o r w a r do ru s e st h ew a yo ff i l er e a d w r i t ef o rd a t as t o r a g e , a n d g r e a t l yi m p r o v e s t h e s y s t e mp e r f o r m a n c e t h i ss t u d y f o c u s e so nt h e t r a n s p l a n t a t i o nm e t h o da n dp a r t i c u l a rr e a l i z a t i o no fb e r k e l e yd bi nt h eg a t e w a yn o d e a sw e l la sg i v e st h ed e t a i l e dd i s c u s s i o no fd a t as t o r a g er a t ea n dd a t ac o m p r e s s i o ni n u s i n go fb e r k e l e yd bi np a r t i c u l a rs y s t e ma p p l i c a t i o na n dt h e ng i v e st h ep o s s i b l e s o h t i o n u n d e rt h ec i r c u m s t a n c eo fo v e r w h e l m i n gu s e so nt h ei n t e r n e t ,t h i sp a p e r i m p r o v e st h ep r e d e s i g n e dg a t e w a yn o d ew h i c h c o u l do n l yo b s e r v es e n s o rd a t ai nt h e c o n t r o lc e n t e r i no u rs y s t e m , w eb u i l ta ne m b e d d e dw e bs e r v e ri nt h eg a t e w a yn o d e , b yw h i c hw ec a nr e m o t e l ya c c e s sl o c a lb e r k e l e yd bd a t a b a s e ,a c h i e v e dt h ep u r p o s e o fo b s e r v i n gs e n s o rd a t aa n y t i m e ,a n y w h e r e ,a n dg r e a t l ye n h a n c e dt h ef l e x i b i l i t yo f i i a b s t r a c t t h ew i r e l e s ss e n s o rn e t w o r ks y s t e m f i n a l l yi nt h i sp a p e r , t h es e c u r i t yp r o b l e mo f a c c e s s i n gt ot h ed a t a b a s ev i a t h ei n t e m e ti sd i s c u s s e da n do u rs o l u t i o ni so f f e r e d k e yw o r d :e m b e d d e dd a t a b a s eb e r k e l e yd bw s ng a t e w a y e m b e d d e dw e b s e r v e r i i i 南开大学学位论文使用授权书 根据南开大学关于研究生学位论文收藏和利用管理办法,我校的博士、硕士学位获 得者均须向南开大学提交本人的学位论文纸质本及相应电子版。 本人完全了解南开大学有关研究生学位论文收藏和利用的管理规定。南开大学拥有在 著作权法规定范围内的学位论文使用权,即:( 1 ) 学位获得者必须按规定提交学位论文( 包 括纸质印刷本及电子版) ,学校可以采用影印、缩印或其他复制手段保存研究生学位论文, 并编入南开大学博硕士学位论文全文数据库;( 2 ) 为教学和科研目的,学校可以将公开 的学位论文作为资料在图书馆等场所提供校内师生阅读,在校园网上提供论文目录检索、文 摘以及论文全文浏览、下载等免费信息服务;( 3 ) 根据教育部有关规定,南开大学向教育部 指定单位提交公开的学位论文;( 4 ) 学位论文作者授权学校向中国科技信息研究所和中国学 术期刊( 光盘) 电子出版社提交规定范围的学位论文及其电子版并收入相应学位论文数据库, 通过其相关网站对外进行信息服务。同时本人保留在其他媒体发表论文的权利。 非公开学位论文,保密期限内不向外提交和提供服务,解密后提交和服务同公开论文。 论文电子版提交至校图书馆网站:h t t p :2 0 2 1 1 3 2 0 1 6 1 :8 0 0 1 i n d e x h t m 。 本人承诺:本人的学位论文是在南开大学学习期间创作完成的作品,并已通过论文答辩; 提交的学位论文电子版与纸质本论文的内容一致,如因不同造成不良后果由本人自负。 本人同意遵守上述规定。本授权书签署一式两份,由研究生院和图书馆留存。 作者暨授权人签字: 2 0 年月日 南开大学研究生学位论文作者信息 论文题目 姓名 学号答辩日期年月日 论文类别博士口 学历硕士口硕士专业学位口高校教师口同等学力硕士口 院系所 专业 联系电话e m a n 通信地址( 邮编) : 备注: 是否批准为非公开论文 注:本授权书适用我校授予的所有博士、硕士的学位论文。由作者填写( 一式两份) 签字后交校图书 馆,非公开学位论文须附南开大学研究生申请非公开学位论文审批表。 南开大学学位论文原创性声明 本人郑重声明:所呈交的学位论文,是本人在导师指导下,进行 研究工作所取得的成果。除文中已经注明引用的内容外j 本学位论文 的研究成果不包含任何他人创作的、已公开发表或者没有公开发表的 作品的内容。对本论文所涉及的研究工作做出贡献的其他个人和集 体,均己在文中以明确方式标明。本学位论文原创性声明的法律责任 由本人承担。 学位论文作者签名: 年月日 第一章引言 第一章引言 数据库技术是应数据管理任务的需要而产生的。6 0 年代后期,数据库系统 的出现使得信息系统的重心发生了转移,从以加工数据的程序为中心转向以数 据共享为核心。其后随着计算技术的发展和应用需求水平的提高,数据库技术 向深度计算和普及计算发展。高端的超大型数据库系统致力于解决复杂数据类 型( 视频、音频、过程或行为) 的处理问题,满足海量数据的存取要求。其特 点是存储容量大、处理能力强;随着嵌入式系统的发展,传统的数据库已不能 满足嵌入式系统存储空间有限、实时性要求高的需求。为此,嵌入式数据库应 运而生。嵌入式数据库其特点是占用空间小、应用场合灵活、存储操作简易, 实时性强。嵌入式数据库系统研究嵌入式计算环境中的数据管理技术,已成为 目前数据库研究的一个新方向。 第一节嵌入式数据库的引入 嵌入式系统【1 】【2 l 是指以应用为中心,以计算机、电子技术为基础,软、硬件 可裁剪,适应于应用系统对功能、可靠性、成本、体积和功耗严格要求,嵌入 于各种设备及应用产品内部的专用的电子应用系统。它是将先进的计算机技术、 半导体技术及其电子技术与各个行业的具体应用相结合后的产物,一般由嵌入 式处理器、外围硬件设备、嵌入式操作系统以及嵌入式应用软件等四个部分组 成【3 】o 随着电子集成技术、计算机技术、软件工程技术等的日趋成熟和完善,嵌 入式系统正以其得天独厚的优势,广泛地应用于各个行业,其数量之大、种类 之多,标志着嵌入式系统的应用发展浪潮已经来临。 随着应用领域的不断扩展,应用规模的不断增大,用户的需求种类日渐繁 多,面临需要处理的数据量也在不断增加,文本式的数据管理模式渐渐呈现出 局限性,成了系统研发的瓶颈。对数据的整合管理需求上升到数据库层面,嵌 入式系统迫切需要数据库技术支持。 嵌入式数据库【4 】技术目前已成为嵌入式研究领域的新热点。如果嵌入式系统 在设计上以嵌入式数据库技术为支撑,将会极大地丰富和完善嵌入式系统功能, 第一章引言 提高系统的开发效率、性能和系统的可移植性。由于嵌入式系统开发环境的制 约,使嵌入式数据库的存储管理和程序的运行模式有其独特性,嵌入式数据库 应具有占用系统资源少、可靠性、易管理性、安全性、实时性和可移植性等特 点【5 l 【6 】,总之,嵌入式数据管理系统应满足嵌入式系统硬件平台的需求。 第二节无线传感器网络的概念 无线传感器网络【7 】【引( w i r e l e s ss e n s o rn e t w o r k s ,w s n s ) 系统是当前在国际上 备受关注的、涉及多学科高度交叉、知识高度集成的前沿热点研究领域。它综 合了传感器技术、嵌入式计算技术、现代网络及无线通信技术、分布式信息处 理技术等,能够通过各类集成化的微型传感器协作地实时监测、感知和采集各 种监测对象的数据,这些数据通过无线方式被发送,并以自组多跳【9 j 的网络方式 传送到用户终端,从而实现人们研究自然界的目的。 无线传感器网络的结构如图1 1 所示。一个传感器网络通常包含一个或多个 基站( 或称汇聚节点) 以及大量具有感知能力、计算能力与无线通信能力的微 型传感器节点,有的节点还可能具有执行能力。传感器节点【lo j 【l l j 是一个微型嵌 入式系统,由传感器模块、处理器模块、无线通信模块和能量供应模块组成, 有的传感器节点可能还包括定位模块、运动模块、能量采集模块、执行模块等 等。传感器节点的处理能力、存储能力与通信能力相对较弱,一般通过携带能 量有限的电池进行供电。基站【1 2 】是连接传感器网络与其他外部网络( 如i n t e m e t ) 的网关( 或称中心节点) ,通常具有充足的能量供给以及较强的处理能力、存 储能力和通信能力。 传感器节点与基站的部署可以采用飞行器播撒的方式,也可以采用人工放 置等方式完成【1 3 】。在部署完毕后,基站与节点通过自组织的方式形成一个多跳 无线网络系统【1 4 】。传感器节点之间通过协作的方式实时监测、感知和采集各种 环境或监测对象的信息,通过嵌入式系统对信息进行处理,并通过无线通信以 多跳中继的方式将所感知信息传送到基站,再通过i n t e m e t 或者卫星网络发送到 用户终端;传感器节点也可以与处于网络监测区域中的用户进行直接交互;配 置有执行器节点的传感器网络还可以接受用户的命令执行某些行动,完成对目 标的控制与操作。可以看出,传感器节点具有传统网络中终端与路由器的双重 功能【1 5 】,既要收集与处理本地信息,还要处理、融合与转发其他节点的信息。 2 第一章引言 基站连接传感器网络与外部网络,实现两种不同协议栈之间的协议转换,同时 将用户的查询任务注入传感器网络,并把从网络收集到的数据通过外部网络转 发给用户。 夏嚣 图1 1 无线传感器网络整体功能图 第三节课题背景及意义 桥梁、大坝、隧道等重大土木工程是国家基础设施建设水平的重要标志, 对国民经济的持续、健康发展起着重要作用。由于环境荷载作用、疲劳效应和 材料老化等作用,不可避免的产生损伤累积和抗力衰减,从而抵抗自然灾害的 能力下降,进而引发灾难性的突发事故,造成重大的人员伤亡和经济损失,对 社会造成极坏的影响。由于光纤光栅以其可靠性好、抗干扰能力强、传感器结 构简单、体积小、重量轻、灵敏度高、抗电磁干扰、抗腐蚀、电绝缘、不受潮 湿环境的影响、复用性强和使用寿命长等独特的优点而成为传感器家族中的一 支独秀。为此我们将性能优良的光纤光栅传感器与无线传感器技术结合起来, 3 第一章引言 研制出可进行多维多参量传感测量的光纤光栅无线传感网络系统,该系统就是 在前端通过光纤光栅传感器节点采集各种信息( 如温度、位移、振动等) ,各 个节点之间通过无线自组织网络的方式,将数据发送到自组织定义的中心节点, 中心节点接收到数据后,进行数据存储、分析、处理,然后打包加密以有线i n t e r n e t 或者无线c d m a 的形式发送给远端的控制中心,为结构的短期检测与长期健康 监测提供可靠的结构性态数据,为结构安全评定、预警以及维修、控制和报废 提供科学的依据,同时获取结构设计合理性的宝贵原始数据,对于提高土木工 程的整体研究与应用水平意义重大。 在中心节点处,硬件资源有限,实时性要求高,需要对大量的实时数据进 行接收和处理,数据处理通常可采取两种方式,一种是文件方式,另一种是数 据库方式。对于文件方式,用户直接对记录的文件进行操作( o p e n 、w r i t e 、r e a d 等) ,i o 开销非常大,而且应用程序是以独占方式打开数据文件的,因此数据 的共享性和应用软件的可重用性较差,影响系统的整体性能;对于数据库方式, 数据和程序是相互独立,通过事务来进行调度与并发控制,可有效地对数据进 行存取、查询等共享操作,同时借助数据库所具有的安全性检验、完整性检查 等多种安全措施,确保系统具有较好的整体稳定性能。但是,对于传统的关系 型数据库如o r a c l e 、s y b a s e 、i n f o r m i x 、i b md b 2 等虽然功能强大,但系统体积 庞大,要求付费使用,仅适用于作为大型商业数据库使用。嵌入式数据库通常 与操作系统和具体应用集成在一起,无须独立运行的数据库引擎,由程序直接 调用相应的a p i 函数来实现对数据的存取操作,体积较小,适合于硬件资源受 限的嵌入式系统,且具有较快的存取访问速率。 第四节课题来源和本文结构 课题来源于国家高技术研究发展计划( 8 6 3 计划) 项目:多维多参量光纤光 栅无线传感器网络系统的应用研究( 项目编号:2 0 0 6 a a 0 1 2 2 1 7 ) 和天津市科技 支撑计划重点项目:基于s o p c 的低功耗无线传感器网络节点设计及组网应用研 究( 项目编号:0 8 z c k f g x 0 0 5 0 0 ) 。作者负责参与了项目的中心节点( 或称网 关节点) 的软硬件开发设计工作。中心节点主要负责接收前端传感器节点采集 到的温度、湿度、压力、位移、应变等数据,并经过适当的数据处理( 压缩、 融合、打包等) 然后通过i n t e r n e t 或无线c d m a 的方式将数据发送给后端的控 4 第一章引言 制中心。本课题系统框图如图1 2 所示: 图1 2 无线传感器网络系统框图 在完成项目的基础k ,作者对中心节点进行了改进,引入了嵌入式数据库 进行数据管理和构建了嵌入式w e b 服务器,大大提高了系统的整体性能。本文 章节内容安排如下: 第一章引言,该部分介绍嵌入式数据库和无线传感器网络的背景和基本概 念,并阐述论文选题背景和意义。 第二章介绍嵌入式数据库的特点,一般关系型数据库与嵌入式数据库的比 较;介绍目前主流嵌入式数据库产品及其横向比较;介绍b e r k e l e yd b 的技术特 性和数据访问算法和部分程序设计。 第三章介绍无线传感器网络网关节点的研究现状,并介绍本系统中的网关 节点的具体软硬件实现,通过对比分析优缺点。 第四章详细介绍嵌入式数据库b e r k e l e yd b 在系统中的移植以及是如何在 系统中实现的,并讨论数据库的读写速率和数据压缩等问题。 第五章介绍如何在系统中构建嵌入式w e b 服务器,如何结合嵌入式w e b 服 务器远程登陆b e r k e l e yd b 数据库,以及通过i n t e r n e t 访问数据库的安全性问题, 并给出详细的方案论证。 第六章对本文工作的总结并展望下一步的工作。 5 圈圈圈 第二章嵌入式数据库 第二章嵌入式数据库 第一节嵌入式数据库的特点 嵌入式数据库【1 6 】【1 7 】系统在某些方面与大型数据库系统相似,如在模型上, 嵌入式数据库系统可以是层次、网状或者关系数据库,甚至是面向对象的数据 库。但从前面对嵌入式数据库的概述中可以看到,与大型数据库系统相比,嵌 入式数据库系统具有不同的特尉1 8 】【1 9 】【2 0 】: ( 1 ) 占用存储空间较小。嵌入式系统磁盘资源有限,并且嵌入式操作系统 已经占据了很多的磁盘空间,同时又必须为应用程序留有一定的磁盘空间,因 此,嵌入式数据库系统占有的磁盘空间必须尽量减小。 ( 2 ) 可靠性、易管理型和安全性。嵌入式系统通常在移动、相对封闭的环 境下使用,信息技术支持人员无法对其提供现场技术支持。因此,嵌入式数据 库系统必须可靠,而且能在无人工管理的情况下运行。鉴于这一点,嵌入式数 据库系统的可靠性、可管理性和安全性就显得非常重要。 ( 3 ) 互操作性和可移植性。一般嵌入式数据库系统都是针对具体的开发平 台和操作系统设计和实现的,但是嵌入式数据库必须能够保证能与其他的嵌入 式数据库或者大型企业数据库进行信息共享,易于实现互操作。同时嵌入式系 统的应用领域非常广泛,所采用的操作系统等软件和硬件环境也千差万别。为 了适应这种差异性,嵌入式数据库系统必须具有一定的可移植性。 ( 4 ) 可剪裁性。嵌入式应用对嵌入式数据库系统的要求常常差别很大。一 个嵌入式应用一般不会使用嵌入式数据库系统所提供的所有功能,因此,为了 节省磁盘空间和提高效率,嵌入式数据库必须支持可剪裁性,这样开发人员才 能够根据特定的应用定制嵌入式数据库的功能。 6 第二章嵌入式数据库 第二节嵌入式数据库的比较 2 2 1 嵌入式数据库与嵌入式移动数据库 嵌入式移动数据库1 2 1 】【2 2 1 是把数据库的一部分和系统移动到其它平台或设备 上了,这个平台可能是一个大的平台下的一个小分支,这个小分支可以自己启 动,并具有数据库的一部份基本功能,当然也可能不是,而独自完成工作。移 动数据库往往由多个部件组成,典型部件包括运行在移动计算终端内的移动嵌 入式数据库、同步和复制子系统以及中央数据库服务器。这些移动嵌入式数据 库基本上是独立进程,功能比较单一,需要布置在整个移动计算环境内才能工 作。嵌入式数据库是、运行在你的本地机上、不用启动服务端的轻型数据库, 它与应用程序紧密集成绑定,应用程序来启动她,并随着应用程序的退出而停 l k 。 2 2 2 嵌入式数据库主流产品 一、嵌入式移动数据库的主流产品 1 、s y b a s es q la n y w h e r es t u d i o | 2 3 1 :提供了数据管理和企业同步技术,可实 现移动、工作组以及嵌入式数据库解决方案的快速开发与部署,使企业可以保 证它的数据在任何需要的时间和地点都可被访问。主要强调与企业级的数据库 同步,收费,不开源。 2 、o r a c l el i t ee d i t i o n 2 4 】:可在w i n n t 、w i n 9 8 、w i n c e 和e p o c 3 2p a l m 平 台上运行,并支持j a v a 的存储过程和触发器。提供了极小的对象关系型数据库 核心,只需5 0 k 到7 5 0 k 的内存开销,能实现移动设备和中央数据库的数据同步, 支持各种网络传输协议包括n e t s 、h t t p 和文件系统传输,可以将w e b 的内容 发布到移动设备,收费,不开源。 3 、i b md b 2s a t e l l i t ea n de v e r y p l a c ee d i t i o n t 2 5 1 :它支持移动计算功能,并提 供移动办公用户与企业中心数据源保持同步的能力,很好地满足了企业移动办 公的需求,收费,不开源。 4 、小金灵嵌入式移动数据库系统【2 6 1 ( k i n g b a s el i t e ) :该产品是人大金仓研 发的拥有自主知识产权的软件产品,目前也是人大金仓的核心产品。其系列产 7 第二章嵌入式数据库 品包括支持移动计算的低端产品( 面向移动采集、终端处理和户外工作) 、支持移 动计算的高端产品( 面向移动通信和g p s 应用) 、支持信息电器的嵌入产品和掌 上电脑通用数据库产品( 界面友好、完整的s q l 功能) 。 5 、东软o p e n b a s em i n i l 2 7 j :o p e n b a s em i n i 嵌入式数据库管理系统是东 软集团研制、开发的o p e n b a s e 产品系列中的一员。它与该产品系列中的其它 成员( o p e n b a s e 多媒体数据库管理系统、o p e n b a s e w e b 应用服务器、 o p e n b a s e s e c u r e 安全数据库系统) 一起,涵盖了企业应用、i n t e m e t 、移动计算 等多种应用领域,具有多样的应用模式,形成了o p e n b a s e 而向各种应用的全 方位解决方案。 二、嵌入式数据库的主流产品 l 、p e r v a s i v es q l t 2 8 l :关系型数据库,支持多种平台( w i n d o w s ,n e t w a r e , l i n u x ,u n i x 等) 。p e r v a s i v es q lv 9 支持大部分的行业接口标准,可嵌入,安全 稳定,维护成本较低,可支持v b ,d e l p h i ,c + + ,j a v a 及m a g i ce d e v e l o p e r 等多 种开发语言,不开源。 2 、s q l i t e t 2 9 】:s q l i t e 是d r i c h a r dh i p p 用c 语一言编写的开源嵌入式数据 库引擎。关系型数据库。它是完全独立的,不具有外部依赖性。s q l i t e 支持多 数s q l 9 2 标准,可以在所有主要的操作系统卜运行,并且支持大多数计算机语 一言。其主要特点是高效小巧、可移植性好、开源、支持s q l 语言查询。 3 、b e r k e l e yd b t 3 0 】:b e r k e l e yd b 是一个开放源代码的嵌入式数据库管理系 统,能够为应用程序提供高性能的数据管理服务。应用它,程序员只需要调用 一些简单的a p i 就可以完成对数据的访问和管理。与常用的数据库管理系统( 如 m y s q l 和o r a c l e 等) 有所不同,在b e r k e l e yd b 中并没有数据库服务器的概念。 应用程序不需要事先同数据库服务建立起网络连接,而是通过内嵌在程序中的 b e r k e l e yd b 函数库来完成对数据的保存、查询、修改和删除等操作。非关系型, 通过k e y d a t a 对数据库进行访问。 第三节b e r k e l e yd b 嵌入式数据库 b e r k e l e yd b 是s l e e p y c a t 公司( w w w s l e e p y c a t c o m ) 开发的开放源代码的 内嵌式数据库管理系统,能够为应用程序提供高性能的数据管理服务。关键字 8 第二章嵌入式数据库 数据是b e r k e l e yd b 用来进行数据库管理的基础。每个k e y d a t a 对构成一条记 录。而整个数据库实际上就是由许多这样的结构单元所构成的。通过使用这种 方式,开发人员在使用b e r k e l e yd b 提供的a p i 来访问数据库时,只需提供关键 字就能够访问到相应的数据。当然也可以也可以提供k e y 和部分d a t a 来查询符 合条件的相近数据。 b e r k e l e yd b 作为一种嵌入式数据库系统在许多方面有着独特的优势。首先, 由于其应用程序和数据库管理系统运行在相同的进程空间当中,进行数据操作 时可以避免繁琐的进程间通信包括建立s o c k e t 连接等,因此耗费在通信上的开 销自然也就降低到了极低程度。其次,b e r k e l e yd b 使用简单的函数调用接口来 完成所有的数据库操作,而不是在数据库系统中经常用到的s q l 语言。这样就 避免了对结构化查询语言进行解析和处理所需的开销。 2 3 1b e r k e i e yd b 的系统结构 整个b e r k e l e yd b 系统分为以下五个子系统【3 l 】【3 2 1 。 1 、存取管理子系统( a c c e s sm e t h o d s ) :该子系统为创建和访问数据库文件提 供基本的支持。b e r k e l e yd b 提供了以下四种存储访问方式:动态哈希表、b 树、 定长记录( 队列) 和基于记录号的存储方式,应用程序可以从中选择最适合自 己的存储组织结构,并且可以在同一个应用程序中对不同存储类型的文件进行 混合操作。动态哈希表适合于关键词完全确定,且数据量比较大的应用场合, 这种方式不支持用近似的关键词来操作数据库;b 树适用于有规则的查询,比如 给出关键词的起j 卜范围,查询这个范围内的关键词对应的记录,采用该存储方 式时关键词在磁盘上是连续存放的,以减少磁盘访问操作:当无法为需要存储 的数据归纳出对应的关键词时,可采用基于记录号的存储方式,数据库将每条 记录所对应的记录号作为该记录的关键词,记录号是自动生成的;当需要按创 建记录的次序来处理记录时,则可采用定长记录( 队列) 的存储方式,先创建 的记录先处理。在没有事务管理的情况下,该子系统中的模块可单独使用,为 应用程序提供快速高效的数据存取服务。 2 、内存池管理子系统( m e m o r yp 0 0 1 ) :该子系统实际上就是b e r k e l e yd b 所 使用的通用共享内存缓冲区,这块共享缓冲区允许不同的进程以及进程内的不 同线程共享数据库的访问入口,负责将修改后的页写回文件和为新调入的页分 9 第二章嵌入式数据库 配内存空间。内存池管理子系统适用于灵活的、基于页面的、带缓冲的文件共 享访问的应用。该子系统可以被应用程序单独使用。 3 、事务子系统( t r a n s a c t i o n ) :该子系统为b e r k e l e yd b 提供事务管理功能, 保证操作的原子性、一致性和孤立性。它将对数据库的一组修改当作原子单位 来对待,这一组修改要么都实施,要么都不实施。事务子系统使用两段锁技术 和先写日志策略来保证数据库数据的正确性和一致性,它也可以提取出来单独 被应用程序使用,来对应用程序自身的数据更新进行事务保护。事务子系统适 用于对需要事务保证的数据进行修改的场合。 4 、锁子系统( l o c k i n g ) :锁子系统提供进程之间以及进程内部的并发管理机 制,为系统提供多用户读取和单用户修改同一对象的共享控制。存取管理子系 统可利用锁子系统获得对页或记录的读写权限,事务子系统利用锁子系统来实 现多个事务的并发控制。该子系统也可被应用程序单独使用。 5 、日志子系统( l o g g i n g ) :日志子系统采用的是先写日志的策略,来支持事 务子系统进行数据恢复,保证数据一致性。它一般只用于事务子系统的调用模 块,而不单独被其它应用程序使用。 各子系统之间的关系如图2 1 所示。 图2 1b e r k e l e yd b 的子系统图 应用程序向存取管理子系统和事务子系统发出调用,存取管理子系统和事 务子系统依据需要再向锁子系统、内存池管理子系统和日志子系统发出调用。 值得注意的是,这些底层的子系统可以独立出来被应用程序单独使用。例如, l o 第二章嵌入式数据库 内存池管理子系统可以被一个仅需要共享内存池缓冲的应用程序使用,而与 b e r k e l e yd b 其它子系统没有关系;又例如,锁子系统也可以被一个应用程序单 独调用来完成它所需的并发控制。因此应用程序在开始的时候可以指定哪些数 据管理服务将被使用,可以全部使用,也可以只用其中的一部分。如果一个应 用程序需要支持多用户并发操作,但不需要进行事务管理,那它就可以只用锁 子系统而不用事务子系统。有些应用程序可能需要快速的、单用户的、没有事 务管理功能的b 树存储结构,那么应用程序可以选择不使用使锁子系统和事务 子系统。这种灵活的配置方式很好地体现了嵌入式应用中“各取所需,物尽其 用 的原则,满足嵌入式开发的不同需求。 2 3 2b e r k e i e yd b 的技术特性 b e r k e l e yd b 是一个非常适用于嵌入式应用领域的数据库,能运行在大部分 的u n i x & l i n u x 系统,w i n 3 2 系统以及多种嵌入式操作系统上,在3 2 位机和6 4 位机上均能运行,它主要有以下特性: ( 1 ) b e r k e l e yd b 是一个轻量级嵌入式数据库【33 1 ,这里的“嵌入式”不仅是 指它适用于在嵌入式系统中应用,而且是指b e r k e l e yd b 直接连接到应用程序内 部,和应用程序运行在同一地址空间。传统数据库一般作为独立服务器工作, 而b e r k e l e yd b 是软件开发库,开发者将它嵌入到自己的应用程序中,应用程序 本身就是一个服务器,而只是利用嵌入式数据库开发来实现定制的数据库逻辑, 避免了与应用服务器之间的进程间通信( i p c ) 开销,因此b e r k e l e yd b 具有较高的 运行效率,适用于资源受限的嵌入式系统。 ( 2 ) b e r k e l e yd b 不提供s q l 查询层,而是使用a p l 来操作,避免了对s q l 语句的分析和优化所带来的系统资源消耗。某些传统数据库也提供a p i ,但这种 a p i 是在比较占用资源的s q l 接口层之上实现的,而b e r k e l e yd b 提供的c 语 言a p i 是真正的本地函数接口,直接对数据库进行操作,简洁高效。 ( 3 ) b e r k e l e yd b 不是关系型数据库,它甚至没有特定的数据组织模型,并不 “认识存储在其中的数据,应用程序无需把自己的数据类型转换成数据库所 支持的类型。b e r k e l e yd b 所管理数据的逻辑组织单位是若干个独立的或有一定 关系的数据库( d a t a b a s e ) ,每个数据库由若干记录组成,这些记录全都被表示成 ( k e y ,d a t a ) 对的形式,以可变长的字节串来存储。记录也可存储图像、音频等大 第二章嵌入式数据库 文件,这些大文件被数据库按页面大小分成许多块存储,当需要的时候数据库 将它们重新组装。 ( 4 ) 嵌入式开发平台的存储机制多种多样,没有统一标准。b e r k e l e yd b 很 好地解决了这个问题,它不直接管理物理存储设备,无需为日志和数据库文件 预先分配磁盘空间,而是通过文件系统来访问存储器,所有的日志和数据库文 件都是本地文件,如有需要,本机上的任何其他应用程序都可以直接访问这些 文件,为开发者提供方便。 ( 5 ) b e r k e l e yd b 虽然是轻量级的嵌入式数据库,同样提供了可靠的数据保护 和恢复功能,它采用两段锁技术和先写日志策略来保证数据的一致性和可靠性, 结合数据库日志文件能够从灾难性的错误中恢复数据。通过配置可以让b e r k e l e y d b 在初始化时自动恢复数据,这点对于经常意外重启动的嵌入式设备很有用, 能够无需用户的干预而自动保证数据库系统长期稳定地运行。 ( 6 ) 传统的大型数据库强调的是数据的吞吐量,而嵌入式数据库由于系统资 源受限,在满足需求的前提下更强调数据库运行时的内存占用空间要尽量小。 b e r k e l e yd b 运行时依据不同情况大约需要7 5 k b - - 3 0 0 k b 的内存空间,如果应 用程序只采用动态哈希表、b 树、基于记录号的存储这三种存储访问方式中的 一种,大概需要7 5k b 的内存空间;如果三种存储访问方式都用到,需要1 1 0 k b 左右的内存空间,再加上数据恢复功能,以及其它优化性能的选项,整个b e r k e l e y d b 占用的内存大概在3 0 0 k b 左右,能够轻松满足大多数嵌入式设备的要求。 2 3 3b e r k e i e yd b 数据访问算法 在数据库领域中,数据访问算法对应了数据在硬盘上的存储格式和操作方 法。在编写应用程序时,选择合适的算法可能会在运算速度上提高一个甚至多 个数量级。大多数数据库都选用b + 树算法【3 4 1 ,b e r k e l e yd b 也不例外,同时还 支持h a s h 算法、r e c n o 算法和q u e u e 算法。 ( 1 ) b + 树算法。b + 树是一个平衡树,关键字有序存储,并且其结构能随数据 的插入和删除进行动态调整。为了代码的简单,d b 没有实现对关键字的前缀码 压缩。b + 树支持对数据查询、插入、删除的常数级速度。关键字可以为任意的 数据结构。 ( 2 ) h a s h 算法。d b 中实际使用的是扩展线性h a s h 算法( e x t e n d e dl i n e a r 1 2 第二章嵌入式数据库 h a s h i n g ) ,可以根据h a s h 表的增长进行适当的调整。关键字可以为任意的数据 结构。 ( 3 ) r e c n o 算法。要求每一个记录都有一个逻辑纪录号,逻辑纪录号由算法本 身生成。实际上,这和关系型数据库中逻辑主键通常定义为i n ta u t o 型是同 一个概念。r e c n o 建立在b + 树算法之上,提供了个存储有序数据的接口。记 录的长度可以为定长或不定长。 ( 4 ) q u e u e 算法。和r e c n o 方式接近,只不过记录的长度为定长。数据以定 长记录方式存储在队列中,插入操作把记录插入到队列的尾部,相比之下插入 速度是最快的。 对算法的选择首先要看关键字的类型,如果为复杂类型,则只能选择b + 树 或h a s h 算法;如果关键字为逻辑记录号,则应该选择r e c n o 或q u e u e 算法。 当工作集关键字有序时,b + 树算法比较合适;如果工作集比较大且基本上关键 字为随机分布时,选择h a s h 算法。q u e u e 算法只能存储定长的记录,在高的 并发处理情况下,其效率较高;如果是其它情况,则选择r e c n o 算法,r e c n o 算 法把数据存储为平面文件格式。 2 3 4 基于b e r k e l e yd b 的程序设计 b e r k e l e yd b 没有数据库服务器的概念,只需要调用一些简单的a p i 就可以 完成对数据的访问和管理,比常用的数据库管理系统( 如m y s q l 和o r a c l e 等) 具有更快的访问速度且占用更小的空间。应用程序不需要事先同数据库服务建 立起网络连接,而是通过内嵌在程序中的b e r k e l e yd b 函数库3 5 1 来完成对数据的 保存、查询、修改和删除等操作。数据库的部分程序设计如下: ( 1 ) 打开数据库:打开数据库分两个步骤,首先调用d bc r e a t e 函数创建一 个d b 结构的句柄,然后再用d b - o p e n 函数来执行真正打开数据库的操作。 严d b 的函数执行完成后,返回0 代表成功,否则失败毒 v o i dp r i n t _ e r r o r ( h a tr e t ) i f ( r e t ! = o ) p r i n t f ( ”e r r o r :s n ”d b _ s t r e r r o r ( r e t ) ) ; 1 3 第二章嵌入式数据库 产数据结构d b t 在使用前,应首先初始化,否则编译可通过但运行时报参 数错误木 v o i di n i t _ d b t ( d b t 幸k e y , d b t 木d a t a ) m e m
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年用户侧储能行业分析报告及未来发展趋势报告
- 2025年乙肝药物治疗试题及答案
- 2025年大学宪法考试题及答案
- 本溪市明山区网格员考试练习题(附答案)
- 2026年安全用电答题题库选择题及答案解析
- 铁岭县辅警招聘公安基础知识题库附含答案
- 2025年四级(中级)餐厅服务员职业技能鉴定《理论知识》真题卷附答案
- 2026年教师课堂达标理论考试题及答案
- 2025年新版大数据建模题库及答案
- 2026年福陆电工考试题及答案
- 初升高语文专项知识点巩固练习题库
- 《智慧水电厂建设技术规范》
- 企业行政人员安全培训课件
- 服用叶酸知识培训课件
- 2025年《临床输血技术规范》
- 2025届上海市徐汇区、金山区、松江区高一物理第二学期期末统考模拟试题含解析
- 上海选调生面试题和考官用题本及答案21套
- 项目部处罚管理制度
- 三方代收代付协议模板
- 新版中国食物成分表
- 路灯基础现浇混凝土检验批质量验收记录
评论
0/150
提交评论