Berkeley DB (Database) – это open-source СУБД (система управления базами данных), разработанная компанией Sleepycat Software Inc. Она была исходно разработана для использования в приложениях под управлением UNIX.
Berkeley DB предлагает высокую производительность, надежность и эффективность в управлении данными. Она не требует установки сервера базы данных и может интегрироваться непосредственно в приложение.
Berkeley DB поддерживает различные типы баз данных, такие как хранилище ключ-значение, B-дерево и таблицу (SQL). Она также обеспечивает транзакционную обработку данных, многопоточную обработку и механизмы резервного копирования данных.
Сегодня Berkeley DB широко используется во многих приложениях, включая веб-серверы, почтовые клиенты, мобильные устройства и другие системы, где требуется эффективное и надежное управление данными.
В системе отсутствует сетевой доступ — программы используют базу данных через вызовы внутрипроцессного API. SQL поддеживается лишь в качестве одного из интерфейсов и то, начиная с версии 5.0 (2010). Поддерживаются как ACID-транзакции, детальные блокировки, интерфейс распределённых транзакций XA, горячее резервное копирование и репликацию. Может использоваться как средство для построения хранимых индексов, так и в качестве хранилища данных. Существуют средства для работы с Berkeley DB на большинстве популярных языков программирования, включая Perl, Python, PHP, Ruby.
Первая версия была создана в Университете Беркли во время разработки BSD версии 4.3 (июнь 1986 года). Netscape попросила авторов Berkeley DB улучшить и расширить библиотеку — в то время версию 1.85, — чтобы она удовлетворяла их требованиям к использованию в сервере LDAP и в браузере Netscape. Этот запрос привёл к созданию Sleepycat Software, занявшейся развитием и коммерциализацией проекта. С конца 1990-х система входит в состав подавляющего большинства дистрибутивов Linux. В феврале 2006 года Sleepecat Software поглощена корпорацией Oracle. Распространялась под лицензией Sleepycat Public License, которая была одобрена OSI и FSF; начиная с версии 6.0.20 переведена на лицензию AGPL (2013), тогда же появилась возможность приобрести проприетарную лицензию для использования в закрытых проектах. В 2020 году СУБД получила ежегодную премию SIGMOD в номинации «Системы».
Oracle распространяет BDB в трёх вариантах:
- Berkeley DB — собственно библиотека на Си;
- Berkeley DB Java — библиотека, переписанная на Java (поддержка Google Android, Apache Maven);
- Berkeley DB XML — библиотека на Си, реализующая XML-СУБД на основе Berkeley DB со средствами работы с XML.
Преимущества Berkeley DB:
1. Высокая производительность: Berkeley DB обеспечивает быстрый доступ к данным и обработку больших объемов информации.
2. Надежность: Berkeley DB предлагает надежное хранение данных и обеспечивает целостность информации.
3. Эффективное использование памяти: Berkeley DB оптимизирует использование памяти, что позволяет экономить ресурсы сервера.
4. Простота в использовании: Berkeley DB имеет простой интерфейс, что упрощает разработку приложений на его основе.
Недостатки Berkeley DB:
1. Ограниченные возможности: Berkeley DB предоставляет базовый набор функций и возможностей, что может быть недостаточно для некоторых задач.
2. Отсутствие поддержки SQL: Berkeley DB не поддерживает в полной мере структурированный язык запросов SQL, что может быть неудобно для разработчиков, привыкших к работе с SQL базами данных.
3. Ограниченная масштабируемость: Berkeley DB может оказаться недостаточно масштабируемым для больших и сложных проектов.
4. Ограниченная коммерческая поддержка: Berkeley DB является проектом с открытым исходным кодом, что может означать отсутствие полноценной коммерческой поддержки со стороны разработчиков.