Berkeley DB

Материал из Seo Wiki - Поисковая Оптимизация и Программирование
Перейти к навигацииПерейти к поиску
Berkeley DB
Тип СУБД
Разработчик разработчики Университета Беркли, Oracle Corporation
Написана на C, API для многих других языков
ОС Unix, Linux, Windows, AIX, Sun Solaris, SCO Unix, Mac OS
Версия 4.8 (14 сентября 2009)
Лицензия Sleepycat License
Сайт www.oracle.com/database/berkeley-db/db/index.html

Berkeley DB (BDB) — высокопроизводительная встраиваемая база данных, реализованная в виде библиотеки. BDB является нереляционной базой данных — она хранит пары ключ/значение как массивы байтов и поддерживает множество значений для одного ключа. BDB может обслуживать тысячи процессов или потоков, одновременно манипулирующих базами данных размером в 256 терабайт, на разнообразном оборудованиии под различными операционными системами, включая большинство UNIX-подобных систем и Windows, а также на операционных системах реального времени.

Первая версия Berkeley DB была разработана в Университете Беркли во время разработки BSD версии 4.3 (июнь 1986 года). Netscape попросила авторов Berkeley DB улучшить и расширить библиотеку — в то время версию 1.85, — чтобы она удовлетворяла их требованиям к использованию в сервере LDAP и в браузере Netscape. Этот запрос привёл к созданию Sleepycat Software (купленной корпорацией Oracle в феврале 2006 года). Berkeley DB распространяется под лицензией Sleepycat Public License — которая была одобрена OSI и FSF. Программа поставляется с полным исходным кодом, средствами сборки, инструментами тестирования и документацией. Качество кода и практичность вместе со свободной лицензией привело к использованию Berkeley DB во многих свободных и открытых программах. Те, кто не желает следовать условиям лицензии Sleepycat Public License, могут купить у корпорации Oracle собственническую лицензию на использование библиотеки в закрытых проектах. Данная техника называется двойным лицензированием.

Архитектура

Berkeley DB примечательна своей простой архитектурой в сравнении с другими системами баз данных, такими как, например Microsoft SQL Server и Oracle. Например в ней отсутствуют сетевой доступ — программы используют базу данных через вызовы внутрипроцессного API. Она не поддерживает SQL или любой другой язык запросов, так же как не поддерживает и столбцы в таблицах. Berkeley DB предполагает работу с парами ключ-значение, где ключ и значение могут иметь фиксированную или переменную длину, а функция сравнения ключей может быть написана и назначена прикладным программистом. Программа, которая использует БД, сама решает, как данные сохраняются в записи; БД не налагает ограничений на данные, хранимые в записях. Запись и её ключ оба могут иметь размер до четырёх гигабайт.

Berkeley DB поддерживает необходимые возможности баз данных, такие как ACID-транзакции, детальные блокировки, интерфейс XA, горячие бэкапы и репликацию. Berkeley DB может использоваться как средство для построение хранимых индексов, так и в качестве хранилища данных.

Oracle предлагает BDB в трёх вариантах:

  1. Berkeley DB — собственно библиотека на языке «C»
  2. Berkeley DB Java — библиотека, переписанная на Java (поддержка Google Android, Apache Maven)
  3. Berkeley DB XML — библиотека на С, реализующая XML-СУБД на основе Berkeley DB со средствами работы с XML(Apache Xerces en, XPath, XQuery, XQilla)

Berkeley DB входит в состав большинства дистрибутивов Linux. Существуют средства для работы с Berkeley DB в Perl, Python и пр.

Программы, в которых используется Berkeley DB

Berkeley DB является хранилищем данных для серверов LDAP, СУБД и множества других собственнических и свободных программ. Вот список нескольких широко известных программ, в которых для хранения данных используется Berkeley DB:

  • MySQL — Поддержка таблиц BDB включена в дистрибутив исходного кода MySQL начиная с версии 3.23.34 и в бинарную версию MySQL-Max. BerkeleyDB обеспечивает транзакционный обработчик таблиц для MySQL. Использование BerkeleyDB повышает для таблиц шансы уцелеть после сбоев, а также предоставляет возможность осуществлять операции COMMIT и ROLLBACK для транзакций. Дистрибутив исходного кода MySQL поставляется с дистрибутивом BDB, содержащим несколько небольших исправлений, которые позволяют устранить определённые проблемы при работе с MySQL. Начиная с версии 5.1 таблицы BDB более не поддерживаются.[1]
  • SubversionСистема управления версиями, разработанная чтобы заменить CVS.
  • KDevelopIDE для GNU/Linux и других Unix-подобных операционных систем.
  • Sun Grid Engine — Свободная система управления распределёнными ресурсами. Самый популярный планировщик пакетных очередей задач для вычислительных ферм.
  • Movable Type — Проприетарная система публикации блогов, разработанная калифорнийской компанией Six Apart.
  • Caravel CMS — Свободная система управления содержимым изначально разработанная для использования в более чем 2,000 организаций Меннонитской церкви.
  • OpenLDAP — Свободная реализация «Облегчённого протокола доступа к каталогам» (LDAP).
  • Fedora Directory Server — сервер каталогов уровня предприятия c открытым исходным кодом. Изначально именно под нужды FDS (тогда сервер назывался Netscape Directory Server) была адаптирована академическая версия BerkeleyDB.
  • KLibido — Свободный клиент новостных групп USENET, ориентированный на скачивание бинарных файлов.
  • Citadel — Свободная платформа совместной работы в которой все данные, включая базу сообщений, хранятся в Berkeley DB.
  • Bogofilter — Свободный спам-фильтр который хранит свои списки ключевых слов в Berkeley DB.
  • Jabberd2 — Сервер сети Jabber.
  • Spamassassin — Антиспамовое приложение.
  • Redland — Прикладной каркас для RDF. Может использовать BDB для постоянного хранения данных (троек).
  • RPM — Менеджер пакетов RedHat.
  • MemcacheDB — Распределённое персистентное хранилище данных, реализующее интерфейс Memcached.

Примечания

Ссылки

ar:قاعدة بيانات بيركيلي de:Berkeley DB en:Berkeley DB es:Berkeley DB fr:Berkeley DB it:Berkeley DB ja:Berkeley DB no:Berkeley DB tr:Berkeley DB zh:Berkeley DB

Если вам нравится SbUP.com Сайт, вы можете поддержать его - BTC: bc1qppjcl3c2cyjazy6lepmrv3fh6ke9mxs7zpfky0 , TRC20 и ещё....