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

Установка в 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 и его компонентов.

Команды и полезные ссылки 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 на ПК следуют приведенным далее инструкциям по установке.

Размещение платформы в 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 откроется, появится сообщение следующего вида.

Выполнение запросов с помощью 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 и пользовательских процедур.

PostgreSQL vs. MySQL - сравнение, специфические особенности и отзывы
Выбирая, какую базу данных использовать, нужно постараться не сделать ошибку, полагая, что все РСУБД с открытым исходным кодом одинаковы. Существуют радикальные различия между PostgreSQL и MySQL. Только после тщательной оценки различий между этими ...
далее
Узнаем как составлять SQL-запросы - подробные примеры
Каждый программист, работающий с базами данных, обязан уметь составлять и использовать SQL запросы. В статье кратко рассматриваются основные операторы языка и примеры использования.
далее
Coalesce sql: краткое описание, особенности использования, примеры
Coalesce sql: описание, особенности использования, примеры. В статье рассматриваются особенности применения выражения Coalesce при составлении sql - запросов, важные нюансы, а также примеры.
далее
Администратор базы данных - это что за профессия?
Администратор базы данных - это профессия, которая довольно востребована в век автоматизации и компьютеризации всех сфер жизни. Этот специалист занимается хранением информации в базах данных, защищает ее от потери или порчи, а также помогает быстро ...
далее
Оператор SQL INNER JOIN: примеры, синтаксис и специфические ...
Разработка любой базы данных подразумевает не только создание и наполнение таблиц разнообразной информацией, но и дальнейшую работу с данными. Для корректного выполнения разнообразных задач по выбору данных из таблиц и формированию отчетов, ...
далее
Oracle Database: основные характеристики СУБД Oracle
Стремительное развитие информационного общества повлекло за собой разработку различных технологий, предназначенных для решения определенных задач. Одной из приоритетных являлась необходимость проектирования новых способов хранения и обработки больших объемов данных с использованием аппаратного обеспечения.
далее
Oracle Database: основные характеристики СУБД Oracle
HAVING SQL: краткое описание, синтаксис, примеры
Среди прочих параметров оператора SELECT в языке SQL параметр HAVING является крайне полезным. Это касается тех случаев, когда результирующую выборку нужно не просто сгруппировать, но и сделать это, соблюдая определенные условия.
далее
HAVING SQL: краткое описание, синтаксис, примеры
Полный обзор систем управления базами данных
Что такое база данных и система управления базами данных (СУБД), какие СУБД наиболее широко используются, краткий обзор баз данных NoSQL и рынка систем управления базами данных.
далее
Полный обзор систем управления базами данных
Классификация видов аналитических функций в Oracle. Аналитические функции в Oracle и основные технические специфические особенности
Система управления базами данных Oracle является одним из самых популярных представителей подобного программного обеспечения. Она привлекает множество пользователей благодаря широкому функционалу и значительным возможностям. И это неудивительно, ведь сколько времени она уже разрабатывается! Так чем же интересна Oracle? Аналитические функции этой СУБД являются важной составляющей частью предоставляемых возможностей. И мы их рассмотрим в рамках статьи.
далее
Классификация видов аналитических функций в Oracle. Аналитические функции в Oracle и основные технические специфические особенности
Что это - юзернейм. Применение и создание юзернейма
В этой статье читатель узнает, что такое юзернейм. Также узнает, для чего его придумали и где чаще всего его применяют
далее
Что это - юзернейм. Применение и создание юзернейма