Автор работы: Пользователь скрыл имя, 18 Декабря 2012 в 18:52, реферат
Цель данной работы – исследовать СУБД MongoDB.
Для достижения поставленной цели необходимо решить следующие задачи:
Проанализировать СУБД MongoDB и ее возможности;
Исследовать основные принципы работы MongoDB;
Выявить особенности использования.
Введение.
MongoDB и ее возможности.
Основные принципы MongoDB. Базовые операции с данными.
Особенности использования.
Заключение.
Список используемой литературы.
Оглавление.
Введение.
Объектом исследования являются системы управления базами данных. Предметом исследования – система управления базами данных MongoDB.
Цель данной работы – исследовать СУБД MongoDB.
Для достижения поставленной цели необходимо решить следующие задачи:
Основные положения реферата основываются на работе Кайла Бэнкера.
Базы данных – рабочие лошадки информационной эпохи. Как атланты, они незримо подпирают цифровой мир, в котором мы обитаем. Легко позабыть, что всё наше цифровое общение, будь то комментарии в форумах, сообщения в социальных сетях, поиск или сортировка, – это по существу взаимодействие с базой данных.
MongoDB – это система управления базами данных, «заточенная» под веб-приложения и инфраструктуру Интернета. Модель данных и стратегия их постоянного хранения спроектированы для достижения высокой пропускной способности чтения и записи и обеспечивает простую масштабируемость с автоматическим переходом на резервный ресурс в случае отказа. Сколько бы узлов ни требовалось приложению – один или десятки, – MongoDB сумеет обеспечить поразительно высокую производительность. Того, кто раньше мучился с масштабированием реляционных баз, эта новость обрадует.
История MongoDB, хоть и коротка, но заслуживает упоминания, потому что родилась эта СУБД в ходе работы над гораздо более амбициозным проектом. В середине 2007 года только что образованная компания 10gen приступила к разработке проекта «программная платформа как услуга». Идея была в том, чтобы создать сервер приложений и базу данных, которые могли бы служить хостингом для веб-приложений, обеспечивая масштабирование по мере необходимости. Платформа компании 10gen проектировалась с расчетом на автоматическое масштабирование и управление программной и аппаратной инфраструктурой. В итоге 10gen обнаружила, что большинство разработчиков не готовы отдать в чужие руки управление своим технологическим хозяйством, но зато новая технология баз данных оказалась востребованной. Поэтому компания решила сосредоточить усилия исключительно на этой СУБД, которая получила название MongoDB.
MongoDB и ее возможности.
Как было сказано выше, MongoDB — документо-ориентированная СУБД с открытым исходным кодом, не требующая описания схемы таблиц.
Как выясняется, привлекательность MongoDB объясняется в первую очередь не стратегией масштабирования, а интуитивно понятной моделью данных. Учитывая, что с помощью документо-ориентированной модели можно представить развитые иерархически организованные структуры данных, часто оказывается возможно обойтись без присущих реляционным СУБД сложностей, связанных с соединением нескольких таблиц. Пусть, например, вы моделируете товары для сайта интернет-магазина. В полностью нормализованной базе данных информация об одном товаре может быть разбросана по десяткам таблиц . Чтобы получить его представление в интерактивной оболочке СУБД, придется написать сложный SQL-запрос с кучей соединений. Поэтому разработчики, как правило, обращаются к дополнительным программам, когда хотят собрать разрозненные данные в нечто осмысленное.
С другой стороны, в документной модели большая часть информации о товаре может быть представлена в виде одного документа. В оболочке MongoDB, построенной на основе языка JavaScript, нетрудно получить полное представление о товаре в виде иерархически организованной JSON-подобной структуры (JSON – это сокращение от JavaScript Object Notation. JSON - структуры состоят из ключей и значений и допускают произвольную глубину вложенности. Они аналогичны словарям и хешам в других языках программирования). К ней можно предъявлять запросы, ей можно манипулировать. Средства составления запросов в MongoDB специально спроектированы для работы со структурированными документами, но так, чтобы пользователь, имеющий опыт работы с реляционными базами, располагал сравнимой выразительной мощью. К тому же, сегодня большинство разработчиков пишут на объектно-ориентированных языках, поэтому им нужно такое хра нилище, которое было бы проще отобразить на объекты. В случае
MongoDB объект, определенный на языке программирования, сохраняется «как есть» – без дополнительной сложности, привносимой системами объектно-реляционного отображения.
Основные возможности данной СУБД:
Основные принципы MongoDB. Базовые операции с данными.
Для начала нужно понять шесть основных концепций.
1.MongoDB — концептуально то же самое, что обычная, привычная для нас база данных. Внутри MongoDB может быть ноль или более баз данных, каждая из которых является контейнером для прочих сущностей.
2.База данных может
иметь ноль или более «
3.Коллекции состоят из нуля или более «документов». Опять же, документ можно рассматривать как «строку».
4.Документ состоит из
одного или более «полей»,
5.«Индексы» в MongoDB почти идентичны таковым в реляционных базах данных.
6.«Курсоры» отличаются
от предыдущих пяти концепций,
но они очень важны (хотя
порой их обходят вниманием)
и заслуживают отдельного
Подводя итог, 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.
По аналогии с JOIN мы также можем создавать ссылки на объекты других коллекций, и нам не придется делать отдельные запросы для получения связанных документов.
MongoDB хорошо справляется
с большим количеством
MongoDB поддерживает несколько видов атомарных операций.
Мы можем использовать синхронный и асинхронный тип записи, асинхронный по умолчанию и он быстрее, т.к. приложению не приходится ждать ответа от сервера.
MongoDB рекомендуют использовать
при большом количестве
Неплохим решением было бы использование этой БД для ведения статистики, системы кэширования, хранения пользовательских сессий, ведения системного журнала, системы управления очередями и т.д. Помимо этого, модули могут активно использовать эту БД для хранения своих данных если в этом есть выгода.
Заключение.
В данной работе мы исследовали систему управления базами данных MongoDB.
Цель реферата, заключающаяся в исследовании СУБД MongoDB, достигнута.
Решены следующие задачи:
1) Проанализирована СУБД MongoDB и ее возможности. MongoDB – это система управления базами данных, «заточенная» под веб-приложения и инфраструктуру Интернета. Одними из возможностей является поддержка отказоустойчивости и масштабируемости, достаточно гибкий язык для формирования запросов, динамические запросы и эффективное хранение двоичных данных больших объёмов, напр., фото и видео.
2) Исследованы основные принципы работы MongoDB. MongoDB состоит из «баз данных», которые состоят из «коллекций». «Коллекции» состоят из «документов». Каждый «документ» состоит из «полей». «Коллекции» могут быть проиндексированы, что улучшает производительность выборки и сортировки.
3) Выявлены особенности использования. К особенностям использования относятся создание документов произвольной структуры; запись в MongoDB выполняется при помощи трех функций: insert - добавление, save и update - для обновление и добавление; MongoDB поддерживает несколько видов атомарных операций.
Список используемой литературы: