Встроенная база данных
![]() | В данной статье поднимается несколько вопросов. Пожалуйста, помогите улучшить его или обсудите эти проблемы на странице обсуждения . ( Узнайте, как и когда удалять эти шаблонные сообщения )
|
Встроенная система баз данных — это система управления базами данных (СУБД), которая тесно интегрирована с прикладным программным обеспечением ; он встроен в приложение. Это широкая категория технологий, которая включает в себя: [1]
- системы баз данных с различными интерфейсами прикладного программирования ( SQL , а также собственные API)
- архитектуры баз данных ( клиент-серверная и внутрипроцессная)
- режимы хранения (на диске, в памяти и комбинированный)
- модели баз данных ( реляционная , объектно-ориентированная , модель сущность-атрибут-значение , сетевая/ CODASYL )
- целевые рынки
Термин «встроенная база данных» может сбивать с толку, поскольку лишь небольшая часть продуктов встроенных баз данных используется во реального времени встроенных системах , таких как телекоммуникационные коммутаторы и бытовая электроника . [2] (См. мобильную базу данных , чтобы узнать о небольших базах данных, которые можно использовать на встроенных устройствах.)
Реализации [ править ]
Основные продукты для встроенных баз данных включают в алфавитном порядке:
- Актиан Дзен от Актиана.
- Сервер базы данных Advantage от Sybase Inc.
- ArcticDB от Man Group
- Berkeley DB от корпорации Oracle
- DuckDB от DuckDB Labs
- CSQL с сайта csqlcache.com
- Расширяемый механизм хранения данных от Microsoft
- eXtremeDB от McObject
- Firebird Встроенный
- Н2
- HSQLDB из HSQLDB.ORG,
- Informix Dynamic Server (IDS) от IBM
- InfinityDB от Boiler Bay Inc.
- InnoDB от корпорации Oracle
- InterBase (глубоко встроенная версия, удобная как для серверов, так и для мобильных устройств) от Embarcadero Technologies
- КузуДБ
- ЛансДБ
- База данных с отображением памяти Lightning (LMDB) от Symas Corp.
- Мимер SQL
- МонетБД встроенный
- SolidDB
- SQLite
- SQL Server Compact от корпорации Microsoft
- София Встраиваемое хранилище ключей и значений
Сравнение систем хранения данных [ править ]
![]() | Этот раздел содержит контент, написанный как реклама . ( Ноябрь 2021 г. ) |
Сервер базы данных Advantage [ править ]
Сервер базы данных 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 [ править ]
Empress Software, Inc., разработчик Empress Embedded Database , является частной компанией, основанной в 1979 году. Empress Embedded Database — это полнофункциональная реляционная база данных, которая встраивается в приложения малыми и крупными организациями, среды развертывания которых включают в себя медицинские системы, сетевые маршрутизаторы, мониторы атомных электростанций, системы управления спутниками и другие встроенные системные приложения, требующие надежности и мощности. [3] Empress — это ACID , совместимое с ядро базы данных SQL , с 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 для хранения индексов и информации о свойствах соответственно.
eXtremeDB [ править ]
Компания 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 на самом деле не встроен, поскольку его нельзя статически скомпоновать.
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. Учитывая, что 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 [ править ]
СУБД InfinityDB Embedded Java представляет собой отсортированное иерархическое хранилище ключей/значений. Теперь у него есть зашифрованная версия и версия Клиент/Сервер. Скорость многоядерного процессора запатентована. InfinityDB — это безопасное, транзакционное, сжимающее и надежное решение, хранящееся в одном файле для мгновенной установки и не требующее администрирования. API включают простой и быстрый ItemSpace, представление ConcurrentNavigableMap и JSON. RemoteItemSpace может прозрачно перенаправлять встроенные API в другие экземпляры базы данных. Клиент/Сервер включает в себя облегченный сервер сервлетов, веб-администратор и просмотр базы данных, а также REST для Python.
Informix Dynamic Server [ править ]
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 [ править ]
LevelDB — это упорядоченное хранилище ключей и значений, созданное Google как облегченная реализация конструкции хранилища Bigtable . Поскольку это библиотека (это единственный способ использовать LevelDB), ее собственный API — C++. Он также включает официальные оболочки C для большинства функций. Сторонние оболочки API существуют для Python , PHP , Go ( чистая реализация Go LevelDB существует, но все еще находится в разработке), 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/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 [ править ]
NexusDB является коммерческим преемником базы данных FlashFiler , исходный код которой теперь открыт. Оба они могут быть встроены в приложения Delphi для создания автономных исполняемых файлов с полной функциональностью базы данных.
Oracle Berkeley DB [ править ]
Как следует из названия, встроенная база данных Oracle на самом деле представляет собой Berkeley DB , которую Oracle приобрела у Sleepycat Software. Первоначально он был разработан в Калифорнийском университете. [8] Berkeley DB — это быстрая встроенная база данных с открытым исходным кодом, которая используется в нескольких известных продуктах с открытым исходным кодом, включая операционные системы Linux и BSD Unix, веб-сервер Apache, пакет повышения производительности OpenOffice. Тем не менее, в последние годы многие известные проекты перешли на использование LMDB , поскольку он превосходит Berkeley DB в ключевых сценариях по принципу « меньше значит лучше », а также из-за смены лицензии. [9]
RocksDB [ править ]
RocksDB, созданный в Facebook , начинался как форк LevelDB . [10] Основное внимание уделяется производительности, особенно на твердотельных накопителях . Он добавляет множество функций, включая транзакции , [11] резервные копии , [12] снимки , [13] фильтры Блума , [14] семейства колонн , [15] срок действия, [16] пользовательские операторы слияния, [17] более настраиваемое уплотнение, [18] сбор статистики, [19] и геопространственная индексация. [20] Он используется в качестве механизма хранения внутри нескольких других баз данных, включая ArangoDB . [21] Цеф , [22] ТараканДБ , [23] МонгоРокс, [24] МайРокс , [25] рок Сандра, [26] ТиКВ. [27] [28] и ЮгабайтДБ . [29]
SolidDB [ править ]
Solid DB представляет собой гибридную реляционную базу данных, хранящуюся на диске и в памяти, и часто используется в качестве встроенной системной базы данных в телекоммуникационном оборудовании, сетевом программном обеспечении и подобных системах. Технология баз данных в памяти используется для достижения пропускной способности десятков тысяч транзакций в секунду, а время отклика измеряется микросекундами. Опция высокой доступности обеспечивает постоянную синхронизацию двух копий данных. В случае сбоя системы приложения смогут восстановить доступ к твердой БД менее чем за секунду без потери данных.
SQLite [ править ]
SQLite — это программная библиотека, реализующая автономный, бессерверный, не требующий настройки транзакционный механизм базы данных SQL. SQLite — наиболее широко распространенный движок базы данных SQL в мире. Исходный код SQLite, в основном C, находится в свободном доступе. Он включает в себя как собственную библиотеку C, так и простой клиент командной строки для своей базы данных. Он включен в несколько операционных систем; среди них Android , FreeBSD , iOS , OS X и Windows 10 . [30] Он также используется веб-браузером Chromium и его производными. [31]
SQL Server Compact [ править ]
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.
См. также [ править ]
- База данных в памяти , база данных в основной памяти
- Мобильная база данных
Ссылки [ править ]
- ^ «Что такое модель базы данных» . Люсидчарт . Проверено 6 ноября 2022 г.
- ^ Грейвс, Стив. «Базы данных COTS для встраиваемых систем». Архивировано 14 ноября 2007 г. в журнале Wayback Machine , журнал Embedded Computing Design , январь 2007 г. Проверено 13 августа 2008 г.
- ^ Маллинз, Крейг. «Императрица предлагает эффективное решение для встраиваемых баз данных» , 2005 г. Проверено 9 декабря 2008 г.
- ^ Горин, Андрей и Криволапов, Александр. «Базы данных в режиме ядра: технология СУБД для высокопроизводительных приложений» , журнал доктора Добба , апрель 2008 г. Проверено 13 августа 2008 г.
- ^ Домашняя страница HailDB
- ↑ Закрытие HailDB , Стюарт Смит, 19 августа 2015 г., HailDB.
- ^ «Встраивание динамического сервера Informix» , дата обращения 30 августа 2009 г.
- ^ См. БД Беркли.
- ^ Николаи, Джеймс. «Обновление: Oracle покупает поставщика баз данных с открытым исходным кодом Sleepycat». Архивировано 13 июня 2008 г. на Wayback Machine , «InfoWorld», 14 февраля 2006 г. Проверено 12 июня 2008 г.
- ^ «Основы RocksDB» . Гитхаб . Проверено 19 июля 2018 г.
- ^ «Транзакции RocksDB» . Гитхаб . Проверено 4 апреля 2016 г.
- ^ «Как сделать резервную копию RocksDB?» . Гитхаб . Проверено 19 июля 2017 г.
- ^ «КПП» . Гитхаб . Проверено 19 июля 2017 г.
- ^ «Фильтры Блума RocksDB» . Гитхаб . Проверено 4 апреля 2016 г.
- ^ «Семейства столбцов в RocksDB» . Гитхаб . Проверено 4 апреля 2016 г.
- ^ «Поддержка RocksDB TTL» . Гитхаб . Проверено 4 апреля 2016 г.
- ^ «Оператор слияния RocksDB» . Гитхаб . Проверено 4 апреля 2016 г.
- ^ «Универсальное уплотнение» . Гитхаб . Проверено 4 апреля 2016 г.
- ^ «Контекст производительности RocksDB и контекст статистики ввода-вывода» . Гитхаб . Проверено 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 г.
- ^ «Открытие исходного кода для десятикратного сокращения задержки хвоста Apache Cassandra» . 5 марта 2018 года . Проверено 19 июля 2018 г.
- ^ «RocksDB в TiKV — PingCAP» . 15 сентября 2017 года . Проверено 19 июля 2018 г.
- ^ «Взгляд на мир встраиваемых баз данных с участием RocksDB» . 21 ноября 2019 г.
- ^ Баутин Михаил (20 февраля 2019 г.). «Как мы создали высокопроизводительное хранилище документов на RocksDB?» . Блог о распределенном SQL . Проверено 9 января 2022 г.
- ^ Ответ, Усман (29 октября 2015). «Отправка нового мышления с помощью SQLite в Windows 10» . Майкрософт. Архивировано из оригинала 31 января 2016 г. Проверено 6 марта 2016 г.
- ^ «Уровень абстракции SQLite» . chromium.googlesource.com . Проверено 27 сентября 2023 г.