Описание
Предварительные требования:
Знания основ 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 - как хранилище данных.

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

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