Проходил 24 сентября в 20:00

День открытых дверей
Реляционные СУБД

День открытых дверей онлайн

Хотите узнать, почему OTUS – больше, чем просто образовательный портал?
Как OTUS дает возможность стать частью сообщества профессионалов и сделать новый шаг по карьерной лестнице?
Почему учиться – не обязанность, а удовольствие и почему тесное сплетение теории и практики в обучении дает эффект синергии?
Приходите к нам на День Открытых Дверей. Формат проведения – онлайн – подключиться можно из любой точки мира!
Преподаватель
Алексей Цыкунов

Запись

О курсе

Реляционные СУБД
30 000 ₽
Начало в декабре
Цель курса — научить слушателя эффективно работать с любой реляционной базой данных с помощью языка структурированных запросов SQL. На курсе будут подробно раскрыты следующие темы: 1. Как устроены и работают реляционные СУБД? 2. Как решать вопросы оптимального хранения и выборки данных? 3. Как пользоваться SQL-командами? 4. Как писать корректные оптимальные запросы?
Высокая практическая ориентированность
...
Программа курса
Модуль 1
Сущности и связи
Модуль 2
SQL
Модуль 3
Оптимизация БД
Модуль 4
Проект
Сущности и связи
Реляционная модель данных. Реляционная алгебра
Сущности, связи.
Домены, кортежи, атрибуты, отношения.
Нормальные формы.
Трехзначная логика.
Домашние задания: 1
ДЗ
Строим модель данных. За основу берем практическую структуру данных
Варианты:
1) заказ в ресторане: клиент, столик, состав заказа, цена каждого блюда в заказе, начало заказа, конец заказа, официант, счет, чем оплачивал, дисконт, чаевые - итд
2) тариф телефонии: оператор, направление (код, страна, город, мобильный оператор), стоимость за минуту, параметры округления, время суток. даты действия тарифа. комментарий
3) блог: пост. датавремя, заголовок, картинки, автор, лайки, комменты, репосты, просмотревшие. время последнего просмотра/редактирования
или любой свой вариант

делаем декомпозицию и нормализацию
в качестве сделанной ДЗ принимается pdf с начальной и конечной моделью
Типы данных
Разбираем типы данных, используемые в СУБД: числа, тексты, даты, массивы, блобы, геоданные.
Домашние задания: 1
ДЗ
Корректируем типы данных в модели при необходимости. Взять свою структуру данных из ДЗ-1
и прописать комментарии на каждое поле с пояснением почему выбран данный тип поля и на сколько он удовлетворяет поставленной задаче

варианты как сделать
для Mysql Workbench есть плагины для формирования документации
https://github.com/d1soft/mysql-workbench-html-doc-generator
https://github.com/letrunghieu/mysql-workbench-plugin-doc-generating

то есть вы создаете таблицы
прописывается комментарии на поля
и затем этим плагином формируете документацию

для других инструментов тоже могут быть подобные инструменты
http://dbdoc.sourceforge.net
https://github.com/extronics/dbdoc
https://www.liquibase.org/documentation/dbdoc.html
Компоненты современной СУБД
Знакомимся с компонентами СУБД:
- пользователи;
- таблицы;
- индексы;
- триггеры;
- ограничения (constrains);
- представления;
- хранимые процедуры.
Домашние задания: 1
ДЗ
Добавляем в модель данных дополнительные индексы и ограничения. 1. Проводим анализ возможных запросов\отчетов\поиска данных.
2. Предполагаем возможную кардинальность поля.
3. Создаем дополнительные индексы - простые или композитные.
4. На каждый индекс пишем краткое описание зачем он нужен (почему по этому полю\полям).

5. Думаем какие логические ограничения в БД нужно добавить - например какие поля должны быть уникальны, в какие нужно добавить условия, чтобы не нарушить бизнес логику. Пример - нельзя провести операцию по переводу средств на отрицательную сумму.
6. Создаем ограничения по выбранным полям.
Транзакции. ACID
Целостность данных.
Транзакции, блокировки.
Многопользовательский доступ. Конкуренция.
Изоляция транзакций.
Домашние задания: 1
ДЗ
Описываем логику транзакций для своей модели данных.
Проектирование БД
Рассматриваем различные кейсы проектирования БД. Обсуждаем нюансы.
Домашние задания: 1
ДЗ
Вносим коррективы в модель данных при необходимости.
Проектирование БД: семинар
Анализируем созданные проекты.
Дискутируем, вносим корректировки.
26 октября, 20:00 — 21:30
Проектирование БД
Разбираем какие вопросы и проблемы обслуживания и сопровождения нужно учесть на этапе проектирования
Продолжаем презентацию проектов
30 октября, 20:00 — 21:30
SQL
Изучаем SQL. Применяем на практике.
DDL: создание и редактирование объектов БД
Создание сущностей.
Выбор первичного ключа.
Внешние ключи.
Команды DDL — CREATE, ALTER, DROP.
2 ноября, 20:00 — 21:30
Домашние задания: 1
ДЗ
Создаем базу из проектной модели.
DML: изменение данных
Учимся изменять данные и сохранять изменения.
INSERT, UPDATE, DELETE.
COMMIT, ROLLBACK.
Каскадные изменения.
6 ноября, 20:00 — 21:30
Лектор: Кристина Кучерова
Домашние задания: 1
ДЗ
Создаем скрипты очистки и первичного заполнения базы.
DML: выборка данных
Выбираем данные из одной и нескольких таблиц. Изучаем разнообразия JOIN и условия WHERE.
9 ноября, 20:00 — 21:30
Лектор: Кристина Кучерова
Домашние задания: 1
ДЗ
Наборы SQL-скриптов для выбора различных данных.
DML: агрегация и сортировка
Учимся группировать и сортировать данные и использовать групповые функции.
13 ноября, 20:00 — 21:30
Домашние задания: 1
ДЗ
Создаем отчетную выборку.
DML: вложенные запросы и представления
Учимся использовать вложенные запросы и сохранять их во view. Используем конструкцию WITH.
Операции множеств UNION, EXCEPT, INTERSECT.
Изучаем дополнительные возможности выборки.
16 ноября, 20:00 — 21:30
Домашние задания: 1
ДЗ
Создаем дополнительные представления в БД.
DML: аналитические функции
Изучаем возможности аналитических функций.
FIRST, LAST, LEAD, LAG, RANK и другие.
20 ноября, 20:00 — 21:30
Домашние задания: 1
ДЗ
Отчетная PIVOT-выборка.
Семинар: практический SQL
Разбираем практические примеры.
23 ноября, 20:00 — 21:30
Оптимизация БД
Внутренняя архитектура СУБД
Обслуживающие процессы.
Управление памятью. Буферы данных. Буферы журналов.
Журналирование.
Сегменты отката.
27 ноября, 20:00 — 21:30
Индексы
Изучаем основные типы индексов: Btree, Hash, Reverse, By Function.
Изучаем команды создания и модификации индексов и перестройки индексов.
Анализируем план запроса.
30 ноября, 20:00 — 21:30
Домашние задания: 1
ДЗ
Добавляем индексы в свою базу.
Хранимые процедуры и триггеры
Встраиваем бизнес-логику в базу.
Пишем триггеры, процедуры и функции.
4 декабря, 20:00 — 21:30
Домашние задания: 1
ДЗ
Добавляем в базу хранимые процедуры и триггеры.
Опции хранения
Что делать, когда растет база.
Что делать, когда не хватает места.
Как распределить данные по файлам, тейблспейсам, партициям.
Шардинг и кластеризация
7 декабря, 20:00 — 21:30
Домашние задания: 1
ДЗ
Спрогнозировать рост данных и спроектировать модель хранения и архивации.
Оптимизация на практике
Оптимизируем сложные запросы.
11 декабря, 20:00 — 21:30
Домашние задания: 1
ДЗ
Оптимизация сложного запроса.
Проблемы миграции
Понять подходы и методы для решения вопросов:
- обновление структуры в продакшене;
- загрузка и выгрузка данных;
- миграция между различными СУБД.
14 декабря, 20:00 — 21:30
Управление СУБД
Обсуждаем дополнительные аспекты работы с СУБД:
- безопасность,
- резервирование,
- репликацию,
- кластеризацию.
Обсуждаем вопросы по курсу.
18 декабря, 20:00 — 21:30
NoSQL базы данных. Использование Redis и Memcache - в качестве кешей
Разбираем преимущества и недостатки NoSQL баз данных по сравнению с реляционными.
Обсуждаем стратегии кеширования RDMBS с использованием Redis и Memcache.
18 января, 20:00 — 21:30
Проект
Каждый создает базу данных под свои нужды.
Формат сдачи:
- ER-диаграмма,
- описание таблиц и полей,
- SQL с развертыванием БД,
- скрипт первичной заливки данных,
- несколько SQL-запросов для тестирования базы.
Вопросы по курсовому проекту.
22 января, 20:00 — 21:30

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

Алексей Цыкунов
Системный архитектор, Oracle DBA, разработчик perl/python, опыт в отрасли - 20 лет
В настоящее время работает на аутсорсе. Работал в интернет-провайдерах и телекоме. Имел опыт внедрения и разработки продуктов в госструктурах, таких как минздрав и соцфонд. Был главным разработчиком стартап проекта Ipstudio AMBS (биллинг для VoIP). Участвовал в проектировании и разработке OLTP систем. Проектировал и развертывал серверные системы в датацентрах.

Закончил Кыргызско-Российский Государственный Университет, 2001, Инженер автоматизированных систем.
Собственный технический блог на - dbadmins.ru
Преподаватель курсов:
Реляционные СУБД

F.A.Q.: Наиболее часто задаваемые вопросы:

Могу ли я принять участие в розыгрыше, если я уже оплатил обучение?
В розыгрыше принимают участие все пользователи, успешно прошедшие вступительное тестирование и подтвердившие номер телефона. Если вы уже оплатили обучение и стали счастливым обладателем скидки – мы вернем вам разницу. Также вы можете подарить скидку другу.
Нужно ли оплачивать обучение до Дня открытых дверей, если я хочу гарантированно попасть в группу?
Да, мы рекомендуем заранее оплатить обучение, чтобы гарантированно попасть в группу. В период проведения Дня открытых дверей резко возрастает количество желающих обучаться, поэтому может случиться так, что к окончанию Дня открытых дверей мест в группе не останется
Кто будет проводить День открытых дверей?
Проводить День открытых дверей будет преподаватель курса.
Как принять участие в Дне открытых дверей?
Для того, чтобы принять участие в Дне открытых дверей, оставьте свой e-mail в поле регистрации на мероприятие. Перед началом Дня открытых дверей мы пришлем вам ссылку, пройдя по которой, вы сможете присоединиться к вебинару.
Если вы хотите принять участие в розыгрыше бесплатных мест – до начала мероприятия необходимо зарегистрироваться на сайте и успешно пройти вступительное тестирование, после чего подтвердить свой номер мобильного телефона и сделать это не позже, чем за час до начала занятия.
Какие вопросы будем обсуждать на Дне открытых дверей?
На дне открытых дверей мы поговорим о проекте OTUS (о программе курса, почему мы не принимаем в группы новичков, почему учиться у нас интересно, но сложно), карьерных перспективах выпускников (почему вероятность карьерного роста у лучших студентов стремится к 100%), учебном процессе (оплатах, оценке знаний, сертификатах и прочих аспектах). Также ведущий мероприятия с радостью ответит на все ваши вопросы.