嵌入式数据库的现状和未来

上传人:lisu****2020 文档编号:245191898 上传时间:2024-10-07 格式:PPT 页数:39 大小:414KB
返回 下载 相关 举报
嵌入式数据库的现状和未来_第1页
第1页 / 共39页
嵌入式数据库的现状和未来_第2页
第2页 / 共39页
嵌入式数据库的现状和未来_第3页
第3页 / 共39页
点击查看更多>>
资源描述
,Click to edit Master title style,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,*,Click to edit Master title style,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,*,嵌入式数据库的现状和未来,1.,嵌入式数据库产生及运用的必然性,嵌入式系统在现代人的生活中随处可见,其中软件的比例越来越大,软件开发的投入也越来越大。,随着微电子技术和存储技术的不断发展,嵌入式系统的内存和各种永久存储介质容量都在不断增加。这也就意味着嵌入式系统内数据处理量会不断增加,那么大量的数据如何处理问题变得非常现实。人们不得不将原本在企业级运用的复杂的数据库处理技术引入到嵌入式系统当中去,应用于嵌入式系统的数据库技术也就应运而生。,但是,事情总是比想象复杂。在嵌入式的世界,无论是通讯领域的嵌入式设备还是其它领域中,各种中间环节逐渐设备化,成为独立的相对封闭的系统,对外留有接口。设备中数据种类和处理方法有一定的共同规律也有自己的特殊规律。这使得嵌入式数据库不能像企业级数据库那样几乎是一个解决方案走遍天下,而是有着很大的差异性。同时,也为嵌入式数据库的合理运用带来了挑战,这是嵌入式数据库差异化的一个基本原因。,随着嵌入式系统的扩大,嵌入式产品的开发不再像过去那样几个人就可以完成整个系统的开发,需要更多的人组成团队进行合作。嵌入式软件的需求分析和品质管理也变得越来越复杂,开发周期也逐渐拉长。为了解决这些问题,引进第三方成熟的中间件或解决方案也变得非常现实。专业的嵌入式数据库厂商也逐渐进入了人们的视野。因为,运用成熟的嵌入式数据处理中间件可以降低开发成本、缩短开发周期,使开发者能够将更多的精力放在业务逻辑的处理上,而不用花大把的金钱和精力来处理数据,对整个社会的资源也是一种节约。,2.,嵌入式数据库的基本特点,按照马克思的哲学理论,事物发展的进程可以用螺旋式上升来描述。嵌入式数据库和我们现在常见的企业级数据库的基本关系也是一个螺旋上升式的关系。虽然,从名字上看,二者有着太多的相似性,但却有着本质的根本性的区别。外在的形式的相似性,并不能代表二者的实现方式和运用方式的相似。恰恰相反,嵌入式数据库的实现和运用方式和企业级的数据库有着很大的区别。,在国外,嵌入式数据库已经发展了,30,多年,典型的代表是,Empress,嵌入式数据库。它的特点也基本代表了现阶段嵌入式实时数据库的基本特点。下面就介绍一下,Empress,嵌入式数据库所具有的区别于企业级数据库的几个主要特点。,嵌入性是嵌入式数据库的基本特性。嵌入式数据库不仅可以嵌入到其他的软件当中,也可以嵌入到硬件设备当中。,Empress,的方法之一就是使数据库以组件的形式存在,并发布给客户,客户只需要像调用自己定义的函数那样调用相应的函数就可以创建表、插入删除数据等常规的数据库操作。客户在自己的产品发布时,可以将,Empress,数据库编译到自己的产品内,变成自己产品的一部分,最终用户是感受不到数据库的存在的,也不用特意去维护数据库。,实时性和嵌入性是分不开的。只有具有了嵌入性的数据库才能够第一时间得到系统的资源,对系统的请求在第一时间内做出响应。但是,并不是具有嵌入性就一定具有实时性。要想嵌入式数据库具有很好的实时性,必须做很多额外的工作。,比如:,Empress,实时数据库将嵌入性和高速的数据引擎、定时功能以及防断片处理等措施整合在一起来保证最基本的实时性。当然,不同的场合实时性要求比较高时,除了软件的实时性外,硬件的实时性也是必须的,具体情况需要有具体和切实的解决方案,不能一概而论。,移动性是目前在国内提的比较多的一个说法,这和目前国内移动设备的大规模应用有关。可以这么说,具有嵌入性的数据库一定具有比较好的移动性,但是具有比较好的移动性的数据库,不一定具有嵌入性。比如,一个小型的,C/S,结构的数据库也可以运用在移动设备上,而具有移动性。但这个数据库本身是一个独立存在的实体,需要额外的运行资源,本质上讲和企业级数据库区别不大。所以不具有嵌入性,也基本上不具备实时性。,Empress,是优秀的嵌入式实时数据库,毫无疑问也是非常优秀的移动数据库。,伸缩性在嵌入式场合显得尤为重要。首先嵌入式场合硬件和软件的平台都是千差万别,基本都是客户根据需要自己选择的结果。,所以嵌入式场合的数据库必须能够支持非常多的平台,如,Empress,目前支持,6000,多种平台。同时,数据存储要支持常见的存储设备,如,CF/Flash/HD,等。多进程和多线程是必备的,现在的嵌入式系统已经远远不是当初的简单的编程,代码量增大,功能日益复杂,所以必然要支持多线程和多进程。,C/C+,和,SQL,接口的支持也是必备的,作为数据库当然要有大家熟悉的,SQL,,但同时不要忘记嵌入式场合用的最多的标准的,C/C+,接口。某种程度上说,嵌入式场合的数据比企业级应用的数据还要复杂,所以要支持各种类型的数据,如多媒体数据和空间数据等,要支持各种数据结构,除了传统的关系型,还要能处理树状结构和网状结构。,当然,肯定要具备企业级数据库所具有的一些共性。比如,一致性是数据库所必需的特性。通过事务、锁功能和数据同步等多种技术保证数据库内的各个表内的数据的一致性,同时也保证数据库和其他同步或镜像数据库内数据的一致性。安全性也是必不可少的。在保证物理信息本身的安全的同时,也要保证用户私有信息的安全。,3.80%,和,20%,嵌入式的应用场合和通用,PC,或服务器架构上的应用有着很大的不同。嵌入式系统中虽然也有不少的标准和组件,但种类繁多,环境千差万别,应用特殊化的地方非常之多。所以在嵌入式场合无论成熟的产品和组件一般只能够满足客户的,80%,的要求。余下,20%,的要求是需要产品提供方和客户共同来努力解决的特化的部分。当然,每个行业都有自己的特点,如果能够为某个行业提供完整的特殊化解决方案,那么在同行业中特化的部分也就不会再有这么高的比例。,这些特殊化工作比较多,下面列举一两个:,针对不同平台和环境的移植。虽然大部分操作系统都声称支持标准的,POSIX,接口,但实际上要在上面高效运行实时的嵌入式数据库还是比较困难的。有的实时性非常高的操作可能还需要直接调用,CPU,的处理指令。所以最好在客户使用嵌入式数据库之前,将数据库移植到客户的环境中去。对于那些部分支持,或者不支持,POSIX,标准的操作系统就只能做移植了。,在客户平台上做出性能测试报告和优化。嵌入式场合很多应用是非常苛刻的,所以必须保障嵌入式数据库在客户的平台上能够达到客户要求的性能指标。最佳的评价方就是嵌入式数据库的提供方在客户平台上做的性能测试报告,并在必要的地方对数据处理方式进行优化。,根据应用的要求实现个性化的功能。既然数据统一由数据库引擎进行管理,那么许多特殊的功能在这一层实现是最佳的选择。所以,嵌入式数据库进入一个新的行业以后,都会产生一些新的应用构件。这些构件直接和引擎打交道,同时对用户层留有接口。,这种差异化也导致了嵌入式数据库的技术支持变得比较重要,厂家一般都会提供有偿或无偿的技术支持。,4.,嵌入式数据库的分类,嵌入式数据库的分类方法很多,可以按照嵌入的对象不同分为:软件嵌入数据库、设备嵌入数据库、内存数据库。也有人将它们粗略的分为:嵌入数据库、移动数据库、小型的,C/S,结构数据库等。笔者更偏向于按照下面的方式进行划分:,小型,C/S,数据库。这种数据库其实是企业级数据库的一个缩小版,缩小以后可以在一些实时性要求不高的设备内运行。它只和操作系统有关,一般只能支持一些常见的移动操作系统,如,,Linux,和,WindowsCE,系列。,面向软件嵌入数据库。它将数据库作为组件嵌入到其他的软件系统中。一般用在对数据库的安全性、稳定性和速度要求比较高的系统中。这种结构资源消耗低,最终用户不用维护数据库,甚至感受不到数据的存在。,面向设备嵌入数据库。它将关系型数据库嵌入到设备当中去,作为设备数据处理的核心组件。这种场合要求数据库有很高的实时性和稳定性,一般运行在实时性非常高的操作系统当中。为了达到这些要求有的厂商采用关系型的数据结构,有的采用非关系型的数据结构。有时候甚至直接和硬件打交道。当然,这种结构在实时性要求不高的移动场合更能够胜任。,内存数据库。数据库直接在内存内运行,数据处理更加高速,不过安全性等方面需要额外的手段来保障。,当然,相同类型的嵌入式数据库肯定会有很多不同的版本。如,,Empress,具有上述所有种类的嵌入式数据库,且每种都有很多版本,就在一年前刚刚针对日本市场比较特殊的操作系统,iTRON,开发了一个专用的嵌入式数据库版本。,5.,嵌入式数据库的构件,嵌入式数据库包含的构件很多,不过大部分嵌入式数据库包含的构件差别是不大的,以,Empress,嵌入式数据库为例包括以下一些构件。,用户接口级构件。这些构件主要是方便用户对数据库进行操作和访问。如,标准的,C,语言应用程序接口(,CKERNELAPI,),;,标准的,SQL,语句(,EMBEDDEDSQL,),;JDBC/ODBC,接口,;,数据流处理(,DataStreaming,)、网络处理(,EmbeddedNetworkAPI,)以及数据恢复处理(,DataRecoveryAPI,)等。,应用级构件。该部分的构件包括一些主要应用所必需的构件,当然随着应用的不同,构件也是可以裁剪和添加的。,引擎级构件。主要包含事务处理(,Transaction,)、索引(,Index,)、多进程,/,多任务(,MultiProc/TaskAccess,)、可配置数据库内核(,ConfigurableDatabaseKernel,)、断电恢复管理(,PowerDownRecovery,)和存储介质引擎(,StorageEngine,)。但具体的,Empress,产品中远不止这么多。,6.,应用现状,嵌入式数据库在国外已经有,30,年的历史,应用领域也非常广泛,下面仅结合,Empress,嵌入式数据库的部分应用,介绍一些大家感兴趣的领域。,医疗领域,北美和欧洲的一些著名的厂商利用,Empress,的数据库开发过完整的电子病历系统,同时将数据库嵌入到医疗器械当中。如,血液分析装置、乳癌的检测装置、医学图像装置等。这样医疗系统的各个环节可以无缝地和各种医疗设备进行数据交流,并轻松地处理这些设备送过来的数据信息,在必要的时候共享给有权限查看的用户。,军事设备和系统,一些著名的军事机构和全球著名的武器生产商将,Empress,数据库运用到他们的系统控制装置、战士武器、军舰装置、火箭和导弹装置中。这些场合用的数据库有很多的安全设定和特化设定,基本上严格按照每个客户的技术标准的要求来特化引擎级构件。具体的应用级的构件由客户自己完成。,地理信息系统,地理信息包括的范围很广,在国外地理信息系统已经发展了很多年,国内这几年也逐渐加大对地理信息系统方面的投入。,Empress,在地理信息系统方面的应用非常广泛。如,空间数据分析系统、卫星天气数据、龙卷风和飓风监控及预测、大气研究监测装置、天气数据监测、相关卫星气象和海洋数据的采集装置、导航系统等等。几乎涉及到地理信息的方方面面。,工业控制,工业控制的一个基本方式是一个反馈的闭环或半闭环的控制方式。随着工业控制技术的发展,简单的数据采集方式和反馈方式基本上很难满足要求。采用,Empress,嵌入式数据库即能够进行高速的数据采集,也能够快速的反馈。正因为如此,在一些核电站监控装置、化学工厂系统监控装置、电话制造系统监控装置、汽车引擎监控装置及工业级机器人中有广泛应用。,网络通讯,随着互联网的发展,网络越来越普及,网络设备的处理能力越来越强、各种要求也越来越高,运用嵌入式数据库也成了必然趋势。我们现在日常见到的很多网络设备和系统都已经使用了嵌入式数据库。,Empress,在一些企业内部互联网装置、网络传输的分布式管理装置、语音邮件追踪系统、,VoIP,交换机、路由器、基站控制器等系统中都有应用。,空间探索,一些全球著名的机构将,Empress,用在一些著名的空间探索装置中,如大家熟知的一些太阳系内行星的探测器等。,消费类电子,目前在中国消费类电子比较火热,它包含的范围也非常广。如:个人消费相关的,PND,、移动电话、,PDA,、,SmartPhone,、数码产品等,;,信息家电和智能办公相关的机顶盒、家用多媒体盒、互联网电视接收装置、打印机、一体机等,;,还有汽车电子等。在欧美和日本,Empress,不仅在这些方面已经有不少的成功应用和技术积累,还正在和亚太的一些著名厂商积极展开新的合作和研发,目前已经取得实质性的成果。,当然,嵌入式数据库的应用应该远不止这么多,不过笔者只能结合自己的经验向大家介绍一些我了解的,同时也是关注比较多的领域。,7.,未来的展望,未来的世界是一个“普适计算”或“泛在计算”(,PervasiveComputing,或,UbiquitousComputing,)的世界。“普适计算”指的就是,“无论何时何地,只要您需要,就可以通过某种设备访问到所需的信息”。有一篇关于泛在计算领域著名的学者,坂村健先生的采访,标题就是“让整个世界变成一台巨型计算机”。,“普适计算”的世界将是继互联网之后给我们带来的另一个技术世界。在这个世界里有各种各样的设备(称为:计算节点),他们无时无刻地作为一个相对独立的单元参与整个世界的计算,能够满足人们日常生活的信息的需要。虽然这一天的到来还要依赖于微电子技术、,RFID,技术、智能传感器网络、软件技术等高、新、尖技术的发展。但我们可以预感到这一天会慢慢逼近。,从某种意义上讲,“普适计算”也可以描述成嵌入式设备处理大量信息的计算。这正是嵌入式数据库诞生和发展的原动力。所以,我可以很明显地感觉到嵌入式数据库必将广泛地被应用。,目前在中国,Internet,迅速普及和发展,并向个人和家庭不断扩展,使消费电子、计算机、通信(,3C,)一体化趋势日趋明显。中国的产业结构正在从低附加值的制造业向高附加值的高新技术领域过渡。尤其在一些发展较快的地区,如上海,必将抓住这个大的潮流加速自己的发展。我们几乎可以预见,在未来几年中国的消费类电子必然会蓬勃发展,应用的领域会越来越广泛,嵌入式数据库将会随着这些无处不在的计算节点而渗透到我们生活的每一个环节中。,目前,国内的许多嵌入式软件技术人员经过数据处理的困惑,经过开源的摸索,经过自主开发的尝试,许多开发者正逐渐意识到商用数据库的必要性。商用嵌入式数据库正在被逐渐被正确认识和接受。,三种主要的嵌入式数据库,嵌入式数据库与非嵌入式数据库的差别,在于运行模式的差别。并不是运行在嵌入式手持设备上的数据库就是嵌入式数据库,那种数据库我们通常称做嵌入式移动数据库。理论上讲,嵌入式设备一样可以运行网络数据库的服务端程序。嵌入式数据库是指运行在本机上、不用启动服务端的轻型数据库,它与应用程序紧密集成,被应用程序所启动,并伴随应用程序的退出而终止。从这个意义上讲,似乎所有单机数据库都可以算嵌入式数据库,比如,Access,,,Paradox,,,DBF,等等,因为它们都不用启动数据库服务器即可使用。然而,我们通常不将上述数据库归入嵌入式数据库,而只将它们归入“桌面数据库”,甚至“文件型数据库”,因为这些数据库的完备性、存储容量及性能方面存在较大的缺陷。,嵌入式数据库支持的数据都是,TB,文件级别,更由于嵌入式数据库具备高性能的特点,可以预测,单机数据库的未来将是嵌入式数据库的天下。,嵌入式数据库三雄目前,嵌入式数据库市场主要由三个产品分割:,SQLite,,,Birkeley DB,,,Firebird,嵌入服务器版,巧的是,这三个数据库产品都是开源软件。,SQLite,主页:,http:/www.sqlite.orgSQLite,诞生于,2000,年,5,月,这几年增长势头迅猛无比,目前版本是。,SQLite,的特点如下:,1,、无需安装配置,应用程序只需携带一个动态链接库。,2,、非常小巧,版本的,DLL,文件才,374KB,。,3,、,ACID,事务支持,,ACID,即原子性、一致性、隔离性、和持久性(,Atomic,、,Consistent,、,Isolated,、和,Durable,)。,4,、数据库文件可以在不同字节顺序的机器间自由的共享,比如可以直接从,Windows,移植到,Linux,或,MAC,。,5,、支持数据库大小至,2TB,。,Berkeley DB,主页:,Berkeley DB,是由美国,Sleepycat Software,公司开发的一套开放源码的嵌入式数据库的程序库,它于,1991,年发布,号称“为应用程序开发者提供工业级强度的数据库服务”,可谓是老牌悍将。,Sleepycat,现已被甲骨文,(ORACLE),公司收购。,Berkeley DB,的特点如下:,1,、嵌入式,无需安装配置。,2,、为多种编程语言提供了,API,接口,其中包括,C,、,C+,、,Java,、,Perl,、,Tcl,、,Python,和,PHP,等等。,3,、轻便灵活。它可以运行于几乎所有的,UNIX,和,Linux,系统及其变种系统、,Windows,操作系统以及多种嵌入式实时操作系统之下。,4,、可伸缩。它的,Database library,才几百,KB,大小,但它能够管理规模高达,256TB,的数据库。它支持高并发度,成千上万个用户可同时操纵同一个数据库。,Firebird,嵌入服务器版(,Embedded Server,),主页:,http:/www.firebirdsql.org,从,Interbase,开源衍生出的,Firebird,,充满了勃勃生机。虽然它的体积比前辈,Interbase,缩小了几十倍,但功能并无阉割。为了体现,Firebird,短小精悍的特色,开发小组在增加了超级服务器版本之后,又增加了嵌入版本,最新版本为,2.0,。,Firebird,的嵌入版有如下特色:,1,、数据库文件与,Firebird,网络版本完全兼容,差别仅在于连接方式不同,可以实现零成本迁移。,2,、数据库文件仅受操作系统的限制,且支持将一个数据库分割成不同文件,突破了操作系统最大文件的限制,提高了,IO,吞吐量。,3,、完全支持,SQL92,标准,支持大部分,SQL-99,标准功能。,4,、丰富的开发工具支持,绝大部分基于,Interbase,的组件,可以直接使用于,Firebird,。,5,、支持事务、存储过程、触发器等关系数据库的所有特性。,6,、可自己编写扩展函数,(UDF),。,嵌入式数据库特性对比,产品名称,SQLiteBerkeley DBFirebird,嵌入服务器版当前版本,3.3.84.5.202.0,速度最快快快,数据库容量,2TB256TB64TBSQL,支持大部份,SQL- 92,不支持完全,SQL-92,与大部份,SQL-99Win32,平台下最小体积,374KB840KB3.68MB,数据操纵,SQL,仅应用程序接口,SQL,开发接口,C, C+, PHP, Java, Delphi, Python .net(,有些是第三方厂商开发的,),从以上对比中,我们可以看到,最短小精悍的是,SQLite,,它的性能也是最高的,,Berkeley DB,比较特殊,因为它不是用,SQL,语言来操纵数据的,,Firebird,嵌入版的体积对比之下显得稍大了些,但它对关系数据库特性的支持是最好的,如果要考虑到今后或许要将数据库升级成网络版本,就要选,Firebird,了。,DOS,命令回顾,三、,cd,介绍,: cd.,返回上二级目录,“.”,代表当前目录,“.”,代表父目录,cd .,返回到上级目录的父目录,(,祖目录,),cd A:,将,A,盘的当前目录改为根目录,cd A:xx,将,A,盘的当前目录改为子目录,xx,下,cd .98,先返回父目录,再进入父目录下的,98,子目录,cd .,返回到父目录,cd98,进入根目录下的,98,子目录,c,:,f:,清屏:,cls,奖学金数据库SQL,insert into tble values(hello!,10);,insert into tble values(goodbye, 20);,insert into tble values(kitesmile,(SELECT max(two) FROM tble)+1);,select * from tble where one like_ello!;,select * from tble;,delete from tble where two=1001;,create table tble(one varchar(10),two int);,update tble set one=lomekite where two=1004;,select *from tble where two=1004;,select *from tble order by one asc,two desc;,alter table jiangxuejin add banji char,(,10,);,select*from jiangxuejin banji=,产品二,;,select*from jiangxuejin banji like,产品二,;,select * from tble where one like,产,_;,select current_time from jiangxuejin;,select current_time from jiangxuejin;,select avg(first),avg(second),avg(final),banji from jiangxuejin group by banji;,select name,max(final) from jiangxuejin ;,select name,min(final) from jiangxuejin ;,select name+banji from jiangxuejin;,select name | banji from jiangxuejin;,select banji,sum(final) from jiangxuejin group by banji;,select name,final,case when final70;,Thank You !,Questions?,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!