分享

两种嵌入式常用数据库比较

 易志娃的图书馆 2013-09-02

以下是对两个嵌入式数据库Berkeley DBSQLite的部分比较:

名称/内容

Berkeley DB

SQLite

Licence

Versions 2.0 and higher of Berkeley DB are available under a dual license. Versions earlier than 2.0 are available under a BSD-like license that has an unusual additional clause similar to the GNU GPL version 2's Section 3.From Wiki

Dual License

The Berkeley DB products are available under a dual license model, which offers

great advantages for customers. An open source license permits customers to use

Berkeley DB at no charge under the condition that if a customer uses Berkeley DB

in an application they distribute to a third party, the complete source code for the

application must be available. A commercial software license is also available and

permits the customer to distribute their application without releasing their source

code.From OTN

Anyone is free to copy, modify, publish, use, compile, sell, or distribute the original SQLite code, either in source code form or as a compiled binary, for any purpose, commercial or non-commercial, and by any means.From sqlite.org

API

Berkeley DB为许多编程语言提供了实用的API接口,包括CC++Java、:PerlTclPythonPHP等。适用平台UNIXPOSIX systemswin32以及嵌入式操作系统WinCEVxWorks等。

SQLite本身提供CTcl的接口,世界各地的程序员还提供了各种语言的SQLite的接口封装, PythonC++Java.Net等几乎所有流行的语言基本都有。sQLite提供一个抽象的操作系统接口层,来保证其在POSIX Win32系统之间的兼容性。

数据存储

Berkeley DB对任何存入的数据都是按原样直接存储到数据文件中,无论是二进制数据还是A S C I IUnicode等编码。Berkeley DB提供了四种存储数据的模式:BtreeHashQueueRecno

SQLite只提供Btree存储数据的模式。对二进制数据,SQLite不能直接保存,但可以先将二进制的数据转换成ASCII编码,然后再保存。

标准SQL

Berkeley DB不是关系型的数据库,不能应用标准的SQL语句对数据库操作,对它的操作要调用专用的API实现。

SQLite支持大部分的ANSI SQL92标准,特别是支持视图、触发器、事务,支持嵌套SQL。通过SQL编译器来实现SQL语言对数据库进行操作。

系统大小

Berkeley DB的源代码有CJava两种,函数库本身虽然只有300KB左右,能管理256TB的数据。

SQLite的源代码是C,其源代码完全开放。全部源码大致3万行c代码,250KB左右支持数据库大小至2TB

优势

首先,由于其应用程序和数据库管理系统运行在相同的进程空间当中,进行数据操作时可以避免繁琐的进程间通信,因此耗费在通信上的开销自然也就降低到了极低程度。其次,Berkeley DB使用简单的函数调用接口来完成所有的数据库操作,而不是在数据库系统中经常用到的SQL语言,避免了对结构化查询语言进行解析和处理所需的开销。

SQLite有以下特性:支持ACID事务;零配置;储存在单一磁盘文件中的一个完整的数据库;数据库文件可以在不同字节顺序的机器间自由共享;比目前流行的大多数数据库对数据的操作要快;提供了对事务功能和并发处理的支持;独立,没有额外依赖。

 

 项目需求不同,选择也不一样,具体情况具体分析就是了。 

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多