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-дерева.

Примітки[ред. | ред. код]

  1. Crash Tolerance. GDBM manual. Процитовано 3 жовтня 2021.
  2. Crashproofing the Original NoSQL Key-Value Store. Процитовано 3 жовтня 2021.
  3. yigit, ozan. sdbm.bun. cse.yorku.ca. Процитовано 8 травня 2019.
  4. Ruby SDBM library. SDBM on Github. Note that Ruby used to ship SDBM in the standard distribution up until version 2.7, after which it was made available only as an external library, similarly to the DBM and GDBM libraries, removed from the standard library in Ruby 3.1.
  5. QDBM: Quick Database Manager. fallabs.com. 2006. Архів оригіналу за 27 лютого 2020. Процитовано 27 лютого 2020.
  6. tdb: Main Page. tdb.samba.org.