stringtranslate.com

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

Встроенная система баз данных — это система управления базами данных (СУБД), которая тесно интегрирована с прикладным программным обеспечением ; он встроен в приложение. Это широкая категория технологий, которая включает в себя: [1]

Термин «встроенная база данных» может сбивать с толку, поскольку лишь небольшая часть продуктов встроенных баз данных используется во встроенных системах реального времени, таких как телекоммуникационные коммутаторы и бытовая электроника . [2] (Информацию о небольших базах данных, которые можно использовать на встроенных устройствах, см. в разделе « Мобильная база данных».)

Реализации

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

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

Преимущество сервера базы данных

Сервер базы данных Advantage Database Server (ADS) компании Sybase — это встроенная система управления базами данных. Он обеспечивает как метод индексированного последовательного доступа (ISAM), так и реляционный доступ к данным и совместим с несколькими платформами, включая Windows, Linux и Netware. Он доступен в виде бесплатной локальной базы данных файлового сервера или полной клиент-серверной версии. ADS обладает высокой масштабируемостью, не требует администрирования и поддерживает множество IDE, включая .NET Framework (.NET), Object Pascal ( Delphi ), Visual FoxPro (FoxPro), PHP , Visual Basic (VB), Visual Objects (VO). ), Vulcan , Clipper , Perl , Java , xHarbour и т. д.

Апач Дерби

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

Встроенная база данных Императрицы

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

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

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

ЭкстремемБД

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

Встроенный Firebird

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

Н2

Написан на 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. Учитывая, что HailDB основан на той же базе кода, что и InnoDB Storage Engine, он содержит многие из тех же функций, включая высокую производительность и масштабируемость, управление многоверсионным параллелизмом (MVCC), блокировку на уровне строк, обнаружение взаимоблокировок, отказоустойчивость и автоматическое восстановление после сбоя. Поскольку встроенный механизм полностью независим от MySQL, ему не хватает серверных компонентов, таких как сеть, разрешения на уровне объекта и т. д. Устраняя накладные расходы сервера MySQL, InnoDB занимает небольшую площадь и хорошо подходит для встраивания в приложения, требующие высокой производительности. производительность и параллелизм. Как и большинство встроенных систем баз данных, HailDB спроектирован так, чтобы к нему можно было получить доступ в первую очередь с помощью ISAM -подобного C API, а не с помощью SQL (хотя поддерживается крайне элементарный вариант SQL). [5]

С 2015 года проект больше не поддерживается. [6]

HSQLDB

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

ИнфинитиБД

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

Динамический сервер Informix

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

ИнтерБейс

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

УровеньБД

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

ЛМДБ

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

Мимер SQL

Доступна встроенная версия проприетарного сервера реляционной базы данных Mimer SQL, не требующая обслуживания. Он занимает небольшую площадь благодаря модульной конструкции, полной поддержке стандарта SQL и портированию на Windows , Linux , Automotive Grade Linux , Android , QNX , INTEGRITY и другие.

МонетБД/е

MonetDB/e — это встроенная версия механизма хранения столбцов MonetDB SQL с открытым исходным кодом. Доступно для C, C++, Java (JDBC) и Python. Лицензия MonetDB на основе MPL 2.0. Предшественник MonetDBLite (для R, Python и Java) больше не поддерживается. Его заменяет MonetDB/e.

Библиотека встроенного сервера MySQL

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

НексусДБ

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

Oracle Беркли БД

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

РоксДБ

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

SolidDB

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

SQLite

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

SQL-сервер компактный

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

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

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

  1. ^ «Что такое модель базы данных» . Люсидчарт . Проверено 6 ноября 2022 г.
  2. ^ Грейвс, Стив. «Базы данных COTS для встраиваемых систем». Архивировано 14 ноября 2007 г. в журнале Wayback Machine , журнал Embedded Computing Design , январь 2007 г. Проверено 13 августа 2008 г.
  3. ^ Маллинз, Крейг. «Императрица предлагает эффективное решение для встроенных баз данных», 2005 г. Проверено 9 декабря 2008 г.
  4. ^ Горин, Андрей и Криволапов, Александр. «Базы данных в режиме ядра: технология СУБД для высокопроизводительных приложений», журнал доктора Добба , апрель 2008 г. Получено 13 августа 2008 г.
  5. ^ Домашняя страница HailDB
  6. Закрытие HailDB, Стюарт Смит, 19 августа 2015 г., HailDB.
  7. ^ «Встраивание динамического сервера Informix», дата обращения 30 августа 2009 г.
  8. ^ См. БД Беркли.
  9. ^ Николаи, Джеймс. «Обновление: Oracle покупает поставщика баз данных с открытым исходным кодом Sleepycat». Архивировано 13 июня 2008 г. на Wayback Machine , «InfoWorld», 14 февраля 2006 г. Проверено 12 июня 2008 г.
  10. ^ «Основы RocksDB». Гитхаб . Проверено 19 июля 2018 г.
  11. ^ «Транзакции RocksDB». Гитхаб . Проверено 4 апреля 2016 г.
  12. ^ «Как сделать резервную копию RocksDB?». Гитхаб . Проверено 19 июля 2017 г.
  13. ^ «Проверочные точки». Гитхаб . Проверено 19 июля 2017 г.
  14. ^ "Фильтры цветения RocksDB" . Гитхаб . Проверено 4 апреля 2016 г.
  15. ^ "Семейства столбцов в RocksDB" . Гитхаб . Проверено 4 апреля 2016 г.
  16. ^ «Поддержка RocksDB TTL» . Гитхаб . Проверено 4 апреля 2016 г.
  17. ^ «Оператор слияния RocksDB» . Гитхаб . Проверено 4 апреля 2016 г.
  18. ^ «Универсальное уплотнение». Гитхаб . Проверено 4 апреля 2016 г.
  19. ^ «Контекст производительности RocksDB и контекст статистики ввода-вывода» . Гитхаб . Проверено 4 апреля 2016 г.
  20. ^ «Пространственное индексирование в RocksDB». rockdb.org . Проверено 19 июля 2018 г.
  21. ^ «Сравнение новых механизмов хранения RocksDB и MMFiles» . Проверено 19 июля 2018 г.
  22. ^ «Устройства хранения — Документация Ceph» . Проверено 19 июля 2018 г.
  23. ^ «Уровень хранения — CockroachDB» . Проверено 19 июля 2018 г.
  24. ^ «mongodb-partners/mongo-rocks: уровень интеграции хранилища MongoDB для механизма хранения Rocks» . Гитхаб . Проверено 19 июля 2018 г.
  25. ^ «MyRocks — механизм хранения RocksDB с MySQL» . Проверено 19 июля 2018 г.
  26. ^ «Открытый исходный код для 10-кратного сокращения задержки хвоста Apache Cassandra» . 5 марта 2018 года . Проверено 19 июля 2018 г.
  27. ^ «RocksDB в TiKV — PingCAP» . 15 сентября 2017 года . Проверено 19 июля 2018 г.
  28. ^ «Взгляд на мир встраиваемых баз данных с участием RocksDB» . 21 ноября 2019 г.
  29. ^ Баутин, Михаил (20 февраля 2019 г.). «Как мы создали высокопроизводительное хранилище документов на RocksDB?». Блог о распределенном SQL . Проверено 9 января 2022 г.
  30. ^ Ответ, Усман (29 октября 2015 г.). «Отправка нового мышления с помощью SQLite в Windows 10». Майкрософт. Архивировано из оригинала 31 января 2016 г. Проверено 6 марта 2016 г.
  31. ^ «Уровень абстракции SQLite» . chromium.googlesource.com . Проверено 27 сентября 2023 г.