Базы данных/Лабораторная работа 5 — различия между версиями

Материал из Wiki - Факультет компьютерных наук
Перейти к: навигация, поиск
(Новая страница: «Задачи лабораторной работы: * Установить MongoDB * Используя модель документоориентированн…»)
 
Строка 1: Строка 1:
 
Задачи лабораторной работы:
 
Задачи лабораторной работы:
 
* Установить MongoDB
 
* Установить MongoDB
* Используя модель документоориентированных СУБД спроектировать модель данных базы IMDB, мигрировать часть данных из PostgreSQL.
+
* Рассмотреть различия в моделировании данных для реляционных БД и документоориентированных.
 
* Попрактиковаться в составлении запросов к MongoDB: добавление, обновление, селекция, фильтрация, агрегация.
 
* Попрактиковаться в составлении запросов к MongoDB: добавление, обновление, селекция, фильтрация, агрегация.
 
* Настроить репликацию данных, инициировать отключение мастер-узла в процессе интенсивного обновления данных, проанализировать действия сервера и проверить целостность измененных данных.
 
* Настроить репликацию данных, инициировать отключение мастер-узла в процессе интенсивного обновления данных, проанализировать действия сервера и проверить целостность измененных данных.
 
'''''Важно:''' методичка еще не дописана и задания могут быть упрощены, но выполнение изначальных заданий в этом случае будет давать преимущество при подсчете итоговой оценки за курс ''
 
  
 
== Установка MongoDB ==
 
== Установка MongoDB ==
  
 
== Моделирование данных в MongoDB ==
 
== Моделирование данных в MongoDB ==
 +
Для импорта IMDb в MongoDB уже есть готовый скрипт, поэтому вам достаточно импортировать дамп базы (ссылки будут позже).
  
=== Стартовый скрипт миграции IMDb ===
+
Схема модели данных в MongoDB
  
 +
https://www.packtpub.com/sites/default/files/new_blog_images/147/1-flatmodel.gif
 +
 +
Подробное описание скрипта и модели данных: https://www.packtpub.com/books/content/mongo-goes-to-the-movies
  
 
== Язык запросов MongoDB ==
 
== Язык запросов MongoDB ==
Строка 29: Строка 31:
  
 
=== Стартовый скрипт инициализации сбоя во время работы ===
 
=== Стартовый скрипт инициализации сбоя во время работы ===
 +
 +
=== Дополнительно ===
 +
* https://docs.mongodb.com/manual/core/replication-introduction/
  
 
== Задания на защиту ==
 
== Задания на защиту ==
* Завершить скрипт миграции фильмов из PostgreSQL в MongoDB.
+
* Составить запросы с агрегацией:  
* Составить запрос с агрегацией: для каждого года из первой декады XXI века посчитать количество снятых фильмов.
+
** Для каждого года из первой декады XXI века посчитать количество снятых фильмов.
 +
** Выбрать топ-10 наиболее популярных ключевых слов для фильмов заданной страны.
 
* Написать скрипт на bash или любом другом скриптовом языке, который запускает сервер MongoDB в режиме реплики, начинает интенсивно изменять данные, определяет мастер-узел, убивает процесс мастер-узла, после этого заканчивает изменения данных и проверяет целостность данных.
 
* Написать скрипт на bash или любом другом скриптовом языке, который запускает сервер MongoDB в режиме реплики, начинает интенсивно изменять данные, определяет мастер-узел, убивает процесс мастер-узла, после этого заканчивает изменения данных и проверяет целостность данных.
  
 
=== Защита лабораторной работы ===
 
=== Защита лабораторной работы ===
* Показать скрипт миграции и объяснить, модель хранения данных с MongoDB
 
 
* Показать и выполнить запрос с агрегацией, объяснить структуру запроса
 
* Показать и выполнить запрос с агрегацией, объяснить структуру запроса
 
* Продемонстрировать работу скрипта инициализации сбоя во время работы и объяснить, что происходит с репликами MongoDB
 
* Продемонстрировать работу скрипта инициализации сбоя во время работы и объяснить, что происходит с репликами MongoDB

Версия 11:08, 3 июня 2016

Задачи лабораторной работы:

  • Установить MongoDB
  • Рассмотреть различия в моделировании данных для реляционных БД и документоориентированных.
  • Попрактиковаться в составлении запросов к MongoDB: добавление, обновление, селекция, фильтрация, агрегация.
  • Настроить репликацию данных, инициировать отключение мастер-узла в процессе интенсивного обновления данных, проанализировать действия сервера и проверить целостность измененных данных.

Установка MongoDB

Моделирование данных в MongoDB

Для импорта IMDb в MongoDB уже есть готовый скрипт, поэтому вам достаточно импортировать дамп базы (ссылки будут позже).

Схема модели данных в MongoDB

1-flatmodel.gif

Подробное описание скрипта и модели данных: https://www.packtpub.com/books/content/mongo-goes-to-the-movies

Язык запросов MongoDB

Базовые операции

Aggregation Framework

Репликации MongoDB

Принцип работы репликаций в MongoDB

Конфигурация набора реплик

Сценарий отказа мастер-узла

Стартовый скрипт инициализации сбоя во время работы

Дополнительно

Задания на защиту

  • Составить запросы с агрегацией:
    • Для каждого года из первой декады XXI века посчитать количество снятых фильмов.
    • Выбрать топ-10 наиболее популярных ключевых слов для фильмов заданной страны.
  • Написать скрипт на bash или любом другом скриптовом языке, который запускает сервер MongoDB в режиме реплики, начинает интенсивно изменять данные, определяет мастер-узел, убивает процесс мастер-узла, после этого заканчивает изменения данных и проверяет целостность данных.

Защита лабораторной работы

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