刘逢春__嵌入式高光谱数据库的开发及目标分类应用研究.docx

上传人:小飞机 文档编号:1754068 上传时间:2022-12-17 格式:DOCX 页数:68 大小:1.57MB
返回 下载 相关 举报
刘逢春__嵌入式高光谱数据库的开发及目标分类应用研究.docx_第1页
第1页 / 共68页
刘逢春__嵌入式高光谱数据库的开发及目标分类应用研究.docx_第2页
第2页 / 共68页
刘逢春__嵌入式高光谱数据库的开发及目标分类应用研究.docx_第3页
第3页 / 共68页
刘逢春__嵌入式高光谱数据库的开发及目标分类应用研究.docx_第4页
第4页 / 共68页
刘逢春__嵌入式高光谱数据库的开发及目标分类应用研究.docx_第5页
第5页 / 共68页
点击查看更多>>
资源描述

《刘逢春__嵌入式高光谱数据库的开发及目标分类应用研究.docx》由会员分享,可在线阅读,更多相关《刘逢春__嵌入式高光谱数据库的开发及目标分类应用研究.docx(68页珍藏版)》请在三一办公上搜索。

1、浙 江 省 硕 士 学 位 论 文论文题目:嵌入式高光谱数据库的开发及目标分类应用研究授予学位学科专业:控制工程学科专业代码:085210研究方向:智能信息融合与处理省编号:摘 要高光谱遥感技术在过去三十年中取得了飞速的发展。它已经成为人们获得地物等感兴趣目标信息尤为重要的手段,在民用与军用领域均发挥着巨大的作用。高光谱遥感具有数据波段众多,波段间相关性强等特点,这为数据处理技术提出了更高的要求。由于高光谱遥感数据特有的“图谱一体化”特性,因此收集并积累各类不同地物的光谱响应数据信息,即光谱指纹,一直以来都是高光谱遥感影像领域的基础研究工作和不可或缺的重要环节。而目前较成熟的光谱数据库系统都是

2、大型数据库系统,可移植性差,使用环境受限。因此,对创建轻量型可移植嵌入式光谱指纹数据库系统作了研究,并通过光谱数据库系统中存储的光谱指纹样本,对未知高光谱遥感数据进行目标识别。同时,将RX异常检测算法、支持向量机算法移植到ARM平台上,与创建的嵌入式数据库协同使用,实现嵌入式平台下无人工干预的高光谱遥感目标分类,数据管理一体化。主要工作如下:(1) 介绍了高光谱遥感的研究背景,进而阐述了研究内容和研究目的。在此基础之上,重点综述了光谱数据库系统的概念及发展现状。结合研究内容,着重介绍目前流行的嵌入式数据库系统。(2) 针对本文数据库系统开发的需要,介绍了嵌入式环境下的数据库系统知识,对比常用嵌

3、入式数据库系统,选择SQLite嵌入式数据库。并对SQLite数据库系统的体系结构、接口函数、事务和锁以及SQLite的SQL语句进行研究。最后在ARM开发板上实现SQLite数据库的移植,在ARM环境下对SQLite数据库进行测试。(3) 借鉴学习国内外成熟光谱数据库系统,介绍了嵌入式光谱数据库系统开发的设计思路。搭建开发环境,交叉编译Linux下GUI界面开发Qt/E,并移植到ARM开发板。从界面设计、数据表设计和功能设计三个方面详细介绍了数据库系统的开发过程。(4) 从已建立的数据库系统中提取样本,运用RX异常检测算法,通过光谱角映射和支持向量机对高光谱遥感数据进行目标识别,分析总结仿真

4、结果,并移植RX异常检测算法和支持向量机算法到ARM嵌入式平台。关键字:高光谱遥感,嵌入式数据库,光谱数据库,RX异常检测,支持向量机ABSTRACTHyperspectral remote sensing technology has achieved rapid development in the past 30 years.It has become a particularly important means that people obtain feature information of which theyre interested in objects, and plays

5、a huge role in both the civil and military fields.Hyperspectral remote sensing technology with features such as numerous data bands,inter-band correlation, puts forward higher requirements for data process.Because hyperspectral remote sensing data has the characteristics of integration of diagram an

6、d spectrum, it has always been a basic research work indispensable important segment in the field of hyperspectral remote sensing image to collect and accumulate information from all kinds of different ground objects spectrum response data. But at present most of the mature spectral database system

7、is too large, poor portability, limited by the environment. Therefore, this paper makes a research on creating a lightweight portable embedded database system for spectrum curve, classifies target of unknown hyperspectral remote sensing data through samples stored in the database system. At the same

8、 time, the RX anomaly detection algorithm, support vector machine algorithm is transplanted to the ARM platform, working with embedded database cooperatively, realizing hyperspectral remote sensing target classification and data management on the embedded platform without manual intervention. The ma

9、in work is as follows:(1) This paper introduces the background of hyperspectral remote sensing, and expounds the research content and research purposes. On this basis, this paper focuses on introducing the concept of spectral database system and summarizing its current situation of the development.

10、Combined with the research content, this paper introduces some popular embedded database system at present.(2) Aimed at the needs of developing the database system, this paper introduces the knowledge of embedded database system. Comparing to commonly used embedded database system, this paper choose

11、 the SQLite database system. This paper researches the architecture, the interface functions, the transactions, the lock and SQLite SQL statements of SQLite. Finally, this paper transplants SQLite on the ARM development board, and tests SQLite under the ARM environment.(3) Using domestic and oversea

12、s mature spectral database system for reference, the design idea of embedded spectral database system development was introduced in this paper. The development environment was built and the paper cross-compiles Linux GUI interface Qt/E. Then, they were transplanted to the ARM development board. The

13、development process of database was introduces in detail from the aspects of interface design, data table design and function design.(4) Samples were extracted from the established database system and anomaly detected using RX. And spectrum angle matching and support vector machine were applied for

14、target identification for hyperspectral remote sensing data. Then, simulation results were analyzed and summarized. Finally, RX anomaly detection algorithm and support vector machine algorithm were transplanted to the ARM embedded platform.Keywords:Hyperspectral remote sensing, embedded database sys

15、tem, spectral database system, anomaly detection, support vector machine目 录摘 要IABSTRACTIII目 录V第一章 绪论11.1 研究背景11.2 研究内容及目的21.3 光谱数据库系统概念及发展现状21.4 嵌入式数据库发展现状5第二章 嵌入式数据库系统72.1 引言72.2 嵌入式数据库系统及特点72.3 SQLITE嵌入式数据库92.3.1 SQLITE数据库系统及特点92.3.2 SQLITE层次调用与体系架构102.4 SQLITE的C语言APIS132.4.1 连接与断开连接132.4.2 执行查询14

16、2.4.3 准备查询142.5 SQLITE事务和锁162.6 结构化查询语句SQL172.7 SQLITE在ARM-LINUX平台上的实现182.8 本章小结20第三章 嵌入式高光谱光谱指纹数据库213.1 引言213.2 嵌入式光谱数据库系统开发213.3 LINUX多线程编程223.3.1 线程的概念223.3.2 LINUX同步机制223.4 运行环境搭建243.4.1 QT/E介绍243.4.2 QT/E在ARM9开发板上的移植263.4.3 集成开发工具QTCREATOR安装配置273.5 系统设计与实现293.5.1 主界面设计293.5.2 数据库表设计303.5.3 功能设计

17、333.6 本章小结38第四章 基于光谱指纹数据库的目标识别394.1 引言394.2 经典RX异常检测算法394.3 支持向量机模型404.4 仿真实验424.5 算法移植484.5.1 RX异常检测算法移植484.5.2 支持向量机算法移植514.6 本章小结53第五章 总结和展望545.1 总结545.2 展望54致 谢56参考文献57附 录60第一章 绪论1.1 研究背景遥感技术兴起于20世纪60年代,由美国海军科学研究院教授E L Pruitt1提出,特别是随着各国对太空开发的重视,遥感技术得到迅速发展,遥感(Remote Sensing)是在非接触的条件下,获取目标的状态或信息的方

18、法。通常是指利用航拍传感器,对地物的某些信号(电磁波等)进行检测,并对感兴趣的信号特性进行分析、辨识的技术2,3,遥感原理图如图1.1所示。图1.1 遥感原理图遥感数据的捕获以及遥感图像的形成,均依赖于成像光谱传感器,在遥感领域称之为遥感器(Remote Sensor)。从上世纪80年代开始,随着CCD(Change Coupled Device)等电耦合器件的开发和研制,遥感成像技术不断发展4-6。根据遥感器光谱分辨率的不同,可将遥感图像分为3类7:(1) 当光谱分辨率的数量级在范围内,称为多光谱遥感(Multispectral Remote Sensing),该类遥感通常只在可见光及近红外

19、光谱范围内有数个波段;(2) 当光谱分辨率的数量级在范围内,称为高光谱遥感(Hyperspectral Remote Sensing),该类遥感通常在可见光及近红外光谱范围内有几十甚至几百个波段;(3) 当光谱分辨率的数量级在范围内,称为超光谱遥感,波段数目可达上千。如今,高光谱遥感技术由于其技术较成熟,光谱分辨率较高,在以上三类遥感成像中处于遥感技术的前沿,是遥感技术领域的热门研究方向,得到越来越多关注。高光谱遥感的出现,是理论和技术上的创新,高光谱遥感技术使得光谱分辨率达到纳米级别,为人们利用高光谱遥感影像进行地物目标识别提供了丰富的信息。与传统遥感影像不同,高光谱遥感影像将地物空间特性的

20、图像信息和地物光谱特性的光谱信息结合在一起,具有图谱一体化的特性8。由于高光谱较高的光谱分辨率,能够提供连续波段的光谱曲线,因此,高光谱遥感能充分利用窄波段的信息,探测出宽波段影像中难以检测出的地物,在土地资源、生态环境、城市交通、大气污染、海洋资源勘探、农业等方面9,有着十分广阔的应用前景。1.2 研究内容及目的不同的地物类型对应不同的光谱特征,这一特性成为人们提取地表信息和认识、识别地物的主要手段和思想10。高光谱成像仪在一定条件下测绘得到各类地物的光谱指纹数据,光谱数据库就是这些地物光谱指纹数据的集合。对快速实现感兴趣未知地物匹配和提高高光谱遥感分类水平有着极其重要的作用。因此,运用计算

21、机技术建立地物光谱数据库,存储数据、管理数据并对所存储的数据进行光谱指纹信息分析是十分必要的。目前,在该领域已经有许多研究机构在长期研究工作的基础之上,成功建立了一些较成熟的光谱数据库。但由于这些光谱数据库多为大型数据库,建立这类数据库需投入大量人力、物力资源,且可移植性极差,所以本文在借鉴前人研究成果的基础上,吸取前人的长处,开发了轻量型可移植性很强的嵌入式光谱数据库系统,该嵌入式光谱数据库系统最大的特点是轻量性,可移植性很强,能移植到各类应用平台尤其是星载平台,大大节约空间资源。并从已建立的光谱指纹数据库提取样本,通过RX异常检测算法、光谱角映射算法和支持向量机算法,对未知高光谱遥感数据进

22、行目标分类和识别。并对RX异常检测算法和支持向量机算法进行移植,集成到嵌入式平台上,与嵌入式光谱指纹数据库系统协同使用,同时验证了光谱指纹数据库的实用性与开发价值。1.3 光谱数据库系统概念及发展现状收集并积累各类不同地物的光谱指纹数据信息,一直以来都是高光谱遥感影像领域的基础研究工作,并且是不可或缺的环节。在发展遥感影像处理的新方法,提高影像识别分类水平方面起着重要的作用。随着高光谱遥感影像技术的飞速发展,光谱数据不断剧增,为不同地物光谱指纹数据建立数据库有了更高的要求。光谱指纹数据库的建立,并由数据库来管理这些光谱响应数据,是遥感影像技术发展的又一重要表现。高光谱遥感数据拥有“图谱一体化”

23、的特性,融合了传统遥感影像的图像维和光谱维的信息,能同时获得地物空间特征和每个地物连续的光谱特征信息,从而可以根据所得到地物的光谱特征进行地物的识别分类。近年来,随着高光谱遥感影像技术的飞速发展,世界各国相关领域的工作者进行了大量测绘实验,得到大批高光谱遥感影像数据,获得了丰富的资料。为了提高对高光谱遥感影像数据的利用率,方便对其进行管理,高光谱遥感影像数据库管理系统得到了快速发展。60年代末至70年代初,美国NASA建立的地球资源信息系统(The NASA Earth Resources Spectral Information System ERSIS)9是第一个较完整的高光谱遥感影像数据

24、库,该系统收集了土壤、植被、水体和矿物四类不同地物11的光谱特征数据。随后,美国JPL实验室建立了包含160种矿物的光谱库,澳大利亚CSIRO,日本地质调查所也相继建立了高光谱遥感影像光谱数据库,并投入实际应用,且获得良好效果。我国在这方面也取得了喜人的成绩,中科院遥感所高光谱室经过多年积累,建立了面向对象的光谱数据库系统,存储了数千条经过统一测试的地物光谱特征数据,该数据库系统为今后机载、星载成像光谱仪的校正和定标等提供良好的参照。光谱数据库的发展起源于对不同地物光谱特性的研究,上世纪三四十年代左右,苏联专家对多类地物可见光的光谱响应进行测绘,1947年,出版了世界上首部多类地物光谱响应特性

25、专著自然物体光谱的反射特征。六十年代,美国密执安大学也开始进行大规模地物光谱指纹数据的测绘,且地物光谱的波段扩大到中红外,甚至扩大到微波,到1971年,在全美国范围内建立起289个试验场地。在高光谱遥感影像技术方面,国外起步比国内早一些,发展也更快一些,国外各大研究人员已成功建立了几个光谱数据库系统,主要有:IGCP-264光谱数据库:该光谱数据库是1990年美国研究人员建立,收集了5种成像光谱仪测量的共5个光谱数据库,分别包括科罗拉多对地研究所改进的双光路反射成像光谱仪Beckman5270所测的光谱指纹数据,其光谱特征分辨率3.8nm,重采样为1nm分辨率;由SCES采用GER公司的SIR

26、IS野外成像光谱仪所测的光谱指纹数据;由SCES采用野外成像光谱仪PIMAII在室内实验室条件下所测的光谱指纹数据,其光谱特征分辨率为2.5nm;由布朗大学采用Relab成像光谱仪所测的光谱指纹数据,其光谱特征分辨率为2-13nm;由USGS采用Beckman成像光谱仪所测的光谱指纹数据,其光谱特征分辨率在可见光范围内为0.2nm,在近红外范围内为0.5nm。John Hopkins大学光谱数据库:九十年代,美国John Hopkins大学采用FTIR和Beckman成像光谱仪测量了包括各种矿物岩石、植被、水体、土壤、雪以及人工目标在内的多种地物的光谱指纹,光谱特征分辨率范围区间为2.08-2

27、5微米。并且在2-25微米范围内的热红外和植被光谱数据库中,用户可以对物质成份、植被和热红外进行分析。JPL实验室的ASTER光谱数据库:其采用Beckman5240成像光谱仪,测量了160种矿物岩石在多微粒范围内的光谱特征,可以用来研究光谱与微粒尺度的关系。光谱特征分辨率在400-800nm区间范围内是1-4nm,800-2200nm区间范围内小于20nm,2200-2500nm区间范围内是20-40nm。此外,JPL还对样品采样、成份分析和样品纯度进行了规范。此外,在许多商业遥感影像软件中也具有高光谱数据库模块功能,比如ENVI软件中,具有光谱管理,光谱编辑及光谱分析模块,采用的是USGS

28、光谱数据库、JPL物质成份光谱库以及John Hopkins大学热红外植被光谱库,用户可以根据自身需求,查看标准光谱数据库和建立自己的光谱数据库。PCI软件在高光谱分析模块中提供了USGS光谱数据库的高光谱地物数据库。ERDAS软件同样包含了JPL,USGS和用户自定义的光谱数据库。这些软件和相应光谱数据库在各个应用领域中都发挥了巨大作用,在地质学中,光谱数据库可定义岩石或矿物的类型,利用光谱角映射(SAM)等方法对目标像元进行识别后,便可探测到特定岩石或矿物。充分显示了光谱响应数据库在高光谱遥感影像技术发展领域不可缺少的地位。但是,国内在光谱数据库建立方面起步比较晚,始于七十年代腾冲航空的遥

29、感试验,在实施遥感飞行实验的同时,进行了地物光谱测量。接着,在八十年代,中科院的长春光机所在长春建立净月坛试验场,该试验场内实验均在室内环境下进行。可在室内环境下模拟地物样品对太阳光的发射,并从多个角度进行测量。水利部的遥感中心建立了湖南洞庭湖试验场,对洪涝灾害进行监测。接着又在宁芙建立试验场,发展本国资源卫星。1982年,中科院主持制定了地物光谱测试规范,出版中国地球资源光谱信息资料汇编,共包括岩石矿物、土壤、水体和农作物植被等1千多条光谱指纹数据。“七五”期间,在“高空遥感实用系统”子课题的支持下,在全国范围内建立了13个试验场,对地物光谱收集和分析作全面规范,在各方面的共同努力下,建立了

30、包括矿物岩石、土壤、水体、农作物植被和人工目标的五大类地物光谱数据库,包含了300多种达15000条光谱指纹数据的地物光谱数据库。最后,由中科院安徽光机所建立了全国地物波谱特性数据库,另外,在八十年代末,中科院遥感所出版中国典型地物波谱及其特征分析,书中共计给出多达277种典型地物光谱响应数据。进入九十年代,地物光谱测绘更是得到突飞猛进的发展,自1994年起至2000年,多次在敦煌、青海湖试验场进行大量地物光谱测绘,积累了大量数据。“九五”期间,在科工委卫星应用重点项目子项目“典型下垫面辐射光谱特性数据库”的支持下,我国建立基于PC机的地物光谱指纹数据库,不仅具有图像显示功能和光谱响应曲线查看

31、功能,更有数据分析和数据交互功能。另外,该数据库系统增加了超光谱地物成像光谱仪获得的不同类水体的光谱特征数据,编写了典型下垫面辐射光谱特性数据库的设计报告等。在其他各重点项目的支撑下,相继建立了目标/背景光谱特征数据库,基于Foxpro的高光谱数据库,编写了中国污染水体光谱特征一书。经过多方共同努力,我国在光谱数据库建立方面取得了骄人的成绩。1.4 嵌入式数据库发展现状嵌入式数据库又被称为嵌入式移动数据库12,指的是存储于嵌入式系统中能对其统一管理的数据集合。嵌入式数据库内的数据按照特定模型描述、存储。数据能被多用户或多应用程序共享,且数据独立性高,冗余度小。数据按照以上特性组织起来,由嵌入式

32、数据库系统对其统一管理。随着嵌入式数据库在智能家电、移动计算环境、工业控制以及POS网络等各个领域的应用,嵌入式数据库技术得到普遍关注和快速发展。国内外相关机构均投入大量人力物力对其进行深入研究,许多数据库厂商也调整方向,把嵌入式数据库作为重点发展方向12。国内外发布了多款嵌入式数据库系统,主要有以下几种:(1) Sybase SQL Anywhere Studio13该数据库是Sybase公司研发的产品,发布了UltraLite。目的是为了方便开发数据驱动的嵌入式系统。UltraLite能够提供灵活、高性能的数据库技术,UltraLite的分析器只把需要的表、列、索引构建成最优数据库,查询速

33、度和更新速度都很快,且仅占50K内存。(2) Pervasive SQL14该数据库是Pervasive公司研发的产品,其最大的特点是运行时所占内存很小。共发布了三个不同版本,分别应用在移动电话、智能卡和嵌入式系统三个不同方面。(3) Berkeley DB15该数据库是美国Sleepycat Software公司研发的产品,该数据库系统基于磁盘文件,是一款开源的嵌入式数据库程序库。它通过简便的API函数接口实现存取数据和管理数据,不存在数据库服务器,库文件可直接与程序相连接。而且还具有事务保护和可伸缩性的特点,性能较高。(4) RDM Embedded16该数据库是Raima公司研发的产品,

34、主要针对无线市场而设计,是一款嵌入式数据库。这款数据库拥有一个高效、轻便、安全的数据库引擎,各类操作和数据库控制均由C语言函数库实现。同时,还支持对关系型数据库键值的索引、顺序索引和网络模型set索引等17。二次开发灵活性高,开发人员能高效的建立复杂的数据模型,实现高性能数据管理。(5) SQLite18SQLite是一款轻量级嵌入式数据库产品,是一款符合SQL92的关系型数据库。SQLite在运行时内嵌到程序中,与应用程序使用同一个进程空间。运行时所占用的嵌入式系统资源极少,由于其轻量型特点,又是一款开源数据库,所以被广泛应用于嵌入式领域。除此之外,还有常见的嵌入式数据库产品有:Polyhe

35、dra、EmpressDB、eXtremeDB、Oracle BerkeleyDB和DB2 Satellite,以及H2、Mysql。第二章 嵌入式数据库系统2.1 引言嵌入式技术的日益发展,使其数据处理能力越来越强大,所处理的数据量也随着增大,嵌入式系统中数据管理问题便成为系统设计和开发的重要环节,所以需要对嵌入式系统中的数据进行管理,于是嵌入式数据库技术因运而生。本章的内容安排如下:首先第二节介绍了嵌入式数据库的概念和特点;第三节针对本文所选数据库SQLite进行具体介绍,介绍了SQLite数据库的体系架构;第四节介绍了SQLite数据库的C语言接口函数,SQLite所有的应用开发均基于此

36、接口函数;第五节介绍了SQLite事务和锁的概念;第六节介绍了结构化查询语句SQL,为开发带来极大方便;最后第七节移植SQLite数据库到ARM开发板,并在ARM环境下对SQLite数据库进行测试,测试成功。2.2 嵌入式数据库系统及特点嵌入式数据库系统(DBMS)是指独立运行在嵌入式系统平台中的数据库管理系统,支持移动计算,介于嵌入式操作系统和用户之间,以方便用户对数据进行管理的数据管理软件。通常将其与嵌入式应用程序结合在一起,运行在嵌入式操作系统中,用户或应用程序通过所建立的数据库管理系统访问嵌入式数据库。嵌入式数据库驱动结构图如图2.1所示:数据库存储器数据库硬件驱动芯片数据库软件驱动S

37、QL标准应用接口应用程序图2.1 嵌入式数据库驱动结构图通常,嵌入式数据库系统基于某确定的数据模型,可将嵌入式数据库系统分为网状型、层次型、面向对象型和关系型等19。由于嵌入式数据库系统独特的应用环境,因此需具备如下功能:(1) 内核结构微小。由于设备运行在嵌入式系统上,那么它的设备资源受到极大限制。嵌入式数据库系统必须紧缩系统结构且能满足应用需求,所以需要采用微型化技术实现。(2) 事务管理。嵌入式数据库系统应该能自动维护事务原子性、维护事务完整性等,并且能支持引用的完整性,支持实体的完整性20,所以嵌入式数据库系统应具备处理事务的能力。(3) 数据库管理。作为每类数据库系统的基本功能,嵌入

38、式数据库系统同样需要拥有数据库管理功能,应具备自动恢复功能,并具有数据备份和恢复功能,保证数据安全可靠。(4) 数据同步机制。嵌入式数据库系统中最重要的一个特点便是数据同步,系统通过复制数据,通过数据同步机制,保证数据一致性。相比传统数据库系统,嵌入式数据库系统的移动性强,需要频繁连接断开,可使用设备资源有限,并且网络条件复杂多样化,这些特点使得传统分布式数据库无法有效支持嵌入式数据库,又由于其较差的系统可靠性和安全性,必须对传统分布式数据库进行裁剪,改进和扩充。设计嵌入式数据库系统,期望能在对数据进行存储21时对系统影响和干涉达到最小,此外还应具备其他有别于传统数据库系统的特点。作为嵌入式数

39、据库系统,首先其必须具备嵌入性。其次,由于嵌入式系统较强的移植性,要求嵌入式数据库系统也要具备移植性。同样作为数据库系统,考虑到数据安全性问题,嵌入式数据库系统需要具备安全性。再者,由于嵌入式系统处理实际问题时需要对环境变化作出实时反应,这要求嵌入式数据库系统应具备良好的实时性,可靠性等。总而言之,由于嵌入式数据库系统运行平台的特点,嵌入式数据库系统主要具备以下特点:(1) 嵌入性。嵌入性是嵌入式操作系统的最基本特性,同样嵌入式数据库系统也必须具备这一特性。嵌入式数据库系统不仅可以嵌入到其它软件中,还可以嵌入到其它硬件设备中,只有具备了这一特性,数据库系统才能优先得到操作系统有限的资源,在最短

40、时间内对操作系统的请求做出响应。(2) 移植性。移植性在嵌入式应用领域显得尤为重要,由于嵌入式应用领域的广泛性,需采用不同的操作系统和不同的软件资源、硬件资源,嵌入式数据库系统的可移植性能够很好的消除这些差异,用户可以根据自身需求选择合适的嵌入式数据库系统。(3) 安全性。嵌入式设备是嵌入式系统中管理和处理数据的关键设备,因此,嵌入式数据库系统对数据存取的安全控制得更严格,需要对数据访问权限设置严格的控制,特别是某些隐私性很高的数据,因此,在用户数据安全受到威胁时,嵌入式数据库系统能够充分保证用户数据的安全。(4) 实时性。当嵌入式数据库系统嵌入在某种移动设备上,该设备对事件响应的实时性要求非

41、常高时,数据库设计得着重考虑实时处理问题,保证数据库响应事件的实时性。如果应用程序的请求时间过长而得不到响应,任务会在执行后得到错误的结果,从而降低其有效性。因此,嵌入式数据库系统在处理应用程序请求时,不仅要考虑及时性,更要在此前提下,保证结果的准确性。(5) 可靠性。正如 (3) 中提到,嵌入式设备是嵌入式系统中管理、处理数据的关键设备,嵌入式设备一般都具有很高的可移动性,没有固定的工作地点环境,得不到技术人员的现场技术支持,因此,嵌入式数据库系统需具备较高的可靠性。(6) 主动性。相对于“被动的”传统数据库系统,仅当用户和应用程序需要使用数据库系统时,才会对信息做出响应和处理。而嵌入式数据

42、库系统要求能主动监控当前信息,一旦当前信息发生变化,出现当前未存在状态时,系统自动响应该状态。因此,相比传统数据库系统22,嵌入式数据库系统不再是“被动的”,而是“主动的”。2.3 SQLite嵌入式数据库比较当前流行的嵌入式数据库系统,由表2.1可以看出,每款数据库都有自身独特的特点,不同的数据库适用于不同的应用环境。因此,开发人员应根据实际项目开发所对应的需求和应用环境,选择符合项目本身需求的数据库产品,既能满足特定数据管理和分析需求23,又不造成所选数据库产品资源浪费。根据开发嵌入式高光谱光谱指纹数据库轻量性、可移植性需求,选择SQLite为数据库系统24。表2.1 典型嵌入式数据库系统

43、比较数据库名Pervasive SQLRDMBerkeley DBSQLite数据库结构Client/ServerEmbedded LibraryClient/ServerEmbedded Library数据模型关系型关系型Key/Data型关系型索引B-树B-树B-树散列表B-树内存8-400kb400-500kb175kb150kb数据库接口ODBCJDBCADOC/C+ APIC/C+/Java APIODBCC/C+/JavaAPITCL、SQL2.3.1 SQLite数据库系统及特点2000年,D.Richard Hipp发布了首款开源关系型嵌入式数据库SQLite。SQLite以其

44、简单易用、可移植性强、轻便、可靠高效的特点而著称。在对数据库中数据进行管理时,SQLite能够为用户带来极大方便,同时将资源消耗减少到最低。在使用SQLite时,通常将SQLite内嵌到应用程序中,与应用程序共享进程空间,并不创建独立的数据库进程。但SQLite内部确实存在一个完整、独立的工作着的数据库引擎25。应用程序无需关注SQLite的内部实现,只需关注项目需求的功能和数据管理。SQLite支持大多数SQL92标准,提供多表创建、索引、原子事务、触发器创建和视图等驱动程序和用户接口函数,还提供丰富的数据库系统接口,使用极其方便,效率高。SQLite采用高内聚性层次化结构设计,整个数据库系

45、统实现代码不到30000行C语言代码,由于其开源性,可以自由应用于各个领域,包括商业应用领域17。SQLite特性如下26:零配置。SQLite无需安装服务器和客户端,使用SQLite数据库系统和打开某一文件一样简单。无服务器。SQLite数据库系统由于其内嵌到应用程序中,所以无需安装独立的服务器和客户端,SQLite应用程序可直接访问数据库的存储文件。跨平台。SQLite数据库的应用,既与操作系统无关,也与具体的硬件平台无关,是一款跨平台数据库系统。原子事务。对于嵌入式应用程序多进程、多线程实现时,由于SQLite事务的ACID,允许多进程或多线程对其进行安全访问。高可靠性。SQLite提供

46、大量安全性测试代码,提供给开发者一个功能强大且只占开发者很小资源的数据库环境。轻量性。SQLite默认配置小于350K,使用时只需加载SQLite库即可,所需内存很小,通过调整,库的大小和内存使用空间可以更小。代码开源。可免费用于各种用途,甚至包括商业用途。SQL特性。SQLite支持多数SQL92标准特性。综合以上,本文选择SQLite作为嵌入式光谱指纹数据库系统。2.3.2 SQLite层次调用与体系架构SQLite数据库能被当前几乎全部程序设计语言调用,根据调用方式不同,可以分为驱动程序调用、脚本调用、标准接口调用等,但最终全部调用必须经过SQLite的APIs函数。SQLite内嵌入应

47、用程序中的特性,不仅使得每个进程能独立运行代码,而且是独立的数据库服务器。每个进程都代表其独立的服务器,由于SQLite能使用嵌入式操作系统的锁机制和同步机制17,因此,各个进程可以对同一个SQLite数据库文件进行安全操作,保证数据库内数据正确性。SQLite数据库层次调用如图2.2所示。DB嵌入式操作系统Perl程序C/C+程序Perl代码PerlDBI:SQLiteSQLiteSQLite APISQLiteSQLite APIC/C+代码Apache 程序PHP代码PHPPHP DataSQLiteSQLite API图2.2 SQLite嵌入式应用程序层次调用CoreInterfaceTokenizerParserCode GeneratorVirtual MachineB-TreePagerOS InterfaceDBBackendCompilerSQLite具有模块化的体系结构27,主要可以分为8个子系统,如图2.3所示。图2.3 SQLite体系结构图首先是接口模块,SQLite库均由C语言编写,在最新版本中,已有超过160个

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号