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

Технологии проектирования и эксплуатации реляционных и NOSQL баз данных для анализа прикладных социологических задач

Статус: Курс обязательный (Вычислительные социальные науки)
Когда читается: 3-й курс, 1, 2 модуль
Охват аудитории: для своего кампуса
Язык: русский
Кредиты: 3
Контактные часы: 40

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

Аннотация

Курс «Технологии проектирования и эксплуатации реляционных и NOSQL баз данных для анализа прикладных социологических задач» формирует у студентов- бакалавров направления «Вычислительные социальные науки» комплексные навыки проектирования, управления и аналитической обработки данных в исследовательских и производственных средах. В отличие от магистерских курсов, фокусирующихся на бизнес-аналитике, данный курс делает акцент на технических аспектах эксплуатации СУБД (Linux-администрирование, мо- ниторинг, автоматизация), Data Lake-концепции (DuckDB, Parquet, ETL/ELT), OLAP-системах (ClickHouse) и конвейерах обработки гетерогенных данных. Обучение охватывает полный цикл работы с данными: от нормализации и построения ER-диаграмм до реализации OLAP-кубов, проектирования Data Lake и автоматизации конвейеров обработки. Особое внимание уделяется написанию сложных SQL-запросов, методологии оперативной аналитической обработки (OLAP) и решению технологических проблем при анализе потоковых данных. Практическая часть курса построена на использовании СУБД PostgreSQL, DuckDB, ClickHouse и дополняется языком GNU R для статистического вывода и управления кубами. В рамках финального проекта студенты интегрируют по- лученные навыки SQL и OLAP-аналитики с инструментами программирования, выполняя исследование на выбор: на R или Python.
Цель освоения дисциплины

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

  • Цель 1. Проектирование реляционных баз данных. Проектировать нор- мализованные схемы баз данных для социологических исследований, при- меняя ER-моделирование, теорию нормализации (1НФ–3НФ) и обеспечи- вая целостность через декларативные ограничения.
  • Цель 2. Продвинутый SQL и аналитика. Формулировать сложные ана- литические запросы с использованием оконных функций, CTE, подзапро- сов и оптимизировать их производительность через индексы и EXPLAIN ANALYZE.
  • Цель 3. Транзакции и конкурентность. Понимать механизмы ACID, уров- ни изоляции транзакций и блокировки, а также работать с полуструктури- рованными данными (JSON/JSONB) в PostgreSQL.
  • Цель 4. Data Lake и DuckDB. Проектировать хранилища гетерогенных дан- ных (Data Lake), выполнять SQL-запросы к CSV/Parquet/JSON файлам че- рез DuckDB без импорта, применять ETL/ELT подходы для обработки боль- ших файлов.
  • Цель 5. OLAP и ClickHouse. Настраивать и эксплуатировать колоночные СУБД для аналитической обработки, строить OLAP-кубы с материализован- ными представлениями, оценивать производительность через iostat и срав- нивать с OLTP-системами.
  • Цель 6. Конвейеры данных и автоматизация. Строить автоматизиро- ванные конвейеры обработки данных (ETL/ELT) с использованием bash- скриптов, cron-заданий и связки SQL + R/Python через DBI/SQLAlchemy.
  • Цель 7. Интеграция и финальный проект. Интегрировать все освоенные технологии в сквозном исследовательском проекте, выполняя полный цикл от проектирования БД до аналитического отчёта с визуализацией.
Планируемые результаты обучения

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

  • • Развёртывать PostgreSQL в Linux-среде и управлять базой через терминал
  • • Проектировать ER-диаграммы для социологических предметных областей
  • • Формулировать базовые SQL-запросы (SELECT, WHERE, JOIN) и управ- лять правами доступа
  • • Агрегировать данные через GROUP BY/HAVING и обрабатывать NULL- значения
  • • Использовать Linux-утилиты (grep, cut, sort, uniq) для предобработки CSV- файлов
  • • Строить кросстабы и сводные таблицы в SQL
  • • Применять оконные функции (RANK, LAG, LEAD, скользящие средние) для анализа панельных данных
  • • Писать bash-скрипты для автоматизации выгрузки и обработки данных
  • • Различать ROWS и RANGE в оконных функциях
  • • Использовать CTE и подзапросы для построения читаемых аналитических пайплайнов
  • • Оптимизировать запросы через индексы и EXPLAIN ANALYZE
  • • Автоматизировать задачи через cron и мониторить процессы через htop
  • • Объяснять механизмы ACID, уровни изоляции и блокировки
  • • Работать с JSON/JSONB данными: извлечение, индексация, модификация
  • • Моделировать конфликты конкурентного доступа
  • • Настраивать ClickHouse и строить OLAP-кубы с материализованными пред- ставлениями
  • • Различать OLAP и OLTP системы и объяснять преимущества колоночного хранения
  • • Мониторить дисковую нагрузку через iostat и оптимизировать запросы
  • • Строить автоматизированные конвейеры данных (ETL/ELT) с использова- нием bash + cron
  • • Интегрировать SQL с R через DBI/dbplyr и Python через SQLAlchemy
  • • Защищать результаты сквозного исследования в формате скринкаста
Содержание учебной дисциплины

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

  • Реляционная модель и основы SQL + Linux basics
  • Агрегация, NULL и предобработка + Linux tools
  • Оконные функции + Bash scripting
  • Подзапросы, CTE и оптимизация + Linux cron/htop
  • Транзакции, конкурентность и JSON
  • OLAP и ClickHouse
  • Data Lake и DuckDB + Linux split
  • Конвейеры данных, связка с R и Финальный проект
Элементы контроля

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

  • неблокирующий Активность и еженедельные мини-тесты
    Активность на семинаре предполагает учет посещаемости и коммуни- кации с преподавателем. Чем больше активность на семинарах - тем выше оценка. Посещаемость и активность разделены поровну. Активность включает в себя от- веты на вопросы, демонстрация решения по тому или иному кейсу. (10% + 10%).
  • неблокирующий Лабораторная работа №1 — Проектирование и адми- нистрирование PostgreSQL
    Первая техническая работа, выполняющая роль «мягкого входа» в ин- фраструктуру СУБД. Студент разворачивает PostgreSQL в Linux-среде, проекти- рует концептуальную схему (ER-диаграмму) для социологического панельного опроса (Респондент × Волна × Вопрос), пишет базовый DDL-скрипт с ограни- чениями целостности. Перед загрузкой данных студент должен предобработать «грязный» CSV-файл с помощью Linux-утилит (grep, awk, cut), удалив битые строки и нормализовав разделители. В связи с тем, что работа является вводной и направлена на формирование базовых технических навыков, защита включа- ет формат очного чекапа на семинаре. Студент демонстрирует преподавателю на своем ноутбуке работающую схему и ER-диаграмму. Для получения макси- мального балла студенту необходимо показать работающее подключение к БД и созданные таблицы; Ответить на серию уточняющих вопросов по логике связей (например, обосновать выбор кардинальности связи 1:M или M:N); загрузить ито- говые файлы в LMS в течение 48 часов после семинара.
  • неблокирующий Лабораторная работа №2 — Продвинутая аналитика и автоматизация
    Студент пишет серию сложных аналитических запросов к базе из ЛР №1: расчет когортного удержания респондентов, ранжирование регионов по ин- дексу доверия с помощью оконных функций, рекурсивный CTE для обхода иерар- хии вопросов. Затем студент автоматизирует процесс: пишет bash-скрипт, кото- рый делает дамп базы, архивирует его и отправляет на «удаленный сервер» (эму- ляция через локальную папку), и настраивает выполнение этого скрипта по рас- писанию через cron.
  • неблокирующий Лабораторная работа №3 — Data Lake, OLAP и кон- вейеры данных
    Самая технически насыщенная работа. Студент получает сырые JSON-логи веб-опроса (полуструктурированные данные). 1. Загружает JSON в DuckDB, выполняет SQL-запросы напрямую к файлам, извлекает вложенные поля и сохраняет очищенный срез в формат Parquet (Data Lake). 2. Разворачивает ClickHouse, проектирует OLAP-схему (движок MergeTree), загружает данные из Parquet. 3. Строит материализованное представление для агрегации ответов по регио- нам. 4. Сравнивает скорость выполнения одного и того же аналитического запро- са в PostgreSQL и ClickHouse, фиксируя разницу в нагрузке на диск через iostat.
  • неблокирующий Финальный проект — Сквозной аналитический пай- плайн
    Capstone-работа. Студент (индивидуально или в паре) строит end-to- end пайплайн для решения прикладной социологической задачи. Студент должен реализовать полный цикл: сырые данные → предобработка (bash) → хранение (DuckDB/PostgreSQL) → аналитическая витрина (ClickHouse) → статистический вывод и визуализация (R/Python) → итоговый отчет (Quarto/RMarkdown).
Промежуточная аттестация

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

  • 2026/2027 2nd module
    0.2 * Лабораторная работа №3 — Data Lake, OLAP и кон- вейеры данных + 0.15 * Лабораторная работа №1 — Проектирование и адми- нистрирование PostgreSQL + 0.15 * Лабораторная работа №2 — Продвинутая аналитика и автоматизация + 0.3 * Финальный проект — Сквозной аналитический пай- плайн + 0.2 * Активность и еженедельные мини-тесты
Список литературы

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

Рекомендуемая основная литература

  • Beaulieu, A. (2009). Learning SQL : Master SQL Fundamentals: Vol. 2nd ed. O’Reilly Media.
  • Linoff, G. (2016). Data Analysis Using SQL and Excel: Vol. Second edition. Wiley.
  • Malik, U., Goldwasser, M., & Johnston, B. (2019). SQL for Data Analytics : Perform Fast and Efficient Data Analysis with the Power of SQL. Packt Publishing.
  • Robert I. Kabacoff. (2015). R in Action : Data Analysis and Graphics with R: Vol. Second edition. Manning.
  • Рогов, Е. В. PostgreSQL 15 изнутри : руководство / Е. В. Рогов. — Москва : ДМК Пресс, 2023. — 662 с. — ISBN 978-5-93700-178-8. — Текст : электронный // Лань : электронно-библиотечная система. — URL: https://e.lanbook.com/book/348089 (дата обращения: 00.00.0000). — Режим доступа: для авториз. пользователей.

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

  • SQL. Сборник рецептов. — 2-е изд.: Пер. с англ. - 978-5-9775-6759-6 - Молинаро Э., Грааф Р. - 2022 - Санкт-Петербург: БХВ-Петербург - https://ibooks.ru/products/380028 - 380028 - iBOOKS
  • Zumel, N. V. (DE-588)1055925899, (DE-627)792891783, (DE-576)41194200X, aut. (2020). Practical data science with R Nina Zumel and John Mount ; foreword by Jeremy Howard and Rachel Thomas.
  • Шёниг, Г. -. PostgreSQL 11. Мастерство разработки / Г. -. Шёниг , перевод с английского А. А. Слинкина. — Москва : ДМК Пресс, 2020. — 352 с. — ISBN 978-5-97060-671-1. — Текст : электронный // Лань : электронно-библиотечная система. — URL: https://e.lanbook.com/book/131714 (дата обращения: 00.00.0000). — Режим доступа: для авториз. пользователей.

Авторы

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