嵌入式数据库的冰与火

数据库分关系型数据库和非关系型数据库两种,今天我们来聊一聊关系型数据库中的嵌入式数据库。如无特殊说明,本文所提到的「数据库」均指关系型数据库。

什么是嵌入式数据库

嵌入式数据库(Embeddeddatabase)跟嵌入式设备是不相关的两个概念,尽管它可以运行在手机、平板电脑或树莓派上。

嵌入式数据库将DBMS(DatabaseManagementSystem)构建到应用程序中,而不是作为一个独立的工具提供,通常数据库管理工具对终端用户是不可见的,需要的维护较少或者根本不需要用户来维护。

存在的意义

先来了解一个名词「边缘计算」。

与云计算(CloudComputing)相对,边缘计算(EdgeComputing)是指将数据的处理与运算,由网路中心节点,移往网路逻辑上的边缘节点来处理。它更接近终端装置和数据来源,以便加快资料的处理与传送速度,减少延迟,对物联网和大数据分析有重要意义。

边缘计算的终端装置多为嵌入式设备,性能有限,而边缘计算却需要组织结构化的数据,用传统的数据库显然不合适。此时,嵌入式数据库低资源占用、高性能的优势就体现出来了。嵌入式数据库更适合用于终端设备或C/S的桌面程序上,是边缘计算的重要组成部分。

冰与火

嵌入式数据库通常是基于单个文件的,环境简单对开发和迁移较为友好,同时追求最大的磁盘读写性能。

「嵌入式」意味着它将直接关联应用程序,如果用户在安装软件时不必安装和管理一个单独的数据库,安装程序将会简单得多,开发者也不必为潜在的数据库问题提供支持,用户也减少了麻烦。

通常采用嵌入式数据库会让你的程序运行的更快,因为它避免了进程间的通信和网络的消耗。

前面讲了嵌入式数据库的这么多优点,不过要注意的是,嵌入式数据库可并非万金油,低资源占用的背后必然是牺牲了一些特性:

不适用于大规模数据的处理。

对SQL标准的支持不够完善。

没有完备的备份和集群机制。

通常是单用户的,吞吐量有限,缺乏并发性支持。

没有完备的权限和加密机制。

何时使用

嵌入式应用:

所有需要迁移性,不需要扩展的应用,例如,单用户的本地应用,移动应用和游戏。

代替磁盘访问:

在很多情况下,需要频繁直接读/写磁盘文件的应用,都就适合转为使用嵌入式数据库。

测试:

嵌入式数据库一般都实现了大部分常用的SQL标准,能满足大部分专门针对应用业务逻辑的测试。

常见的嵌入式数据库

SQLite

免费,支持多平台,单用户的DBMS。

支持几乎所有的编程语言,Android开发默认的数据库。

应用面广泛、性能较高。

原生不支持C/S模式的网络连接。

不支持存储过程。

Access

收费,可定制性较差。

支持C、C#、C++、Delphi、Java(JDBC-ODBC)、VBA、VisualBasic.NET等多种语言。

仅支持Windows平台。

性能相对较低。

支持存储过程。

ApacheDerby

Apache基金会的子项目,基于ApacheLicense,Version2.0.开源。

纯Java实现的嵌入式数据库,依赖JVM,跨平台,仅支持Java语言。

JDK内置Derby数据库,在${JAVA_HOME}/db目录下可以找到。

支持C/S模式的网络连接。

支持存储过程。

范木甬

你一赞赏,我就写的更有劲了

赞赏

人赞赏

长按







































哪里医院治疗癜风好
白颠的症状



转载请注明:http://www.xcqg58.com/xxzl/xxzl/9306.html

  • 上一篇文章:
  •   
  • 下一篇文章: 没有了