PostgreSQL - что это за программа? Свободная объектно-реляционная система управления базами данных (СУБД) PostgreSQL

В отличие от других транзакционных баз данных, Postgres определяет приоритетность ANSI SQL, содержащую всеобъемлющую библиотеку SQL и функциональность, которая может использоваться для поддержки расширенных аналитических рабочих нагрузок. Открытый исходный код означает, что это PostgreSQL можно загрузить и развернуть на товарном оборудовании бесплатно или его можно запустить в облаке через поставщиков. Хотя Postgres является многофункциональным и адаптированным для рабочих нагрузок OLAP, производительность в Postgres имеет тенденцию к ограничению, поскольку объемы данных превышают несколько терабайт.

Краткая история создания

PostgreSQL, первоначально называемый Postgres, был создан в UCB профессором по информатике Майклом Стоунбрейкером. Он начал работу в 1986 году в Postgres в качестве обновленного проекта своего предшественника Ingres и теперь принадлежит Computer Associates.

Основные периоды:

  • 1977-1985 гг. - период, в котором был разработан проект под названием Ingres, а также найдено доказательство концепции для реляционных БД. В 1980 году была основана компания Ingres, которая в 1994 году была приобретена Computer Associates.
  • 1986-1994 гг. - период, в котором была принята кодовая база POSTGRES. Хотя первоначальный вариант был в том, что это PostgreSQL не использовала кодовую базу в качестве своей основы. Кроме того, была разработана концепция в Ingres с акцентом на ориентацию объектов и язык запросов – Quel и коммерциализирован как Illustra.
  • 1994-1995 гг. - в этот период была добавлена поддержка SQL. Выпущен Postgres 95, который позже, в 1996 году, был переиздан как PostgreSQL 6.0. Была создана глобальная команда разработчиков PostgreSQL с бесплатной системой постреляционной БД с открытым исходным кодом. Она применяется сегодня во всех операционных системах.

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

Особенности новейшей разработки

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

  1. Невосприимчивость к чрезмерному развертыванию.
  2. Перераспределение - это то, что некоторые патентованные поставщики баз данных считают своей проблемой № 1 из-за соответствия лицензии. С PostgreSQL никто не может подать в суд на пользователя за нарушение лицензии. Так как нет никаких связанных лицензионных затрат на ПО.
  3. Лучшая поддержка при создании базы данных PostgreSQL, чем у патентообладателей.
  4. Яркое сообщество профессиональных энтузиастов PostgreSQL.
  5. Значительная экономия на штатных расходах.
  6. Низкие требования к обслуживанию и настройке, чем ведущие запатентованные базы данных, но при этом сохраняют все функции, стабильность и производительность.
  7. Учебные программы продукта обычно рассматриваются как гораздо более дорогостоящие, эффективные, управляемые и практичные в реальном мире, чем у ведущих поставщиков собственных баз данных.
  8. Легендарная надежность и стабильность.
  9. Исходный код доступен бесплатно.
  10. Если пользователю необходимо каким-либо образом настроить или расширить PostgreSQL, тогда он сможет сделать это с минимальными усилиями и без каких-либо затрат.

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

Реестр российского ПО

18 марта 2016 года Экспертный совет по ПО в России одобрил 155 программ для внесения в Росреестр. Среди российских лидеров ABBYY и "Касперского" были PostgreSQL. Включили в список "ЛИНТЕР" и Postgres. Выданная лицензия PostgreSQL дает право собственникам на разработку и коммерческую передачу полученных от нее программ. Это справедливая оценка 20-летней работы команды Postgres Professional над проектом. А что в настоящее время? Postgres Professional издала обновленный релиз свободной версии СУБД Postgres Pro 9.6.2.1. Функциональные возможности СУБД:

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

Принцип ПО СУБД PostgreSQL базируется на машинном обучении, в связи с чем оно может осуществить оптимизацию планирования запросов. Нововведения резко (в 10 раз) освобождают занятую данными память и создают скачок производительности. Для решения проблем с переполнением систем PostgreSQL Professional применен 64-битный счетчик транзакций с поддержкой 100 млн транзакций/сутки. Расширение pg_pathman позволяет секционировать таблицы и повысить масштабируемость через адаптированность алгоритмов планирования.

Установка в Linux/Unix

Для пользования PostgreSQL Ubuntu необходимо выполнить инструкции по установке на компьютере Linux. Перед тем как приступить к установке, убеждаются, что вошли в систему как пользователь root:

  1. Выбрать нужный номер версии PostgreSQL и, насколько это возможно, платформу от EnterpriseDB. Например, загружают postgresql-9.2.4-1-linux-x64.run для 64-битного процессора CentOS-6.
  2. После запуска установщика PostgreSQL Ubuntu отвечают на несколько основных вопросов, таких как местоположение установки, пароль пользователя, который будет использовать базу данных, и номер порта.
  3. Сохраняют их по умолчанию, кроме пароля, который можно предоставить по выбору.
  4. Установка PostgreSQL на компьютере Linux завершена.

Команды и полезные ссылки SQL

Используя psql, можно сгенерировать полный список команд с помощью команды \ help.

Для синтаксиса конкретной команды используют следующую: postgres-# \help.

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

Следующие ресурсы содержат дополнительную информацию о PostgreSQL. Полезные ссылки:

  1. Домашняя страница - официальный сайт PostgreSQL, в котором представлена последняя версия установки, новости и полная информация, разъясняющая что это за программа PostgreSQL.
  2. PHP PostgreSQL - предоставляет полную информацию о поддержке PHP для баз данных PostgreSQL.
  3. Драйвер PostgreSQL JDBC - это библиотека для доступа и создания файлов базы данных PostgreSQL на Java.
  4. DBD-Pg-2.19.3, который будет использоваться вместе с модулем Perl DBI.
  5. DBI-1.625 - модуль для предоставления общего интерфейса для любой базы данных, включая PostgreSQL.
  6. PostgreSQL Python - является самым популярным адаптером базы данных PostgreSQL для языка программирования Python. Он предоставляет интерфейс SQL, соответствующий спецификации DB-API 2.0.

Общие параметры настройки Permalink

Конфигурирование базы данных PostgreSQL может быть сложным процессом. Ниже приведены некоторые основные параметры конфигурации, рекомендуемые при использовании PostgreSQL в Linode. Все эти параметры более подробно описаны в руководстве по настройке PostgreSQL.

Директива

Задача

listen_addresses = 'localhost'

По умолчанию Postgres прослушивает только localhost. Однако, редактируя этот раздел и заменяя localhostIP, можно заставить Postgres прослушивать другой IP-адрес. Используйте '*' для прослушивания всех IP-адресов.

max_connections = 50

Устанавливает точное максимальное количество подключений клиентов. Чем выше значение, тем больше ресурсов потребует Postgres. Необходимо отрегулировать это значение в зависимости от размера Linode и трафика, который ожидается от базы данных.

shared_buffers = 128 МБ

Как указано в официальной документации, эта директива изначально устанавливается на низкое значение. На платформе Linode это может быть 1/4 ОЗУ.

wal_level

При настройке экземпляра Postgres важно учитывать запись в журнале записи (WAL). WAL может сохранять базу данных в чрезвычайной ситуации, одновременно записывая и регистрируя. Поэтому изменения записываются, даже если машина теряет мощность. Перед настройкой рекомендуется прочитать руководство DSHL по пониманию WAL и официальную главу о надежности WAL .

synchronous_commit = off

При использовании Linode можно включить настоящую Директиву off.

archive_mode = on

Включение режима архивирования - это жизнеспособная стратегия увеличения избыточности ваших резервных копий.

Тип данных при создании таблиц

Работая с PostgreSQL при создании таблицы, для каждого столбца указывают тип данных, которые будут храниться в полях таблицы. Числовые типы представлены ниже.

Это дает несколько преимуществ:

  1. Согласованность. Операции против столбцов одного и того же типа данных дают согласованные результаты и, как правило, самые быстрые.
  2. Валидация. Правильное использование типов данных подразумевает проверку их формата и отказ от данных за пределами объема данных.
  3. Компактность. Поскольку столбец может содержать один тип значения, он хранится компактным образом.
  4. Производительность. Правильное использование типов данных обеспечивает наиболее эффективное хранение данных. Сохраненные значения могут быть быстро обработаны, что повышает производительность.

Рассмотрим денежные типы.

Размещение платформы в Windows

Для размещения PostgreSQL Windows на ПК следуют приведенным далее инструкциям по установке.

Перед установкой необходимо убедится, что отключен антивирус сторонних разработчиков, и далее:

  1. Выбрать номер версии PostgreSQL. Например, postgresql-9.2.4-1-windows.exe для ПК с ОС Windows, работающего в 32-разрядном режиме, в качестве администратора для установки PostgreSQL.
  2. Выбрать место, где нужно его установить. По умолчанию он устанавливается в папке Program Files.
  3. Следующим шагом процесса установки будет выбор каталога, в котором будут храниться данные. По умолчанию он находится в каталоге data.
  4. Затем установка PostgreSQL Windows запрашивает пароль, поэтому можно использовать любой пароль.
  5. Следующий шаг - указать порт по умолчанию.
  6. На следующем шаге, когда спрашивают Locale, выбирают язык.
  7. Снять флажок и нажать кнопку «Готово».
  8. По завершении процесса установки можно получить доступ к оболочке pgAdmin III, StackBuilder и PostgreSQL из меню программы.

Среда программирования на Mac

Прежде чем приступать к установке на компьютере Mac, пользователь должен убедиться, что вошел в систему как администратор, и далее выполнить:

  1. Выбрать номер версии PostgreSQL для Mac OS, доступный в EnterpriseDB, например postgresql-9.2.4-1-osx.dmg для Mac OS, работающей с OS X версии 10.8.3.
  2. Открыть изображение dmg в finder, просто дважды щелкнуть его, что запустит установщик PostgreSQL в следующем окне.
  3. Затем нажать значок postgres-9.2.4-1-osx, который выдает предупреждающее сообщение.
  4. Принять предупреждение и приступить к дальнейшей установке. Он попросит пароль администратора.
  5. Ввести пароль, приступить к установке и после этого перезапустить компьютер Mac. Если не запустится начальный экран программы, запустить установку еще раз.
  6. После запуска установщика он задает несколько основных вопросов, таких как местоположение установки, пароль пользователя, который будет использовать базу данных, номер порта.
  7. Сохранить все их значения по умолчанию, кроме пароля.

Теперь можно запустить любую из программ.

Получение командной строки

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

Лучше запустить этот сценарий только с компьютера Windows. Чтобы проверить, что сценарий правильно настроил пути к инструментам, нужно ввести psql -? в командной строке и нажать Enter.

После этого пользователь должен увидеть сообщение об использовании, подобное приведенному ниже:

This is psql 8.3.7, the PostgreSQL interactive terminal.

Usage: psql [OPTIONS]... [DBNAME [USERNAME]]

[[Continues...]]

После чего выполняют настройку PostgreSQL.

Создание папок данных

PostgreSQL хранит базы данных в обычных файлах в файловой системе. Когда используется это ПО, пользователь создает папку с данными только для себя. Чтобы создать файлы данных, выполняют следующие действия:

  1. Создать папку, в которую нужно поместить файлы данных. Рекомендуется размещать эту папку на локальном компьютере - C или D:диске для быстрого доступа или где-нибудь, чтобы было доступно для всех компьютеров. Скажем, домашние папки Windows или Unix, во избежание необходимости резервного копирования папки данных при каждом выходе из системы. Например, Z:\pgsql_data папка, находящаяся в домашней папке Windows (Z:\).
  2. Открыть оболочку PostgreSQL, используя вышеприведенный сценарий среды.
  3. Запустите initdb команду для создания файлов данных: > initdb -DZ: \ pgsql_data.

Когда файлы базы данных будут подготовлены, появятся сообщения журнала, похожие на следующие.

Что будет означать: файлы, принадлежащие этой системе БД, принадлежат michaelr, и он должен иметь серверный процесс.

Запуск и остановка программы

Чтобы запустить PostgreSQL, запускают pg_ctl start команду, выбрав «Пуск-> Выполнить», указав имя ранее созданной папки данных:

> "C: \ Program Files \ PostgreSQL \ 8.3 \ bin \ pg_ctl.exe" start -DZ: \ pgsql_data.

Появится окно оболочки, которое будет отображаться как server starting среди других сообщений. Когда это будет сделано, можно остановить PostgreSQL, нажав Ctrl-C в окне оболочки или с помощью pg_ctl stop команды:

> "C: \ Program Files \ PostgreSQL \ 8.3 \ bin \ pg_ctl.exe" stop -DZ: \ pgsql_data.

Пользователям рекомендуется обратить внимание на следующее:

  1. Vista не показывает приглашение Start-> Run, нужно просто ввести команду непосредственно в панель поиска, которая появляется при нажатии кнопки «Пуск».
  2. Если пользователь не хочет, чтобы сообщения журнала PostgreSQL загромождали окно оболочки, можно перенаправить сообщения в файл, используя -l(нижний регистр L) вариант pg_ctl start: > "C: \ Program Files \ PostgreSQL \ 8.3 \ bin \ pg_ctl.exe" start -DZ: \ pgsql_data -l Z: \ pgsqllog.txt.

Создание базы данных PostgreSQL

Пользовательские таблицы должны быть помещены в базу данных, которую предварительно должны создать. Чтобы создать базу данных с именем my_database, выполняют следующие действия:

  1. Убеждаются, что PostgreSQL запущен, и открывают оболочку PostgreSQL функции.
  2. Используют createdb команду для создания базы данных: > createdb my_database.

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

Выполнение запросов с помощью psql

Для запуска SQL-запросов используют SQL Server Management Studio, также называемую SSMS или SqlWb. Если пользователь предпочитает интерфейс GUI для выполнения запросов, нужно попробовать pgAdmin III, расположенный в меню «Пуск-> Программы» в разделе PostgreSQL 8.3 на машинах Windows. После запуска PostgreSQL можно запустить psql, открыв оболочку PostgreSQL и набрав > psql my_database, где my_database имя базы данных.

Если опускается имя базы данных, psql по умолчанию, то получают доступ к базе данных с тем же именем, что и имя пользователя CSE. Когда psql откроется, появится сообщение следующего вида.

Строка michaelr=# представляет собой приглашение для операторов SQL, которые отправляются на сервер базы данных, или команды, отличные от SQL, интерпретируемые psql. Здесь michaelr - это имя базы данных, оно может отличаться в системе. Как следует из сообщения, пользователь выходит из psql, набрав \q и нажав Enter, при этом нужно обратить внимание на отсутствие точки с запятой, это необходимо, потому что \q - это не оператор SQL.

Сообщение об ошибке

Пользователи иногда получают сообщение об ошибке Postgresql:

ERROR: must be owner of relation [your_table_here].

Но не стоить беспокоиться, это сообщение означает, что пользователь не владеет таблицей, которую пытается изменить. Например, у него возникла проблема с запуском некоторых ALTER TABLE операторов. И оказалось, что пользователь не зарегистрировал свое имя, поэтому не имеет права исправлять таблицы.

Для исправления этого сбоя нужно просто отправить электронное письмо администратору базы данных, рассказать ему, в чем проблема, и он исправит разрешение. После этого все ALTER TABLE команды будут работать отлично. Можно также посмотреть таблицы в базе данных, выполнив эту команду из командной строки: \ d. Данная команда Postgresql покажет что-то вроде этого (см. фото).

Присоединение пользователей системы

Оно осуществляется к пользователям базы данных с помощью pg_ident.conf. Иногда, особенно при подключении с удаленных хостов, пользовательское имя Linux может не соответствовать имени пользователя базы данных PostgreSQL. В этих случаях можно указать отображение в /etc/postgresql/9.5/main/pg_ident.conf.

Записи в этом файле принимают форму:

  • MAPNAME - может быть произвольным.
  • SYSTEM-USERNAME - это имя пользователя Linux.
  • PG-USERNAME - является пользователем соответствующей базы данных.

В следующем примере exampleuser можно войти в postgres в качестве пользователя базы данных db_user:

  • examplemap;
  • exampleuser;
  • db_user.

Если пользователь укажет сопоставление в этом файле, он должен добавить map=map-name после метода аутентификации в соответствующую запись pg_hba.conf. Чтобы позволить юзеру из pg_hba.conf примера войти в систему db_user, полная запись будет выглядеть так:

/etc/postgresql/9.5/main/pg_hba.conf

1

host example exampleuser 192.0.2.0 password map=examplemap

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

Комментарии