Основы postgresql: от полного нуля до полного просветления
PostgreSQL : Документация: 9.6: 1.2. Основы архитектуры : Компания Postgres Professional
1.2. Основы архитектуры
Прежде чем продолжить, вы должны разобраться в основах архитектуры системы PostgreSQL. Составив картину взаимодействия частей PostgreSQL, вы сможете лучше понять материал этой главы.
Говоря техническим языком, PostgreSQL реализован в архитектуре клиент-сервер. Рабочий сеанс PostgreSQL включает следующие взаимодействующие процессы (программы):
Главный серверный процесс, управляющий файлами баз данных, принимающий подключения клиентских приложений и выполняющий различные запросы клиентов к базам данных. Эта программа сервера БД называется
postgres
.Клиентское приложение пользователя, желающее выполнять операции в базе данных. Клиентские приложения могут быть очень разнообразными: это может быть текстовая утилита, графическое приложение, веб-сервер, использующий базу данных для отображения веб-страниц, или специализированный инструмент для обслуживания БД. Некоторые клиентские приложения поставляются в составе дистрибутива PostgreSQL, однако большинство создают сторонние разработчики.
Как и в других типичных клиент-серверных приложениях, клиент и сервер могут располагаться на разных компьютерах. В этом случае они взаимодействуют по сети TCP/IP. Важно не забывать это и понимать, что файлы, доступные на клиентском компьютере, могут быть недоступны (или доступны только под другим именем) на компьютере-сервере.
Сервер PostgreSQL может обслуживать одновременно несколько подключений клиентов. Для этого он запускает («порождает») отдельный процесс для каждого подключения. Можно сказать, что клиент и серверный процесс общаются, не затрагивая главный процесс postgres
. Таким образом, главный серверный процесс всегда работает и ожидает подключения клиентов, принимая которые, он организует взаимодействие клиента и отдельного серверного процесса. (Конечно всё это происходит незаметно для пользователя, а эта схема рассматривается здесь только для понимания.)
PostgreSQL | Введение
Что такое PostgreSQL. Установка сервера
Последнее обновление: 27.10.2019
PostgreSQL является одной из наиболее популярных систем управления базами данных. Сам проект postgresql эволюционировал из другого проекта, который назывался Ingres. Формально развитие postgresql началось еще в 1986 году. Тогда он назывался POSTGRES.
А в 1996 году проект был переименован в PostgreSQL, что отражало больший акцент на SQL. И собственно 8 июля 1996 года состоялся первый релиз продукта.
С тех пор вышло множество версий postgresql. Текущей версией является версия 12. Однако регулярно также выходят подверсии.
PostgreSQL поддерживается для всех основных операционных систем — Windows, Linux, MacOS.
Официальный сайт проекта: https://www.postgresql.org/.
PostgreSQL развивается как opensource. Исходный код проекта можно найти в репозитории на гитхабе по адресу https://github.com/postgres/postgres.
Установка
На странице https://www.postgresql.org/download/ можно найти ссылки на
загрузку различных дистрибутивов для различных операционных систем. В частности, для загрузки дистрибутива для Windows надо перейти на
страницу https://www.enterprisedb.com/downloads/postgres-postgresql-downloads
и указать все необходимые опции для загрузки: версию postgres и операционную систему.
Тут же можно найти дитрибутивы и для других систем.
Запустим программу установки:
На следующем экране необходимо будет указать папку для установки. Оставим папку по умолчанию и перейдем к следующему шагу:
Далее будет предложено выбрать компоненты для установки:
Оставим все компоненты по умолчанию и перейдем к следующему шагу. Далее будет предложено выбрать папку, где будут храниться базы данных:
Оставим путь по умолчанию и перейдем к следующему шагу. Затем необходимо будет установить пароль для суперпользователя postgres:
При установке запомним пароль, так как он потребуется для подключения к серверу. Затем нужно будет установить порт, по которому будет запускаться сервер. Можно оставить порт по умолчанию:
Далее можно будет установить локаль сервера. Оставим установку по умолчанию:
После этого мы увидим сводку по всем настройкам:
И если нас все устраивает, то можно нажать на кнопку Next, и начнется установка
И после завершения установки мы увидем следующее окно, и для выхода нажмем на кнопку Finish:
Таким образом, сервер PostgreSQL установлен, и мы можем начинать с ним работать.
PostgreSQL : Документация: 10: 1.2. Основы архитектуры : Компания Postgres Professional
1.2. Основы архитектуры
Прежде чем продолжить, вы должны разобраться в основах архитектуры системы PostgreSQL. Составив картину взаимодействия частей PostgreSQL, вы сможете лучше понять материал этой главы.
Говоря техническим языком, PostgreSQL реализован в архитектуре клиент-сервер. Рабочий сеанс PostgreSQL включает следующие взаимодействующие процессы (программы):
Главный серверный процесс, управляющий файлами баз данных, принимающий подключения клиентских приложений и выполняющий различные запросы клиентов к базам данных. Эта программа сервера БД называется
postgres
.Клиентское приложение пользователя, желающее выполнять операции в базе данных. Клиентские приложения могут быть очень разнообразными: это может быть текстовая утилита, графическое приложение, веб-сервер, использующий базу данных для отображения веб-страниц, или специализированный инструмент для обслуживания БД. Некоторые клиентские приложения поставляются в составе дистрибутива PostgreSQL, однако большинство создают сторонние разработчики.
Как и в других типичных клиент-серверных приложениях, клиент и сервер могут располагаться на разных компьютерах. В этом случае они взаимодействуют по сети TCP/IP. Важно не забывать это и понимать, что файлы, доступные на клиентском компьютере, могут быть недоступны (или доступны только под другим именем) на компьютере-сервере.
Сервер PostgreSQL может обслуживать одновременно несколько подключений клиентов. Для этого он запускает («порождает») отдельный процесс для каждого подключения. Можно сказать, что клиент и серверный процесс общаются, не затрагивая главный процесс postgres
. Таким образом, главный серверный процесс всегда работает и ожидает подключения клиентов, принимая которые, он организует взаимодействие клиента и отдельного серверного процесса. (Конечно всё это происходит незаметно для пользователя, а эта схема рассматривается здесь только для понимания.)
PostgreSQL. Основы языка SQL : Компания Postgres Professional
Моргунов, Е. П.
PostgreSQL. Основы языка SQL: учеб. пособие / Е. П. Моргунов; под ред. Е. В. Рогова, П. В. Лузанова. — СПб.: БХВ-Петербург, 2018. — 336 с.: ил.
ISBN 978-5-9775-4022-3 (БХВ-Петербург)
ISBN 978-5-6041193-2-7 (Постгрес Профессиональный, электронное издание)
Учебно-практическое пособие охватывает первую, базовую, часть учебного курса по языку SQL, созданного при участии российской компании Postgres Professional. Учебный материал излагается в расчете на использование системы управления базами данных PostgreSQL. Рассмотрено создание рабочей среды, описаны языки определения данных и основные операции выборки и изменения данных. Показаны примеры использования транзакций, уделено внимание методам оптимизации запросов. Материал сопровождается многочисленными практическими примерами. Пособие может использоваться как для самостоятельного обучения, так и при проведении занятий под руководством преподавателя.
Автор пособия – Евгений Павлович Моргунов, кандидат технических наук, доцент кафедры информатики и вычислительной техники Сибирского государственного университета науки и технологий имени академика М. Ф. Решетнева.
Живет в Красноярске. До перехода в вуз в 2000-ом году более 10 лет работал программистом. В том числе, занимался разработкой прикладной системы для банка. Познакомился с СУБД PostgreSQL в 1998 году. Сторонник использования в учебном процессе открытого и свободного программного обеспечения. Автор учебного пособия «Технологии разработки программ на основе инструментария с открытым исходным кодом» и более 50 других публикаций. По его инициативе в ходе изучения дисциплины «Технология программирования» стали применяться операционная система FreeBSD и система управления базами данных PostgreSQL. Член Международного общества инженерной педагогики (IGIP) с 2004 года. На сегодня опыт использования PostgreSQL в преподавании составляет более 17 лет.
Еще один учебник по языку SQL. Нужен ли он в наше время, когда подобных книг составлено уже немало, и, главное, как исследовательская и специальная литература, так и средства массовой информации буквально переполнены рекламой noSQL-систем?
Да, нужен. Потому что в этой книге показаны не только обычные средства языка SQL-92, без которых, конечно, обойтись нельзя, но и новые возможности, включенные в последние версии системы PostgreSQL (до версии 9.6). В том числе тип данных JSON, фактически обеспечивающий возможность применения PostgreSQL в качестве noSQL-системы.
Изложение построено в стиле подхода hands-on, сразу после введения следует обзорная иллюстрация основных возможностей SQL на небольших примерах. Далее следуют главы, в которых каждая группа команд SQL иллюстрируется огромным количеством примеров и упражнений, при этом попутно объясняются наиболее важные из используемых понятий, связанных с базами данных, и конструкций языка.
Основной материал книги не предполагает наличие у читателя каких-либо предварительных знаний или навыков, связанных с базами данных и почти не требует навыков программирования или знания алгоритмов. Книга удачно дополняет другие курсы по дисциплинам, связанным с применением вычислительных систем, в которых вопросы применения баз данных зачастую представляются чересчур упрощенно.
Исключение составляет последняя глава книги, в которой представлены некоторые сведения по алгоритмам выполнения запросов. Для успешного применения сведений, содержащихся в этой главе, необходимо более глубокое знание алгоритмов и методов, реализуемых в ядре СУБД, чем можно получить из этой книги.
Подчеркнем, что это учебник именно по SQL. В нем не рассматриваются ни теория баз данных, ни методы проектирования баз данных, ни методы проектирования и разработки приложений, работающих с базами данных. Такое самоограничение позволило автору изложить огромный материал в весьма компактной форме, что должно существенно облегчить освоение этого материала.
Б. А. Новиков, доктор физико-математических наук, профессор кафедры информационно-аналитических систем Санкт-Петербургского государственного университета.
В пособии рассматриваются следующие темы:
- Введение в базы данных и SQL
- Создание рабочей среды
- Основные операции с таблицами
- Типы данных СУБД PostgreSQL
- Основы языка определения данных
- Запросы
- Изменение данных
- Индексы
- Транзакции
- Повышение производительности
Скачать книгу в формате PDF (2 МБ)
Курсы по администрированию PostgreSQL / Блог компании Postgres Professional / Хабр
Поводом к написанию статьи стал выход нового учебного курса DBA3 «Администрирование PostgreSQL 10. Резервное копирование и репликация». Мысли о его появлении и возможном содержании были у нас давно. Но обо всем по порядку.
До этого момента у нас было два учебных курса по администрированию. Первый — Базовый курс (DBA1) мы разработали ещё летом 2015 года, он был построен на актуальной тогда версии PostgreSQL 9.4. По задумке, в него включён базовый набор знаний, необходимый любому администратору баз данных. От установки и инициализации сервера, до резервного копирования и восстановления. При этом мы понимали, что полностью все темы и в достаточно детальном виде вместить в рамки одного курса невозможно. Поэтому всё остальное необходимое администратору вошло в следующий курс — Расширенный курс (DBA2). Здесь уже достаточно подробно рассматриваются ключевые механизмы СУБД, такие как система многоверсионности (MVCC), буферный кэш и журнал предзаписи (WAL). Уделено значительное внимание настройке разных способов репликации данных. Подробно рассматриваются вопросы оптимизации выполнения запросов. Курс DBA2 вышел в 2016 году и базировался на версии 9.5. В целом мы считаем, что оба курса на момент выхода в достаточной мере покрывали весь объем знаний по администрированию.
Но жизнь идет, выходят новые версии PostgreSQL, курсы необходимо обновлять. Вместе с тем, мы обратили внимание на то, что названия курсов оказались неудачными. «Расширенный курс» ассоциируется у многих как «настоящий» курс, который нужно проходить, а «Базовый курс» — это что-то для совсем начинающих и его можно пропустить. Хотя в нашей концепции они только вместе дают полную картину администрирования.
Еще одной проблемой, на которую нам иногда указывали, была значительная продолжительность курса DBA2 — 5 дней. Многие считают, что очень сложно выделить столько времени подряд на обучение.
Имея такие вводные, мы приступили к модернизации курсов на версию PostgreSQL 10. Первым под обновление попал Базовый курс, и в октябре 2017 года вышла новая версия DBA1 «Администрирование PostgreSQL 10. Базовый курс». Если посмотреть на его содержание, то можно заметить, что связанные темы сгруппированы вместе. Мы это называем модули. В базовом курсе, по-прежнему, даются вводные о том, как установить и управлять сервером, рассматривается архитектура и организация данных в СУБД. Кроме того есть модуль «Управление доступом», который рассматривается только в этом курсе. Завершается курс обзорными темами о резервном копировании и репликации. Именно обзорными темами. Детально они должны рассматриваться в другом месте.
И это место — новый курс DBA3 «Администрирование PostgreSQL 10. Резервное копирование и репликация». Именно здесь подробно разбираются вопросы логического и физического резервирования и восстановления, организации архива журнальных файлов. Отсюда прямая дорога к репликации, опять как физической, так и логической. А завершить курс мы решили темой посвященной обзору вариантов построения кластерных решений для PostgreSQL. Тема эта горячая, востребованная и очень сложная. И единого «правильного» решения нет, но есть возможность обсудить как минимум вопросы зачем нужны кластеры и какие есть подходы к их организации. За помощь в подготовке этой темы авторы выражают признательность Михаилу Кулагину и Стасу Кельвичу.
В ближайших планах обновление курса DBA2. По очевидным причинам из него уйдет модуль репликации. Да и название курса изменится. Ведь основной упор в нем будет сделан на вопросы настройки различных механизмов и оптимизации выполнения запросов. Поэтому планируемое название курса DBA2 «Администрирование PostgreSQL 10. Настройка и оптимизация», а его появление ожидается осенью.
Вместе, все три курса DBA обеспечат полный охват знаний, необходимых администраторам PostgreSQL 10. А деление на модули позволит даже собирать произвольную программу обучения, состоящую только из нужных «кубиков».
А пока встречайте курс DBA3 «Администрирование PostgreSQL 10. Резервное копирование и репликация». Для самостоятельного прохождения материалы курса выложены на нашем сайте, видео будет попозже. А в скором времени авторизованные учебные центры начнут принимать заказы на обучение.
Как и прежде, мы ждём ваших замечаний и предложений по адресу [email protected].
PostgreSQL : Документация: 10: 18.3. Запуск сервера баз данных : Компания Postgres Professional
18.3. Запуск сервера баз данных
Чтобы кто-либо смог обратиться к базе данных, необходимо сначала запустить сервер баз данных. Программа сервера называется postgres
. Для работы программа postgres
должна знать, где найти данные, которые она будет использовать. Указать это местоположение позволяет параметр -D
. Таким образом, проще всего запустить сервер, выполнив команду:
$ postgres -D /usr/local/pgsql/data
в результате которой сервер продолжит работу в качестве процесса переднего плана. Запускать эту команду следует под именем учётной записи PostgreSQL. Без параметра -D
сервер попытается использовать каталог данных, указанный в переменной окружения PGDATA
. Если и эта переменная не определена, сервер не будет запущен.
Однако обычно лучше запускать postgres
в фоновом режиме. Для этого можно применить обычный синтаксис, принятый в оболочке Unix:
$ postgres -D /usr/local/pgsql/data >logfile 2>&1 &
Важно где-либо сохранять информацию, которую выводит сервер в каналы stdout и stderr, как показано выше. Это полезно и для целей аудита, и для диагностики проблем. (Более глубоко работа с файлами журналов рассматривается в Разделе 24.3.)
Программа postgres
также принимает несколько других параметров командной строки. За дополнительными сведениями обратитесь к справочной странице postgres и к следующей Главе 19.
Такой вариант запуска довольно быстро может оказаться неудобным. Поэтому для упрощения подобных задач предлагается вспомогательная программа pg_ctl. Например:
pg_ctl start -l logfile
запустит сервер в фоновом режиме и направит выводимые сообщения сервера в указанный файл журнала. Параметр -D
для неё имеет то же значение, что и для программы postgres
. С помощью pg_ctl
также можно остановить сервер.
Обычно возникает желание, чтобы сервер баз данных сам запускался при загрузке операционной системы. Скрипты автозапуска для разных систем разные, но в составе PostgreSQL предлагается несколько типовых скриптов в каталоге contrib/start-scripts
. Для установки такого скрипта в систему требуются права root.
В различных системах приняты разные соглашения о порядке запуска служб в процессе загрузки. Во многих системах для этого используется файл /etc/rc.local
или /etc/rc.d/rc.local
. В других применяются каталоги init.d
или rc.d
. Однако при любом варианте запускаться сервер должен от имени пользователя PostgreSQL, но не root или какого-либо другого пользователя. Поэтому команду запуска обычно следует записывать в форме su postgres -c '...'
. Например:
su postgres -c 'pg_ctl start -D /usr/local/pgsql/data -l serverlog'
Ниже приведены более конкретные предложения для нескольких основных ОС. (Вместо указанных нами шаблонных значений необходимо подставить правильный путь к каталогу данных и фактическое имя пользователя.)
Для запуска во FreeBSD воспользуйтесь файлом
contrib/start-scripts/freebsd
в дереве исходного кода PostgreSQL.В OpenBSD, добавьте в файл
/etc/rc.local
следующие строки:if [ -x /usr/local/pgsql/bin/pg_ctl -a -x /usr/local/pgsql/bin/postgres ]; then su -l postgres -c '/usr/local/pgsql/bin/pg_ctl start -s -l /var/postgresql/log -D /usr/local/pgsql/data' echo -n ' postgresql' fi
В системах Linux вы можете либо добавить
/usr/local/pgsql/bin/pg_ctl start -l logfile -D /usr/local/pgsql/data
в
/etc/rc.d/rc.local
или в/etc/rc.local
, либо воспользоваться файломcontrib/start-scripts/linux
в дереве исходного кода PostgreSQL.Используя systemd, вы можете применить следующий файл описания службы (например,
/etc/systemd/system/postgresql.service
):[Unit] Description=PostgreSQL database server Documentation=man:postgres(1) [Service] Type=notify User=postgres ExecStart=/usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data ExecReload=/bin/kill -HUP $MAINPID KillMode=mixed KillSignal=SIGINT TimeoutSec=0 [Install] WantedBy=multi-user.target
Для использования
Type=notify
требуется, чтобы сервер был скомпилирован с указаниемconfigure --with-systemd
.Особого внимания заслуживает значение тайм-аута. На момент написания этой документации по умолчанию в systemd принят тайм-аут 90 секунд, так что процесс, не сообщивший о своей готовности за это время, будет уничтожен. Но серверу PostgreSQL при запуске может потребоваться выполнить восстановление после сбоя, так что переход в состояние готовности может занять гораздо больше времени. Предлагаемое значение 0 отключает логику тайм-аута.
В NetBSD можно использовать скрипт запуска для FreeBSD или для Linux, в зависимости от предпочтений.
В Solaris, создайте файл с именем
/etc/init.d/postgresql
, содержащий следующую стоку:su - postgres -c "/usr/local/pgsql/bin/pg_ctl start -l logfile -D /usr/local/pgsql/data"
Затем создайте символическую ссылку на него в каталоге
/etc/rc3.d
с именемS99postgresql
.
Когда сервер работает, идентификатор его процесса (PID) сохраняется в файле postmaster.pid
в каталоге данных. Это позволяет исключить запуск нескольких экземпляров сервера с одним каталогом данных, а также может быть полезно для выключения сервера.
18.3.1. Сбои при запуске сервера
Есть несколько распространённых причин, по которым сервер может не запуститься. Чтобы понять, чем вызван сбой, просмотрите файл журнала сервера или запустите сервер вручную (не перенаправляя его потоки стандартного вывода и ошибок) и проанализируйте выводимые сообщения. Ниже мы рассмотрим некоторые из наиболее частых сообщений об ошибках более подробно.
LOG: could not bind IPv4 address "127.0.0.1": Address already in use HINT: Is another postmaster already running on port 5432? If not, wait a few seconds and retry. FATAL: could not create any TCP/IP sockets
Это обычно означает именно то, что написано: вы пытаетесь запустить сервер на том же порту, на котором уже работает другой. Однако, если сообщение ядра не Address already in use
или подобное, возможна и другая проблема. Например, при попытке запустить сервер с номером зарезервированного порта будут выданы такие сообщения:
$ postgres -p 666
LOG: could not bind IPv4 address "127.0.0.1": Permission denied
HINT: Is another postmaster already running on port 666? If not, wait a few seconds and retry.
FATAL: could not create any TCP/IP sockets
Следующее сообщение:
FATAL: could not create shared memory segment: Invalid argument DETAIL: Failed system call was shmget(key=5440001, size=4011376640, 03600).
может означать, что установленный для вашего ядра предельный размер разделяемой памяти слишком мал для рабочей области, которую пытается создать PostgreSQL (в данном примере 4011376640 байт). Возможно также, что в вашем ядре вообще отсутствует поддержка разделяемой памяти в стиле System-V. В качестве временного решения можно попытаться запустить сервер с меньшим числом буферов (shared_buffers), но в итоге вам, скорее всего, придётся переконфигурировать ядро и увеличить допустимый размер разделяемой памяти. Вы также можете увидеть это сообщение при попытке запустить несколько серверов на одном компьютере, если запрошенный ими объём разделяемой памяти в сумме превышает этот предел.
Сообщение:
FATAL: could not create semaphores: No space left on device DETAIL: Failed system call was semget(5440126, 17, 03600).
не означает, что у вас закончилось место на диске. Это значит, что установленное в вашем ядре предельное число семафоров System V меньше, чем количество семафоров, которое пытается создать PostgreSQL. Как и в предыдущем случае можно попытаться обойти эту проблему, запустив сервер с меньшим числом допустимых подключений (max_connections), но в конце концов вам придётся увеличить этот предел в ядре.
Если вы получаете ошибку «illegal system call» (неверный системный вызов), то, вероятнее всего, ваше ядро вовсе не поддерживает разделяемую память или семафоры. В этом случае вам остаётся только переконфигурировать ядро и включить их поддержку.
Настройка средств IPC в стиле System V описывается в Подразделе 18.4.1.
18.3.2. Проблемы с подключениями клиентов
Хотя ошибки подключений, возможные на стороне клиента, довольно разнообразны и зависят от приложений, всё же несколько проблем могут быть связаны непосредственно с тем, как был запущен сервер. Описание ошибок, отличных от описанных ниже, следует искать в документации соответствующего клиентского приложения.
psql: could not connect to server: Connection refused Is the server running on host "server.joe.com" and accepting TCP/IP connections on port 5432?
Это общая проблема «я не могу найти сервер и начать взаимодействие с ним». Показанное выше сообщение говорит о попытке установить подключение по TCP/IP. Очень часто объясняется это тем, что сервер просто забыли настроить для работы по протоколу TCP/IP.
Кроме того, при попытке установить подключение к локальному серверу через Unix-сокет можно получить такое сообщение:
psql: could not connect to server: No such file or directory Is the server running locally and accepting connections on Unix domain socket "/tmp/.s.PGSQL.5432"?
Путь в последней строке помогает понять, к правильному ли адресу пытается подключиться клиент. Если сервер на самом деле не принимает подключения по этому адресу, обычно выдаётся сообщение ядра Connection refused
(В соединении отказано) или No such file or directory
(Нет такого файла или каталога), приведённое выше. (Важно понимать, что Connection refused
в данном контексте не означает, что сервер получил запрос на подключение и отверг его. В этом случае были бы выданы другие сообщения, например, показанные в Разделе 20.4.) Другие сообщения об ошибках, например Connection timed out
(Тайм-аут соединения) могут сигнализировать о более фундаментальных проблемах, например, о нарушениях сетевых соединений.
Образование : Компания Postgres Professional
Документация
Документация PostgreSQL — исчерпывающее справочное руководство по СУБД, которое всегда должно быть под рукой для серьезной работы. Это емкая и точная информация, написанная самими разработчиками. Она всегда аккуратно поддерживается в актуальном состоянии.
Мы перевели документацию на русский язык, и теперь пользоваться ей стало еще удобнее:
Помимо поиска по документации, у нас работает и поиск по рассылкам.
Учебные курсы и сертификация
Мы занимаемся разработкой учебных курсов для администраторов баз данных и разработчиков приложений:
Наши курсы можно пройти как самостоятельно, так и в авторизованных учебных центрах. Расписание и стоимость уточняйте в выбранном центре.
Программа сертификации позволяет слушателям курсов подтвердить полученные знания, а работодателям — убедиться в компетентности специалистов.
Глоссарий
На сайте опубликован глоссарий, используемый переводчиками при работе с документацией. Глоссарий содержит перевод большого числа терминов в области баз данных, как универсальных, так и специфичных для PostgreSQL. Глоссарий не только помогает грамотно перевести англоязычные документы, но и предлагает единую, понятную всем терминологию для материалов на русском языке.
Демобаза
Демонстрационная база данных для PostgreSQL предназначена тем, кто хочет изучать язык SQL на конкретных примерах, а также для авторов учебных материалов, которые эти примеры планируют создавать.
Схема демонстрационной базы данных достаточно проста, чтобы быть понятной каждому, и в то же время достаточно сложна, чтобы строить нетривиальные запросы. База данных содержит несколько таблиц с осмысленным содержимым.
Книги, курсы для вузов
Брошюра «PostgreSQL для начинающих» позволяет получить базовые сведения об устройстве и основных особенностях PostgreSQL, об истории его создания и планах развития, и практические сведения по установке PostgreSQL и начале работы с ним.
Учебный курс «Основы технологий баз данных» охватывает теорию баз данных, методы и алгоритмы, применяемые при реализации СУБД, а также их особенности в системе PostgreSQL. Курс рассчитан на студентов вузов, имеющих базовую подготовку по программированию, а также разработчиков баз данных и СУБД. Материалы курса дополняют одноименную книгу.
Учебный курс «Язык SQL» может быть использован как для преподавания основ SQL в вузах, так и для самостоятельного изучения. Используемое в курсе учебное пособие будет интересно широкому кругу студентов и специалистов, желающих познакомиться с языком SQL и со спецификой его поддержки в PostgreSQL.
Мы продолжаем наше сотрудничество с авторами и планируем выпускать новые хорошие книги про PostgreSQL.
PostgreSQL Tutorial — Изучите PostgreSQL с нуля
Добро пожаловать на сайт PostgreSQLTutorial.com! Этот учебник PostgreSQL поможет вам быстро понять PostgreSQL. Вы быстро изучите PostgreSQL на многих практических примерах. Мы покажем вам не только проблемы, но и способы их творческого решения в PostgreSQL.
Если вы…
- Ищете возможность быстро и легко изучить PostgreSQL.
- Разработка приложений с использованием PostgreSQL в качестве серверной системы управления базами данных.
- Переход с других систем управления базами данных, таких как MySQL, Oracle, Microsoft SQL Server, на PostgreSQL.
Здесь, на нашем веб-сайте, вы найдете все, что вам нужно знать, чтобы быстро и эффективно начать работу с PostgreSQL.
Мы разработали учебное пособие по PostgreSQL, чтобы продемонстрировать уникальные особенности PostgreSQL, которые делают его самой передовой системой управления базами данных с открытым исходным кодом.
Начало работы с PostgreSQL
Этот раздел поможет вам начать работу с PostgreSQL, показывая, как установить PostgreSQL в Windows, Linux и macOS.Вы также узнаете, как подключиться к PostgreSQL с помощью инструмента psql, а также как загрузить образец базы данных в PostgreSQL для практики.
Basic PostgreSQL Tutorial
Во-первых, вы узнаете, как запрашивать данные из одной таблицы, используя основные методы выбора данных, такие как выбор столбцов, сортировка наборов результатов и фильтрация строк. Затем вы узнаете о сложных запросах, таких как объединение нескольких таблиц, использование операций над наборами и построение подзапроса. Наконец, вы узнаете, как управлять таблицами базы данных, например, создавать новую таблицу или изменять структуру существующей таблицы.
Раздел 1. Запрос данных
- Select — показывает, как запрашивать данные из одной таблицы.
- Псевдонимы столбцов — узнайте, как назначать временные имена столбцам или выражениям в запросе.
- Сортировать по — поможет вам отсортировать набор результатов, возвращаемых запросом.
- Select Distinct — предоставить вам предложение, которое удаляет повторяющиеся строки в наборе результатов.
Раздел 2. Фильтрация данных
- Где — фильтровать строки по заданному условию.
- Limit — получить подмножество строк, сгенерированных запросом.
- Fetch– ограничить количество строк, возвращаемых запросом.
- In — выберите данные, которые соответствуют любому значению в списке значений.
- Между — выбор данных, представляющих собой диапазон значений.
- Like — фильтровать данные по шаблону.
- Is Null — проверьте, является ли значение нулевым или нет.
Раздел 3. Объединение нескольких таблиц
- Объединения — покажет вам краткий обзор объединений в PostgreSQL.
- Псевдонимы таблиц — описывает, как использовать псевдонимы таблиц в запросе.
- Внутреннее объединение — выберите строки из одной таблицы, которой соответствуют строки в других таблицах.
- Соединение слева — выберите строки из одной таблицы, которые могут иметь или не иметь соответствующие строки в других таблицах.
- Самосоединение — присоединить таблицу к самой себе, сравнив таблицу с собой.
- Полное внешнее соединение — используйте полное соединение, чтобы найти строку в таблице, не имеющей соответствующей строки в другой таблице.
- Cross Join — получить декартово произведение строк в двух или более таблицах.
- Естественное объединение — объединение двух или более таблиц с использованием неявного условия объединения на основе общих имен столбцов в объединяемых таблицах.
Раздел 4. Группировка данных
- Группировать по — разделение строк на группы и применение агрегатной функции к каждой из них.
- Наличие — применение условий к группам.
Раздел 5. Операции над наборами
- Объединение — объединение наборов результатов нескольких запросов в один набор результатов.
- Пересечение — объединяет наборы результатов двух или более запросов и возвращает один набор результатов, в котором строки появляются в обоих наборах результатов.
- Except — вернуть строки в первом запросе, которые не отображаются в выходных данных второго запроса.
Раздел 6. Наборы группировки, куб и свертка
- Наборы группировки — создание нескольких наборов группировки в отчетах.
- Куб — определение нескольких наборов группировок, включающих все возможные комбинации измерений.
- Rollup — создание отчетов, содержащих итоги и промежуточные итоги.
Раздел 7. Подзапрос
- Подзапрос — написать запрос, вложенный в другой запрос.
- ЛЮБОЙ — получить данные путем сравнения значения с набором значений, возвращаемых подзапросом.
- ВСЕ — запрос данных путем сравнения значения со списком значений, возвращаемых подзапросом.
- EXISTS — проверить наличие строк, возвращаемых подзапросом.
Раздел 8. Общие табличные выражения
Раздел 9.Изменение данных
В этом разделе вы узнаете, как вставлять данные в таблицу с помощью оператора INSERT
, изменять существующие данные с помощью оператора UPDATE
и удалять данные с помощью оператора DELETE
. Кроме того, вы узнаете, как использовать оператор upsert для объединения данных.
- Insert — расскажет, как вставить одну строку в таблицу.
- Вставить несколько строк — покажет, как вставить несколько строк в таблицу.
- Обновить — обновить существующие данные в таблице.
- Обновить соединение — обновить значения в таблице на основе значений в другой таблице.
- Удалить — удалить данные в таблице.
- Upsert — вставить или обновить данные, если новая строка уже существует в таблице.
Раздел 10. Транзакции
- Транзакции PostgreSQL — покажет, как обрабатывать транзакции в PostgreSQL с помощью операторов BEGIN, COMMIT и ROLLBACK.
Раздел 11. Импорт и экспорт данных
Вы узнаете, как импортировать и экспортировать данные PostgreSQL из и в формат файла CSV с помощью команды копирования.
Раздел 12. Управление таблицами
В этом разделе вы начнете изучать типы данных PostgreSQL и покажете, как создавать новые таблицы и изменять структуру существующих таблиц.
- Типы данных — охватывают наиболее часто используемые типы данных PostgreSQL.
- Создать таблицу — расскажет, как создать новую таблицу в базе данных.
- Выбрать и создать таблицу как– показывает, как создать новую таблицу из набора результатов запроса.
- Столбец с автоматическим приращением с SERIAL — использует SERIAL для добавления столбца с автоматическим увеличением в таблицу.
- Последовательности — познакомят вас с последовательностями и расскажут, как использовать последовательность для создания последовательности чисел.
- Столбец идентификаторов — покажет, как использовать столбец идентификаторов.
- Изменить таблицу — изменить структуру существующей таблицы.
- Переименовать таблицу — изменить имя таблицы на новое.
- Добавить столбец — покажет, как использовать добавление одного или нескольких столбцов в существующую таблицу.
- Удалить столбец — продемонстрируйте, как удалить столбец таблицы.
- Изменить тип данных столбца — покажет, как изменить данные столбца.
- Переименовать столбец — проиллюстрируйте, как переименовать один или несколько столбцов таблицы.
- Удалить таблицу — удалить существующую таблицу и все зависимые от нее объекты.
- Обрезать таблицу — быстро и эффективно удалить все данные в большой таблице.
- Временная таблица — покажет, как использовать временную таблицу.
- Копировать таблицу — покажет, как скопировать таблицу в новую.
Раздел 13. Общие сведения об ограничениях PostgreSQL
- Первичный ключ — проиллюстрируйте, как определить первичный ключ при создании таблицы или добавить первичный ключ в существующую таблицу.
- Внешний ключ — покажет вам, как определить ограничения внешнего ключа при создании новой таблицы или добавить ограничения внешнего ключа для существующих таблиц.
- Ограничение CHECK — добавить логику для проверки значения на основе логического выражения.
- Ограничение UNIQUE — убедитесь, что значения в столбце или группе столбцов уникальны для всей таблицы.
- Ограничение NOT NULL — убедитесь, что значения в столбце не равны
NULL
.
Раздел 14. Глубина типов данных PostgreSQL
- Boolean — сохраняет значения
TRUE,
иFALSE
с типом данных Boolean. - CHAR, VARCHAR и TEXT — узнайте, как использовать различные типы символов, включая
CHAR
,VARCHAR
иTEXT
. - NUMERIC — покажет вам, как использовать тип
NUMERIC
для хранения значений, требующих точности. - Integer — познакомит вас с различными целочисленными типами в PostgreSQL, включая
SMALLINT
,INT
иBIGINT
. - DATE — введите тип данных
DATE
для хранения значений дат. - Timestamp — быстрое понимание типов данных timestamp.
- Интервал — покажет, как использовать тип данных интервала для эффективной обработки периода времени.
- ВРЕМЯ — используйте тип данных
TIME
для управления значениями времени суток. - UUID — расскажет, как использовать тип данных
UUID
и как сгенерировать значенияUUID
с использованием поставляемых модулей. - Массив — покажет вам, как работать с массивом, и познакомит вас с некоторыми удобными функциями для работы с массивом.
- hstore — познакомит вас с типом данных, который представляет собой набор пар ключ / значение, хранящихся в одном значении в PostgreSQL.
- JSON — проиллюстрируйте, как работать с типом данных JSON, и покажет, как использовать некоторые из наиболее важных операторов и функций JSON.
- Типы данных, определяемые пользователем — покажет, как использовать операторы
CREATE DOMAIN
иCREATE TYPE
для создания типов данных, определяемых пользователем.
Раздел 15. Условные выражения и операторы
-
CASE
— покажет, как формировать условные запросы с выражениемCASE
. -
COALESCE
— вернуть первый ненулевой аргумент. Вы можете использовать его для заменыNULL
значением по умолчанию. -
NULLIF
— вернутьNULL
, если первый аргумент равен второму. -
CAST
— преобразовать из одного типа данных в другой, например, из строки в целое число, из строки в дату.
Раздел 16. Утилиты PostgreSQL
- Команды psql — покажут вам наиболее распространенные команды psql, которые помогут вам быстрее и эффективнее взаимодействовать с psql.
Раздел 17. Рецепты PostgreSQL
Расширенное руководство по PostgreSQL
В этом расширенном руководстве по PostgreSQL рассматриваются расширенные концепции, включая хранимые процедуры, индексы, представления, триггеры и администрирование баз данных.
.
Что такое PostgreSQL
Резюме : в этом руководстве вы узнаете о PostgreSQL и его приложениях.
Что такое PostgreSQL
Начнем с простого вопроса: что такое PostgreSQL?
PostgreSQL — это усовершенствованная реляционная база данных корпоративного класса с открытым исходным кодом. PostgreSQL поддерживает запросы как SQL (реляционные), так и JSON (нереляционные).
PostgreSQL — это очень стабильная база данных, поддерживаемая более чем 20-летним развитием сообщества разработчиков ПО с открытым исходным кодом.
PostgreSQL используется в качестве основной базы данных для многих веб-приложений, а также мобильных и аналитических приложений.
Сообщество PostgreSQL объявляет PostgreSQL как / ˈpoʊstɡrɛs ˌkjuː ˈɛl /.
История PostgreSQL
Проект PostgreSQL стартовал в 1986 году на факультете компьютерных наук Беркли Калифорнийского университета.
Первоначально проект назывался POSTGRES в связи со старой базой данных Ingres, которая также разрабатывалась в Беркли. Целью проекта POSTGRES было добавить минимальные функции, необходимые для поддержки нескольких типов данных.
В 1996 году проект POSTGRES был переименован в PostgreSQL, чтобы наглядно продемонстрировать поддержку SQL. Сегодня PostgreSQL обычно сокращается до Postgres.
С тех пор глобальная группа разработчиков PostgreSQL, специализированное сообщество участников, продолжает выпускать выпуски проекта открытых и бесплатных баз данных.
Первоначально PostgreSQL разрабатывался для работы на UNIX-подобных платформах. Затем был разработан PostgreSQL, работающий на различных платформах, таких как Windows, macOS и Solaris.
Общие варианты использования PostgreSQL
Ниже приведены распространенные варианты использования PostgreSQL.
1) Надежная база данных в стеке LAPP
LAPP обозначает L inux, A pache, P ostgreSQL и P HP (или Python и Perl). PostgreSQL в основном используется в качестве надежной серверной базы данных, которая поддерживает многие динамические веб-сайты и веб-приложения.
2) База данных транзакций общего назначения
Крупные корпорации и стартапы одинаково используют PostgreSQL в качестве основных баз данных для поддержки своих приложений и продуктов.
3) Геопространственная база данных
PostgreSQL с расширением PostGIS поддерживает геопространственные базы данных для географических информационных систем (ГИС).
Поддержка языков
PostgreSQL поддерживает большинство популярных языков программирования:
- Python
- Java
- C #
- C / C +
- Ruby
- JavaScript (Node.js)
- Perl
- Go
- Tcl
Основные характеристики
PostgreSQL
PostgreSQL имеет множество дополнительных функций, которые предлагают другие системы управления базами данных корпоративного класса, например:
Последние версии PostgreSQL поддерживают следующие функции:
- Собственная версия Microsoft Windows Server
- Табличные пространства
- Point -воспроизведение
И новые функции добавляются в каждом новом выпуске.
PostgreSQL разработан с возможностью расширения. PostgreSQL позволяет вам определять свои собственные типы данных, типы индексов, функциональные языки и т. Д.
Если вам не нравится какая-либо часть системы, вы всегда можете разработать собственный плагин, чтобы улучшить его в соответствии с вашими требованиями, например, добавив новый оптимизатор.
Кто использует PostgreSQL
Многие компании создали продукты и решения на основе PostgreSQL. Некоторые представленные компании: Apple, Fujitsu, Red Hat, Cisco, Juniper Network, Instagram и т. Д.
- Было ли это руководство полезным?
- Да Нет
.
Что такое PostgreSQL? Введение, история, особенности, преимущества
- Home
Тестирование
- Назад
- Agile Testing
- BugZilla
- Cucumber
- Тестирование базы данных
- 9000 J27 9000 J27
- 9000 J27 Тестирование
- 9000 J27
- JUnit
- LoadRunner
- Ручное тестирование
- Мобильное тестирование
- Mantis
- Почтальон
- QTP
- Назад
- Центр качества (ALM)
- 000
- Центр качества (ALM)
000 Управление тестированием
- TestLink
SAP
- Назад
- ABAP 900 04
- APO
- Начинающий
- Basis
- BODS
- BI
- BPC
- CO
- Назад
- CRM
- Crystal Reports
- FICO
- 000
- 000 HRM
- 000
- 000 HRM
- 9000 Заработная плата
- Назад
- PI / PO
- PP
- SD
- SAPUI5
- Безопасность
- Менеджер решений
- Successfactors
- Учебники SAP
Apache
- Назад
- Java
- JSP
- Kotlin
- Linux
- Linux
- Kotlin
- Linux
- Perl
js
- Назад
- PHP
- PL / SQL
- PostgreSQL
- Python
- ReactJS
- Ruby & Rails
- Scala
- SQL
- SQL
- UML
- VB.Net
- VBScript
- Веб-службы
- WPF
000
000
0003 SQL
000
0003 SQL
000
Обязательно учите!
- Назад
- Бухгалтерский учет
- Алгоритмы
- Android
- Блокчейн
- Business Analyst
- Создание веб-сайта
- CCNA
- Облачные вычисления
- 00030003 COBOL 9000 Compiler
- 9000 Встроенные системы
- 00030002 9000 Compiler 9000
- Ethical Hacking
- Учебники по Excel
- Программирование на Go
- IoT
- ITIL
- Jenkins
- MIS
- Сеть
- Операционная система
- Назад
- Управление проектами Обзоры
- Salesforce
- SEO
- Разработка программного обеспечения
- VB A
Big Data
- Назад
- AWS
- BigData
- Cassandra
- Cognos
- Хранилище данных
- HBOps
- HBOps
- MicroStrategy
0003
0003
.