Базы данных

Цель курса — Знать: - Концепция и принципы реляционной модели данных - Методы проектирования баз данных – Методику построения запросов - Подходы к профилированию производительности – Методику оптимизации запросов к БД MySQL – Подходы к администрированию хранилища данных на основе БД MySQL - Основы архитектуры современных СУБД – Основы и границы применимости реляционной модели – Основные типы нереляционных баз данных, а также область их применимости при построении хранилищ данных Уметь: - Проектировать концептульные и логические схемы для высоконагруженных баз данных - Строить запросы на выборку и модификацию данных к реляционным СУБД – Профилировать производительность хранилища данных на основе БД MySQL - Оптимизировать запросы и структуру реляционной БД в целях повышения производительности - Выполнять запросы к нереляционной документоориентированной СУБД - Разрабатывать прикладные программы, осуществляющие взаимодействие с БД

По окончании курса студенты будут владеть: - Навыками проектирования схемы реляционных БД - Навыками построения сложноструктурированных запросов - Навыками профилирования и оптимизации производительности реляционных БД – Навыками по развертыванию, эксплуатации и поддержанию хранилища данных на основе БД MySQL

Подробнее

Курс состоит из 11 лекций и 6 практических занятий 68 академических часов аудиторных занятий и 42 часа – самостоятельных.

В ходе курса, студенты разрабатывают проект с определенными требованиями. Проект тестируется на удовлетворение функциональным и нагрузочным требованиям, а так же защищается у преподавателя, где проверяется качество и самостоятельность исполнения (всего 40 баллов). Также в течение семестра студенты должны сдать 3 рубежных контроля, каждый из которых состоит из 2-х частей: работа с автоматизированной системой и защита у преподавателя. Всего за рубежные контроли студент может набрать 60 баллов.

Для успешной аттестации по данному курсу студентам необходимо набрать 70 баллов. При пересчете баллов студенты могут получить итоговую оценку: 0–69 неудовлетворительно, 70–84 удовлетворительно, 85–99 хорошо, 100 отлично.

Подробнее

Преподаватели

Станислав Ступников Станислав Ступников

Ассистент преподавателя по курсу «СУБД». Программист рекламной системы в Mail.Ru

Анастасия Дюдина Анастасия Дюдина

Ассистент преподавателя по курсу «СУБД»

Артем Навроцкий Артем Навроцкий

Преподаватель курса СУБД

Программа

занятие Часы в ауд. + сам. работа

Лекция №1: Введение   + ДЗ №1

Обзор курса и организационные вопросы:
-Описание курса;
-Порядок сдачи рубежного контроля;
-Список литературы.
Краткое введение в историю баз данных:
-Зачем нужны и где используются базы данных?
-Какие бывают виды СУБД?
Введение в реляционные базы данных:
-Термины реляционных баз данных;
-Реляционная алгебра.
Немного о схеме базы данных:
-Пример простой схемы;
-Миграция схемы между версиями.
Домашнее задание №1: "Разработка семестрового проекта"
Выдаются требования и описание.
4 часа + 2 часа СР

Лекция №2: Проектирование баз данных. Модификация и выборка данных (начало).   + ДЗ №2

Введение в проектирование баз данных:
-Почему проект БД может быть плохим?
-Проектирование БД;
-Нормализация и нормальные формы;
-Первичный ключ;
-Типы данных.
Введение в SQL:
-CREATE TABLE;
-ALTER TABLE;
-SELECT;
-INSERT;
-UPDATE;
-DELETE.
Немного про JOIN-ы;
Обзор INFORMATION_SCHEMA;
Иерархические структуры в базах данных.
Домашнее задание №2: ДЗ №2 "Построение запросов к БД"
Выполняется на автоматизированной системе.
4 часа + 2 часа СР

Лекция №3: Выборка данных (продолжение).  

Выборка данных:
-Еще раз про JOIN-ы;
-Подзапросы;
-Агрегация;
-HAVING, GROUP, ORDER BY;
-UNION;
-Рекурсивные запросы.
VIEW.
4 часа + 2 часа СР

Контрольное занятие №1: SQL и работа с базой данных  

Проверяется умение студентов строить запросы к БД. Студенты показывают свои навыки преподавателю, выявляются проблемные моменты.

Максимальная оценка – 20 баллов.
4 часа + 4 часа СР

Лекция №4: Транзакции. Триггеры и хранимые процедуры.  

Транзакции:
-Зачем нужны транзакции?
-Обеспечение долговечности. Лог транзакций;
-Обеспечение изолированности и атомарности. MVCC;
-Немного про консистентность;
-Уровни изолированности транзакций.
Триггеры:
-Использование триггеров для поддержания целостности и бизнес-логики;
-Примеры триггеров;
-Недостатки триггеров.
Хранимые процедуры и функции:
-Примеры хранимых процедур.
-Распределенные транзакции (XA) и персистентные очереди.
4 часа + 2 часа СР

Лекция №5: Индексы. Профилирование и оптимизация запросов.  

Протоколирование запросов;
Индексы:
-Назначение индексов;
-B-Tree индексы;
-Hash индексы;
-Bitmap индексы;
-Частичные индексы;
-Кластерные и покрывающие индексы.
План запросов EXPLAIN;
Варианты соединения таблиц:
-Merge join;
-Nested loop join;
-Hash join.
Временные таблицы.
Партиционирование.
4 часа + 2 часа СР

Контрольное занятие №2: Функциональное тестирование проекта  

Студенты реализуют проект, над которым производится функциональное тестирование. Проверяется правильность реализации методов и атрибутов различных объектов.

Максимальная оценка – 10 баллов.
4 часа + 4 часа СР

Лекция №6: Оптимизация запросов. Оптимизация структуры данных.   + ДЗ №3

Оптимизация запросов конкретных типов;
Особенности использования подзапросов;
Нормализация и денормализация данных;
Выбор оптимальных типов данных;
Разница между актуальными и историческими данными;
Оптимизация на уровне приложения;
Кэширование;
Примеры эффективного массового изменения данных:
-Объединение однотипных UPDATE-ов;
-Разделение крупных транзакций на более мелкие;
-TRUNCATE;
-Массовое добавление данных при помощи COPY;
Полезные особенности ALTER TABLE;
Домашнее задание №3: ДЗ №3 "Сложноструктурированные запросы"
Выполняется на автоматизированной системе.
4 часа + 2 часа СР

Лекция №7: Репликация. Полнотекстовый поиск. JSON.  

Репликация:
-Физическая и логическая репликации;
-Синхронная и асинхронная репликация;
-Балансировка и отказоустойчивость;
-Проблемы репликации.
Полнотекстовый поиск;
Географические данные;
Хранение слабоструктурированных данных (JSON).
4 часа + 2 часа СР

Контрольное занятие №3: Сложно структурированные SQL-запросы  

Студенты практикуются в составление запросов с использование различных структур.

Учатся находить правильные и оптимальные решения. Анализировать поведение БД.

Максимальная оценка – 20 баллов.
4 часа + 4 часа СР

Лекция №8: Резервное копирование. Конфигурирование. Безопасность.  

Резервное копирование:
-Репликация ≠ резервное копирование;
-Логические резервные копии;
-Физические резервные копии.
Конфигурирование:
-Основы конфигурирования;
-Общие принципы настройки;
-Настройка памяти и ввода/вывода;
-Табличные пространства;
-Информация о текущем состоянии сервера;
Безопасность:
-Пользователи и права доступа;
-SQL-injection.
4 часа + 2 часа СР

Лекция №9: Сравнение с MySQL.  

Архитектура MySQL:
-Модульность и подключаемые хранилища;
-Обзор основных хранилищ (MyISAM, InnoDB, Memory);
-Особенности получения результата SELECT-а;
-Особенности репликации и лога запросов.
Особенности планировщика запросов;
Функционал, отсутствующий в PostgreSQL:
-Партиционирование;
-COLLATION;
-libslave.
Базовые параметры при конфигурировании MySQL.
4 часа + 2 часа СР

Контрольное занятие №4: Администрирование и нагрузочное тестирование  

Студенты выбирают настройки сервера базы данных MySQL, выполняется нагруженное тестирование проекта.
Максимальная оценка – 30 баллов.
4 часа + 4 часа СР

Лекция №10: Обзор NOSQL решений для работы с высоконагруженными системами.   + ДЗ №4

-NoSQL. Краткий обзор существующих решений;
-Теоретические основы распределенных систем. CAP теорема. Виды консистентности;
-Tarantool, описание и особенности применения на практике.
Домашнее задание №4: ДЗ №4 "Работа с MongoDB"
Выполняется на автоматизированной системе.
4 часа + 2 часа СР

Лекция №11: MongoDB. Построение запросов, оптимизация, индексирование, конфигурирование  

-Построение запросов на выборку, изменение и удаление данных;
-Индексирование;
-Шардирование, репликация;
-Особенности реализации;
-Основные области применения.
4 часа + 2 часа СР

Контрольное занятие №5: Работа с MongoDB  

Проверяется умение студентов строить запросы к MongoDB. Студенты показывают свои навыки преподавателю, выявляются проблемные моменты.
4 часа + 4 часа СР

Контрольное занятие №6: Пересдача  

Студенты имеют возможность досдать или пересдать работы по предыдущим контрольным занятиям.
4 часа