Лекции Технопарка. Базы данных (весна 2017)
Всем жаждущим знаний предлагаем ознакомиться с новыми лекциями Технопарка, посвящённым базам данных. Курс ведёт Артём Навроцкий, ведущий программист в Allods Team.
Список лекций:
- Введение
- Модификация и выборка данных
- Выборка данных (продолжение)
- Транзакции. Триггеры и хранимые процедуры
- Индексы и производительность
- Оптимизация запросов. Оптимизация структуры данных
- Репликация, полнотекстовый поиск, JSON
- Сохранность данных
Цель курса — это дать знания по:
- Концепции и принципам реляционной модели данных.
- Методам проектирования баз данных.
- Подходам к профилированию производительности.
- Основам архитектуры современных СУБД.
- Основам и границам применимости реляционной модели.
- Основным типам нереляционных баз данных, а также области их применимости при построении хранилищ данных.
Привить навыки:
- Проектированию концептуальных и логических схем для высоконагруженных баз данных.
- Построению запросов на выборку и модификацию данных к реляционным СУБД.
- Оптимизации запросов и структура реляционной БД в целях повышения производительности.
- Выполнению запросов к нереляционной документоориентированной СУБД.
- Разработке прикладных программ, осуществляющих взаимодействие с БД.
Лекция 1. Введение
Из первой лекции вы узнаете, зачем нужны СУБД, какова краткая история развития баз данных, что такое реляционные БД и NoSQL. Познакомитесь с реляционной моделью данных и основными операциями в рамках БД. Также в ходе лекции обсуждаются первичный и суррогатный ключи, рассказывается о типах данных в PostgreSQL. Вы познакомитесь с примерами схем баз данных, версионированием схем. Обсуждается задача генерации БД на основе исходного кода, методы инкрементных и идемпотентных изменений.
Лекция 2. Модификация и выборка данных
Первая часть лекции посвящена введению в проектирование баз данных. Вторая часть посвящена основам SQL: основные команды, создание таблиц, выборка данных. Затрагивается тема JOIN’ов, проводится обзор INFORMATION_SCHEMA. И в завершении обсуждается, как можно хранить иерархические структуры в базах данных.
Лекция 3. Выборка данных (продолжение)
Начало третьей лекции посвящено COLLATION и регистронезависимому поиску. Затем рассказывается о задаче выборки данных (SELECT): формирование подзапросов, оконные функции, UNION, снова поднимается тема JOIN’ов, обсуждаются рекурсивные запросы. И в завершение вы узнаете про операцию VIEW.
Лекция 4. Транзакции. Триггеры и хранимые процедуры
Лекция состоит из четырёх частей. Первая часть посвящена транзакциям: обсуждается задача обеспечения долговечности, формирование журнала транзакций, обеспечение изолированности и атомарности, а также уровни изолированности транзакций. Затем рассказывается о триггерах: как можно их использовать для поддержания целостности и бизнес-логики, каковы их недостатки. Далее обсуждаются хранимые процедуры и функции, а в завершение рассказывается о распределённых транзакциях и персистентных очередях.
Лекция 5. Индексы и производительность
Из пятой лекции вы узнаете, что такое индексы баз данных, как выполняется протоколирование запросов, для чего нужен и как составляется план запросов EXPLAIN. Также рассматриваются варианты соединения таблиц.
Лекция 6. Оптимизация запросов. Оптимизация структуры данных
Эта лекция тоже посвящена проблематике повышения производительности баз данных. Вы узнаете о нормализации и денормализации данных. Познакомитесь с оптимизацией запросов конкретных типов. Далее рассказывается о разнице между актуальными и историческими данными, о секционировании, оптимизации на уровне приложения. В завершение приводятся примеры эффективного массового изменения данных.
Лекция 7. Репликация, полнотекстовый поиск, JSON
Эта лекция состоит из четырёх частей. Первая посвящена репликации: рассказывается о физической, логической, синхронной и асинхронной репликациях, о балансировке и отказоустойчивости, а также о проблемах репликации. Затем обсуждается проблематика полнотекстового поиска. Далее затрагивается вопрос хранения в БД географических данных. И в завершение рассказывается о хранении слабоструктурированных данных (JSON).
Лекция 8. Сохранность данных
Последняя лекция посвящена различным аспектам обеспечения сохранности информации в базах данных. Сначала рассказывается о резервном копировании, о его отличии от репликации, о создании логических и физических резервных копий. Затем вы узнаете о том, как нужно конфигурировать базы данных: каковы общие принципы настройки, как настраивать память и ввод/вывод, что такое табличные пространства, как собирать информацию о текущем состоянии сервера. И завершающая часть лекции посвящена обеспечению безопасности: политикам прав доступа и защите от SQL-инъекций.
Плейлист всех лекций находится по ссылке. Напомним, что актуальные лекции и мастер-классы о программировании от наших IT-специалистов в проектах Технопарк, Техносфера и Технотрек по-прежнему публикуются на канале Технострим.
Другие курсы Технопарка:
Информацию обо всех наших образовательных проектах вы можете найти в недавней статье.