Перейти к содержимому

00 Занятие 00: Разработка серверной части приложений / Базовый курс

Исходная страница в нативном Markdown: Разработка серверной части приложений / Базовый курс
Примечание

Эта страница извлечена из официального PDF в нативный Markdown. Текст слайдов, код и комментарии сохранены в порядке чтения; исходные PDF и HTML остаются эталоном макета. HTML source: dev1_00_introduction.html Archive: DEV1-handouts-16.zip Страниц PDF: 10

Page 1: Разработка серверной части приложений / Базовый курс

Авторские права

© Postgres Professional, 2017–2024 Авторы: Егор Рогов, Павел Лузанов, Илья Баштанов, Игорь Гнатюк Фото: Олег Бартунов (монастырь Пху и пик Бхрикути, Непал)

Использование материалов курса

Некоммерческое использование материалов курса (презентации, демонстрации) разрешается без ограничений. Коммерческое использование возможно только с письменного разрешения компании Postgres Professional. Запрещается внесение изменений в материалы курса.

Обратная связь

Отзывы, замечания и предложения направляйте по адресу: edu@postgrespro.ru

Отказ от ответственности

Компания Postgres Professional не несет никакой ответственности за любые повреждения и убытки, включая потерю дохода, нанесенные прямым или непрямым, специальным или случайным использованием материалов курса. Компания Postgres Professional не предоставляет каких-либо гарантий на материалы курса. Материалы курса предоставляются на основе принципа «как есть» и компания Postgres Professional не обязана предоставлять сопровождение, поддержку, обновления, расширения и изменения.

Page 2: Разработчикам

Source slide page 2: Разработчикам{#source-figure-002 caption=“Source slide page 2: Разработчикам”}

  • DEV2, 4 дня

Комментарии преподавателя

Для разработчиков серверной части приложений мы предлагаем специальную линейку курсов.

Для прохождения этих курсов необходимы предварительные знания основ языка SQL. Специального курса по языку SQL в нашей линейке нет, но существует множество книг и других образовательных ресурсов, с помощью которых можно освоить SQL. Мы рекомендуем книгу Евгения Моргунова «PostgreSQL. Основы языка SQL»:

https://postgrespro.ru/education/books/sqlprimer

Базовым курсом для разработчиков является данный курс DEV1.

В курсе DEV2 рассматриваются особенности внутреннего устройства сервера, влияющие на разработку прикладного кода, и всесторонне изучается расширяемость: возможность дополнить серверные механизмы собственным кодом, что позволяет использовать PostgreSQL для решения самых разнообразных задач.

В курсе QPT детально разбираются механизмы планирования и выполнения запросов, рассматривается настройка параметров экземпляра, связанных с производительностью, и изучаются возможности для поиска проблемных запросов и их оптимизации.

Курс DBS рассказывает про настройку подключений клиентов к СУБД и про управление доступом внутри самой СУБД.

В курсе PGPRO рассматриваются дополнительные возможности, которые предоставляет СУБД Postgres Pro Enterprise.

https://postgrespro.ru/education/courses

Page 3: Администраторам

Source slide page 3: Администраторам{#source-figure-003 caption=“Source slide page 3: Администраторам”}

  • DBA2, 4 дня

Комментарии преподавателя

Для администраторов мы предлагаем следующие курсы.

В базовом курсе DBA1 даются общие сведения об архитектуре PostgreSQL, процессе установки, базовой настройке и управлении сервером. Рассматриваются основные задачи администрирования, вопросы управления доступом. Приводится обзор резервного копирования и репликации.

В курсе DBA2 обсуждается настройка различных конфигурационных параметров исходя из понимания внутренней организации сервера; говорится о мониторинге сервера с использованием обратной связи для итеративной настройки параметров. Также рассматриваются настройки, связанные с локализацией, управление расширениями и знакомство с процедурой обновления сервера.

Курс DBA3 посвящен рассмотрению резервного копирования, а также настройкам физической и логической репликации и сценариям ее использования. Также дается общее представление о способах и сложностях построения высокодоступных, масштабируемых кластеров.

Курсы DBS, QPT и PGPRO являются общими для разработчиков и администраторов.

Курсы по администрированию могут быть интересны и разработчикам, желающим детальнее изучить внутреннее устройство PostgreSQL, а также в случае, когда на проекте нет выделенной роли администратора.

Page 4: О курсе DEV1

Продолжительность: 4 дня

  • Предварительные знания
    • основы SQL
    • опыт работы с любым процедурным языком программирования
    • минимальные сведения о работе в Unix
  • Какие навыки будут получены
    • общие сведения об архитектуре PostgreSQL
    • использование основных объектов БД: таблиц, индексов, представлений
    • программирование на стороне сервера на языках SQL и PL/pgSQL
    • использование основных типов данных, включая записи и массивы
    • организация взаимодействия с клиентской частью приложения

Комментарии преподавателя

Базовый курс знакомит разработчиков приложений, работающих над серверной частью, с основами PostgreSQL и написанием хранимых процедур и функций на языках SQL и PL/pgSQL.

Page 5: Используемые материалы

Подготовленная виртуальная машина

  • ОС Xubuntu 24.04
  • PostgreSQL 16 с документацией на русском языке
  • учебное веб-приложение «Книжный магазин»
  • DBeaver
  • Учебные материалы
    • руководство слушателя
    • презентации, демонстрации, практические задания и их решение
    • (в форматах html и pdf)
    • справочные материалы — функции и типы данных PostgreSQL,
    • схема основных таблиц системного каталога с командами psql,
    • некоторые команды Unix

Комментарии преподавателя

Если вы проходите курс самостоятельно, обязательно начните со знакомства с Руководством слушателя. В числе прочего в нем написано, где скачать и как использовать виртуальную машину курса и прочие материалы. Все материалы курса доступны по адресу:

https://postgrespro.ru/education/courses/DEV1

Выполнение практических заданий очень важно для получения навыков работы с PostgreSQL. Обязательно старайтесь сначала самостоятельно выполнить задания, а затем просмотрите предлагаемые нами решения, даже если задание не вызвало вопросов. В решениях могут содержаться дополнительные сведения, которые не упоминаются в презентациях и демонстрациях.

Учебные материалы (презентации, демонстрации, практические задания и их решения) доступны в двух форматах. Формат html удобен для онлайн-работы, он позволяет копировать фрагменты текста и кода. Документ в формате pdf разбит на страницы и удобен для печати.

Дополнительные справочные материалы помогут быстро найти нужную информацию.

В виртуальной машине установлен DBeaver. В курсе мы используем только psql, но при желании можно воспользоваться и графической средой.

Page 6: Организационные вопросы

День: ~8 академических часов + обед (1час)

  • Каждая тема, как правило, состоит из
    • презентации и демонстраций: ~25–60 мин
    • практических заданий: ~20–30 мин, включая перерыв

Page 7: День 1

Базовый инструментарий

    1. Установка и управление, psql
  • Архитектура
      1. Общее устройство PostgreSQL
      1. Изоляция и многоверсионность
      1. Буферный кеш и журнал
  • Организация данных
      1. Логическая структура
      1. Физическая структура

Комментарии преподавателя

Первый день занятий посвящен в основном теоретической подготовке. Здесь рассматриваются основы архитектуры PostgreSQL, без знания которых невозможно полноценное использование СУБД. Полученные знания будут применяться на практике в последующих темах курса.

Page 8: День 2

Source slide page 8: День 2{#source-figure-008 caption=“Source slide page 8: День 2”}

Учебное приложение

    1. Книжный магазин
  • SQL
      1. Функции
      1. Процедуры
      1. Составные типы
  • PL/pgSQL
      1. Обзор и конструкции языка

Комментарии преподавателя

Начиная с модуля «Учебное приложение» второго дня занятий каждая тема содержит два набора практических заданий: основных, связанных с приложением «Книжный магазин» (они отмечены значком книги) и дополнительных. За время, которое отводится на задания (около 30 минут), выполнить всю практику невозможно. Используйте дополнительные задания для самостоятельной работы.

Page 9: День 3

PL/pgSQL (продолжение)

    1. Выполнение запросов
    1. Курсоры
    1. Динамические команды
    1. Массивы
    1. Обработка ошибок

Page 10: День 4

PL/pgSQL (продолжение)

    1. Триггеры
    1. Отладка
  • Управление доступом
      1. Обзор
  • Резервное копирование
      1. Логическое резервирование