HOME

TheInfoList



OR:

An embedded database system is a database management system (DBMS) which is tightly integrated with an
application software Application may refer to: Mathematics and computing * Application software, computer software designed to help the user to perform specific tasks ** Application layer, an abstraction layer that specifies protocols and interface methods used in a ...
; it is embedded in the application. It is a broad technology category that includes: * database systems with differing
application programming interface An application programming interface (API) is a way for two or more computer programs to communicate with each other. It is a type of software interface, offering a service to other pieces of software. A document or standard that describes how t ...
s ( SQL as well as proprietary, native APIs) * database architectures ( client-server and in-process) * storage modes (on-disk, in-memory, and combined) *
database model A database model is a type of data model that determines the logical structure of a database. It fundamentally determines in which manner data can be stored, organized and manipulated. The most popular example of a database model is the relational ...
s ( relational, object-oriented,
entity–attribute–value model Entity–attribute–value model (EAV) is a data model to encode, in a space-efficient manner, entities where the number of attributes (properties, parameters) that can be used to describe them is potentially vast, but the number that will actuall ...
, network/
CODASYL CODASYL, the Conference/Committee on Data Systems Languages, was a consortium formed in 1959 to guide the development of a standard programming language that could be used on many computers. This effort led to the development of the programming l ...
) * target markets The term ''embedded database'' can be confusing because only a small subset of embedded database products are used in
real-time Real-time or real time describes various operations in computing or other processes that must guarantee response times within a specified time (deadline), usually a relatively short time. A real-time process is generally one that happens in defined ...
embedded system An embedded system is a computer system—a combination of a computer processor, computer memory, and input/output peripheral devices—that has a dedicated function within a larger mechanical or electronic system. It is ''embedded'' ...
s such as telecommunications switches and
consumer electronics Consumer electronics or home electronics are electronic ( analog or digital) equipment intended for everyday use, typically in private homes. Consumer electronics include devices used for entertainment, communications and recreation. Usually ...
. (See mobile database for small-footprint databases that could be used on embedded devices.)


Implementations

Major embedded database products include, in alphabetical order: *
Advantage Database Server Sap is a fluid transported in xylem cells (vessel elements or tracheids) or phloem sieve tube elements of a plant. These cells transport water and nutrients throughout the plant. Sap is distinct from latex, resin, or cell sap; it is a separat ...
from Sybase Inc. *
Berkeley DB Berkeley DB (BDB) is an unmaintained embedded database software library for key/value data, historically significant in open source software. Berkeley DB is written in C with API bindings for many other programming languages. BDB stores arbitr ...
from Oracle Corporation *
CSQL CSQL was a software project, intended to be an open source main memory high-performance relational database management system developed at sourceforge.net. It was supposed to provide high performance for SQL queries and DML statements. As ...
from csqlcache.com *
Extensible Storage Engine Extensible Storage Engine (ESE), also known as JET Blue, is an ISAM (indexed sequential access method) data storage technology from Microsoft. ESE is the core of Microsoft Exchange Server, Active Directory, and Windows Search. It's also used by a ...
from Microsoft * eXtremeDB from McObject * Filemaker from Claris * Firebird Embedded *
HSQLDB HSQLDB (''Hyper SQL Database'') is a relational database management system written in Java. It has a JDBC driver and supports a large subset of SQL-92, SQL:2008, SQL:2011, and SQL:2016 standards. It offers a fast, small (around 1300 kilobyte ...
from HSQLDB.ORG, * Informix Dynamic Server (IDS) from IBM * InfinityDB from Boiler Bay Inc. * InnoDB from Oracle Corporation * InterBase (Both server and mobile friendly deeply embedded version) from Embarcadero Technologies * Lightning Memory-Mapped Database (LMDB) from Symas Corp. * Raima Database Manager from Raima * solidDB * SQLite * SQL Server Compact from Microsoft Corporation
Sophia Embeddable key-value storage


Comparisons of database storage engines


Advantage Database Server

Sybase's Advantage Database Server (ADS) is an embedded database management system. It provides both ISAM and relational data access and is compatible with multiple platforms including Windows, Linux, and Netware. It is available as a royalty-free local file-server database or a full client-server version. ADS is highly scalable, with no administration, and has support for a variety of IDEs including
.NET Framework The .NET Framework (pronounced as "''dot net"'') is a proprietary software framework developed by Microsoft that runs primarily on Microsoft Windows. It was the predominant implementation of the Common Language Infrastructure (CLI) until bein ...
(.NET), Object Pascal ( Delphi), Visual FoxPro (FoxPro), PHP, Visual Basic (VB),
Visual Objects Visual Objects is an object-oriented computer programming language that is used to create computer programs that operate primarily under Windows. Although it can be used as a general-purpose programming tool, it is almost exclusively used to creat ...
(VO),
Vulcan Vulcan may refer to: Mythology * Vulcan (mythology), the god of fire, volcanoes, metalworking, and the forge in Roman mythology Arts, entertainment and media Film and television * Vulcan (''Star Trek''), name of a fictional race and their home p ...
, Clipper, Perl, Java, xHarbour, etc.


Apache Derby

Derby is an embeddable SQL engine written entirely in Java. Fully transactional, multi-user with a decent SQL subset, Derby is a mature engine and freely available under the Apache license and is actively maintained
Derby project page
It is also distributed as part of Oracle's Java SE Development Kit (JDK) under the name of Java DB.


Empress Embedded Database

Empress Software, Inc., developer of th
Empress Embedded Database
is a privately held company founded in 1979. Empress Embedded Database is a full-function, relational database that has been embedded into applications by organizations small to large, with deployment environments including medical systems, network routers, nuclear power plant monitors, satellite management systems, and other embedded system applications that require reliability and power. Empress is an
ACID In computer science, ACID ( atomicity, consistency, isolation, durability) is a set of properties of database transactions intended to guarantee data validity despite errors, power failures, and other mishaps. In the context of databases, a sequ ...
compliant, SQL database engine with C,
C++ C, or c, is the third letter in the Latin alphabet, used in the modern English alphabet, the alphabets of other western European languages and others worldwide. Its name in English is ''cee'' (pronounced ), plural ''cees''. History "C" ...
, Java, JDBC, ODBC, SQL, ADO.NET and kernel level
API An application programming interface (API) is a way for two or more computer programs to communicate with each other. It is a type of software interface, offering a service to other pieces of software. A document or standard that describes how ...
s. Applications developed using these APIs may be run in standalone and/or server modes. Empress Embedded Database runs on Linux, Unix, Microsoft Windows and
real-time operating system A real-time operating system (RTOS) is an operating system (OS) for real-time applications that processes data and events that have critically defined time constraints. An RTOS is distinct from a time-sharing operating system, such as Unix, which m ...
s.


Extensible Storage Engine

ESE is an Indexed Sequential Access Method (ISAM) data storage technology from Microsoft. ESE is notably a core of Microsoft Exchange Server and Active Directory. Its purpose is to allow applications to store and retrieve data via indexed and sequential access. Windows Mail and Desktop Search in the Windows Vista operating system also make use of ESE to store indexes and property information respectively.


eXtremeDB

McObject LLC launched eXtremeDB as the first in-memory embedded database designed from scratch for real-time embedded systems. The initial product was soon joined by eXtremeDB High Availability (HA) for
fault tolerant Fault tolerance is the property that enables a system to continue operating properly in the event of the failure of one or more faults within some of its components. If its operating quality decreases at all, the decrease is proportional to the ...
applications. The product family now includes 64-bit and transaction logging editions, and the hybrid eXtremeDB Fusion, which combines in-memory and on-disk data storage. In 2008, McObject introduced eXtremeDB Kernel Mode, the first embedded DBMS designed to run in an operating system
kernel Kernel may refer to: Computing * Kernel (operating system), the central component of most operating systems * Kernel (image processing), a matrix used for image convolution * Compute kernel, in GPGPU programming * Kernel method, in machine learni ...
. Today, eXtremeDB is used in millions of real-time and embedded systems worldwide. McObject also offers Perst, an open source, object-oriented embedded database for Java, Java ME, .NET,
.NET Compact Framework The Microsoft .NET Compact Framework (.NET CF) is a version of the .NET Framework that is designed to run on resource constrained mobile/embedded devices such as personal digital assistants (PDAs), mobile phones, factory controllers, set-top box ...
and
Silverlight Microsoft Silverlight is a discontinued application framework designed for writing and running rich web applications, similar to Adobe's runtime, Adobe Flash. A plugin for Silverlight is still available for a very small number of browsers. Whi ...
.


Firebird Embedded

Firebird Embedded is a relational database engine. As an open source fork of InterBase, it is
ACID In computer science, ACID ( atomicity, consistency, isolation, durability) is a set of properties of database transactions intended to guarantee data validity despite errors, power failures, and other mishaps. In the context of databases, a sequ ...
compliant, supports triggers and stored procedures, and is available on Linux, OSX and Windows systems. It has the same features as the classic and superserver version of Firebird, two or more threads (and applications) can access the same database at the same time starting with Firebird 2.5. So Firebird embedded acts as a local server for one threaded client accessing its databases (that means it works properly for ASP.NET web applications, because there, each user has its own thread, which means two users could access the same database at the same time, but they would not be in the same thread, because ASP.NET opens a new thread for each user). It exports the standard Firebird API entry points. The main advantage of Firebird embedded databases is, that unlike SQlite or Access databases, they can be plugged into a full Firebird server without any modifications at all also is multiplatform (runs on Linux, OS X with full ASP.NET Mono support)


H2

Written in Java Open source database engine. Embedded and Server mode, Clustering support, can run inside the
Google App Engine Google App Engine (often referred to as GAE or simply App Engine) is a cloud computing platform as a service for developing and hosting web applications in Google-managed data centers. Applications are sandboxed and run across multiple servers ...
. Supports encrypted database files (AES or XTEA). The development of H2 was started in May 2004, but it was first published on December 14, 2005. H2 is dual licensed and available under a modified version of the MPL 1.1 (Mozilla Public License) or under the (unmodified) EPL 1.0 (Eclipse Public License).


HailDB, formerly Embedded InnoDB

HailDB is a standalone, embeddable form of the InnoDB Storage Engine. Given that HailDB is based on the same code base as the InnoDB Storage Engine, it contains many of the same features: high-performance and scalability,
multiversion concurrency control Multiversion concurrency control (MCC or MVCC), is a concurrency control method commonly used by database management systems to provide concurrent access to the database and in programming languages to implement transactional memory. Description ...
(MVCC), row-level locking, deadlock detection, fault tolerance, automatic crash recovery, etc. However, because the embedded engine is completely independent from MySQL, it lacks server components such as networking, object-level permissions, etc. By eliminating the MySQL server overhead, InnoDB has a small footprint and is well-suited for embedding in applications which require high-performance and concurrency. As with most embedded database systems, HailDB is designed to be accessed primarily with an ISAM-like C API rather than SQL (though an extremely rudimentary SQL variant is supported). The project is no longer maintained.


HSQLDB

HSQLDB is an opensource
relational database management system A relational database is a (most commonly digital) database based on the relational model of data, as proposed by E. F. Codd in 1970. A system used to maintain relational databases is a relational database management system (RDBMS). Many relatio ...
with a BSD-like license that runs in the same Java Virtual Machine as the embedded application. HSQLDB supports a variety of in-memory and disk-based table modes, Unicode and SQL:2016.


InfinityDB

InfinityDB Embedded Java DBMS is a sorted hierarchical key/value store. It now has an Encrypted edition and a Client/Server edition. The multi-core speed is patent-applied-for. InfinityDB is secure, transactional, compressing, and robust, in a single file for instant installation and zero administration. APIs include the simple fast 'ItemSpace', a ConcurrentNavigableMap view, and JSON. A RemoteItemSpace can transparently redirect the embedded APIs to other db instances. Client/Server includes a light-weight Servlet server, web admin and database browsing, and REST for python.


Informix Dynamic Server

Informix Dynamic Server (IDS) is characterized as an ''enterprise class embeddable database server'', combining embeddable features such as low footprint, programmable and autonomic capabilities with enterprise class database features such as high availability and flexible replication features. IDS is used in deeply embedded scenarios such as IP telephony call-processing systems, point of sale applications and financial transaction processing systems.


InterBase

InterBase is an IoT Award-winning cross-platform, Unicode enabled SQL database platform able to be embedded within turn-key applications. Out of the box SMP support and on disk AES strength 256bit encryption, SQL 92 & ACID compliance and support for Windows, Macintosh, Linux, Solaris, iOS and Android platforms. Ideal for both small-to-medium and large enterprises supporting hundreds of users and mobile application development. InterBase Light is a free version that can be used on any mobile device and is ideal for mobile applications. Enterprises can switch to a paid version as requirements for change management and security increase. InterBase has high adoption in defense, airspace, oil and gas, and manufacturing industries.


LevelDB

LevelDB is an ordered key/value store created by Google as a lightweight implementation of the
Bigtable Bigtable is a fully managed wide-column and key-value NoSQL database service for large analytical and operational workloads as part of the Google Cloud portfolio. History Bigtable development began in 2004.. It is now used by a number of Google ...
storage design. As a library (which is the only way to use LevelDB), its native API is C++. It also includes official C wrappers for most functionality. Third-party API wrappers exist fo
PythonPHPGopure Go LevelDB implementation
exists but is in progress still)
Node.js
and Objective C. Google distributes LevelDB under the
New BSD License BSD licenses are a family of permissive free software licenses, imposing minimal restrictions on the use and distribution of covered software. This is in contrast to copyleft licenses, which have share-alike requirements. The original BSD lice ...
.


LMDB

Lightning Memory-Mapped Database (LMDB) is a memory-mapped key-value database for the
OpenLDAP OpenLDAP is a free, open-source implementation of the Lightweight Directory Access Protocol (LDAP) developed by the OpenLDAP Project. It is released under its own BSD-style license called the OpenLDAP Public License. LDAP is a platform-independen ...
Project. It is written in C and the API is modeled after the
Berkeley DB Berkeley DB (BDB) is an unmaintained embedded database software library for key/value data, historically significant in open source software. Berkeley DB is written in C with API bindings for many other programming languages. BDB stores arbitr ...
API, though much simplified. The library is extremely compact, compiling down to under 40KB of x86 object code, being usually faster than similar libraries like
Berkeley DB Berkeley DB (BDB) is an unmaintained embedded database software library for key/value data, historically significant in open source software. Berkeley DB is written in C with API bindings for many other programming languages. BDB stores arbitr ...
,
LevelDB LevelDB is an open-source on-disk key-value store written by Google fellows Jeffrey Dean and Sanjay Ghemawat. Inspired by Bigtable, LevelDB is hosted on GitHub under the New BSD License and has been ported to a variety of Unix-based systems, ma ...
, etc. The library implements B+trees with
multiversion concurrency control Multiversion concurrency control (MCC or MVCC), is a concurrency control method commonly used by database management systems to provide concurrent access to the database and in programming languages to implement transactional memory. Description ...
(MVCC), single-level store,
Copy on write Copy-on-write (COW), sometimes referred to as implicit sharing or shadowing, is a resource-management technique used in computer programming to efficiently implement a "duplicate" or "copy" operation on modifiable resources. If a resource is dup ...
and provides full
ACID In computer science, ACID ( atomicity, consistency, isolation, durability) is a set of properties of database transactions intended to guarantee data validity despite errors, power failures, and other mishaps. In the context of databases, a sequ ...
transactions with no deadlocks. The library is optimized for high read concurrency; readers need no locks at all. Readers don't block writers and writers don't block readers, so read performance scales perfectly linearly across arbitrarily many threads and CPUs. Third-party wrappers exist fo
C++Erlang
an
Python
LMDB is distributed by the OpenLDAP Project under the OpenLDAP Public License. As of 2013 the OpenLDAP Project is deprecating the use of Berkeley DB, in favor of LMDB.


Mimer SQL

An embedded zero maintenance version of the proprietary Mimer SQL relational database server is available. It has a small footprint due to its modular design, full support for the SQL standard, and with ports to Windows, Linux,
Automotive Grade Linux Automotive Grade Linux (AGL) is an open source project hosted by The Linux Foundation that is building an open operating system and framework for automotive applications. AGL was launched in 2012 with founding members including Jaguar Land Rover, ...
, Android, QNX,
INTEGRITY Integrity is the practice of being honest and showing a consistent and uncompromising adherence to strong moral and ethical principles and values. In ethics, integrity is regarded as the honesty and truthfulness or accuracy of one's actions. Inte ...
, among others.


MonetDB/e


MonetDB/e
is the embedded version of the open source MonetDB SQL column store engine. Available for C, C++, Java (JDBC) and Python. MonetDB License, based on MPL 2.0. The predecessor MonetDBLite (for R, Python and Java) is no longer maintained. It's replaced by MonetDB/e.


MySQL Embedded Server Library

Th
Embedded MySQL Server Library
provide

of regular MySQL as a linkable library that can be run in the context of a client process. After initialization, clients can use the same C API calls as when talking to a separate MySQL server but with less communication overhead and with no need for a separate database process.


NexusDB

NexusDB is the commercial successor to th
FlashFiler
database which is now open source. They can both be embedded in Delphi applications to create stand-alone executables with full database functionality.


Oracle Berkeley DB

As the name implies, Oracle's embedded database is actually
Berkeley DB Berkeley DB (BDB) is an unmaintained embedded database software library for key/value data, historically significant in open source software. Berkeley DB is written in C with API bindings for many other programming languages. BDB stores arbitr ...
, which Oracle acquired from Sleepycat Software. It was originally developed at the University of California. Berkeley DB is a fast, open-source embedded database and is used in several well-known open-source products, including the Linux and BSD Unix operating systems, Apache Web server, OpenOffice productivity suite. Nonetheless, over recent years many well-known projects switched to using LMDB, because it outperform Berkeley DB in key scenarios on the ground of " less is more" design, as well due to the license changing.


Raima Database Manager

Raima Database Manager, produced by Raima. According to Raima's definition, the product is ''embedded'' in two senses: first, it is embedded within an application, becoming an extension to the application, and second, it is possible to use it in embedded computer/OS or real-time environments because of its small footprint and efficient operation. Its APIs (for C/C++, SQL, JDBC, ODBC, ADO.NET, and RESTful) have been designed to support the limited resources of embedded environments.


RocksDB

RocksDB, created at Facebook, began as a fork of
LevelDB LevelDB is an open-source on-disk key-value store written by Google fellows Jeffrey Dean and Sanjay Ghemawat. Inspired by Bigtable, LevelDB is hosted on GitHub under the New BSD License and has been ported to a variety of Unix-based systems, ma ...
. It focuses on performance, especially on SSDs. It adds many features, including transactions,
backup In information technology, a backup, or data backup is a copy of computer data taken and stored elsewhere so that it may be used to restore the original after a data loss event. The verb form, referring to the process of doing so, is "back up", w ...
s,
snapshots Snapshot, snapshots or snap shot may refer to: * Snapshot (photography), a photograph taken without preparation Computing * Snapshot (computer storage), the state of a system at a particular point in time * Snapshot (file format) or SNP, a file ...
,
bloom filter A Bloom filter is a space-efficient probabilistic data structure, conceived by Burton Howard Bloom in 1970, that is used to test whether an element is a member of a set. False positive matches are possible, but false negatives are not – in ...
s,
column families {{Short description, A database project that organizes data in packed columns A column family is a database object that contains columns of related data. It is a tuple (pair) that consists of a key–value pair, where the key is mapped to a value t ...
, expiry, custom merge operators, more tunable compaction, statistics collection, and geospatial indexing. It is used as a storage engine inside of several other databases, including
ArangoDB ArangoDB is a free and open-source native graph database system developed by ArangoDB Inc. ArangoDB is a multi-model database system since it supports three data models (graphs, JSON documents, key/value) with one database core and a unified que ...
, Ceph,
CockroachDB CockroachDB is a commercial distributed SQL database management system, developed by Cockroach Labs. History Cockroach Labs was founded in 2015 by ex-Google employees Spencer Kimball, Peter Mattis, and Ben Darnell. Cockroach Labs founders Ki ...
, MongoRocks,
MyRocks MyRocks is open-source software developed at Facebook in order to use MySQL features with RocksDB implementations. It is based on Oracle MySQL 5.6. Starting from version 10.2.5, MariaDB includes MyRocks as an alpha-stage storage engine. MariaD ...
, Rocksandra, TiKV. and YugabyteDB.


solidDB

solid DB is a hybrid on-disk/in-memory, relational database and is often used as an embedded system database in telecommunications equipment, network software, and similar systems. In-memory database technology is used to achieve throughput of tens of thousands of transactions per second with response times measured in microseconds. High availability option maintains two copies of the data synchronized at all times. In case of system failure, applications can recover access to solid DB in less than a second without loss of data.


SQLite

SQLite is a software library that implements a self-contained, server-less, zero-configuration, transactional SQL database engine. SQLite is the most widely deployed SQL database engine in the world. The source code, chiefly C, for SQLite is in the public domain. It includes both a native C library and a simple command line client for its database. It's included in several operating systems; among them are Android, FreeBSD,
iOS iOS (formerly iPhone OS) is a mobile operating system created and developed by Apple Inc. exclusively for its hardware. It is the operating system that powers many of the company's mobile devices, including the iPhone; the term also includes ...
,
OS X macOS (; previously OS X and originally Mac OS X) is a Unix operating system developed and marketed by Apple Inc. since 2001. It is the primary operating system for Apple's Mac computers. Within the market of desktop and lap ...
and Windows 10.


SQL Server Compact

SQL Server Compact is an embedded database by Microsoft with wide variety of features like multi-process connections, T-SQL, ADO.NET Sync Services to sync with any back end database, Merge Replication with SQL Server, Programming API:
LINQ to SQL Language Integrated Query (LINQ, pronounced "link") is a Microsoft .NET Framework component that adds native data querying capabilities to .NET languages, originally released as a major part of .NET Framework 3.5 in 2007. LINQ extends the langu ...
, LINQ to Entities, ADO.NET. The product runs on both Desktop and Mobile Windows platforms. It has been in the market for long time, used by many enterprises in production software
Case Studies
. The product went through multiple re-brandings and was known with multiple names like: SQL CE, SQL Server CE, SQL Server Mobile, SQL Mobile.


See also

* In-memory database, main memory database * Mobile database


References

{{DEFAULTSORT:Embedded Database