嵌入式数据库_3.嵌入式数据库的主要功能及典型产品

1.嵌入式数据库的功能 

        嵌入式数据库的功能应与通用数据库功能相似,应覆盖数据库的核心功能。通常,嵌入式数据库有其自身的特殊需要,它应具备的功能包括以下4点:

  • 足够高效的数据存储机制;
  • 数据安全控制(锁机制);
  • 实时事务管理机制;
  • 数据库恢复机制(历史数据存储)。        

        这样,一般嵌入式数据库可划分成数据库运行处理数据库存取数据管理数据库维护和数据库定义等功能。

        数据库运行处理:主要负责实现嵌入式数据库运行过程的各种功能。包括实时事务管理、并发控制、数据库装入、运行日志维护、安全性和完整性控制等。

        数据库存取:主要负责实现嵌入式数据库各种存取和查询功能。包括实时数据更新、历史数据查询、数据添加、数据删除等。 

        数据管理:主要负责实现嵌入式数据库的数据空间管理功能。包括缓冲区管理、数据存储空间管理、数据索引管理等。

        数据库维护:主要负责实现嵌入式数据库的数据维护管理功能。包括数据恢复、实时数据转储、数据装入等。

        数据库定义:主要负责实现嵌入式数据库的安全性、完整性的定义功能。

2. 典型嵌入式数据库系统

        目前,嵌入式数据库中比较典型的三个产品是SQLiteBerkeley DBFirebird嵌入式服务器版,其主要特点如下:

2.1SQLite

         SQLite诞生于2000年5月,这几年增长势头迅猛无比,目前版本是3.3.8。其主要特点是:

  • 无须安装配置,应用程序只须携带一个动态链接库
  • 非常小巧,For Windows 3.3.8版本的DLL文件才374KB
  • ACID事务支持,ACID即原子性、一致性、隔离性和持久性(Atomic、Consistent、Isolated和Durable)
  • 数据库文件可以在不同字节顺序的机器间自由的共享,比如可以直接从Windows移植到Linux或MAC
  • 支持数据库大小至2TB

2.2Berkeley DB

         Berkeley DB是由Sleepycat Software公司开发的一套开放源码的嵌入式数据库,它于1991年发布,目前Sleepycat已被甲骨文(ORACLE)公司收购。其主要特点是:

  • 嵌入式,无需安装配置
  • 为多种编程语言提供了API接口,其中包括C、C++、Java、Perl、TCL、Python和PHP等
  • 轻便灵活。它可以运行于几乎所有的UNIX和Linux系统及其变种系统、Windows操作系统以及多种嵌入式实时操作系统之下
  • 可伸缩。他的Database library才几百“KB”大小,但它能够管理规模高达256TB的数据库。它支持高并发度,成千上万用户可同时操作同一个数据库      

2.3Firebird嵌入式服务器版        

         从Interbase开源衍生出了Firebird版本。虽然它的体积是Interbase的几十分之一,但功能并无丢弃。为了体现Firebird短小精悍的特色,开发小组在增加了超级服务器版本之后,又增加了嵌入版本,最新版本为2.0。其主要特点是:

  • 数据库文件与Firebird网路版本完全兼容,差别仅在于连接方式不同,可以实现零成本迁移
  • 数据库文件仅受操作系统的限制,且支持将一个数据库分割成不同文件,突破了操作系统最大文件的限制,提高了I/O吞吐量
  • 完全支持SQL-92标准,支持大部分SQL-99标准功能
  • 丰富的开发工具支持,绝大部分基于Interbase的组件,可以直接使用于Firebird
  • 支持事务、存储过程、触发器等关系型数据库的所有特性
  • 可自己编写扩展函数(UDF)

相关推荐

  1. 嵌入产品开发流程

    2024-06-17 23:18:05       55 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-06-17 23:18:05       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-06-17 23:18:05       100 阅读
  3. 在Django里面运行非项目文件

    2024-06-17 23:18:05       82 阅读
  4. Python语言-面向对象

    2024-06-17 23:18:05       91 阅读

热门阅读

  1. 【Python高级编程】OpenCV来处理视频数据

    2024-06-17 23:18:05       25 阅读
  2. LeetCode //C - 171. Excel Sheet Column Number

    2024-06-17 23:18:05       26 阅读
  3. kotlin `FloatArray` 和 `Array<Float>`

    2024-06-17 23:18:05       24 阅读
  4. CSS 列表样式(ul)全面解析

    2024-06-17 23:18:05       31 阅读
  5. c++_0基础_讲解8 函数

    2024-06-17 23:18:05       30 阅读
  6. 模块一:登录模块

    2024-06-17 23:18:05       29 阅读
  7. python实践笔记(二): 类和对象

    2024-06-17 23:18:05       27 阅读
  8. 揭秘创业加盟:豫腾助力,发掘商机,共赢未来

    2024-06-17 23:18:05       32 阅读