Введение в курс
Узнаете, как устроен курс, познакомитесь со спикером и проверяющим экспертом.
Базы данных и SQL
Узнаете, что такое язык SQL, какие есть SQL и NoSQL базы данных и чем они отличаются. Разберётесь в простых типах данных, научитесь делать SELECT-запросы с фильтром WHERE.
Погружаемся в SELECT
Научитесь использовать простые и агрегирующие функции, разберётесь в сложных типах данных, научитесь сортировать и ограничивать результат запроса, объединять результаты нескольких запросов, использовать модификатор DISTINCT.
Подзапросы и представления (VIEW)
Научитесь использовать подзапросы и понимать их производительность. Разберётесь в видах представлений и научитесь их создавать.
Группировка и ключи
Научитесь группировать результаты запросов, использовать агрегацию и фильтрацию в результатах группировки. Разберётесь в порядке выполнения этапов запроса, особенностях работы группировки с модификатором DISTINCT и строгим режимом SQL.
Отношения (реляции/relations)
Поймёте виды отношений между сущностями: один к одному, один ко многим, многие ко многим. Научитесь использовать первичные и внешние ключи.
Соединения (JOIN)
Разберётесь в различных видах соединений. Научитесь применять соединения для отношений один ко многим и многие ко многим. Поймёте, что такое нормализация и денормализация и их влияние на производительность.
Оконные функции (Window Functions)
Узнаете, что такое оконные функции и как их применять. Поймёте особенности работы оконных функций с группировкой и выражениями ORDER BY и PARTITION BY.
Изменение данных (Data Modification/DML)
Научитесь вставлять записи в таблицы, обновлять и удалять их. Разберётесь в методах разрешения дубликатов первичного ключа.
Транзакции и ACID
Узнаете, что такое транзакции и зачем они нужны. Разберётесь в атомарности, откате и изоляции транзакций, в блокировке записей. Поймёте принципы ACID.
Объявление структуры данных (Data Definition / DDL), триггеры и хранимые процедуры
Научитесь создавать и удалять схемы баз данных, объявлять и изменять структуру таблиц. Разберётесь в использовании триггеров и хранимых процедур и их применимости.
Индексы
Поймёте, что такое индексы и ключи, зачем они нужны, как влияют на производительность. Узнаете, какие есть виды ключей, когда их применять, как работают индексы и каковы их ограничения.
Программные средства работы с БД
Научитесь оптимально работать с БД из кода. Поймёте, как работает соединение с БД, как использовать фреймворки Query Builder, Active Record, Object Relation Mapping, узнаете принципы работы JDBC и программного контроля транзакций.
Производительность и системное устройство БД
Научитесь использовать лучшие практики по проектированию схем БД и использованию индексов. Поймёте, как работает оптимизация запросов и какие есть типичные ошибки, замедляющие запросы. Разберётесь во внутреннем устройстве БД.
Особенности движков реляционных СУБД
Поймёте, чем отличаются различные движки реляционных СУБД.
Введение в NoSQL и сравнение с SQL
Узнаете, в каких проектах применяют SQL и NoSQL, познакомитесь с особенностями Redis и MongoDB. Получите представление о других решениях: in-memory, кластерных, колоночных, облачных, аналитических, bigdata.
Введение в MongoDB
Познакомитесь со схемой и типами данных в MongoDB, научитесь создавать простые запросы, фильтровать результат, работать с API и использовать индексы и транзакции.
Введение в Redis
Узнаете, что такое коллекции, как использовать списки, хэшмэпы и упорядоченные хэшмэпы, наборы. Познакомитесь с Redis и Lua.
Как проектировать БД. Дерево решений для выбора СУБД
Получите алгоритм, который поможет вам правильно выбрать базу данных для любого проекта.
Итоговый проект