Учебный курс «Postgres для разработчиков»
Краткое содержание: проектирование баз данных Postgres, типы данных Postgres, создание таблиц и представлений, ключи, ограничения целостности и представления, синтаксис PL/pgSQL, создание пользовательских функций, процедур и триггерных функций, функции Postgres на Python и Java, оптимизация баз данных Postgres для разработчиков
Общие данные:
курс предназначен для специалистов, которым нужно уметь проектировать базы данных Postgres и реализовывать программную логику приложений с учетом особенностей Postgres. Postgres по своей архитектуре достаточно сильно отличается от других распространенных систем управления базами данных, и эти отличия необходимо учитывать при проектировании баз данных и реализации бизнес-логики приложения. Не изобретайте заново велосипеды, которые давно уже изобретены — записывайтесь на обучение!
Продолжительность: 5 дней (40 учебных часов).
В курсе 17 модулей (на практические работы, выполняемые под руководством преподавателя, отводится 50 % времени учебного курса).
Для кого предназначен: разработчики, которые проектируют и создают объекты баз данных Postgres и реализуют бизнес-логику приложений на PL/pgSQL, Python, Java, C#
План курса:
- Введение в Postgres. Особенности СУБД Postgres по сравнению с Oracle, Microsoft SQL Server, MySQL
- Проектирование системы баз данных. Выбор типа базы данных: OLTP, хранилище данных (Data Warehouse, DW), шлюзовые базы данных (staging databases), OLAP. Особенности проектирования каждого типа
- Проектирование сущностей (таблиц) и атрибутов. Выбор типов данных для столбцов таблиц. Особенности системы типов данных в Postgres. Нормализация таблиц. Создание таблиц
- Ограничения целостности данных в Postgres. Первичные и внешние ключи, ограничения уникальности, условия на значения (check constraints). Применение доменов (domains) и правил (rules) в Postgres. Пользовательские типы данных как дополнительная возможность обеспечения целостности данных
- Работа с представлениями (views) в Postgres. Для чего нужны назначения. Создание обычных, материализованных и рекурсивных представлений
- Введение в язык PL/pgSQL. Основы синтаксиса, структура блоков BEGIN..END, символы строки в виде долларов $$. Работа с анонимными блоками PL/pgSQL
- Переменные и константы в PL/pgSQL. Объявление переменных, присвоение значений, SELECT INTO для присвоения значений переменных из запросов. Переменные типа RECORD. Объявления %ROWTYPE
- Синтаксические конструкции PL/pgSQL. Операторы условного перехода: IF и CASE. Циклы WHILE и FOR.
Обработка исключений в PL/pgSQL. Блоки EXCEPTION, команды RAISE и ASSERT - Работа с курсорами в Postgres. Применение курсоров для прохода по набору записей
- Создание пользовательских функций PL/pgSQL. Работа с параметрами IN и OUT, возврат значений из функции. Типы функций IMMUTABLE, STABLE и VOLATILE. Перегрузка функций и особенности функций, возвращающих таблицы.
Создание пользовательских хранимых процедур в Postgres. Отличия хранимых процедур от функций - Триггеры и триггерные функции в Postgres. Виды триггеров, лучшие практики применения триггеров. Триггеры аудита изменений в таблицах
- Создание функций Postgres на Python и Java. Особенности работы с функциями, созданными не на PL/pgSQL
- Введение в программирование Postgres на C#, Java и Python. Применение ORM
- Возможности оптимизации производительности баз данных Postgres для разработчиков.