Описание
Предварительные требования:
Знания основ SQL, элементарные навыки написания приложений
Целевая аудитория

  • Разработчики
  • Администраторы баз данных

Программа
  • 1. Postgresql – интегрированная база данных

    • Логическая и физическая компоновка базы данных. Процессы управления.

    • Архитектура табличных пространств.

    • Оптимальное использование памяти сервером. Слушатель сервера и клиентские процессы сервера. Настройка процессов прослушивания.

  • 2. Клиентские места для организации рабочего места разработчика и администратора Postgresql.

    • Сравнение приложений - Python и Java для работы с Postgresql. Популярные приложения - выбор разработчика.

  • 3. Типы данных Postgresql (обзор)

    • Рациональное использование табличных пространств для размещения больших объектов.

    • Слои хранения данных в табличных пространствах.

    • Использование объектных и агрегатных типов для хранения данных.

    • Порядок доступа к объектам базы данных, их размер, страничное хранение.

  • 4. Расширения базы данных для организации наблюдения за распределением памяти и процессом подготовки SQL запросов. Страницы в shared памяти.

    • Расширения базы данных для организации наблюдения за распределением памяти и процессом подготовки SQL запросов. Страницы в shared памяти.

  • 5. SELECT. Использование подзапросов во фразе From. Подзапросы.

    • Коррелированные подзапросы.

    • Древовидные структуры.

    • Конструкции во фразе SELECT. (rollup, cube, case…).

    • Аналитические функции в запросах.

    • Вложенные таблицы в виде агрегатных типов данных.

  • 6. Язык манипулирования данными DML.

    • Выполнения сложных операторов DML с подзапросами.

    • Оператор Merge.

  • 7. Оптимизация SQL запросов: Настройка производительности приложения.

    • Разделяемый пул и рабочая область. Оптимизатор.

    • Команда Analyze. Организация и планирование сбора статистики по объектам.

    • Вакум.

    • Ранжирование методов доступа.

    • Анализ запросов с целью повышения скорости их выполнения.

    • Команда Explain и алгоритмы ее использования.

    • Правила оптимизации запросов и их оценка.

    • Практические примеры оптимизации.

    • Автоматический сбор статистики по таблицам и параметры конфигурации сервера.

    • Использование расширений для управления планом выполнения SQL. Подсказки оптимизатору, заморозка планов выполнения запросов.

  • 8. Язык DDL. Создание и изменение таблиц (DDL).

    • Команда Create Table. Определение параметров хранения таблиц на физическом уровне.

  • 9. Создание временных транзакционных и сессионных таблиц.

    • Создание таблиц с разбивкой на партиции.

    • Ссылочные партиционные таблицы. Примеры использования партиционных таблиц с различными типами разбивки.

    • Индексные таблицы.

    • Доступ к данным в индексных таблицах, проблемы обновления данных.

    • Особенности размещения индексных таблиц в физических блоках дисковой памяти.

  • 10. Декларативные ограничения целостности. Индексы и ограничения.

    • “Откладываемые” ограничения целостности и проблемы каскадного обновления первичных ключей.

    • Команда SET CONSTRAINT.

    • Изменение структуры таблицы, команда Alter table и ограничения целостности.

    • Создание неуникальных индексов для первичных и уникальных ключей.

    • Мгновенное включение ограничений.

  • 11. Транзакции. Оптимистические и пессимистические запросы.

    • Алгоритмы совместного доступа к базам данных.

    • Конкуренция, параллельность и согласованность. Транзакции и взаимовлияние. Потери изменений, черновое чтение, повторяемое и неповторяемое чтение.

    • Уровни изоляции. Алгоритмы блокирования. Блокировки DML – табличные и строчные блокировки, тупики.

    • Разрешения тупиков. Блокировки DDL-исключающие и разделяемые блокировки, многовариантность.

    • Многовариантность и согласованность чтения на уровне транзакций.

    • Использование расширений и таблиц статистики для оценки заполнения страниц сервера данными

  • 12. Другие объекты. Представления. Ограничение представлений и правила их обновляемости, Instead off триггер.

    • Индексы. Правила применения и рекомендации.

    • Использование функций в индексах.

    • Индексы и оптимизация. Необходимость использования индексов.

    • Связи с базами данных.

    • Использование ролей для разграничения доступа к данным – безопасность.

    • Практический пример создания связей со схемами нескольких удаленных баз данных.

    • Логические репликации, примеры создания. Методы обновления.

    • Материализованные представления данных. Принудительное обновление данных.

  • 13. PLpg/SQL.Обзор и конструкции языка. Выполнение запросов. Простые и подготовленные запросы, CTE - таблицы.

  • 14. Курсоры.

    • Явные и неявные курсоры.

    • Атрибуты и параметры курсоров.

    • Использование курсоров внутри управляющих блоков.

    • Оператор CURSOR и фраза INTO.

    • Обновляемые курсоры и транзакции.

  • 15. Процедуры и функции.

    • Схема базы данных - как определение пространства имен бизнес логики приложений.

    • Ограничения для пользовательских SQL процедур.

    • Зависимые процедуры и их сопровождение. Использование хранимых функций в SQL запросах.

  • 16. Исключительные ситуации.

    • Предопределенные и пользовательские исключительные ситуации.

    • Явное возбуждение исключений.

    • Методика обработки ошибок в PLpg/SQL.

  • 17. Триггеры таблиц – как разновидность хранимых процедур.

    • Атрибуты триггеров Postgresql.

    • Обработка исключительных ситуаций в триггерах.

  • 18. Python в базе данных Postgresql. Создание расширения. Практические примеры использования Python в Postgresql для генерации отчетов в стандартных форматах.

    • Python приложение - как клиентское приложение для Postgresql.

  • 19. Введение в архитектуру распределенных и мобильных приложений. Postgresql - как хранилище данных.

    • Реактивные механизмы доступа к данным с использованием

  • Итоговая аттестация