DBM

база даних ключ-значення

DBM — це бібліотека формат файлів, та база даних типу ключ-значення з оригінального Unix. dbm є раннім прикладом NoSQL бази даних.

Історія

Оригінальний формат файлів dbm є простою базою даних. Формат файлу та бібліотека для роботи з ним був розроблений Кеном Томпсоном, та випущена AT&T у 1979 році. Назва DBM походить від англ. DataBase Manager. Також dbm називають інші бази, сумісні з оригінальною версією.

Бібліотека dbm зберігає довільні дані у сегментах фіксованого розміру, та адресує за допомогою первинного ключа. Для швидкого пошуку використовує техніку хеш-таблиць.Для динамічної зміни розміру бази використовується метод хешування. Це означає що коли до бази даних додаються нові сегменти, діапазон хешів ключів розширюється.dbm зберігає дані на диску, робота з базою реалізується як бібліотека.Для одночасної роботи декількома процесами існував агент — серверний демон, який може обробляти запити. Але для взаємодії він використовував IPC.

Реалізації

Оригінальна бібліотека dbm AT&T була замінена багатьма іншими сумісними реалізаціями. Серед відомих прикладів:

  • ndbm (new dbm), заснований на оригінальному dbm з деякими новими функціями.
  • GDBM («GNU dbm»), бібліотека реалізована проєктом GNU. Реалізує функції ndbm та має власний інтерфейс. Також надає нові функції: стійкість до збоїв для забезпечення узгодженості даних.[1][2]
  • sdbm («small dbm»), переписана як суспільне надбання dbm. Бібліотека є частиною стандартного дистрибутиву для Perl, також реалізована як зовнішня бібліотека для Ruby.[3][4]
  • qdbm (Quick Database Manager — Швидкий менеджер баз даних), реалізація dbm, головною метою якої була висока продуктивність. Написана Mikio Hirabayashi, автором майбутніх Tokyo/Kyoto Cabinet[5]
  • tdb («Trivial Database»), проста база даних, яка використовується Samba. Має API на основі gdbm.[6]
  • Berkeley DB, 1991 заміна ndbm програмним забезпеченням Sleepycat (нині Oracle), створеним для обходу авторських прав AT&T Unix на BSD. Він має багато розширень, таких як паралелізм, контроль транзакцій, хешування та зберігання B-дерева.

Примітки