MongoDB: различия между версиями

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
[отпатрулированная версия][отпатрулированная версия]
Содержимое удалено Содержимое добавлено
орфография и убрал см также так как есть в тексте
→‎Литература: пересмотрел
Строка 48: Строка 48:
== Литература ==
== Литература ==
* {{книга
* {{книга
|заглавие =
| заглавие = MongoDB в действии
| автор = Кайл Бэнкер
|оригинал = [http://oreilly.com/catalog/9781449381561 MongoDB: The Definitive Guide]
| оригинал = MongoDB in Action
|автор = Кристина Чодороу, Майкл Дирольф
| издательство = ДМК Пресс
|isbn = 9781449381561
| год = 2014
|страницы = 216
| страниц = 394
|год = 2010
| isbn = 978-5-97060-057-3
|место =
| ref = Бэнкер
|издательство = [[O’Reilly Media]]
}}
}}
* {{книга
* {{книга
| автор = Kristina Chodorow
|заглавие =
| заглавие = MongoDB: The Definitive Guide, 2nd Edition
|оригинал = [http://apress.com/book/view/1430230517 The Definitive Guide to MongoDB: The NoSQL Database for Cloud and Desktop Computing]
| издательство = O'Reilly Media, Inc.
|автор = Тим Хоукинс, Илько Пладж, Питер Мембри
| год = 2013
|isbn = 9781430230519
| страниц = 432
|страницы = 350
| isbn = 978-1-4493-4468-9
|год = 2010
| ref = Chodorow
|место =
|издательство = [[Apress]]
}}
}}
* {{книга
* {{книга
| автор = David Hows, Peter Membrey, Eelco Plugge, Tim Hawkins
|заглавие =
| заглавие = The Definitive Guide to MongoDB: A complete guide to dealing with Big Data using MongoDB, Third Edition
|оригинал = [http://oreilly.com/catalog/0636920018308/ Scaling MongoDB]
| издательство = Apress
|автор = Кристина Чодороу
| год = 2015
|isbn = 978-1-4493-0321-1
| страниц = 376
|страницы = 62
| isbn = 978-1-4842-1183-0
|год = 2011
| ref = Hows et al
|место =
|издательство = [[O’Reilly Media]]
}}
}}
* {{книга
* {{книга
| автор = Eelco Plugge, Peter Membrey, Tim Hawkins
|заглавие =
| заглавие = The Definitive Guide to MongoDB: The NoSQL Database for Cloud and Desktop Computing
|оригинал = [http://www.informit.com/store/product.aspx?isbn=0132489708 MongoDB for Web Development]
| издательство = Apress
|автор = Митч Пиртл
| год = 2010
|isbn = 9780321705334
| страниц = 327
|страницы = 360
| isbn = 1-4302-3051-7
|год = 2011
| ref = Plugge, Membrey, Hawkins
|место =
|издательство = [[Addison-Wesley Professional]]
}}
}}
* {{книга
* {{книга
| автор = Mithun Satheesh; Bruno Joseph D'mello; Jason Krol
|заглавие =
| заглавие = Web Development with MongoDB and NodeJS - Second Edition
|оригинал = [http://manning.com/banker/ MongoDB in Action]
| издательство = Packt Publishing
|автор = Кайл Бэнкер
| год = 2015
|isbn = 9781935182870
| страниц = 300
|страницы = 375
| isbn = 978-1-78528-745-9
|год = 2011
| ref = Satheesh et al
|место =
|издательство = [[Manning Publications]]
}}
}}
* {{книга
* {{книга
| автор = Steve Hoberman
|заглавие =
| заглавие = Data Modeling for MongoDB
|оригинал = [http://oreilly.com/catalog/0636920019893/ 50 Tips and Tricks for MongoDB Developers]
| издательство = Technics Publications
|автор = Кристина Чодороу
| год = 2014
|isbn = 978-1-4493-0461-4
| страниц = 226
|страницы = 66
| isbn = 978-1-935504-70-2
|год = 2011
| ref = Hoberman
|место =
|издательство = [[O’Reilly Media]]
}}
}}
* {{книга
* {{книга
|заглавие =
|заглавие = MongoDB for Web Development
|автор = Mitch Pirtle
|оригинал = [http://oreilly.com/catalog/0636920018391/ Document Design for MongoDB]
|isbn = 9780321705334
|автор = Райан Нитц
|страницы = 360
|isbn = 978-1-4493-0341-9
|страницы = 50
|год = 2011
|год = 2011
|место =
|место =
|издательство = [[O’Reilly Media]]
|издательство = Addison-Wesley Professional
| ref = Pirtle
}}
}}



Версия от 09:01, 27 февраля 2016

MongoDB
Логотип программы MongoDB
Скриншот программы MongoDB
Подключение к MongoDB Shell
Тип документоориентированная СУБД
Разработчик 10gen
Написана на C++, Go, JavaScript, Си и Python[2]
Операционные системы Linux, macOS, Windows и OpenBSD
Первый выпуск 2009
Последняя версия
Репозиторий github.com/mongodb/mongo
Лицензия GNU AGPL (СУБД) и Apache License (драйверы)
Сайт mongodb.com (англ.)
Логотип Викисклада Медиафайлы на Викискладе

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

Возможности

Основные возможности:

  • Документоориентированное хранение (JSON-подобная схема данных)
  • Javascript как язык для формирования запросов
  • Динамические запросы
  • Поддержка индексов
  • Профилирование запросов
  • Атомарная операция «Нашел и обновил»[уточнить]
  • Эффективное[обтекаемое выражение] хранение двоичных данных больших объёмов, например, фото и видео
  • Журналирование операций, модифицирующих данные в базе данных
  • Поддержка отказоустойчивости и масштабируемости: асинхронная репликация, набор реплик и распределения базы данных на узлы
  • Может работать в соответствии с парадигмой MapReduce
  • Полнотекстовый поиск, в том числе на русском языке, с поддержкой морфологии

Архитектура

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

  • Нет такого понятия, как «транзакция». Атомарность гарантируется только на уровне целого документа, то есть частичного обновления документа произойти не может.
  • Отсутствует понятие «изоляции». Любые данные, которые считываются одним клиентом, могут параллельно изменяться другим клиентом.

В MongoDB реализована асинхронная репликация в конфигурации «ведущий — ведомый» (англ. master — slave), основанная на передаче журнала изменений с ведущего узла на ведомые. Поддерживается автоматическое восстановление в случае выхода из строя ведущего узла. Серверы с запущенным процессом mongod должны образовать кворум, чтобы произошло автоматическое определение нового ведущего узла. Таким образом, если не используется специальный процесс-арбитр (процесс mongod, только участвующий в установке кворума, но не хранящий никаких данных), количество запущенных реплик должно быть нечётным.

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

Сотрудничество

6 июня 2012 года компания-разработчик MongoDB 10gen[англ.]* начала длительное сотрудничество с корпорацией Microsoft, предоставив MongoDB её облаку Microsoft Azure. В результате этого партнёрства разработчики получили простой установщик для запуска MongoDB на виртуальных машинах Microsoft Azure. В дополнение к расширению опций облака и хостинга, доступных разработчикам MongoDB, этот шаг объединяет возможности ведущей базы данных NoSQL с технологиями Microsoft, включая Microsoft Azure, .NET и другие технологии с открытым исходным кодом, которые поддерживает Microsoft.

Прочее

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

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

Примечания

Литература

  • Кайл Бэнкер. MongoDB в действии = MongoDB in Action. — ДМК Пресс, 2014. — 394 с. — ISBN 978-5-97060-057-3.
  • Kristina Chodorow. MongoDB: The Definitive Guide, 2nd Edition. — O'Reilly Media, Inc., 2013. — 432 с. — ISBN 978-1-4493-4468-9.
  • David Hows, Peter Membrey, Eelco Plugge, Tim Hawkins. The Definitive Guide to MongoDB: A complete guide to dealing with Big Data using MongoDB, Third Edition. — Apress, 2015. — 376 с. — ISBN 978-1-4842-1183-0.
  • Eelco Plugge, Peter Membrey, Tim Hawkins. The Definitive Guide to MongoDB: The NoSQL Database for Cloud and Desktop Computing. — Apress, 2010. — 327 с. — ISBN 1-4302-3051-7.
  • Mithun Satheesh; Bruno Joseph D'mello; Jason Krol. Web Development with MongoDB and NodeJS - Second Edition. — Packt Publishing, 2015. — 300 с. — ISBN 978-1-78528-745-9.
  • Steve Hoberman. Data Modeling for MongoDB. — Technics Publications, 2014. — 226 с. — ISBN 978-1-935504-70-2.
  • Mitch Pirtle. MongoDB for Web Development. — Addison-Wesley Professional, 2011. — С. 360. — ISBN 9780321705334.

Ссылки

Сайты и порталы
Прочее