Магистратура
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 module0.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). — Режим доступа: для авториз. пользователей.