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

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

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

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

Аннотация

Современные web-приложения строятся, как правило, поверх каких-нибудь СУБД. СУБД позволяют разработчикам не думать о том, как хранить данные на диске и как их искать, как обеспечить конкурентный доступ сразу многим пользователям, как оптимальнее воспользоваться ресурсами железа. Все эти сложности скрыты за простым интерфейсом языка запросов, как правило какого-нибудь диалекта SQL. Тем не менее при построении высоконагруженных систем становится необходимым понимать, как работает СУБД и почему выполнение запросов занимает именно такое время. К тому же есть люди, которые пишут эти самые СУБД.Мы будем разбирать, как устроены СУБД изнутри: как хранить данные, как выполнять запросы, как реализовать транзакции. В Яндексе есть несколько команд, занимающихся разработкой СУБД или очень на них похожего: Postgres, ClickHouse, YDB и YT. В первую очередь курс рассчитан на тех, кто хочет присоединиться к этим командам, но также будет полезен и тем, кто собирается в своей работе использовать хранилища данных с доступом в реальном времени.Предполагается, что слушатели уже знакомы с понятиями алгоритмов во внешней памяти, многопоточным программированием, распределенными системами и умеют программировать на C++.
Цель освоения дисциплины

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

  • Студенты изучат принципы и технологии построения СУБД
  • Студенты познакомятся с различными классами СУБД
  • Студенты получат практические навыки разработки различных частей СУБД
Планируемые результаты обучения

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

  • Навык восстановления СУБД после сбоя
  • Навык планирования и оптимизации запросов в СУБД
  • Навык организации хранения данных в реляционной СУБД
  • Знает примеры баз данных
  • Знает про: Locks и latches, Page-cache операционной системы, Оптимизацию буферных пулов, Buffer pool replacement policies.
  • Знает про индексы и хеш-таблицы.
  • Знает про B+-деревья.
  • Знает про сортировку и агрегацию.
  • Знает про хранение данных.
  • Знает про нормализацию в базах данных.
  • Знает про план и модели выполнения запросов.
  • Знает про оптимизацию запроса.
  • Знает про проблемы durability и восстановление после сбоя.
Содержание учебной дисциплины

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

  • Введение в базы данных.
  • Storage. Хранение данных.
  • Буферный пул.
  • Log-structured storage.
  • Индексы. Хеш-таблицы.
  • B+-деревья.
  • Сортировка и агрегация.
  • Joins.
  • Выполнение запроса.
  • Оптимизация запросов.
  • Проблемы durability и восстановление после сбоя.
  • Управление транзакциями.
  • Распределенные базы данных.
Элементы контроля

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

  • неблокирующий Дз 1
  • неблокирующий Дз 2
  • неблокирующий Дз 3
  • неблокирующий Дз 4
  • неблокирующий Дз 5
  • неблокирующий Дз 6
Промежуточная аттестация

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

  • 2024/2025 2nd module
    Оценка за курс ставится исходя из накопленных баллов за домашние задания: Набравшие 80% от всей суммы баллов получают отлично (10 баллов). Набравшие 70% от всей суммы баллов получают хорошо (7 баллов). Набравшие 60% от всей суммы баллов получают зачёт (5 баллов). Набравшие менее 60% от всей суммы получают незачёт (3 балла).
Список литературы

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

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

  • Базы данных : учеб. пособие, Кузин А.В., Левонисова С.В., 2010
  • Базы данных : учебник для вузов, Советов, Б. Я., 2021
  • Базы данных : учебник для вузов, Советов, Б. Я., 2022
  • Базы данных. Проектирование моделей данных : учебник для вузов, Гринченко, Н. Н., 2024
  • Базы данных. Проектирование, реализация и сопровождение. : теория и практика, Коннолли, Т., 2018

Авторы

  • Фисенко Анна Сергеевна
  • Алиева Эльмира Махир Кызы