Lt304888.ru

Туристические услуги

MongoDB

28-04-2023

MongoDB

Логотип MongoDB
Тип

Документо-ориентированная СУБД

Разработчик

MongoDB

Написана на

C++

Операционная система

Кроссплатформенное программное обеспечение

Последняя версия

2.0.3 (27.02.2012)

Лицензия

Creative Common

Сайт

www.mongodb.org

MongoDB — документо-ориентированная система управления базами данных (СУБД) с открытым исходным кодом, не требующая описания схемы таблиц. Написана на языке C++ и распространяется в рамках лицензии Creative Commons.

Содержание

Философия

При разработке авторы исходили из необходимости специализации баз данных, благодаря чему им удалось отойти от принципа «один размер подо всё». За счёт минимизации семантики для работы с транзакциями появляется возможность решения целого ряда проблем, связанных с недостатком производительности, причём горизонтальное масштабирование становится проще. Используемая модель документов хранения данных (JSON/BSON) проще кодируется, проще управляется (в том числе за счёт применения т. н. «бессхемного стиля» (англ. schemaless style)[1]), а внутренняя группировка релевантных данных обеспечивает дополнительный выигрыш в быстродействии. Нереляционный подход весьма удобен для создания баз данных, у которых горизонтальное масштабирование подразумевает разворачивание на множестве машин. Возможность обеспечивать наилучшую производительность должна существовать параллельно с поддержкой более обширной функциональности, чем это позволяет использование пар «ключ-значение» (в чистом виде). Технология баз данных должна работать везде, начиная с серверов пользователя и виртуальных машин и заканчивая облачными технологиями[2].

MongoDB, по мнению разработчиков, должна заполнить разрыв между простыми хранилищами данных типа «ключ-значение» (быстрыми и легко масштабируемыми) и большими РСУБД (со структурными схемами и мощными запросами).

Возможности

Основные возможности данной СУБД:

Архитектура

СУБД управляет наборами JSON-подобных документов, хранимых в двоичном виде в формате BSON. Хранение и поиск файлов в MongoDB происходит благодаря вызовам протокола GridFS. Подобно другим документо-ориентированным СУБД (CouchDB, пр.), MongoDB не является реляционной СУБД. Среди других отличий от традиционных реляционных СУБД:

  • Отсутствует оператор "join". Обычно данные могут быть организованными более денормализованным способом, но на разработчиков ложится больше нагрузки для обеспечения непротиворечивости данных.
  • Нет такого понятия, как "транзакция". Атомарность гарантируется только на уровне целого документа, т.е. частичное обновление документа произойти не может.
  • Отсутствует понятие "изоляции", любые данные, которые считываются одним клиентом, могут быть параллельно изменятся другим клиентом[3].

История разработки

Прочее

Имеется подробная и качественная документация, большое число примеров и драйверов под популярные языки Java, C++, C#, PHP, Python, Perl, Ruby[4].

Заявляется, что релиз MongoDB 1.0.0 готов к использованию в производстве как в качестве единичного мастера, так и в связках master/slave. Код этого релиза достаточно стабилен и проверен в промышленной эксплуатации на протяжении 1,5 лет[5]. По возможности MongoDB должна быть развернута минимум на двух серверах, используя репликацию Master/Slave[6]. Это обеспечивает наличие актуальных данных при выходе из строя одной из СУБД. MongoDB — продукт довольно молодой, и в нем встречаются ошибки, появляются новые возможности и т. д. Характерен высокий темп разработки (проект пишут не только волонтеры, но и компания людей на полной занятости).[7] Компания-разработчик предоставляет платные поддержку, хостинг, консультации.

Примечания

  1. Why Schemaless?  (англ.)
  2. Design Philosophy  (англ.)
  3. Архитектура MongoDb. Часть 1. Отличие от СУБД, обработка запросов в MongoDb//High Load Web
  4. Проверенный чёрт : MongoDB
  5. MongoDB 1.0 GA — первый релиз новой СУБД — Новости GNU/Linux и Open Source (NIXP.RU)
  6. Master-Slave репликация MongoDB
  7. MongoDB или как разлюбить SQL / Web-разработка / Хабрахабр

Литература

См. также

Ссылки

Сайты и порталы
  • Официальный сайт  (англ.)
  • Официальная документация  (рус.)
Прочее
  • GUI инструменты для работы с MongoDB

MongoDB.

© 2020–2023 lt304888.ru, Россия, Волжский, ул. Больничная 49, +7 (8443) 85-29-01