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

Системы баз данных

ID 1160132

Когда читается: 3-й курс, 1, 2 модуль
Охват аудитории: для своего кампуса
Язык: русский
Кредиты: 5
Контактные часы: 56

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

Аннотация

Курс посвящён системам хранения и обработки данных - от одной реляционной базы до платформы данных компании. Студенты узнают, как устроена и как исполняет запросы классическая СУБД (PostgreSQL), чем отличаются колоночные аналитические системы (ClickHouse), как проектируют и наполняют хранилища данных, что меняется, когда данные не помещаются на одну машину, и что лежит за пределами реляционной модели - NoSQL и векторные базы данных для приложений на основе LLM.
Цель освоения дисциплины

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

  • Знать устройство реляционной СУБД: организацию хранения, индексы, оптимизатор, транзакции и механизмы обеспечения ACID.
  • Уметь писать аналитические SQL-запросы (JOIN, агрегаты, CTE, оконные функции) и оптимизировать их по плану выполнения.
  • Уметь проектировать схемы данных для транзакционной и аналитической нагрузки, включая размерное моделирование хранилищ.
  • Знать архитектуру хранилищ данных и подходы к их построению (слои, ETL/ELT, Inmon, Kimball, Data Vault) и уметь организовать надёжную загрузку данных с помощью Airflow и dbt.
  • Понимать принципы колоночного хранения и аналитических СУБД (ClickHouse, MPP-системы) и область их применения.
  • Знать архитектуру Apache Spark и уметь писать и оптимизировать распределённые вычисления: читать планы, выбирать стратегии джойнов, бороться с перекосом данных, подбирать ресурсы.
  • Понимать архитектуру Lakehouse, устройство табличных форматов (Iceberg, Delta Lake) и уметь аргументированно выбирать между хранилищем и lakehouse.
  • Знать основы потоковой обработки данных (Kafka, Structured Streaming, CDC).
  • Знать основные классы NoSQL-систем и векторных баз данных и уметь выбирать систему хранения под задачу, включая задачи поиска для LLM-приложений.
Планируемые результаты обучения

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

  • Навык восстановления СУБД после сбоя
  • Навык планирования и оптимизации запросов в СУБД
  • Навык организации хранения данных в реляционной СУБД
  • Знает примеры баз данных
  • Знает про: Locks и latches, Page-cache операционной системы, Оптимизацию буферных пулов, Buffer pool replacement policies.
  • Знает про индексы и хеш-таблицы.
  • Знает про B+-деревья.
  • Знает про сортировку и агрегацию.
  • Знает про хранение данных.
  • Знает про нормализацию в базах данных.
  • Знает про план и модели выполнения запросов.
  • Знает про оптимизацию запроса.
  • Знает про проблемы durability и восстановление после сбоя.
  • Студент проектирует реляционную схему данных по описанию предметной области, обосновывает выбор ключей, ограничений и степени нормализации.
  • Студент пишет аналитические запросы на SQL с использованием соединений, агрегатов, CTE и оконных функций.
  • Студент читает план выполнения запроса в PostgreSQL, ClickHouse и Spark, находит узкое место и устраняет его (индекс, переписывание запроса, партиционирование, стратегия джойна).
  • Студент объясняет механизмы транзакций, уровни изоляции и связанные с ними аномалии, репликацию и её ограничения.
  • Студент сравнивает строчное и колоночное хранение и выбирает СУБД под транзакционную или аналитическую нагрузку.
  • Студент проектирует хранилище данных по схеме «звезда», реализует медленно меняющиеся измерения.
  • Студент реализует инкрементальную идемпотентную загрузку данных в виде DAG в Apache Airflow и описывает трансформации в dbt с проверками качества.
  • Студент выбирает формат хранения файлов (CSV, Parquet, Avro и др.) и библиотеку обработки (Pandas, Polars, DuckDB) исходя из объёма и характера данных.
  • Студент разрабатывает и оптимизирует приложения на PySpark: объясняет план выполнения, устраняет лишний shuffle и перекос данных, подбирает параметры ресурсов.
  • Студент создаёт таблицы в формате Iceberg / Delta Lake, использует time travel и эволюцию схемы, объясняет, как достигается ACID над объектным хранилищем.
  • Студент описывает устройство Apache Kafka и реализует простую потоковую обработку с окнами.
  • Студент классифицирует NoSQL-системы и векторные базы данных и обосновывает выбор системы хранения для заданного сценария, включая RAG-приложения.
  • Студент собирает в команде работающий сквозной конвейер данных и представляет его архитектуру.
Содержание учебной дисциплины

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

  • Введение. Зоопарк систем данных и карта курса: OLTP vs OLAP, реляционная модель, повторение базового SQL, сквозные линии курса
  • Проектирование схемы данных: сущности и связи, ключи и ограничения, нормальные формы и осознанная денормализация
  • SQL для аналитики: JOIN и их ловушки, GROUP BY и агрегаты, CTE и рекурсия, оконные функции
  • Как СУБД исполняет запрос: страницы, B-tree и другие индексы, статистика и оптимизатор, чтение EXPLAIN, антипаттерны
  • Транзакции и надёжность: ACID, уровни изоляции и аномалии, MVCC, блокировки, WAL; репликация и шардирование (обзор)
  • Колоночные СУБД и аналитическая нагрузка: строчное vs колоночное хранение, компрессия, векторизация, партиционирование; ClickHouse
  • Основы построения хранилищ данных: слои staging → core → витрины, подходы Inmon / Kimball / Data Vault, ETL vs ELT, MPP (Greenplum)
  • Размерное моделирование: факты и измерения, звезда и снежинка, гранулярность, SCD, суррогатные ключи, календарное измерение
  • Оркестрация и загрузка данных: DAG и Apache Airflow, инкрементальная загрузка, идемпотентность, backfill, dbt, проверки качества данных
  • Данные на одной машине: форматы файлов (CSV, JSON, Parquet, ORC, Avro, Pickle), Pandas и память, Polars, DuckDB
  • Распределённое хранение и вычисления: HDFS и S3, YARN, MapReduce, архитектура Spark (driver, executors, shuffle), RDD vs DataFrame, ленивые вычисления
  • Spark: оптимизация и тюнинг: Catalyst и AQE, чтение explain, стратегии джойнов, skew, ресурсы; кейс «ноутбук, который убивает кластер»
  • Lakehouse: от data lake к lakehouse, табличные форматы Delta Lake / Iceberg / Hudi, ACID над объектным хранилищем, time travel, каталоги, medallion-архитектура
  • NoSQL и выбор системы под задачу: key-value, документные, широкостолбцовые, графовые СУБД; CAP и согласованность; карта выбора СУБД
  • Потоковые данные: Kafka (топики, партиции, consumer groups, гарантии доставки), Structured Streaming / Flink, Lambda и Kappa, CDC
  • Векторные базы данных и данные для LLM: эмбеддинги, ANN-индексы (HNSW, IVF), pgvector / Qdrant, гибридный поиск, RAG, feature store; итоги курса
  • Storage. Хранение данных.
  • Буферный пул.
  • Log-structured storage.
  • Индексы. Хеш-таблицы.
  • B+-деревья.
  • Сортировка и агрегация.
  • Joins.
  • Выполнение запроса.
  • Оптимизация запросов.
  • Проблемы durability и восстановление после сбоя.
  • Управление транзакциями.
  • Распределенные базы данных.
Элементы контроля

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

  • неблокирующий Домашнее задание
  • неблокирующий Задачи в менитаск
Промежуточная аттестация

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

  • 2026/2027 2nd module
    0.25 * Задачи в менитаск + 0.25 * Домашнее задание
Список литературы

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

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

  • Kimball, Ralph, and Margy Ross. The data warehouse toolkit: The definitive guide to dimensional modeling. John Wiley & Sons, 2013.
  • PostgreSQL 16 изнутри - Рогов Е. - Издательство "ДМК Пресс" - 978-5-93700-305-8 - 2024 - русский - https://e.lanbook.com/book/456800 - ЛАНЬ - 456800
  • Высоконагруженные приложения. Программирование, масштабирование, поддержка - Клеппман Мартин - Астана: Спринт Бук - 978-601-08-3514-6 - 2024 - русский - https://ibooks.ru/product/335521 - iBOOKS - 335521
  • Системы баз данных : полный курс, Гарсиа-Молина, Г., 2004

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

  • Введение в системы баз данных. Классическое издание. Т.1: ., Дейт, К. Дж., 2024
  • Введение в системы баз данных. Классическое издание. Т.2: ., Дейт, К. Дж., 2024
  • Распределенные данные. Алгоритмы работы современных систем хранения информации - Петров Алекс - Санкт-Петербург: Питер - 978-5-4461-1640-9 - 2021 - русский - https://ibooks.ru/product/336732 - iBOOKS - 336732

Авторы

  • Фисенко Анна Сергеевна