Базы данных/Лабораторная работа 5 — различия между версиями
Материал из Wiki - Факультет компьютерных наук
Ivsavin (обсуждение | вклад) (→Моделирование данных в MongoDB) |
Ivsavin (обсуждение | вклад) (→Язык запросов MongoDB) |
||
Строка 42: | Строка 42: | ||
=== Базовые операции === | === Базовые операции === | ||
+ | |||
+ | ==== Дополнительно ==== | ||
+ | * https://docs.mongodb.com/manual/crud/ | ||
=== Aggregation Framework === | === Aggregation Framework === | ||
+ | |||
+ | ==== Дополнительно ==== | ||
+ | * https://docs.mongodb.com/manual/aggregation/ | ||
== Репликации MongoDB == | == Репликации MongoDB == |
Версия 11:30, 3 июня 2016
Задачи лабораторной работы:
- Установить MongoDB
- Рассмотреть различия в моделировании данных для реляционных БД и документоориентированных.
- Попрактиковаться в составлении запросов к MongoDB: добавление, обновление, селекция, фильтрация, агрегация.
- Настроить репликацию данных, инициировать отключение мастер-узла в процессе интенсивного обновления данных, проанализировать действия сервера и проверить целостность измененных данных.
Содержание
Установка MongoDB
Моделирование данных в MongoDB
Для импорта IMDb в MongoDB уже есть готовый скрипт, поэтому вам достаточно импортировать дамп базы (ссылки будут позже).
Схема модели данных в MongoDB:
Индексы
В предлагаемом дампе уже есть некоторые важные индексы, но в ходе выполнения заданий могут понадобиться еще.
Просмотр существующих индексов в коллекции:
db.collection_name.getIndexes()
Функция просмотра всех индексов для всех коллекций:
db.getCollectionNames().forEach(function(collection) { indexes = db[collection].getIndexes(); print("Indexes for " + collection + ":"); printjson(indexes); });
Создание индексов:
db.collection_name.createIndex( { field_name: 1 } ) db.collection_name.createIndex( { field_name: "hashed" } ) // хэш-индексы
Дополнительно
- Подробное описание скрипта и модели данных: https://www.packtpub.com/books/content/mongo-goes-to-the-movies
Язык запросов MongoDB
Базовые операции
Дополнительно
Aggregation Framework
Дополнительно
Репликации MongoDB
Принцип работы репликаций в MongoDB
Конфигурация набора реплик
Сценарий отказа мастер-узла
Стартовый скрипт инициализации сбоя во время работы
Дополнительно
Задания на защиту
- Составить запросы с агрегацией:
- Для каждого года из первой декады XXI века посчитать количество снятых фильмов.
- Выбрать топ-10 наиболее популярных ключевых слов для фильмов заданной страны.
- Написать скрипт на bash или любом другом скриптовом языке, который запускает сервер MongoDB в режиме реплики, начинает интенсивно изменять данные, определяет мастер-узел, убивает процесс мастер-узла, после этого заканчивает изменения данных и проверяет целостность данных.
Защита лабораторной работы
- Показать и выполнить запрос с агрегацией, объяснить структуру запроса
- Продемонстрировать работу скрипта инициализации сбоя во время работы и объяснить, что происходит с репликами MongoDB