← К оглавлению занятия

💻 Примеры

📁 Блок: Финальный блок / защита проекта ⏱️ Время изучения: ~180 мин 🎯 Сложность: Проект

⚡ Кратко: суть занятия

Занятие 81 посвящено презентации финального проекта по базам данных.

Извлечённый источник содержит только страницу входа LMS, поэтому детали задания нужно сверить в LMS или у куратора.

На занятии важно показать не только результат, но и логику проектирования: какие данные есть, как они связаны и почему выбрана такая модель.

Для SQL-проекта подготовьте ER-диаграмму, таблицы, ключи, ограничения и аналитические запросы.

Для MongoDB-проекта подготовьте структуру документов, примеры документов, индексы и aggregation pipeline.

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

Топ-3 ошибки: показывать только скриншоты без запросов, не объяснять выбор модели, не иметь воспроизводимой проверки результата.

Выполнимые примеры

Слайд 1: задача

Начните с пользовательского вопроса, а не с технологии.

Цель проекта: проанализировать заказы и найти самые прибыльные категории.

Слайд 2: модель

Покажите схему или пример документа.

orders -> customers -> payments
или
{ customer, orders: [ ... ] }

SQL-демо

Запрос должен быть читаемым и объяснённым.

SELECT
  c.name AS category,
  COUNT(*) AS orders_count,
  SUM(o.total) AS revenue
FROM orders AS o
JOIN categories AS c ON c.category_id = o.category_id
GROUP BY c.name
ORDER BY revenue DESC;

MongoDB-демо

Pipeline показывает вычисление, а не просто список документов.

db.orders.aggregate([
  { $group: { _id: '$category', revenue: { $sum: '$total' }, orders: { $sum: 1 } } },
  { $sort: { revenue: -1 } }
]);

Проверка индекса

Объясните, под какой фильтр создан индекс.

db.orders.createIndex({ category: 1, total: -1 });