Вбудовувана система керування базами даних — архітектура систем керування базами даних, коли СКБД тісно пов'язана з застосунком і працює на тому ж комп'ютері, не потребуючи професійного адміністрування.

Вбудовувані СКБД застосовують у багатьох програмах, які зберігають великі масиви даних без потреби доступу з багатьох комп'ютерів: поштових клієнтах та месенджерах (бази листування), медіапрогравачах (плей-листи та обкладинки), переглядачах зображень (метадані та зменшені ескізи), різні локальні БД на кшталт телефонних довідників і геоінформаційних систем (надавані дані) тощо.

Історично локальні та файл-серверні СКБД надавали скриптову мову, якою користувач міг писати прикладну програму. Так влаштовані Microsoft Access, FoxPro, Clipper, 1С: Бухгалтерія. Недоліком цього підходу була бідність результуючих програм, обмежені засоби налагодження. І найчастіше не існувало компактного середовища виконання, яке можна розповсюджувати разом із програмою; потрібна програма — встановлюй весь пакунок. З поширенням динамічного зв'язування та ідеології opensource маятник хитнувся в інший бік: нехай програміст пише свою програму тією мовою високого рівня, якою зручно. СКБД приєднається до програми і стане з нею єдиним цілим.

Особливості

; Немає окремої програми-сервера.
: Фізично вбудовувана СКБД є бібліотекою, яка статично або динамічно приєднується до основної програми. Програма та СКБД спілкуються не через мережеві сокети, а через спеціалізований програмний інтерфейс. У цьому, щоправда, є й недолік: найчастіше програміст сам повинен не допускати багатопотокової гонитви.

; Висока швидкість і мала витрата пам'яті, особливо на довгих рядках та BLOBах.
: Завдяки спеціалізованому API кількість операцій читання-запису є мінімальною.

; Найчастіше невеликий за мірками БД максимальний розмір бази.
: Від одиниць гігабайт (обсяг пам'яті ПК на 2012) до одиниць терабайт (порядку обсягу жорсткого диска). Наприклад, SQLite завжди містить у пам'яті зміст БД (аналог таблиці розміщення файлів), цим обмежується обсяг БД.

; Як правило, спеціалізована мова запитів або неповна сумісність із SQL-92.
: Часто для продуктивності розробники реалізують або неповний SQL (SQLite), або спеціалізовану мову запитів (BerkeleyDB). До того ж вбудовувані СУБД можуть діяти зовсім за іншим принципом, ніж клієнт-серверні: пінг до БД нульовий, і запит можна виконувати частинами, декількома зверненнями до СУБД.

; Як правило, немає прав користувача; найпростіша ізоляція транзакцій.
: Більшого однокористувацькій БД і не потрібно. Як правило, транзакції ізолюються за принципом «записуємо по одному» за допомогою стандартних механізмів ОС на кшталт блокування файлів. Доступ до одного файлу з кількох програм можна налагодити: так, SQLite успішно працює в малонавантажених сайтах. Але високе навантаження йому не під силу.

; Як правило, немає архівації та реплікації БД.
: Вбудована БД надійна настільки, наскільки надійна бібліотека СКБД і файлова система, де розташовано базу даних. Відомі вбудовувані СКБД, як правило, добре відтестовані, а сучасні файлові системи дуже надійні. Разом з тим, є безліч способів втратити дані, тому такі рішення щодо надійності поступаються серверним СКБД.

; Як правило, немає мовних засобів, які спрощують доступ до БД.
: Спеціалізовані СКБД-мови на зразок xBase зазвичай є симбіозом мови запитів і мови прикладного програмування. У мовах програмування загального призначення правильність запиту буде перевірено не під час компіляції, а лише тоді, коли запит буде надіслано в СКБД. І, звичайно ж, мовою програмування загального призначення конструкції доступу до БД (як вбудованої, так і клієнт-серверної) будуть «важкими».
: Втім, у C# є мова запитів LINQ, яка компілюється в комбінацію викликів методів, а ті, як правило, готують звичайний SQL.

Приклади

* Accuracer Database System
* Advantage Database Server
* Oracle Berkeley DB
* CSQL
* EffiProz
* ElevateDB
* Empress Embedded Database
* Extensible Storage Engine
* eXtremeDB
* Вбудовувана версія Firebird
* HSQLDB
* InfinityDB
* Вбудовувана версія Informix Dynamic Server
* Вбудовувана версія InnoDB
* Вбудовувана версія InterBase
* ITTIA DB
* Kyoto Cabinet
* Вбудовувана версія MySQL
* NexusDB
* RDM Embedded
* ScimoreDB
* SolidDB
* SQLite
* Microsoft SQL Server Compact
* TurboDB
* Valentina DB
* VistaDB

Примітки


