СУБД "MongoDB"

Автор работы: Пользователь скрыл имя, 18 Декабря 2012 в 18:52, реферат

Описание работы

Цель данной работы – исследовать СУБД MongoDB.
Для достижения поставленной цели необходимо решить следующие задачи:
Проанализировать СУБД MongoDB и ее возможности;
Исследовать основные принципы работы MongoDB;
Выявить особенности использования.

Содержание работы

Введение.
MongoDB и ее возможности.
Основные принципы MongoDB. Базовые операции с данными.
Особенности использования.
Заключение.
Список используемой литературы.

Файлы: 1 файл

Введение.docx

— 31.32 Кб (Скачать файл)

Оглавление.

  1. Введение.
  2. MongoDB и ее возможности.
  3. Основные принципы MongoDB. Базовые операции с данными.
  4. Особенности использования.
  5. Заключение.
  6. Список используемой литературы.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Введение.

Объектом исследования являются системы управления базами данных. Предметом исследования – система управления базами данных MongoDB.

Цель данной работы –  исследовать СУБД MongoDB.

Для достижения поставленной цели необходимо решить следующие задачи:

  1. Проанализировать СУБД MongoDB и ее возможности;
  2. Исследовать основные принципы работы MongoDB;
  3. Выявить особенности использования.

Основные положения реферата основываются на работе Кайла Бэнкера.

Базы данных – рабочие  лошадки информационной эпохи. Как атланты, они незримо подпирают цифровой мир, в котором мы обитаем. Легко позабыть, что всё наше цифровое общение, будь то комментарии в форумах, сообщения в социальных сетях, поиск или сортировка, – это по существу взаимодействие с базой данных.

MongoDB – это система  управления базами данных, «заточенная» под веб-приложения и инфраструктуру Интернета. Модель данных и стратегия их постоянного хранения спроектированы для достижения высокой пропускной способности чтения и записи и обеспечивает простую масштабируемость с автоматическим переходом на резервный ресурс в случае отказа. Сколько бы узлов ни требовалось приложению – один или десятки, – MongoDB сумеет обеспечить поразительно высокую производительность. Того, кто раньше мучился с масштабированием реляционных баз, эта новость обрадует.

История MongoDB, хоть и коротка, но заслуживает упоминания, потому что родилась эта СУБД в ходе работы над гораздо более амбициозным проектом. В середине 2007 года только что образованная компания 10gen приступила к разработке проекта «программная платформа как услуга». Идея была в том, чтобы создать сервер приложений и базу данных, которые могли бы служить хостингом для веб-приложений, обеспечивая масштабирование по мере необходимости. Платформа компании 10gen проектировалась с расчетом на автоматическое масштабирование и управление программной и аппаратной инфраструктурой. В итоге 10gen обнаружила, что большинство разработчиков не готовы отдать в чужие руки управление своим технологическим хозяйством, но зато новая технология баз данных оказалась востребованной. Поэтому компания решила сосредоточить усилия исключительно на этой СУБД, которая получила название MongoDB.

 

MongoDB и ее возможности.

Как было сказано выше, MongoDB — документо-ориентированная СУБД с открытым исходным кодом, не требующая описания схемы таблиц.

Как выясняется, привлекательность MongoDB объясняется в первую очередь не стратегией масштабирования, а интуитивно понятной моделью данных. Учитывая, что с помощью документо-ориентированной модели можно представить развитые иерархически организованные структуры данных, часто оказывается возможно обойтись без присущих реляционным СУБД сложностей, связанных с соединением нескольких таблиц. Пусть, например, вы моделируете товары для сайта интернет-магазина. В полностью нормализованной базе данных информация об одном товаре может быть разбросана по десяткам таблиц . Чтобы получить его представление в интерактивной оболочке СУБД, придется написать сложный SQL-запрос с кучей соединений. Поэтому разработчики, как правило, обращаются к дополнительным программам, когда хотят собрать разрозненные данные в нечто осмысленное.

С другой стороны, в документной модели большая часть информации о товаре может быть представлена в виде одного документа. В оболочке MongoDB, построенной на основе языка JavaScript, нетрудно получить полное представление о товаре в виде иерархически организованной JSON-подобной структуры (JSON – это сокращение от JavaScript Object Notation. JSON - структуры состоят из ключей и значений и допускают произвольную глубину вложенности. Они аналогичны словарям и хешам в других языках программирования). К ней можно предъявлять запросы, ей можно манипулировать. Средства составления запросов в MongoDB специально спроектированы для работы со структурированными документами, но так, чтобы пользователь, имеющий опыт работы с реляционными базами, располагал сравнимой выразительной мощью. К тому же, сегодня большинство разработчиков пишут на объектно-ориентированных языках, поэтому им нужно такое хра нилище, которое было бы проще отобразить на объекты. В случае

MongoDB объект, определенный  на языке программирования, сохраняется «как есть» – без дополнительной сложности, привносимой системами объектно-реляционного отображения.

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

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

 

 

 

 

 

 

 

Основные принципы MongoDB. Базовые операции с данными.

Для начала нужно понять шесть основных концепций.

1.MongoDB — концептуально  то же самое, что обычная,  привычная для нас база данных. Внутри MongoDB может быть ноль или более баз данных, каждая из которых является контейнером для прочих сущностей.

2.База данных может  иметь ноль или более «коллекций».  Коллекция настолько похожа на  традиционную «таблицу», что можно  смело считать их одним и тем же.

3.Коллекции состоят из  нуля или более «документов». Опять же, документ можно рассматривать  как «строку».

4.Документ состоит из  одного или более «полей», которые  — как можно догадаться — подобны «колонкам».

5.«Индексы» в MongoDB почти  идентичны таковым в реляционных базах данных.

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

Подводя итог, MongoDB состоит  из «баз данных», которые состоят  из «коллекций». «Коллекции» состоят  из «документов». Каждый «документ» состоит  из «полей». «Коллекции» могут быть проиндексированы, что улучшает производительность выборки и сортировки. И наконец, получение данных из MongoDB сводится к  получению «курсора», который отдаёт эти данные по мере надобности.

Все команды по операциям с данными выполняются в консоли mongo.

Используется глобальный метод use. Введите:

«use project»

Пока наша база данных project не существует. Но это не важно. Она будет создана в момент первой вставки.

Создание Коллекции (таблицы). Используйте команду insert.

Просмотр Коллекции. Теперь у коллекции users можно вызвать метод find, который вернёт список документов:

«db.users.find»

 Удаление Коллекции.  Для полного удаления Коллекции необходимо использовать комаду remove без параметров:

«db.users.remove»

 

 

Особенности использования.

Рассмотрим некоторые  различия в работе с MongoDB по сравнению  с привычным SQL.

Консольные инструменты. По аналогии с тем, как в консоли MySQL мы можем выполнять SQL-запросы, интерактивная консоль MongoDB позволяет выполнять команды сервера БД используя язык JavaScript.

Структура информации. Структуру данных в реляционных системах на примере MySQL мы можем представить в виде следующей иерархии:

База данных -> Таблица -> Строка -> Поле + Значение.

Как это все выглядит в  MongoDB:

База данных -> Коллекция -> Документ -> ключ + значение.

Таблицы в реляционных  БД должны быть жестко структурированы, в то время как в MongoDB можно создавать документы произвольной структуры.

Запись. В SQL есть оператор INSERT для добавления и UPDATE для обновления записей. Запись в MongoDB Выполняется при помощи трех функций: insert - добавление, save и update - для обновление и добавление.

Выборка. Предположим нам надо выбрать все документы из определенной коллекции у которых значение city равно "Moscow". В SQL нам приходится прибегать к инструкции JOIN, т.к. в унифицированной системе мы не всегда можем записать всю информацию в одну таблицу. Например:

SELECT docs.title, loc.city FROM documents docs

INNER JOIN doc_location d_loc ON d_loc.doc_id = docs.doc_id

INNER JOIN location loc ON loc.loc_id = d_loc.loc_id

Как это делается в MongoDB, учитывая что все хранится в одном документе:

db.find({additional.location.city: "Moscow"});

По аналогии с JOIN мы также  можем создавать ссылки на объекты  других коллекций, и нам не придется делать отдельные запросы для  получения связанных документов.

MongoDB хорошо справляется  с большим количеством документов (миллионы), скорость выборки как и в SQL оптимизируется индексами, лимитами на количество получаемых документов за один запрос, как и в привычных реляционных БД индексы отрицательно влияют на скорость записи. Есть знакомая нам операция EXPLAIN, выполняющая те же функции что и в MySQL.

MongoDB поддерживает несколько  видов атомарных операций.

Мы можем использовать синхронный и асинхронный тип  записи, асинхронный по умолчанию  и он быстрее, т.к. приложению не приходится ждать ответа от сервера.

MongoDB рекомендуют использовать  при большом количестве одновременных  запросов (более тысячи в секунду), особенно при большом количестве  операций записи. Судя по многочисленным  отзывам, именно быстрая запись  одно из главных преимуществ  этой БД.

Неплохим решением было бы использование этой БД для ведения статистики, системы кэширования, хранения пользовательских сессий, ведения системного журнала, системы управления очередями и т.д. Помимо этого, модули могут активно использовать эту БД для хранения своих данных если в этом есть выгода.

 

 

 

 

Заключение.

В данной работе мы исследовали  систему управления базами данных MongoDB.

Цель реферата, заключающаяся  в исследовании СУБД MongoDB, достигнута.

Решены следующие задачи:

1) Проанализирована СУБД MongoDB и ее возможности. MongoDB – это система управления базами данных, «заточенная» под веб-приложения и инфраструктуру Интернета.  Одними из возможностей является поддержка отказоустойчивости и масштабируемости, достаточно гибкий язык для формирования запросов,  динамические запросы и эффективное хранение двоичных данных больших объёмов, напр., фото и видео.

2) Исследованы основные принципы работы MongoDB. MongoDB состоит из «баз данных», которые состоят из «коллекций». «Коллекции» состоят из «документов». Каждый «документ» состоит из «полей». «Коллекции» могут быть проиндексированы, что улучшает производительность выборки и сортировки.

3) Выявлены особенности использования. К особенностям использования относятся создание документов произвольной структуры; запись в MongoDB выполняется при помощи трех функций: insert - добавление, save и update - для обновление и добавление; MongoDB поддерживает несколько видов атомарных операций.

 

 

 

 

 

Список используемой литературы:

  1. Бэнкер Кайл «MongoDB в действии» Электронная версия.
  2. http://www.intuit.ru
  3. www.isman.ru
  4. Wikipedia.org

 

 


Информация о работе СУБД "MongoDB"