На протяжении последнего года моя коллега Анастасия Лубенникова и я вели курс под названием «Технологии и разработка СУБД». Данный курс посвящен разработке реляционных СУБД с акцентом на конкретную реализацию в лице PostgreSQL. Мы сотрудничали сразу с несколькими ВУЗами. На ВШЭ это был обязательный предмет, рассчитанный на студентов 4-го курса (на фото студенты сдают экзамен). В ВМК МГУ это был предмет по выбору, на который ходили студенты разных курсов.
Так как учебный процесс в названных ВУЗах немного различается (система оценок, модули против семестров и т.д.) нам приходилось адаптировать курс. Ниже представлена его полная программа, включающая все, что было прочитано в обоих ВУЗах, со всеми последними исправлениями:
- Лекция 1. Введение;
- Лекция 2. Обзор архитектуры;
- Лекция 3. Хранение данных на диске;
- Лекция 4. Методы доступа;
- Лекция 5. Практический C/C++;
- Лекция 6. Журнал транзакций;
- Лекция 7. Репликация в PostgreSQL;
- Лекция 8. Изоляция транзакций;
- Лекция 9. MVCC & Snapshot Isolation;
- Лекция 10. Полнотекстовый поиск в PostgreSQL;
- Лекция 11. Поиск по геоданным с PostGIS;
- Лекция 12. Выполнение запросов;
- Лекция 13. Введение в распределенные системы;
Каталог на Google Drive с лекциями находится здесь. ZIP-архив со всеми лекциями в формате PDF можно скачать отсюда (4.4 Мб). Также отдельные PDF-файлы доступны на GitHub. Что касается вопроса лицензии, то вы можете свободно распространять и модифицировать слайды, а также читать по ним курсы, главное не присваивайте себе авторство. Вообще, если кто-то решит читать курс по нашим слайдам, мы будем только рады, и с удовольствием поможем с подготовкой.
Предвидя появление закономерного вопроса в комментариях, отмечу, что на данный момент мы решили немного отдохнуть от ведения курсов. Дело это оказалось весьма трудоемким, даже учитывая, что теперь-то у нас есть все материалы курса. Однако если вы интересуетесь разработкой баз данных, можете присоединиться к Telegram-каналу @dbmsdev, который был создан для связи с нашими студентами. Там мы с радостью ответим на вопросы как по данному курсу, так и по разработке СУБД вообще (насколько это позволяет наш скромный опыт).
В заключение у меня для вас небольшой fun fact. Если вам кажется, что вы что-то не до конца понимаете в какой-то предметной области, лучший способ разобраться — это начать вести соответствующий курс :)