Встроенная база данных - Embedded database

An встроенная база данных система - это система управления базами данных (СУБД), которая тесно интегрирована с программное обеспечение что требует доступа к сохраненные данные, так что система базы данных «скрыта» от конечного пользователя приложения и практически не требует постоянного обслуживания. На самом деле это широкая категория технологий, которая включает

Период, термин встроенная база данных может сбивать с толку, потому что только небольшое подмножество продуктов встроенных баз данных используется в в реальном времени встроенные системы Такие как телекоммуникационные коммутаторы и бытовая электроника устройств.[1] (Видеть мобильная база данных для небольших баз данных, которые можно использовать на встроенных устройствах.)

Реализации

Основные продукты для встроенных баз данных включают в алфавитном порядке:

Сравнение механизмов хранения баз данных

Сервер базы данных Advantage

Сервер базы данных Sybase Advantage (ADS) - это полнофункциональная встроенная система управления базами данных. Он обеспечивает как ISAM, так и реляционный доступ к данным и совместим с несколькими платформами, включая Windows, Linux и Netware. Он доступен в виде бесплатной локальной базы данных файлового сервера или полной версии клиент-сервер. ADS существует уже много лет, обладает высокой масштабируемостью, не требует администрирования и поддерживает множество IDE, включая .NET Framework (.СЕТЬ), Object Pascal (Дельфи), Visual FoxPro (FoxPro), PHP, Visual Basic (VB), Визуальные объекты (В.О.), Вулкан, Клипер, Perl, Ява, xHarbour, так далее.

Apache Derby

Derby - это встраиваемый механизм SQL, полностью написанный на Java. Полностью транзакционный, многопользовательский с приличным подмножеством SQL, Derby - это зрелый механизм, свободно доступный по лицензии Apache и активно поддерживаемый. Страница проекта Derby. Он также распространяется как часть Oracle Java SE Development Kit (JDK) под названием Java DB.

Встроенная база данных Empress

Empress Software, Inc., разработчик Встроенная база данных Empress, является частной компанией, основанной в 1979 году. Empress Embedded Database - это полнофункциональная реляционная база данных, которая была встроена в приложения небольшими и крупными организациями, со средами развертывания, включая медицинские системы, сетевые маршрутизаторы, мониторы атомных электростанций, спутниковое управление системы и другие встроенные системные приложения, требующие надежности и мощности.[2] Императрица КИСЛОТА совместимый, SQL движок базы данных с C, C ++, Ява, JDBC, ODBC, SQL, ADO.NET и уровень ядра API. Приложения, разработанные с использованием этих API, могут работать в автономном и / или серверном режимах. Встроенная база данных Empress работает в Linux, Unix, Microsoft Windows и операционные системы реального времени.

Расширяемый механизм хранения

ESE - это технология хранения данных с индексированным последовательным доступом (ISAM) от Microsoft. ESE - это, в частности, ядро ​​Microsoft Exchange Server и Active Directory. Его цель - позволить приложениям сохранять и извлекать данные с помощью индексированного и последовательного доступа. Почта Windows и Desktop Search в операционной системе Windows Vista также используют ESE для хранения индексов и информации о свойствах соответственно.

eXtremeDB

Запуск ООО МакОбджект eXtremeDB как первая встроенная база данных в памяти, разработанная с нуля для встроенных систем реального времени. К первоначальному продукту вскоре присоединилась eXtremeDB High Availability (HA) для отказоустойчивой Приложения. Семейство продуктов теперь включает 64-битные и ведение журнала транзакций редакции и гибридный eXtremeDB Fusion, который сочетает в себе хранение данных в памяти и на диске. В 2008 году McObject представила eXtremeDB Kernel Mode, первую встроенную СУБД, предназначенную для работы в операционной системе. ядро.[3] Сегодня eXtremeDB используется в миллионах систем реального времени и встроенных систем по всему миру. McObject также предлагает Perst, Открытый исходный код, объектно-ориентированная встроенная база данных для Java, Java ME, .СЕТЬ, .NET Compact Framework и Silverlight.

Встроенный Firebird

Firebird Embedded - это движок реляционной базы данных. Это форк InterBase с открытым исходным кодом, КИСЛОТА совместима, поддерживает триггеры и хранимые процедуры и доступна в системах Linux, OSX и Windows. Он имеет те же функции, что и классическая и суперсерверная версия Firebird, два или более потока (и приложения) могут обращаться к одной и той же базе данных одновременно, начиная с Firebird 2.5. Таким образом, встроенный Firebird действует как локальный сервер для однопоточного клиента, обращающегося к его базам данных (это означает, что он правильно работает для веб-приложений ASP.NET, потому что там каждый пользователь имеет свой собственный поток, что означает, что два пользователя могут получить доступ к одной и той же базе данных одновременно. раз, но они не будут в одном потоке, потому что ASP.NET открывает новый поток для каждого пользователя). Он экспортирует стандартные точки входа API Firebird. Основное преимущество встроенных баз данных Firebird заключается в том, что в отличие от баз данных SQlite или Access, они могут быть подключены к полноценному серверу Firebird без каких-либо модификаций, а также являются мультиплатформенными (работает на Linux, OS X с полной поддержкой ASP.NET Mono).


H2

Написано на Java. Очень быстрый движок базы данных с открытым исходным кодом. Встроенный и серверный режимы, поддержка кластеризации, могут работать внутри Google App Engine. Поддерживает зашифрованные файлы базы данных (AES или XTEA). Разработка H2 была начата в мае 2004 г., но она была впервые опубликована 14 декабря 2005 г. H2 имеет двойную лицензию и доступен под модифицированной версией MPL 1.1 (Mozilla Public License) или под (немодифицированной) EPL 1.0 (Eclipse Общественная лицензия).

HailDB, ранее Embedded InnoDB

HailDB - это автономная встраиваемая форма InnoDB Storage Engine. Учитывая, что HailDB основан на той же кодовой базе, что и InnoDB Storage Engine, он содержит многие из тех же функций: высокую производительность и масштабируемость, мультиверсионный контроль параллелизма (MVCC), блокировка на уровне строк, обнаружение взаимоблокировок, отказоустойчивость, автоматическое восстановление после сбоя и т. Д. Однако, поскольку встроенный движок полностью независим от MySQL, ему не хватает серверных компонентов, таких как сеть, разрешения на уровне объектов и т. Д. Из-за накладных расходов на сервер MySQL InnoDB занимает мало места и хорошо подходит для встраивания в приложения, требующие высокой производительности и параллелизма. Как и большинство встраиваемых систем баз данных, HailDB предназначен для доступа в первую очередь с помощью ISAM-подобного C API, а не SQL (хотя поддерживается крайне рудиментарный вариант SQL).[4]

Проект больше не поддерживается.[5]

HSQLDB

HSQLDB - это открытый исходный код система управления реляционной базой данных с лицензией типа BSD, которая работает на той же виртуальной машине Java, что и встроенное приложение. HSQLDB поддерживает различные режимы таблиц в памяти и на диске, Unicode и SQL: 2016.

InfinityDB

InfinityDB Embedded Java DBMS - это отсортированное иерархическое хранилище ключей и значений. Теперь у него есть зашифрованная версия и версия клиент / сервер. Запатентована частота многоядерных процессоров. InfinityDB является безопасным, транзакционным, надежным и надежным в одном файле для мгновенной установки и нулевого администрирования. API-интерфейсы включают простое быстрое «ItemSpace», представление ConcurrentNavigableMap и JSON. RemoteItemSpace может прозрачно перенаправить встроенные API в другие экземпляры базы данных. Клиент / сервер включает в себя легкий сервер сервлетов, веб-администратора и просмотр базы данных, а также REST для python.

Informix Dynamic Server

Informix Dynamic Server (IDS) характеризуется как сервер встраиваемой базы данных корпоративного класса, сочетающий в себе встраиваемые функции, такие как компактные, программируемые и автономные возможности, с функциями баз данных корпоративного класса, такими как высокая доступность и гибкие функции репликации.[6] IDS используется в глубоко встроенных сценариях, таких как системы обработки вызовов IP-телефонии, приложения для точек продаж и системы обработки финансовых транзакций.

InterBase

InterBase - это отмеченная наградой IoT кроссплатформенная платформа баз данных SQL с поддержкой Unicode, которую можно встраивать в приложения под ключ. Стандартная поддержка SMP и 256-битное шифрование AES на диске, соответствие SQL 92 и ACID, а также поддержка платформ Windows, Macintosh, Linux, Solaris, iOS и Android. Идеально подходит как для малых, так и для средних и крупных предприятий, поддерживающих сотни пользователей и разработку мобильных приложений. InterBase Light - это бесплатная версия, которую можно использовать на любом мобильном устройстве, и она идеально подходит для мобильных приложений. Предприятия могут перейти на платную версию по мере повышения требований к управлению изменениями и безопасности. InterBase широко применяется в оборонной, воздушно-космической, нефтегазовой и обрабатывающей промышленности.

LevelDB

LevelDB - это упорядоченный хранилище ключей / значений сделано Google как облегченная реализация Большой стол дизайн хранения. В качестве библиотеки (что является единственным способом использования LevelDB) ее собственный API - это C ++. Он также включает официальные оболочки C. для большей функциональности. Сторонние оболочки API существуют для Python, PHP, Идти (чистая реализация Go LevelDB существует, но все еще продолжается), Node.js и Цель C. Google распространяет LevelDB под Новая лицензия BSD.

LMDB

База данных Lightning с отображением в память (LMDB) - это с отображением памяти база данных ключ-значение для OpenLDAP Проект. Он написан на C, а API смоделирован после Berkeley DB API хоть и сильно упрощенный. Библиотека чрезвычайно компактна, компилируется до 40 КБ объектного кода x86, защищена от коррупции и на несколько порядков быстрее, надежнее, масштабируемее и эффективнее, чем аналогичные библиотеки, такие как Berkeley DB, LevelDB и т.д. Библиотека реализует деревья B + с мультиверсионный контроль параллелизма (MVCC), Одноуровневый магазин, Копирование при записи и обеспечивает полный КИСЛОТА транзакции без тупиков. Библиотека оптимизирована для одновременного чтения; читатели вообще не нуждаются в замках. Читатели не блокируют писателей, а писатели не блокируют читателей, поэтому производительность чтения идеально линейно масштабируется между произвольным количеством потоков и процессоров. Сторонние оболочки существуют для C ++, Erlang и Python. LMDB распространяется проектом OpenLDAP под общественной лицензией OpenLDAP. С 2013 года проект OpenLDAP отказывается от использования Berkeley DB в пользу LMDB.

Mimer SQL

Доступна встроенная версия проприетарной базы данных Mimer SQL, не требующая обслуживания.

Встроенная серверная библиотека MySQL

В libmysqld, библиотека встроенного сервера MySQL обеспечивает большинство функций обычного MySQL в виде связываемой библиотеки, которую можно запускать в контексте клиентского процесса. После инициализации клиенты могут использовать те же вызовы C API, что и при разговоре с отдельным сервером MySQL, но с меньшими накладными расходами на связь и без необходимости в отдельном процессе базы данных.

NexusDB

NexusDB является коммерческим преемником FlashFiler база данных с открытым исходным кодом. Оба они могут быть встроены в приложения Delphi для создания автономных исполняемых файлов с полной функциональностью базы данных.

Oracle Berkeley DB

Как следует из названия, встроенная база данных Oracle на самом деле Berkeley DB, которую Oracle приобрела у Sleepycat Software. Первоначально он был разработан в Калифорнийском университете.[7] Berkeley DB - это быстрая встроенная база данных с открытым исходным кодом, которая используется в нескольких хорошо известных продуктах с открытым исходным кодом, включая операционные системы Linux и BSD Unix, веб-сервер Apache, пакет для повышения производительности OpenOffice. Тем не менее, за последние годы многие известные проекты перешли на использование LMDB, потому что он превосходит Berkeley DB в ключевых сценариях на основе "меньше - больше "[необходимо разрешение неоднозначности ] дизайн, а также в связи с изменением лицензии. [8]

Менеджер базы данных Raima

Менеджер базы данных Raima, произведено Райма, была одной из первых систем управления базами данных, отнесенных к категории встроенных баз данных. По определению Раймы, продукт встроенный в двух смыслах: во-первых, он встроен в приложение, становясь его расширением, и, во-вторых, его можно использовать во встроенном компьютере / ОС или в средах реального времени из-за его небольших размеров и эффективности работы. Его API-интерфейсы (для C / C ++, SQL, JDBC, ODBC, ADO.NET и RESTful) были разработаны для поддержки ограниченных ресурсов встроенных сред. С момента своего первоначального выпуска RDM Embedded постоянно развивается и в настоящее время выпущен как версия 14.2.

RocksDB

RocksDB, созданный в Facebook, началось как разветвление LevelDB.[9] Основное внимание уделяется производительности, особенно SSD. Он добавляет множество функций, в том числе сделки,[10] резервные копии,[11] снимки,[12] фильтры цветения,[13] семейства колонн,[14] истечение срока[15] пользовательские операторы слияния,[16] более настраиваемое уплотнение,[17] сбор статистики,[18] и геопространственное индексирование.[19] Он используется в качестве механизма хранения в нескольких других базах данных, включая ArangoDB,[20] Ceph,[21] ТараканDB,[22] MongoRocks,[23] MyRocks,[24] Роксандра,[25] и TiKV.[26]

solidDB

solidDB - это гибридная реляционная база данных на диске и в памяти, которая часто используется в качестве встроенной системной базы данных в телекоммуникационном оборудовании, сетевом программном обеспечении и подобных системах. Технология баз данных в оперативной памяти используется для достижения пропускной способности в десятки тысяч транзакций в секунду со временем отклика, измеряемым в микросекундах. Опция высокой доступности поддерживает постоянную синхронизацию двух копий данных. В случае сбоя системы приложения могут восстановить доступ к solidDB менее чем за секунду без потери данных.

SQLite

SQLite - это программная библиотека, которая реализует автономный, бессерверный, транзакционный механизм базы данных SQL с нулевой конфигурацией. SQLite - это самый широко распространенный механизм баз данных SQL в мире. Исходный код SQLite, в основном C, находится в открытом доступе. Он включает в себя как собственную библиотеку C, так и простой клиент командной строки для своей базы данных. Он включен в несколько операционных систем; среди них есть Android, FreeBSD, iOS, OS X и Windows 10.[27]

SQL Server Compact

SQL Server Compact от Microsoft - это встроенная база данных с широким спектром функций, таких как многопроцессорные соединения, T-SQL, службы синхронизации ADO.NET для синхронизации с любой серверной базой данных, репликация слиянием с SQL Server, API программирования: LINQ to SQL, LINQ в Entities, ADO.NET. Продукт работает как на настольных, так и на мобильных платформах Windows. Он присутствует на рынке давно, используется многими предприятиями в производстве программного обеспечения (Примеры из практики ). Продукт прошел несколько ребрендингов и был известен под несколькими названиями, такими как: SQL CE, SQL Server CE, SQL Server Mobile, SQL Mobile.

Смотрите также

Рекомендации

  1. ^ Грейвз, Стив. «Базы данных COTS для встраиваемых систем» В архиве 2007-11-14 на Wayback Machine, Проектирование встроенных вычислений magazine, January, 2007. Проверено 13 августа, 2008.
  2. ^ Маллинз, Крейг. «Empress предлагает эффективное решение для встроенной базы данных», 2005. Проверено 9 декабря 2008 г.
  3. ^ Горин Андрей и Криволапов Александр. «Базы данных в режиме ядра: технология СУБД для высокопроизводительных приложений», Журнал доктора Добба, April, 2008. Проверено 13 августа, 2008.
  4. ^ Домашняя страница HailDB
  5. ^ Завершение работы HailDB, Стюарт Смит, 19 августа 2015 г., HailDB
  6. ^ «Встраивание динамического сервера Informix», Проверено 30 августа, 2009.
  7. ^ Видеть Berkeley DB
  8. ^ Никколай, Джеймс. «Обновление: Oracle покупает поставщика баз данных с открытым исходным кодом Sleepycat» В архиве 2008-06-13 на Wayback Machine, «Инфомир», 14.02.2006. Проверено 12 июня, 2008.
  9. ^ "Основы RocksDB". Получено 2018-07-19.
  10. ^ «Сделки RocksDB». GitHub. Получено 2016-04-04.
  11. ^ "Как сделать резервную копию RocksDB?". Получено 2017-07-19.
  12. ^ «Контрольно-пропускные пункты». Получено 2017-07-19.
  13. ^ "Фильтры цветения RocksDB". GitHub. Получено 2016-04-04.
  14. ^ "Семейства колонн в RocksDB". GitHub. Получено 2016-04-04.
  15. ^ "Поддержка RocksDB TTL". GitHub. Получено 2016-04-04.
  16. ^ «Оператор слияния RocksDB». GitHub. Получено 2016-04-04.
  17. ^ «Универсальное уплотнение». GitHub. Получено 2016-04-04.
  18. ^ "Контекст производительности RocksDB и контекст статистики ввода-вывода". GitHub. Получено 2016-04-04.
  19. ^ «Пространственное индексирование в RocksDB». Rockdb.org. Получено 2018-07-19.
  20. ^ «Сравнение новых механизмов хранения RocksDB и MMFiles». Получено 2018-07-19.
  21. ^ "Устройства хранения - документация Ceph". Получено 2018-07-19.
  22. ^ «Слой хранения - CockroachDB». Получено 2018-07-19.
  23. ^ "mongodb-partners / mongo-rocks: уровень интеграции хранилища MongoDB для механизма хранения Rocks". Получено 2018-07-19.
  24. ^ «MyRocks - механизм хранения RocksDB с MySQL». Получено 2018-07-19.
  25. ^ "Открытый исходный код 10-кратного сокращения задержки хвоста Apache Cassandra". Получено 2018-07-19.
  26. ^ «RocksDB в TiKV - PingCAP». Получено 2018-07-19.
  27. ^ Ответ, Усмань (29 октября 2015 г.). "Новое мышление с помощью SQLite в Windows 10". Microsoft. Архивировано из оригинал на 2016-01-31. Получено 6 марта 2016.