PostgreSQL — от теории к практике
Нас часто спрашивают: “С чего начать изучать PostgreSQL? Что позволит стать грамотным и востребованным специалистом?”
В век всеобщей цифровизации практически у каждого есть неограниченный доступ к информации. Обилие ее, как, впрочем, и дефицит, рождает свои проблемы. Одна из них — невозможность выбрать из огромного количества источников действительно полезный. С такими трудностями, в частности, сталкиваются многие начинающие администраторы баз данных.
С какой книги начать изучение PostgreSQL? На какой блог подписаться? Куда обратиться за помощью, если столкнулся с нестандартной проблемой?
Ниже мы делимся списком источников с комментариями и рекомендациями наших DBA. Надеемся, эта информация будет полезна коллегам, начинающим знакомство с PostgreSQL.
Официальная документация PostgreSQL.Казалось бы, элементарно — начинай с основ, но по какой-то причине этот многостраничный труд некоторые надеются обойти стороной.
Тем не менее наши DBA, в первую очередь, советуют начинать знакомство с СУБД с изучения официальной документации PostgreSQL. Собранные здесь инструкции написаны DBA, разработчиками PostgreSQL, другими членами сообщества, которые сами регулярно пользуются документацией, а значит, язык, на котором она написана, будет понятен как новичкам, так и продвинутым администраторам.
Книги, статьи.Спросили у наших DBA, какие книги, учебные пособия они готовы рекомендовать. Получился неплохой список, судите сами.
Для начинающих DBA:- PostgreSQL. Основы языка SQL, Е.П.Моргунов, под ред. Е.В.Рогова, П.В.Лузанова
Прекрасное современное учебное пособие для изучения конкретно PostgreSQL;
- Настройка приложений баз данных, Б.А.Новиков, Г.Р.Домбровская
Отличный учебник, в котором основы изложены четко и понятно;
- Mastering PostgreSQL 12, Hans-Jürgen Schönig
Хорошая книга про администрированию БД. Помимо перечисления новых фич PostgreSQL 12, книга рассматривает логическую репликацию, кластеризацию, мониторинг, оптимизацию производительности, конфигурацию системы и оптимизацию запросов и представляет собой комплексный справочник по работе с СУБД в целом. Кроме того, он дает представление о процессе перехода с Oracle на PostgreSQL;
- Troubleshooting PostgreSQL, Hans-Jürgen Schönig
Несмотря на то, что книга не самая свежая — 2015 года издания — это отличное компактное практическое руководство по пониманию методов решения проблем, с которыми вы можете столкнуться при работе с PostgreSQL.
Для тех, у кого уже есть опыт работы с БД:- Книги Криса Дейта
Фундаментальная классика в изучении БД. Его книги будут интересны тем, у кого уже есть опыт работы с базами данных и не хватает более широкой картины и системных знаний. В них есть достаточно глубокое погружение в computer science, разбор реляционной теории и т.
- Книги Сергея Кузнецова
Классика в изучении БД на русском, которая точно пригодится на старте работы с любыми БД.
Книги, которые помогут углубить ваши знания о работе СУБД:- Transactional Information Systems: Theory, Algorithms, and the Practice of Concurrency Control and Recovery (The Morgan Kaufmann Series in Data Management Systems) G.Weikum, G.Vossen
Здесь приведены как фундаментальные знания по теории транзакций, так и практические примеры, которыми можно воспользоваться в работе с СУБД;
- Principles of Distributed Database Systems, M.T.Özsu, P.Valduriez
Отличное объяснение про распределенные базы данных.
Развивающимся разработчикам, копающим глубже, пригодятся эти пособия:- SQL Performance Explained, Markus Winand
Книга фокусируется на прикладных методах обеспечения высокой доступности и производительности БД. Полезна как для разработчиков, так и для начинающих ДБА;
- The Art of PostgreSQL, Dimitri Fontaine
Достаточно обширный труд, который поможет в разработке сложных решений для БД. Книга содержит интервью с лидирующими в комьюнити разработчиками и предлагает решения для разработчиков, релевантные вне зависимости от языка — будь то PHP, Java или Python.
Для DBA, желающих изучить тему глубже, рекомендуем:- The Internals of PostgreSQL for database administrators and system developers,
Книга детально разбирает внутренние механизмы работы БД, такие как кластеризация и таблицы, работа с запросами, FDW, VACUUM, WAL, логическая репликация и прочее. Не все пригодится на практике, но к ней можно прибегнуть для поиска специфических решений. Отметим отдельно, если вам нужно понять какие-то конкретные внутренние механизмы работы PostgreSQL, не бойтесь заглянуть в исходники, ведь там вы найдете много полезной информации в readme файлах и в комментариях, и при этом не обязательно читать и разбираться в коде;
- Systems Performance-Enterprise and the Cloud, Gregg Brendan
Хорошая книга для системных инженеров и DBA по траблшутингу;
- Компьютерные сети, В.Г. Олифер, Н.А. Олифер
Книга для тех, кто хочет получить базовые знания о принципах построения компьютерных сетей, способах создания и управления ими. Ее стоит использовать скорее как справочник, чем читать от корки до корки. Актуальное издание можно найти здесь;
- Ядро Linux, Д. Бовет, М. Чезати
К сожалению, это единственная книга про ядро Linux и местами она достаточно устарела. При этом более актуального пособия пока нет, потому она остается хорошей отправной точкой для тех, кто хочет понять, как работает Linux. Для того, чтобы получить более полноценную и актуальную картину, советуем дополнительно почитать ресурс lwn.net.
Конечно, мы не могли пропустить одну из главных книг о языке C, на котором, помимо PostgreSQL, написаны и другие серьезные БД:
- Язык программирования C, Керниган Брайан У., Ритчи Деннис М.
Участвуя в профессиональных конференциях, вы получаете возможность посетить интересные доклады, обсудить со спикерами волнующие вас вопросы, обменяться опытом и попросить совета у других участников мероприятия.
Многие конференции открывают свободный доступ к видеозаписям докладов, и это хорошая возможность изучить актуальную для вас тему.
Наши ДБА регулярно выступают в качестве спикеров в России и за рубежом. Записи их докладов можно найти на нашем YouTube-канале.
Изучить типичные ошибки разработчиков при работе с PostgreSQL, например, можно по этим выступлениям:
- PostgreSQL Worst Practices, Илья Космодемьянский (SCALE18x 2020 на английском, HighLoad++ 2017 на русском).
- Топ ошибок со стороны разработки при работе с PostgreSQL, Алексей Лесовский (HighLoad++ 2018).
Множество хороших тем рассматривается докладчиками на таких конференциях, как HighLoad++, PGConf.Russia, PGDay Russia, PGConf.EU, а если хотите пообщаться с разработчиками и core team PostgreSQL, рекомендуем PGCon.
Online-митапы, подкасты.Среди множества онлайн-митапов наши DBA выделяют встречи RuPostgres, которые проходят в прямом эфире по вторникам. Ведущие — Николай Самохвалов (Postgres.ai) и Илья Космодемьянский (Data Egret) — вместе с гостями обсуждают вопросы, связанные с разработкой PostgreSQL, существующими фичами, обновлениями, тематическими мероприятиями. Зрители могут задать вопрос в прямом эфире или предложить тему для будущих встреч.
Кроме того, существует пара подкастов, которые регулярно приглашают профессионалов сообщества PostgreSQL: Цинковый прод и SDCast.
Вот несколько примеров с участием наших DBA:
- Андрей Сальников в гостях у подкаста Цинковый Прод на SaintHighload ‘20
- SDCast #92: в гостях Илья Космодемьянский;
- SDCast #94 HL Edition: Алексей Лесовский и Виктор Егоров;
- Цинковый Прод #040 Алексей Лесовский как влюбить в себя Postgres.
Случается, перелопатишь кучу источников, но ответа на свой вопрос не находишь. К счастью, мы работаем с open-source и сообщество PostgreSQL очень открытое, а его участники готовы помочь советом в сложных вопросах.
Пообщаться с другими пользователями PostgreSQL, поделиться опытом можно на форумах, в чатах и блогах специалистов, к примеру:
https://www.postgresql.org/community/irc/ (англ.)
https://www.sql.ru/forum/postgresql (руc.)
https://use-the-index-luke.com (англ.) — регулярно обновляемый ресурс от Маркуса Винанда,
Postgresteam.slack.com (англ.)
https://www.facebook.com/groups/postgresql/ (рус.)
https://dataegret.com/blog/ (руc./англ.)
https://t.me/pg_sql (англ.)
https://t.me/pgsql (руc.)
https://t.me/dba_ru (руc.)
https://www.depesz.com/ (англ.)
Также существуют тематические мейлинг листы сообщества, в которых можно задать любой вопрос, связанный с функционалом СУБД, и зачастую получить фидбек от самого Тома Лейна или других членов Core Team PostgreSQL.
Помимо этого, есть ряд блогов опытных разработчиков и DBA, в которых они делятся опытом, кейсами, обсуждают фичи и обновления СУБД:
Planet postgresql (англ.) — официальный агрегатор блогов по PostgreSQL.
https://habr.com/ru/hub/postgresql/ (руc.)
Утилиты.Существует ряд утилит для работы с PostgreSQL, которые могут значительно облегчить вашу жизнь. Среди них те, которыми пользуются наши DBA:
- pgCenter — инструмент администрирования командной строки для работы с PostgreSQL статистикой;
- PgBouncer — программа, управляющая пулом соединений PostgreSQL.
- pgBackRest — инструмент для резервного копирования и восстановления для базы данных PostgreSQL;
- WAL-G — еще один инструмент для создания резервных копий базы и восстановления из них;
- Patroni — шаблон для создания собственного индивидуального решения с высокой доступностью с использованием Python и распределенного хранилища конфигураций;
- pgcompacttable — инструмент для устранения bloat в таблицах и индексах с целью освобождения места на диске без долгих блокировок;
- pg_repack — еще один инструмент для устранения bloat с минимальными блокировками, работающий несколько другим способом;
- pg-utils — набор полезных утилит для работы DBA с PostgreSQL.
Стоит отметить, что даже самый полноценный список книг, форумов и утилит не заменит практического применения знаний. Поэтому найдите или придумайте задачу: поставьте базу и начните играть с настройками, а затем использовать ее. Уверяем, это станет для вас бесценным опытом.
Разумеется, в этом посте представлен далеко не самый исчерпывающий список источников, полезных при работе с PostgreSQL. Да, не все подойдет в вашем конкретном случае и станет актуальным для вашей работы, но мы надеемся, что среди этих источников вы найдете подходящие и интересные вам ресурсы.
А наши рекомендации позволят вам сэкономить время на поиске полезного материала и сразу перейти к изучению. Познавательного погружения в PostgreSQL!
От Venera Kasimova · 06 июля, 2020
- 4
- community
- corporate
- dba
- kasimova
- pgbouncer
- pgcenter
- pgcon
- PGDay Russia
- pgday. ru
- postgresql
- постгрес
Комментарии: 4
основы SQL/PLpgSQL. Базовый курс в Екатеринбурге
Курс «СУБД PostgreSQL: основы SQL/PLpgSQL. Базовый курс» готовит разработчиков баз данных к управлению данными в СУБД PostgreSQL на основе SQL запросов, а также к разработке приложений под PostgreSQL на основе использования языков SQL и PLpgSQL. В рамках курса рассматривается соответствующее программное обеспечение: PostgreSQL 9. x. Для закрепления материала в курсе проводятся лабораторные занятия.
Стоимость курса
33 898 рубЗаказать
Вы научитесь:
Подготовить разработчиков баз данных и инженеров к написанию исполняемого кода серверной части приложений СУБД PostgreSQL средствами языков SQL и PL/pgSQL.
После прохождения курса слушатели смогут:
-
проектировать и создавать структуру базы данных;
-
использовать инструкции SQL для выборки, изменения и удаления данных;
-
использовать различные типы данных и функции в запросах SQL и PL/pgSQL;
-
разрабатывать и отлаживать блоки кода на языке PL/pgSQL;
-
конструировать код запросов динамически из кода приложения;
- настраивать триггеры, проводить перехват ошибок в исполняемом коде.
Аудитория:
Разработчики баз данных с минимальным опытом или без опыта работы с PostgreSQL
Требования к предварительной подготовке слушателя:
Модуль 1. Введение в PostgreSQL
- Установка и управление сервером
- Настройка параметров сервера
- Подключение с помощью psql
Лабораторная работа 1. Подключение к СУБД с помощью клиента psql
Модуль 2. Структура PostgreSQL
- Архитектура PostgreSQL
- Многоверсионность, блокировки и транзакции
- Структура буферного кэша
- Журналирование
Лабораторная работа 2.1. Многоверсионность и блокировки
Лабораторная работа 2.2. Работа с кэшем и журналами
Модуль 3. Физическая структура данных
- Файлы данных и табличные пространства
- Слои
- Технология TOAST
Лабораторная работа 3. Работа с табличными пространствами
Модуль 4. Логическая структура данных
- База данных
- Схема данных
- Системный каталог
Лабораторная работа 4. Работа со схемой данных
Модуль 5. Проектирование приложения
- Принципы проектирования структуры базы данных
- Требования форм нормализации данных
- Разработка схемы данных приложения
Лабораторная работа 5. Разработка схемы данных приложения
Модуль 6. Введение в язык SQL
- Основные понятия. Общий синтаксис команд
- Типы данных
- Работа с таблицами
- Описание типов данных, ограничения.
- Связи между таблицами
- Представления данных
Лабораторная работа 6. Работа с таблицами базы данных
Модуль 7. Формирование запросов SQL к базе данных
- Лексическая структура, выражения
- Запросы на выборку данных
- Использование связей между таблицами в запросах
- Модифицирующие запросы
- Запросы на удаление данных
Лабораторная работа 7. Работа с запросами
Модуль 8. Обращение к данным из клиентских приложений
- Протокол для обращения к БД
- Работа с транзакциями
- Интерфейс пользователя
Лабораторная работа 8. Работа с представлениями
Модуль 9. Использование функций в SQL
- Функции: параметры и возвращаемые значения
- Вызов функций в запросах
- Подстановки в запросах
- Ограничения
Лабораторная работа 9. Использование функций в запросах
Модуль 10. Работа с составными типами данных
- Составные типы и их параметры
- Функции, возвращающие составной тип
- Варианты вызова функций
Лабораторная работа 10. Использование составных типов в функциях запросов
Модуль 11. Основы языка PL/pgSQL
- Общие сведения о процедурных языках
- Блоки и их структура
- Работа с переменными и выражениями
- Использование функций в PL/pgSQL
- Ветвления и циклы
Лабораторная работа 11. Написание функций в PL/pgSQL
Модуль 12. Работа с запросами SQL в PL/pgSQL
- Выполнение инструкций SQL
- Подстановка переменных
- Использование табличных функций
Лабораторная работа 12. Использование запросов в блоках PL/pgSQL
Модуль 13. Использование курсоров в PL/pgSQL
- Общие сведения о курсорах
- Описание и открытие курсора
- Использование курсоров для обработки данных
- Операции с курсорами
Лабораторная работа 13. Работа с курсорами
Модуль 14. Динамическое построение запросов
- Назначение и возможности динамических запросов
- Выполнение динамического запроса
- Конструкции динамических запросов
Лабораторная работа 14. Динамические запросы
Модуль 15. Работа с массивами
- Общие сведения о массивах
- Использование функций для обработки массивов
- Работа с массивами средствами PL/pgSQL
Лабораторная работа 15. Работа с массивами
Модуль 16. Исключения: перехват ошибок
- Необходимость работы с исключениями
- Перехват ошибок
- Журналирование ошибок
- Уровни обработки ошибок
Лабораторная работа 16. Работа с исключениями
Модуль 17. Использование триггеров
- Общие сведения о триггерах
- Функции-обработчики триггеров
- Варианты использования триггеров
- Триггеры, срабатывающие по событиям
Лабораторная работа 17. Настройка триггеров
Модуль 18. Отладка программного кода
- Способы отладки
- Использование служебных сообщений для отладки
- Трассировка
Лабораторная работа 18. Отладка кода приложения
Модуль 19. Разграничение доступа
- Пользователи и роли
- Привилегии
- Политики защиты записей
- Разграничение подключений к серверу
Лабораторная работа 19. Управление ролями и привилегиями
PostgreSQL: Документация: 15: Часть I. Учебное пособие
PostgreSQL: Документация: 15: Часть I. Учебное пособие10 ноября 2022 г.: Выпущены версии PostgreSQL 15.1, 14.6, 13.9, 12.13, 11.18 и 10.23!
Документация → PostgreSQL 15
Поддерживаемые версии: Текущий (15) / 14 / 13 / 12 / 11
Разрабатываемые версии: devel
Неподдерживаемые версии: 10 / 9,6 / 9,5 / 9. 4 / 9.3 / 9.2 / 9.1 / 9,0 / 8.4 / 8.3 / 8.2 / 8.1 / 8,0 / 7.4 / 7.3 / 7.2 / 7.1
Добро пожаловать в учебник по PostgreSQL. Следующие несколько глав предназначены для того, чтобы дать простое введение в PostgreSQL, концепции реляционных баз данных и язык SQL для тех, кто плохо знаком с любым из этих аспектов. Мы только предполагаем некоторые общие знания о том, как использовать компьютеры. Никакого особого опыта Unix или программирования не требуется. Эта часть в основном предназначена для того, чтобы дать вам некоторый практический опыт работы с важными аспектами системы PostgreSQL. Он не пытается быть полным или тщательным рассмотрением тем, которые он охватывает.
Поработав с этим учебным пособием, вы можете перейти к чтению части II, чтобы получить более формальное знание языка SQL, или части IV, чтобы получить информацию о разработке приложений для PostgreSQL. Тем, кто настраивает и управляет собственным сервером, также следует прочитать часть III.
Содержание
- 1. Начало работы
- 1.1. Установка
- 1.2. Архитектурные основы
- 1.3. Создание базы данных
- 1.4. Доступ к базе данных
- 2. Язык SQL
- 2. 1. Введение
- 2.2. Концепты
- 2.3. Создание новой таблицы
- 2.4. Заполнение таблицы строками
- 2.5. Запрос таблицы
- 2.6. Соединения между таблицами
- 2.7. Агрегатные функции
- 2.8. Обновления
- 2.9. Удаления
- 3. Дополнительные функции
- 3.1. Введение
- 3.2. просмотров
- 3.3. Внешние ключи
- 3.4. Транзакции
- 3.5. Оконные функции
- 3.6. Наследство
- 3.7. Вывод
Изучите базовый PSQL за 3 дня
Ричард Петерсон
часовОбновлено
Что такое PostgreSQL?
PostgreSQL — это система управления базами данных с открытым исходным кодом для приложений баз данных корпоративного класса. Он поддерживает как SQL, так и JSON для реляционных и нереляционных запросов для расширения и соответствия SQL. Он также предлагает расширенные типы данных и функции оптимизации производительности для хранения и масштабирования сложных рабочих нагрузок баз данных. Он также известен как Postgres.
Краткое изложение руководства по PostgreSQL
Это руководство по PostgreSQL для начинающих предназначено для изучения основ PostgreSQL для изучения таких тем, как создание базы данных, создание таблицы, удаление базы данных, удаление таблицы, выбор таблицы, вставка записи, обновление записи, удаление запись, упорядочивание, группировка, триггеры, подстрока, ключи базы данных, команды PSQL и т. д. Это учебное руководство по PostgreSQL поможет вам в изучении PostgreSQL и основах PostgreSQL. Дополнительные функции, такие как соединения, просмотр, триггеры и т. д., также рассматриваются в этом руководстве по PSQL.
Что я должен знать?
Это руководство по работе с базами данных Postgres предназначено для начинающих, практически не имеющих опыта работы с PostgreSQL. Это обучение PostgreSQL поможет вам понять все основы PostgreSQL.
Программа курса PostgreSQL
Введение
👉 Урок 1 | Что такое PostgreSQL? — Введение, преимущества и недостатки |
👉 Урок 2 | Установка PostgreSQL в Windows — Как загрузить и установить PostgreSQL |
👉 Урок 3 | Типы данных PostgreSQL — Символ | Числовой | Бинарный | логическое значение |
Дополнительные материалы
👉 Урок 1 | Создание базы данных PostgreSQL/Postgres — пример создания |
👉 Урок 2 | PostgreSQL DROP/Delete DATABASE — Пример команды PSQL |
👉 Урок 3 | Как создать и удалить таблицу в PostgreSQL — узнайте на примере |
👉 Урок 4 | Создать пользователя в PostgreSQL — Как добавить, заменить и удалить пользователя? |
👉 Урок 5 | DISTINCT в PostgreSQL — Выбрать | Упорядочить по и лимиту [Примеры] |
👉 Урок 6 | Массив PostgreSQL — функции, тип, пример |
👉 Урок 7 | PostgreSQL МЕЖДУ — изучите пример |
👉 Урок 8 | PostgreSQL IN, а не IN — изучите пример |
👉 Урок 9 | PostgreSQL LIKE, Not Like, подстановочные знаки (%, _ ) — изучите пример |
👉 Урок 10 | PostgreSQL EXISTS — что есть, примеры |
👉 Урок 11 | PostgreSQL DELETE Строка, соответствующая 1/2 Условию — Изучите пример |
👉 Урок 12 | PostgreSQL ALTER Table — ADD Column, Rename Column/Table Examples |
👉 Урок 13 | PostgreSQL ПОДСТРОКА() — Что такое подстрока PostgreSQL? с примером |
👉 Урок 14 | PostgreSQL Union, Union ALL — изучите пример |
👉 Урок 15 | PostgreSQL объединяет — внутренний, внешний, левый, правый, естественный с примерами |
👉 Урок 16 | Создание представления PostgreSQL — Что такое представление PostgreSQL? и Пример |
👉 Урок 17 | Триггер PostgreSQL — Пример создания, удаления |
Должен знать!
👉 Урок 1 | PostgreSQL и MySQL — в чем разница? |
Как установить PostgreSQL
Ниже приведены шаги для загрузки и установки PostgreSQL:
- Шаг 1) Перейдите на https://www. postgresql.org/download и выберите предпочтительную операционную систему
- Шаг 2) Откройте файл установщика .exe, чтобы начать установку
- Шаг 3) Выберите предпочитаемый язык
- Шаг 4) Найдите путь для установки программного обеспечения PostgreSQL в вашей системе
- Шаг 5) Выберите компоненты, которые вы хотите установить
- Шаг 6) Установите пароль суперпользователя и запишите его
- Шаг 7) Укажите номер порта по умолчанию
- Шаг 8) Нажмите кнопку «Далее», чтобы начать установку
Как запустить PostgreSQL
Ниже приведены шаги, чтобы начать использовать PostgreSQL:
- Шаг 1) Перейдите в меню «Пуск» и выполните поиск pgAdmin 4
- Шаг 2) Откроется домашняя страница pgAdmin
- Шаг 3) Щелкните Серверы > PostgreSQL 10 в левом дереве
- Шаг 4) Введите пароль суперпользователя, установленный во время установки, и нажмите кнопку OK
- Шаг 5) Откроется панель управления PostgreSQL
Использование PostgreSQL
Ниже приведены популярные применения PostgreSQL:
- Финансовая индустрия :PostgreSQL — идеальная СУБД для финансовой индустрии.