Данный курс является продолжением курса "PostgreSQL для разработчиков" и предназначен для тех, кто уже имеет базовые знания PostgreSQL и хочет углубить свои навыки в разработке с использованием этой СУБД.
В ходе курса вы изучите более сложные темы, такие как проектирование баз данных, оптимизация запросов, работа с транзакциями, использование индексов, создание хранимых процедур и многое другое.
Курс состоит из серии лекций, практических упражнений и лабораторных работ, которые помогут углубить знания и навыки в разработке с использованием PostgreSQL.
Цель курса
Изучение ахитектуры базы данных, её структуры. Работа с запросы, PL/pgSQL. Построение оптимизации
• Курс предназначен для разработчиков, уже имеющих опыт в использовании PostgreSQL или других реляционных баз данных
• Курс может быть полезен разработчикам, занимающимся проектированием и разработкой приложений, которые используют PostgreSQL в качестве хранилища данных.
• Знание SQL и базовых концепций работы с базами данных является предпочтительным для участия в курсе
• Также будет полезно иметь опыт работы с PostgreSQL.
владеть более глубокими знаниями PostgreSQL и смогут разрабатывать сложные приложения с использованием этой СУБД.
1. Архитектура и структура баз данных Postgres
• Введение в Postgres. Особенности СУБД Postgres по сравнению с Oracle, Microsoft SQL Server, MySQL
• Работа с таблицами и атрибутами. Выбор типов данных для столбцов таблиц. Особенности системы типов данных в Postgres. Нормализация таблиц. Создание таблиц.
• Ограничения целостности данных в Postgres.
• Первичные и внешние ключи, ограничения уникальности, условия на значения (check constraints). Применение доменов (domains) и правил (rules) в Postgres.
• Пользовательские типы данных как дополнительная возможность обеспечения целостности данных.
• Работа с представлениями (views) в Postgres. Для чего нужны назначения. Создание обычных, материализованных и рекурсивных представлений.
2. Запросы
• Основы синтаксиса языка запросов Postgres SQL. Базовый синтаксис SELECT. Список столбцов и DISTINCT.
• Основы синтаксиса языка запросов Postgres SQL. Базовый синтаксис SELECT. Список столбцов и DISTINCT.
• Сортировка в запросах Postgres SQL. Выражение ORDER BY.
• Фильтрация в запросах Postgres SQL. Выражение WHERE. Логические операторы AND, OR, NOT, IN, BETWEEN. Поиск с использованием подстановочных символов (LIKE) и регулярных выражений (SIMILAR TO).
• Работа с пустыми значениями. Оператор IS NULL и функция COALESCE.
• Ограничение количества выводимых записей. LIMIT и FETCH.
• Встроенные скалярные функции в Postgres SQL: строковые, математические, даты/времени.
• Объединение нескольких таблиц в запросах. INNER JOIN, LEFT OUTER JOIN, RIGTH OUTER JOIN, FULL JOIN, SELF JOIN, CROSS JOIN. Особенности работы с объединениями в Postgres.
• Группировка в запросах Postgres SQL. Выражения GROUP BY, HAVING, CUBE, ROLLUP, GROUPING SETS. Агрегатные функции: SUM(), MIN(), MAX(), AVG(), COUNT и другие.
• Работа с подзапросами. Обычные и коррелирующие подзапросы. Особенности подзапросов в Postgres с точки зрения производительности.
• Работа с наборами значений. UNION, EXCEPT, INTERSECT, SOME/ANY/ALL, EXISTS.
• Временные таблицы и общие табличные выражения (CTE, Common Table Expressions). Декомпозиция запросов. Иерархические запросы в Postgres.
• Функции ранжирования в Postgres: ROW_NUMBER(), RANK(), DENSE_RANK(), NTILE() и другие.
• Команды, изменяющие данные: INSERT, UPDATE, DELETE, TRUNCATE в Postgres SQL. SELECT INTO и INSERT..SELECT. Работа с транзакциями в Postgres
• Оптимизация запросов в Postgres. Выбор запросов для оптимизации.
• Команда EXPLAIN.
• Применение параметров конфигурации на уровне сеанса.
• Развертывание модуля pg_hint_plans и применение хинтов в запросах.
• Лучшие практики при оптимизации запросов в Postgres.