Выполняйте только если преподаватель назначил это задание. Срок сдачи сообщит преподаватель.
Задание предназначено для самостоятельного выполнения при пропуске очного занятия либо в рамках углубленной индивидуальной подготовки. Оценка проводится по 4-балльной шкале.
Срок сдачи: к следующему теоретическому занятию по расписанию.
Задание 1. Сравнительный анализ моделей данных (2 балла)
Заполните аналитическую матрицу сопоставления классической реляционной модели и одного из классов NoSQL (по выбору: документоориентированной, графовой или колоночной).
Параметр сопоставления
Реляционная модель данных (РМД, SQL)
Выбранная NoSQL модель (укажите тип)
Тип модели и целевая СУБД
Форма логической организации данных
Обеспечение целостности и транзакции
Язык запросов и доступ
Задание 2. Архитектурный выбор модели под заданный кейс (1 балл)
Практический кейс: Сервис рекомендаций и анализа маршрутов курьерской доставки в мегаполисе. Система отслеживает граф связей между пересадочными узлами, дорожными сегментами, пунктами выдачи заказов и курьерами. Запросы требуют мгновенного поиска кратчайшего пути с учетом пробок и выявления цепочек взаимных пересечений («курьер А может передать посылку курьеру Б на узле Х»).
Аналитическое обоснование:
Сравните возможность реализации данного кейса на реляционной СУБД (PostgreSQL) и на графовой СУБД (Neo4j). Объясните, почему реляционные каскадные JOIN приводят к падению производительности при глубоких связях, и как концепция безындексной смежности (index-free adjacency) решает эту проблему.
Оценка рисков по CAP-теореме:
К какому классу распределенных систем (CP или AP) должен относиться данный сервис логистики, и чем грозит выбор Eventual Consistency?
Задание 3. Выводы и самопроверка (1 балл)
Сформулируйте итоговый вывод: почему современная разработка программного обеспечения перешла к концепции Polyglot Persistence, и почему ни одна модель данных не может считаться абсолютно универсальной.