Встроенная база данных система является системой управления базами данных (СУБД) , которая тесно интегрирована с прикладным программным обеспечением , которое требует доступа к хранимым данным , таким образом, что система базы данных «скрытый» от конечного пользователя приложения и практически не требует постоянного обслуживания. На самом деле это широкая категория технологий, которая включает
- системы баз данных с различными интерфейсами прикладного программирования ( SQL, а также проприетарные собственные API-интерфейсы),
- архитектуры баз данных ( клиент-серверная и внутрипроцессная),
- режимы хранения (на диске, в памяти и комбинированные),
- модели баз данных ( реляционные , объектно-ориентированные , модель сущность – атрибут – значение , сеть / CODASYL ) и
- целевые рынки.
Термин встроенная база данных может сбивать с толку, потому что только небольшая часть продуктов встроенных баз данных используется во встроенных системах реального времени, таких как телекоммуникационные коммутаторы и устройства бытовой электроники . [1] (См. Мобильные базы данных для небольших баз данных, которые можно использовать на встроенных устройствах.)
Реализации
Основные продукты для встроенных баз данных включают в алфавитном порядке:
- Сервер базы данных Advantage от Sybase Inc.
- Berkeley DB от Oracle Corporation
- CSQL с csqlcache.com
- Расширяемый механизм хранения от Microsoft
- eXtremeDB от McObject
- Filemaker от Claris
- Встроенный Firebird
- HSQLDB от HSQLDB.ORG,
- Informix Dynamic Server (IDS) от IBM
- InfinityDB от Boiler Bay Inc.
- InnoDB от Oracle Corporation
- InterBase (как серверная, так и мобильная версия с глубоким встраиванием) от Embarcadero Technologies
- База данных с отображением в память Lightning (LMDB) от Symas Corp.
- Менеджер базы данных Raima от Raima
- solidDB
- SQLite
- SQL Server Compact от корпорации Microsoft
- Sophia Embeddable хранилище ключей и значений
Сравнение механизмов хранения баз данных
Сервер базы данных Advantage
Сервер базы данных Sybase Advantage (ADS) - это полнофункциональная встроенная система управления базами данных. Он обеспечивает как ISAM, так и реляционный доступ к данным и совместим с несколькими платформами, включая Windows, Linux и Netware. Он доступен в виде бесплатной локальной базы данных файлового сервера или полной клиент-серверной версии. ADS существует уже много лет, обладает высокой масштабируемостью, не требует администрирования и поддерживает множество IDE, включая .NET Framework (.NET), Object Pascal (Delphi), Visual FoxPro (FoxPro), PHP , Visual Basic ( VB), визуальные объекты (VO), Vulcan , Clipper , Perl , Java , xHarbour и т. Д.
Apache Derby
Derby - это встраиваемый механизм SQL, полностью написанный на Java. Полностью транзакционный, многопользовательский с приличным подмножеством SQL, Derby - это зрелый движок, свободно доступный по лицензии Apache и активно поддерживаемый. Страница проекта Дерби . Он также распространяется как часть Oracle Java SE Development Kit (JDK) под названием Java DB.
Встроенная база данных Empress
Empress Software, Inc., разработчик встроенной базы данных Empress , является частной компанией, основанной в 1979 году. Empress Embedded Database - это полнофункциональная реляционная база данных, которая была встроена в приложения небольшими и крупными организациями, со средами развертывания, включая медицинские системы, сетевые маршрутизаторы, мониторы атомных электростанций, спутниковые системы управления и другие встроенные системные приложения, требующие надежности и мощности. [2] Empress - совместимый с ACID механизм базы данных SQL с C, C ++ , Java, JDBC , ODBC, SQL , ADO.NET и API уровня ядра . Приложения, разработанные с использованием этих API, могут работать в автономном и / или серверном режимах. Empress Embedded Database работает в Linux, Unix , Microsoft Windows и операционных системах реального времени .
Расширяемый механизм хранения
ESE - это технология хранения данных с индексированным последовательным доступом (ISAM) от Microsoft. ESE - это, в частности, ядро Microsoft Exchange Server и Active Directory. Его цель - позволить приложениям хранить и извлекать данные с помощью индексированного и последовательного доступа. Почта Windows и Desktop Search в операционной системе Windows Vista также используют ESE для хранения индексов и информации о свойствах соответственно.
eXtremeDB
Компания McObject LLC запустила eXtremeDB как первую встроенную базу данных в памяти, разработанную с нуля для встроенных систем реального времени. К первоначальному продукту вскоре присоединилась eXtremeDB High Availability (HA) для отказоустойчивых приложений. Семейство продуктов теперь включает 64-разрядную версию и версию для ведения журнала транзакций , а также гибридный eXtremeDB Fusion, который сочетает в себе хранение данных в памяти и на диске. В 2008 году McObject представила eXtremeDB Kernel Mode, первую встроенную СУБД, предназначенную для работы в ядре операционной системы . [3] Сегодня eXtremeDB используется в миллионах систем реального времени и встроенных систем по всему миру. McObject также предлагает Прест , в с открытым исходным кодом , объектно-ориентированным встроенной базу данных для Java, Java ME , .NET, платформа .NET Compact Framework и Silverlight .
Встроенный Firebird
Firebird Embedded - это движок реляционной базы данных. Это форк InterBase с открытым исходным кодом, совместим с ACID , поддерживает триггеры и хранимые процедуры и доступен в системах 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 как облегченная реализация дизайна хранилища Bigtable . В качестве библиотеки (что является единственным способом использования LevelDB) ее собственный API - это C ++. Он также включает официальные оболочки C для большей функциональности. Сторонние обертки API существуют для Python , PHP , Go ( чистая реализация Go LevelDB существует, но все еще продолжается), Node.js и Objective C. Google распространяет LevelDB под новой лицензией BSD .
LMDB
База данных с отображением в память Lightning (LMDB) - это база данных ключей и значений с отображением в памяти для проекта OpenLDAP . Он написан на C, а API смоделирован по образцу API Berkeley DB , хотя и значительно упрощен. Библиотека чрезвычайно компактна, компилируется до 40 КБ объектного кода x86, обычно быстрее, чем аналогичные библиотеки, такие как Berkeley DB , LevelDB и т. Д. Библиотека реализует деревья B + с мультиверсионным управлением параллелизмом (MVCC), одноуровневым хранилищем , копией при записи и обеспечивает полные ACID- транзакции без взаимоблокировок. Библиотека оптимизирована для высокого параллелизма чтения; читатели вообще не нуждаются в замках. Читатели не блокируют писателей, а писатели не блокируют читателей, поэтому производительность чтения идеально линейно масштабируется между произвольным количеством потоков и процессоров. Сторонние оболочки существуют для C ++ , Erlang и Python . LMDB распространяется проектом OpenLDAP под общественной лицензией OpenLDAP. С 2013 года проект OpenLDAP отказывается от использования Berkeley DB в пользу LMDB.
Mimer SQL
Доступна встроенная не требующая обслуживания версия проприетарной базы данных Mimer SQL.
Встроенная серверная библиотека MySQL
Встроенная библиотека MySQL Server предоставляет большинство функций регулярного 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 Database Manager , созданный Raima , был одной из первых систем управления базами данных, отнесенных к категории встроенных баз данных. Согласно определению Раймы, продукт встраивается в двух смыслах: во-первых, он встроен в приложение, становясь его расширением, и, во-вторых, его можно использовать во встроенном компьютере / ОС или в средах реального времени из-за его небольшая занимаемая площадь и эффективная работа. Его API-интерфейсы (для C / C ++, SQL, JDBC, ODBC, ADO.NET и RESTful) были разработаны для поддержки ограниченных ресурсов встроенных сред. С момента своего первоначального выпуска RDM Embedded постоянно развивается и в настоящее время выпущен как версия 14.2.
RocksDB
RocksDB, созданный в Facebook , начинался как форк LevelDB . [9] Основное внимание уделяется производительности, особенно твердотельным накопителям . Он добавляет множество функций, включая транзакции , [10] резервные копии , [11] снимки состояния , [12] фильтры Блума , [13] семейства столбцов , [14] срок действия, [15] пользовательские операторы слияния, [16] более настраиваемое уплотнение, [ 17] сбор статистики [18] и геопространственное индексирование. [19] Он используется в качестве механизма хранения в нескольких других базах данных, включая ArangoDB , [20] Ceph , [21] CockroachDB , [22] MongoRocks, [23] MyRocks , [24] Rocksandra, [25] и TiKV. [26] [27]
solidDB
solidDB - это гибридная реляционная база данных на диске и в памяти, которая часто используется в качестве встроенной системной базы данных в телекоммуникационном оборудовании, сетевом программном обеспечении и подобных системах. Технология баз данных в памяти используется для достижения пропускной способности в десятки тысяч транзакций в секунду, а время отклика измеряется микросекундами. Опция высокой доступности обеспечивает постоянную синхронизацию двух копий данных. В случае сбоя системы приложения могут восстановить доступ к solidDB менее чем за секунду без потери данных.
SQLite
SQLite - это программная библиотека, которая реализует автономный, бессерверный, транзакционный механизм базы данных SQL с нулевой конфигурацией. SQLite - это самый широко распространенный механизм баз данных SQL в мире. Исходный код SQLite, в основном C, находится в открытом доступе. Он включает в себя как собственную библиотеку C, так и простой клиент командной строки для своей базы данных. Он включен в несколько операционных систем; среди них Android , FreeBSD , iOS , OS X и Windows 10 . [28]
SQL Server Compact
Microsoft SQL Server Compact - это встроенная база данных с широким спектром функций, таких как многопроцессорные соединения, 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.
Смотрите также
- База данных в памяти, база данных основной памяти
- Мобильная база данных
Рекомендации
- ^ Грейвс, Стив. "Базы данных COTS для встроенных систем". Архивировано 14 ноября 2007 г.в Wayback Machine ,журнал Embedded Computing Design , январь 2007 г. Получено 13 августа 2008 г.
- ^ Маллинз, Крейг. «Empress предлагает эффективное решение для встроенных баз данных» , 2005. Проверено 9 декабря 2008 г.
- ^ Gorine, Андрей и Криволапов, Александр. «Базы данных в режиме ядра: технология СУБД для высокопроизводительных приложений» , журнал доктора Добба , апрель 2008 г. Проверено 13 августа 2008 г.
- ^ Домашняя страница HailDB
- ^ Завершение работы HailDB , Стюарт Смит, 19 августа 2015 г., HailDB
- ^ "Embedding Informix Dynamic Server" , последнее посещение - 30 августа 2009 г.
- ^ См. Berkeley DB.
- ^ Никколай, Джеймс. «Обновление: Oracle покупает поставщика баз данных с открытым исходным кодом Sleepycat». Архивировано 13 июня2008 г. на Wayback Machine , «InfoWorld», 14 февраля 2006 г. Проверено 12 июня, 2008.
- ^ "Основы RocksDB" . Проверено 19 июля 2018 .
- ^ «Сделки RocksDB» . GitHub . Проверено 4 апреля 2016 .
- ^ "Как сделать резервную копию RocksDB?" . Проверено 19 июля 2017 .
- ^ «Контрольно-пропускные пункты» . Проверено 19 июля 2017 .
- ^ "Фильтры цветения RocksDB" . GitHub . Проверено 4 апреля 2016 .
- ^ «Семейства столбцов в RocksDB» . GitHub . Проверено 4 апреля 2016 .
- ^ «Поддержка RocksDB TTL» . GitHub . Проверено 4 апреля 2016 .
- ^ «Оператор слияния RocksDB» . GitHub . Проверено 4 апреля 2016 .
- ^ «Универсальное уплотнение» . GitHub . Проверено 4 апреля 2016 .
- ^ «Контекст производительности RocksDB и контекст статистики ввода-вывода» . GitHub . Проверено 4 апреля 2016 .
- ^ «Пространственное индексирование в RocksDB» . Rockdb.org . Проверено 19 июля 2018 .
- ^ «Сравнение новых механизмов хранения RocksDB и MMFiles» . Проверено 19 июля 2018 .
- ^ «Устройства хранения - документация Ceph» . Проверено 19 июля 2018 .
- ^ «Слой хранения - CockroachDB» . Проверено 19 июля 2018 .
- ^ «mongodb-partners / mongo-rocks: уровень интеграции хранилища MongoDB для механизма хранения Rocks» . Проверено 19 июля 2018 .
- ^ «MyRocks - механизм хранения RocksDB с MySQL» . Проверено 19 июля 2018 .
- ^ «Открытый исходный код 10-кратного сокращения задержки хвоста Apache Cassandra» . Проверено 19 июля 2018 .
- ^ «RocksDB в TiKV - PingCAP» . Проверено 19 июля 2018 .
- ^ https://medium.com/walmartglobaltech/https-medium-com-kharekartik-rocksdb-and-embedded-databases-1a0f8e6ea74f
- ^ Ответ, Усмань (29 октября 2015 г.). «Создание нового мышления с помощью SQLite в Windows 10» . Microsoft. Архивировано из оригинала на 2016-01-31 . Проверено 6 марта +2016 .