数据库问题

了解数据库服务器和嵌入式数据库的差异|云计算与数据库

2021-09-03
0

嵌入式数据库实际上是轻量级的,运行时需要的内存更少。它们是用简化的代码编写的,这对于嵌入式设备来说更快、更有效。嵌入式运行模式允许嵌入式数据库通过SQL轻松管理应用程序数据,而不是依赖原始文本文件。嵌入式数据库和数据库服务器最大的区别是运行在不同的地址空间。通常,数据库服务器独立运行一个守护进程,而嵌入式数据库与应用程序在同一进程中运行。

数据库的架构如下:图中的数据库客户端通常通过JDBC、ODBC等数据库驱动访问数据库服务器,然后数据库服务器对数据库文件进行操作。数据库服务是客户端-服务器模式,客户端和服务器完全是两个独立的进程。它们可以位于不同的计算机甚至网络中。客户端和服务器通过TCP/IP进行通信。这种模式将数据与应用程序分开,便于控制和管理数据访问。

了解数据库服务器和嵌入式数据库的差异|云计算与数据库

嵌入式数据库架构如下:嵌入式数据库不需要数据库驱动,直接将数据库的库文件链接到应用程序。应用程序通过API而不是TCP/IP访问数据库。因此,嵌入式数据库的部署是与应用程序一起进行的。例如,一个常见的版本控制器SubVersion将嵌入式数据库与应用程序结合使用。

数据库和嵌入式的比较如下:

(1)数据库服务器通常允许非开发人员(DBA、数据库库管理员)操作数据库,而在嵌入式数据中,通常只允许应用程序访问和控制。(2)数据库服务器将数据与程序分离,便于控制对数据库的访问。嵌入式数据库完全将数据的访问控制交给应用程序,由应用程序控制。(3)数据库服务器需要独立安装、部署和管理,而嵌入式数据通常与应用程序一起发布,因此不需要单独部署数据库服务器,其特点是程序的可移植性。从上面的对比可以看出,数据库服务器和嵌入式数据库各有特点,适用于不同的应用场景。

如果对你要存储的数据的访问比较复杂,比如跨网、访问控制策略复杂,数据库管理员需要经常对其进行管理和维护,那么数据库服务器非常适合你。如果对你要存储的数据的访问需要应用控制,并且基本不需要人工干预,对数据的访问简单、快速、有效,那么嵌入式数据库就适合你。另外,你有没有遇到过这样的情况:存储的数据量不是很大,所以建立一个通用的数据库太浪费了,如果发布这个程序非常麻烦,那么那些微小的嵌入式数据库可能非常适合你(比如有些邮件客户端使用嵌入式数据库)。

了解数据库服务器和嵌入式数据库的差异|云计算与数据库

嵌入式数据库:1.嵌入过程中,没有单独的引擎。2.可定制,体积小,满足嵌入式系统的需求。

BerkeleyDB数据库(开源,商业收费)

技术特点:1.Berkeley DB是一个开源的嵌入式数据库管理系统,可以为应用提供高性能的数据管理服务。它的应用程序员只需要调用一些简单的API就可以访问和管理数据。(不使用SQL语言)。2.BerkeleyDB为许多编程语言提供了实用的API接口,包括C、C++、Java、Perl、Tcl、Python和PHP。所有与数据库相关的操作都由BerkeleyDB数据库函数库完成。3.Berkeley DB是可移植的,几乎可以在所有UNIX和Linux系统及其变体、Windows操作系统和各种嵌入式实时操作系统下运行。Berkeley DB链接到应用程序,终端用户一般根本感觉不到有数据库系统。4.BerkeleyDB是可伸缩的,这表现在很多方面。库本身非常紧凑(不到300KB的文本空间),但它可以管理高达256TB的数据库。它支持高并发,成千上万的用户可以同时操作同一个数据库。Berkeley DB可以用足够小的占用空间运行具有严格约束的嵌入式系统。

Berkeley DB在嵌入式应用中优于关系数据库和面向对象数据库的原因有以下两个:(1)由于数据库库与应用程序运行在同一地址空间,数据库操作不需要进程间通信。一台机器的不同进程之间或者网络中不同机器之间的进程通信成本远远大于函数调用的成本。(2)由于Berkeley DB对所有操作都使用一套API接口,不需要解析查询语言,也不需要生成执行计划,大大提高了操作效率。

SQLite(开源,商业免费)

轻量级数据库SQLite的主要特点如下:1.它支持无需配置、安装或管理员的事件;2.支持大部分SQL92;3.一个完整的数据库存储在磁盘上的一个文件中,同一数据库文件可以在不同的机器上使用。最大数据库支持2T,对字符和BLOB的支持仅限于可用内存。4.整个系统的代码不到3万行,内存占用(gcc)不到250KB。大多数应用程序比目前常见的客户机/服务器数据库更快,并且没有其他依赖性。5.源代码是开放的,95%的代码都有很好的注释,API也很好用。官方用TCL编译的版本。

了解数据库服务器和嵌入式数据库的差异|云计算与数据库

Empress(商业数据库)

发展阶段特点:1.嵌入式程序,使应用程序和数据库在统一的地址空间中工作,增强了系统的稳定性,提高了系统的效率。2.确认响应时间,Empress可以让数据响应时间相对一致,用户可以设置超时限制。如果插入和修改操作没有在指定时间内完成,系统将报告错误。3.快速操作Empress提供了一个内核级的CAPI,叫做MR,用MR写的应用在执行的时候不需要解析。此外,MR中的加速机制还包括出色的锁定控制、内存管理和基于记录数量的选择功能。4.灵活的开发模式,Empress提供多种开发接口,加快开发进程,无需开发人员重新学习开发语言,熟悉开发环境。5.友好的存储方式,Empress数据库可以放在操作系统支持的任何存储设备中,Empress的形式甚至可以分为不同的存储设备,如内存、硬盘和光盘。6.微内核结构Empress高度单元化,可以根据需要选择需要的单元,减少Empress数据库在产品中占用的资源。7.广泛的平台支持。Empress支持多种硬件平台和软件平台,也可以移植到客户需要的硬件平台或操作系统上。

技术优势:1.微内核结构占用内存空间小,特别适合紧凑设计。2.每周7天、每天24小时连续工作,无需任何额外的操作和维护。3.内核级CAPI接口,最大化运行速度。4.高度灵活的SQL接口。5.出色的断电恢复能力。6.强大的交易和锁定机制。7.支持SCSI、RAID、IDE、RAM、CD-RW、DVD-ROM、CF等存储介质。8.支持Unicode代码。9.引擎可以加载到磁盘和内存中。

EXtremeDB特点:

1.混合数据库。EXtremeDB不仅可以建立在主存中完全运行的主存数据库,还可以建立磁盘/内存混合介质的数据库。在eXtremeDB中,我们称这种基于磁盘、内存或磁盘+内存的运行模式为eXtremeDB Fusion融合数据库。EXtremeDB Fusion兼顾了数据管理的实时性和安全性要求,是实时数据管理的循序渐进。

2.应用定制的API,根据应用数据库的设计,自动生成应用程序对eXtremeDB数据库的操作接口,不仅提高了性能,还消除了通用接口所必需的动态内存分配,从而提高了应用系统的可靠性。定制过程简单方便。eXtremeDB数据库中的表、字段、数据类型、事件触发器、访问方法等应用特性由高级语言定制,访问数据库的C/C++ API接口由eXtremeDB预编译器自动生成。

了解数据库服务器和嵌入式数据库的差异|云计算与数据库

3.内存数据库。EXtremeDB将数据以程序直接使用的格式保存在主存中,不仅消除了文件I/O的开销,还消除了文件系统数据库所需的缓冲区和Cache机制。结果是每个事务的速度限制在1微秒或更低,这比类似磁盘的数据库快几百倍。作为内存数据库,eXtremeDB不仅性能高,而且数据存储效率高。为了提高性能,方便程序的使用,在eXtremeDB中不压缩数据,100M的空间可以存储70M以上的有效数据,这在其他数据库中是无法想象的。

4.可预测的数据管理。EXtremeDB独特的架构确保了数据管理的可预测性。EXtremeDB不仅更快、更小,而且更确定。在80双核CPU的服务器上,eXtremeDB将15B条记录保存在1TB内存中。无论记录数量多少,eXtremeDB都可以在十分之一微秒内提取出一条记录。

5.嵌入式数据库。eXtremeDB内核以链接库的形式包含在应用中,其开销只有50KB~130KB。在嵌入式系统和实时系统中,eXtremeDB都是自然地嵌入到应用程序中,并且在最终用户不知情的情况下工作。eXtremeDB的自然嵌入性对于实时数据管理非常重要:每个进程直接访问eXtremeDB数据库,避免了进程间通信,从而消除了进程间通信的开销和不确定性。同时,eXtremeDB独特的数据格式方便程序直接使用,消除了数据复制和数据翻译的开销,缩短了应用程序的代码执行路径。租用服务器可咨询梦飞云idc了解。

部分文章来源与网络,若有侵权请联系站长删除!

推荐产品