30-09-2018 19:41

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

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

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

How dangerous is the new coronavirus?You will be interested:How dangerous is the new coronavirus?

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 из-за соответствия лицензии. С PostgreSQL никто не может подать в суд на пользователя за нарушение лицензии. Так как нет никаких связанных лицензионных затрат на ПО.
  • Лучшая поддержка при создании базы данных PostgreSQL, чем у патентообладателей.
  • Яркое сообщество профессиональных энтузиастов PostgreSQL.
  • Значительная экономия на штатных расходах.
  • Низкие требования к обслуживанию и настройке, чем ведущие запатентованные базы данных, но при этом сохраняют все функции, стабильность и производительность.
  • Учебные программы продукта обычно рассматриваются как гораздо более дорогостоящие, эффективные, управляемые и практичные в реальном мире, чем у ведущих поставщиков собственных баз данных.
  • Легендарная надежность и стабильность.
  • Исходный код доступен бесплатно.
  • Если пользователю необходимо каким-либо образом настроить или расширить 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:

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

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

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

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

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

  • Домашняя страница - официальный сайт PostgreSQL, в котором представлена последняя версия установки, новости и полная информация, разъясняющая что это за программа PostgreSQL.
  • PHP PostgreSQL - предоставляет полную информацию о поддержке PHP для баз данных PostgreSQL.
  • Драйвер PostgreSQL JDBC - это библиотека для доступа и создания файлов базы данных PostgreSQL на Java.
  • DBD-Pg-2.19.3, который будет использоваться вместе с модулем Perl DBI.
  • DBI-1.625 - модуль для предоставления общего интерфейса для любой базы данных, включая PostgreSQL.
  • 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 при создании таблицы, для каждого столбца указывают тип данных, которые будут храниться в полях таблицы. Числовые типы представлены ниже.

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

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

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

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

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

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

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

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

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

    В отличие от 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 хранит базы данных в обычных файлах в файловой системе. Когда используется это ПО, пользователь создает папку с данными только для себя. Чтобы создать файлы данных, выполняют следующие действия:

  • Создать папку, в которую нужно поместить файлы данных. Рекомендуется размещать эту папку на локальном компьютере - C или D:диске для быстрого доступа или где-нибудь, чтобы было доступно для всех компьютеров. Скажем, домашние папки Windows или Unix, во избежание необходимости резервного копирования папки данных при каждом выходе из системы. Например, Z:pgsql_data папка, находящаяся в домашней папке Windows (Z:).
  • Открыть оболочку PostgreSQL, используя вышеприведенный сценарий среды.
  • Запустите 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.

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

  • Vista не показывает приглашение Start-> Run, нужно просто ввести команду непосредственно в панель поиска, которая появляется при нажатии кнопки «Пуск».
  • Если пользователь не хочет, чтобы сообщения журнала 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, выполняют следующие действия:

  • Убеждаются, что PostgreSQL запущен, и открывают оболочку PostgreSQL функции.
  • Используют 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 и пользовательских процедур.



    Источник