db4o (від англ. database for objects — база даних для об'єктів) — вбудовувана система керування базами даних для об'єктів із відкритим вихідним кодом. Для некомерційного користування доступна під ліцензією GPL. Оскільки СКБД призначена для збереження об'єктів, її повноцінна реалізація можлива тільки в мовах програмування, які використовують рефлексію. Версія 5.2 підтримує технології Java, .NET Framework і Mono.

Історія ред.

Термін «об'єктно-орієнтовані системи баз даних» з'явився приблизно в 1985 році, хоча перші наукові розробки в цій галузі почалися в середині 1970 років.

Перші комерційні об'єктні системи керування базами даних з'явилися в 1990-их роках.

Друга хвиля зростання спостерігалася в першому десятилітті XXI століття, коли на ринку з'явилися об'єктно-орієнтовані бази даних, написані повністю об'єктно-орієнтованою мовою. Db4o є прикладом таких систем, повністю написаним на Java і С#. Розробку проєкту розпочав 2000 року головний архітектор Карл Розенберг, поширення розпочато 2001 року. Db4o від перших днів підтримали близько 100 співробітників і користувачів спільноти, і вже тоді, ще до запуску в корпоративну мережу, він мав успіх у використанні в корпоративних та академічних застосуваннях.

2008 року db4o купила компанія Versant[en] і почала поширювати під подвійною ліцензією: комерційною і GNU GPL. З моменту початкового запуску db4o була суттєво покращена.

Місце у світі баз даних ред.

Db4o підтримує модель об'єктно-орієнтованої бази даних. Розроблювані на базі db4o системи не вимагають створення окремої моделі даних, модель класів програми визначається структурою даних у базі db4o.

Розробники, які використовують реляційні бази даних, можуть застосовувати db4o як додатковий інструмент. Обмін даними db4o-RDBMS можна реалізувати за допомогою db4o Replication System (dRS). Також dRS може використовувати для переміщення між об'єктною (db4o) та реляційною технологіями (RDBMS).

Особливості ред.

Однорядкова база даних ред.

Db4o містить функцію, яка дозволяє зберігати будь-який об'єкт з єдиною командою:

objectContainer.store(new SomeClass());

Усі поля об'єкта зберігаються автоматично. Для окремих типів можна писати власні обробники[1].

Вбудовуваність ред.

Db4o проєктується так, що вона є вкладеною в інші програмні компоненти, повністю невидимою для користувача. Тому db4o не потребує ніякого окремого інсталяційного механізму.

Режим «клієнт-сервер» ред.

Режим «клієнт-сервер» дозволяє db4o підтримувати зв'язок між клієнтськими програмами та сервером. Db4o користується TCP/IP для комунікацій «клієнт-сервер» та дозволяє налаштовувати номер порту. Комунікація здійснюється через запит.

Документація ред.

Db4o має різні джерела документації: посібники[2], довідник[3], документація щодо API[4] та блоги[5]. Важлива інформації також доступна на форумах[6], у публікаціях спільноти[7] тощо.

Диспетчер об'єктів ред.

Диспетчер об'єктів (Object Management Enterprise; OME) — засіб для огляду бази даних db4o, доступний, як додаток до Eclipse і MS Visual Studio 2005/2008. Дозволяє переглядати класи та об'єкти в базі даних, з'єднуватися зі сервером бази даних, будувати запити, переглядати статистику бази даних тощо.

Також база даних db4o забезпечує деякі адміністративні функції:

  • Індексація
  • Дефрагментація
  • Дублювання

Примітки ред.

  1. TypeHandlers. Архів оригіналу за 9 липня 2011. Процитовано 26 серпня 2010.
  2. Archived copy. Архів оригіналу за 17 грудня 2010. Процитовано 26 серпня 2010.{{cite web}}: Обслуговування CS1: Сторінки з текстом «archived copy» як значення параметру title (посилання)
  3. Documentation. Архів оригіналу за 6 листопада 2010. Процитовано 26 серпня 2010.
  4. Archived copy. Архів оригіналу за 18 березня 2011. Процитовано 26 серпня 2010.{{cite web}}: Обслуговування CS1: Сторінки з текстом «archived copy» як значення параметру title (посилання)
  5. Blogs. Архів оригіналу за 22 вересня 2010. Процитовано 26 серпня 2010.
  6. Db4o Developer Community - Forums. Архів оригіналу за 12 травня 2009. Процитовано 10 червня 2009.
  7. Db4o Developer Community - ProjectSpaces. Архів оригіналу за 25 лютого 2009. Процитовано 10 червня 2009.

Посилання ред.