
随着嵌入式系统广泛应用,其数据管理日益成为需要解决的重要问题。计算和数据技术向微型化、网络化、移动化方向的发展趋势使得集中式的数据管理方式越来越无法满足需求,这些都是嵌入式数据库应用的潜在市场。不同于大型通用的后台数据库,嵌入式数据库可以应用在各种网络设备(路由器、交换机等),移动通信、数字媒体设备(MID、PDP、STB、DTV等),数据采集控制系统,数字家庭智能家电产品,交通、建筑、智能医疗设备等领域。有关嵌入式数据库的研究和软件实现已经很多,比如Oracle TimesTen/Berkeley DB,SQLite,Entier……针对嵌入式数据库的应用场景和本身特性,个人觉得如下两个方面问题还未很好的解决或是值得未来关注
1)更为丰富的查询接口
嵌入式数据库处理的数据不限于传统的结构化的关系数据,也包括大量的半结构化和非结构化的数据。例如语音、图像等媒体数据的管理,空间地理数据的管理,XML数据的管理。这就需要研究native或是hybrid的CBIR和XML引擎
2)容易忽视的安全问题
另外一个就是嵌入式数据库安全方面的技术研究,由于嵌入式平台的开放性和智能化,其面临的安全威胁也日益增长。嵌入式数据库或者保存了个人隐私信息或是驻留了业务处理的关键数据,因此对于数据安全的要求很高。为此需要在防止非授权数据访问、数据加密、防范黑客攻击等数据安全威胁上需要提供充分的安全性保证。
这个不能说哪个好,学好了都很好,但是我建议你选嵌入式,然后旁听数据库,我们学校有3个方向,数据库,JAVa,,c#,我选的JAVA,因为自己喜欢,平时去听数据库,因为不论你做什么软件,数据库是必须要会的,因为什么方向都得与数据库相联系。这是我的理解,我认为简单易懂,呵呵,希望有所帮助~
首先用SQL通信区(SQL Communication Area,简称SQLCA)向主语言传递SQL语句的执行状态信息,使主语言能够据此控制程序流程;在程序运行中,主语言向SQL语句提供参数,使用主变量(host variable)输入数据;同时,程序把SQL语句查询数据库的结果交主语言进一步处理,其中使用主变量和游标(cursor)向主语言输出数据,从而实现了SQL语言的过程化工作。
SQL语句执行后,系统要反馈给应用程序若干信息,主要包括描述系统当前工作状态和运行环境的各种数据,这些信息将送到SQL通信区SQLCA中。应用程序从SQLCA中取出这些状态信息,据此决定接下来执行的语句。
嵌入式数据库还是有很多的,这里举几个吧:
1BerkeleyDB常用嵌入式数据库有哪些
Berkeley
DB(BDB)是一个高效的嵌入式数据库编程库,C语言、C、Java、Perl、Python、Tcl以及其他很多语言都有其对应的API。
BerkeleyDB可以保存任意类型的键/值对(Key/ValuePair),而且可以为一个键保存多个数据。Berkeley
DB支持让数千的并发线程同时 *** 作数据库,支持最大256TB的数据,广泛用于各种 *** 作系统,其中包括大多数类Unix *** 作系统、Windows *** 作系统
以及实时 *** 作系统。
2CouchbaseLite
CouchbaseLite
是一个为满足在线和离线的移动应用所开发的超轻量的,可靠的,并且安全的JSON数据库。即使在最不确定的网络条件下,亦可以给您的移动应用提供富有成效
的和可靠的信誉。除此之外,’同步门户’功能亦可以提供协作,社交互动或者是用户的更新。
3LevelDB
LevelDB是Google开源出的一个Key/Value存储引擎,它采用C编写的,支持高并发访问和写入,特别适合对于高写入业务环境。
4SQLite
SQLite是一个开源的嵌入式关系数据库,实现自包容、零配置、支持事务的SQL数据库引擎。
其特点是高度便携、使用方便、结构紧凑、高效、可靠。与其他数据库管理系统不同,SQLite的安装和运行非常简单,在大多数情况下-
只要确保SQLite的二进制文件存在即可开始创建、连接和使用数据库。
5UnQLite
UnQLite是,由Symisc
Systems公司出品的一个嵌入式C语言软件库,它实现了一个自包含、无服务器、零配置、事务化的NoSQL数据库引擎。UnQLite是一个文档存储
数据库,类似于MongoDB、Redis、CouchDB等。同时,也是一个标准的Key/Value存储,与BerkeleyDB和LevelDB等
类似。
1、嵌入式系统是个大概念,对于有 *** 作系统和文件系统的嵌入式系统(如嵌入式linux系统)来说,它的数据存储方式(文件)和标准的计算机系统区别不大,它除了支持一些特别的文件系统(如yaffs, jffs)外,还支持很多标准计算机系统实现了的文件系统(如ext2, ext3, fat等)及网络文件系统。另外很多嵌入式系统还支持U盘、SD卡等设备,完全可以和标准文件系统进行文件交换。
所要注意的是部分嵌入式系统采用大端模式存储,对于数据型文件(包括二进制、执行文件),在小端系统上(x86系统)会有不同的解析,当然标准系统也有大端的,同样存在这些问题。
2、嵌入式系统的数据库编程和标准系统一样,使用数据库厂商提供的API,需要的编程语言与厂商提供的API有关,只要这些API支持(如sqlite 支持用嵌入式linux系统的交叉编译器编译),那就没有多大问题,区别只是编译工具采用了嵌入式系统的交叉编译器而已。
类。 一类是学电子工程、通信工程等偏硬件专业出身的人,他们主要是搞硬件设计,有时要开发一些与硬件关系最密切的最底层软件,如BootLoader、Board Support Package(像PC的BIOS一样,往下驱动硬件,往上支持 *** 作系统),最初级的硬件驱动程序等。他们的优势是对硬件原理非常清楚,不足是他们更擅长定义各种硬件接口,但对复杂软件系统往往力不从心(例如嵌入式 *** 作系统原理和复杂应用软件等)。 另一类是学软件、计算机专业出身的人,主要从事嵌入式 *** 作系统和应用软件的开发。如果我们学软件的人对硬件原理和接口通常难以有较好的掌握,最多也只能写部分BSP和硬件驱动程序。嵌入式硬件设计完后,各种功能就全靠软件来实现了,嵌入式设备的增值很大程度上取决于嵌入式软件,这占了嵌入式系统的最主要工作(目前有很多公司将硬件设计包给了专门的硬件公司,稍复杂的硬件都交给台湾或国外公司设计,国内的硬件设计力量很弱,很多嵌入式公司自己只负责开发软件,因为公司都知道,嵌入式产品的差异很大程度在软件上,在软件方面是最有“花头“可做的),所以我们搞软件的人完全不用担心我们在嵌入式市场上的用武之地,越是智能设备越是复杂系统,软件越起关键作用,而且这是目前的趋势。
数据库程序大部分是一些应用型的软件,和数据库打交道,经常用于存储重要数据和重要信息,也可以认为是和数据库有关的程序就可以说是数据库程序。
C是面向过程的程序,JAVA是面向对象的程序,嵌入式开发用C/C++/JAVA都可以,但是要用到数据库程序开发就是难度比较大,凡是都有例外的嘛。如果非要冲C和JAVA中选择开发,那我觉得嵌入式就C/JAVA;数据库程序开发就JAVA好。
有些是我的个人理解,有些是参考网络知识。
以上就是关于嵌入式数据库的发展趋势在哪里全部的内容,包括:嵌入式数据库的发展趋势在哪里、计算机科学与技术专业课程中嵌入式方向和数据库方向哪个好点、数据库问题:嵌入式sql语句与主语言之间的通信机制是怎样的等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)