• A
  • A
  • A
  • АБB
  • АБB
  • АБB
  • А
  • А
  • А
  • А
  • А
Обычная версия сайта
Магистратура 2026/2027

SQL для работы с рыночными данными

Когда читается: 2-й курс, 1, 2 модуль
Охват аудитории: для всех кампусов НИУ ВШЭ
Язык: русский
Кредиты: 6
Контактные часы: 36

Программа дисциплины

Аннотация

Курс «SQL для работы с рыночными данными» формирует у студентов практические навыки проектирования и управления реляционными базами данных, а также эффективной работы с данными с помощью SQL. Особое внимание уделяется построению сложных запросов, нормализации данных и проектированию ER-диаграмм, необходимых для эффективной обработки большого объема данных и цифровой аналитики социальных и рыночных данных. В завершающей части курса студенты интегрируют SQL с аналитикой, выполняя финальный проект с использованием либо R, либо Python — по выбору, в зависимости от предпочтений и уровня подготовки. Курс ориентирован на реальные задачи обработки социологических и рыночных данных и позволяет освоить полный цикл работы с данными — от проектирования базы до анализа и визуализации.
Цель освоения дисциплины

Цель освоения дисциплины

  • Возможности проектирования реляционных баз данных для хранения и анализа социологических и рыночных данных, применив принципы концептуального моделирования (ER-диаграммы) и нормализации (до 3НФ).
  • Приобрести навыки настройки и управления реляционной СУБД (PostgreSQL) в локальной или облачной среде, включая создание, модификацию и проверку целостности структуры базы данных.
  • Формулировать и выполнять эффективные SQL-запросы любой сложности — от базовых выборок до аналитических операций с использованием оконных функций, CTE и сложных JOIN’ов.
  • Модифицировать данные в базе с использованием операций INSERT, UPDATE, DELETE, включая фильтрацию, транзакции и работу с ограничениями целостности.
  • Интегрировать SQL с языками анализа данных (R или Python) для извлечения, обработки и визуализации результатов анализа.
  • Получить навыки подготовки и представления аналитического отчёта на основе данных из реляционной базы, используя современные инструменты документирования (RMarkdown, Jupyter Notebook, PDF).
Планируемые результаты обучения

Планируемые результаты обучения

  • Настраивать среду разработки для работы с реляционными БД (PostgreSQL, DBeaver, VSCode) и интегрировать её с R/Python
  • Понимать архитектуру реляционных СУБД и различия между серверными (PostgreSQL) и файловыми (SQLite) системами
  • Организовывать воспроизводимый аналитический проект с версионированием SQL-скриптов и данных.
  • Строить ER-диаграммы в нотациях Crowʼs Foot и Chen на основе текстового описания социологической или рыночной предметной области.
  • Определять типы связей между сущностями (1:1, 1:M, M:N) и корректно разрешать M:N связи через ассоциативные сущности.
  • Выявлять типовые ошибки концептуального проектирования и обосновывать выбор структуры БД.
  • Выявлять аномалии данных и приводить таблицы к 3НФ через последовательную декомпозицию.
  • Писать DDL-скрипты с корректными типами данных, ключами и CHECK-ограничениями для социологических и рыночных БД.
  • Обеспечивать целостность данных через декларативные ограничения (PK, FK, UNIQUE, CHECK, NOT NULL) и транзакционные механизмы.
  • Формулировать SQL-запросы любой сложности: многотабличные JOIN'ы, подзапросы, CTE для построения аналитических пайплайнов.
  • Применять оконные функции (LAG, LEAD, RANK, SUM OVER) для когортного анализа, расчёта трендов и сегментации социологических и рыночных данных.
  • Оптимизировать SQL-запросы по производительности и читаемости, интерпретировать результаты в социологическом/маркетинговом контексте.
  • Интегрировать PostgreSQL с R (через DBI/RPostgres/dbplyr) и Python (через SQLAlchemy/psycopg2/pandas) для извлечения и обработки данных.
  • Строить воспроизводимые аналитические отчёты в RMarkdown/Jupyter Notebook с внедрённым SQL-кодом и визуализациями.
  • Применять паттерны безопасного подключения к БД и эффективной передачи данных между СУБД и аналитической средой.
Содержание учебной дисциплины

Содержание учебной дисциплины

  • [Т1] Введение в СУБД: инструментальная среда и концептуальная схема курса
  • [Т2] Логика построения баз данных: ER-диаграммы как концептуальная схема
  • [Т3] Нормализация данных и управление базой данных (DDL)
  • [Т4] SQL-запросы: от базовых до аналитических (DML)
  • [Т5] Построение аналитических пайплайнов: SQL + R/Python
Элементы контроля

Элементы контроля

  • неблокирующий Активность на онлайн-семинарах и форуме
    Форма контроля оценивает вовлечённость студента в учебный процесс в условиях онлайн-формата (Webinar.ru). Активность складывается из двух компонентов: синхронное участие в вебинарах (задание вопросов в чате, участие в live-coding сессиях, решение мини-задач в реальном времени) и асинхронная активность в учебном форуме LMS (помощь одногруппникам с ошибками подключения к БД, обсуждение архитектурных решений, публикация полезных шпаргалок или найденных пакетов). Данный элемент контроля компенсирует сложности онлайн-формата и создаёт поддерживающую образовательную среду, поощряя регулярную работу с материалом. Оценка выставляется еженедельно на основе наблюдений преподавателя и метрик LMS, итоговый балл — среднее арифметическое.
  • неблокирующий Домашнее задание №1 — ER-диаграмма
    Первое домашнее задание закладывает фундамент курса, фокусируясь на концептуальном моделировании. Студент получает текстовое описание предметной области (социологический опрос или рыночная CRM-система) и должен перевести его в формализованную графическую схему. Задание требует выявления сущностей, атрибутов, типов связей (1:1, 1:M, M:N) и их визуализации в нотации Crowʼs Foot. Особое внимание уделяется разрешению связей «многие-ко-многим» через ассоциативные сущности и выделению слабых сущностей. Результат оформляется в виде PDF-отчёта, включающего графическую схему и текстовое обоснование принятых проектных решений.
  • неблокирующий Домашнее задание №2 — Нормализация и DDL
    Задание развивает концептуальную модель из ДЗ №1 до уровня физической реализации. Студент должен провести нормализацию таблиц до 3НФ, выявив и устранив аномалии вставки, обновления и удаления. На основе нормализованной схемы пишется полный DDL-скрипт для PostgreSQL: создаются таблицы с оптимальными типами данных, настраиваются первичные и внешние ключи (с явным указанием действий ON DELETE / ON UPDATE), а также добавляются ограничители целостности (CHECK, UNIQUE, NOT NULL). Задание сопровождается тестовыми INSERT-запросами для проверки работоспособности схемы.
  • неблокирующий Домашнее задание №3 — Аналитические SQL-запросы
    Центральное задание курса, проверяющее владение продвинутым аналитическим SQL. Студент пишет серию из 10 запросов к базе данных, которую он самостоятельно спроектировал и создал в ДЗ №2. Задание охватывает весь спектр аналитических инструментов: многотабличные JOIN (включая SELF и CROSS), иерархические запросы через CTE (Common Table Expressions) и оконные функции (ROW_NUMBER, RANK, LAG, LEAD, скользящие агрегации SUM OVER). Каждый запрос должен решать конкретную бизнес- или социологическую задачу (например, когортный анализ, расчёт LTV, выявление трендов).
  • неблокирующий Лабораторная работа — Интеграция SQL + R/Python
    Интеграционная работа, выполняющая роль мостика между «чистым SQL» и аналитическими средами. Студент подключается к своей PostgreSQL базе (из ДЗ №2) из R (через DBI/RPostgres) или Python (через SQLAlchemy/psycopg2), извлекает данные с помощью SQL-запросов, выполняя тяжёлую агрегацию на стороне СУБД, и передаёт в среду программирования только подготовленные датасеты. В R/Python проводится финальная статистическая обработка и строятся публикационные визуализации (ggplot2 / seaborn). Результат оформляется в виде воспроизводимого RMarkdown или Jupyter Notebook.
  • неблокирующий Финальный проект — End-to-End пайплайн
    Завершающая часть курса, требующая самостоятельного исследования. Студент выбирает один датасет из предложенного меню (или согласовывает свой), формулирует исследовательский/бизнес-вопрос и реализует полный цикл: от ER-диаграммы и DDL до сложных SQL-запросов и финального отчёта с визуализацией в R/Python. Проект выполняется в мини-командах. Обязательным этапом является Proposal Gate (на 13-й неделе студент подаёт 1-страничный proposal, который должен быть одобрен преподавателем).
Промежуточная аттестация

Промежуточная аттестация

  • 2026/2027 2nd module
    0.2 * Лабораторная работа — Интеграция SQL + R/Python + 0.05 * Активность на онлайн-семинарах и форуме + 0.3 * Финальный проект — End-to-End пайплайн + 0.1 * Домашнее задание №1 — ER-диаграмма + 0.15 * Домашнее задание №3 — Аналитические SQL-запросы + 0.15 * Домашнее задание №2 — Нормализация и DDL
Список литературы

Список литературы

Рекомендуемая дополнительная литература

  • Beaulieu, A. (2009). Learning SQL : Master SQL Fundamentals: Vol. 2nd ed. O’Reilly Media.
  • Маркин, А. В. Построение запросов и программирование на SQL : учебное пособие / А. В. Маркин. — Рязань : РГРТУ, 2008. — 312 с. — Текст : электронный // Лань : электронно-библиотечная система. — URL: https://e.lanbook.com/book/168022 (дата обращения: 00.00.0000). — Режим доступа: для авториз. пользователей.

Авторы

  • Пашков Станислав Георгиевич
  • Десятова Мария Ивановна