PostgreSQL — различия между версиями

Материал из Брацка Правки
Перейти к: навигация, поиск
(Добавлено описание базы данных для работы над Справами в Брацкой Справе)
 
 
(не показана 1 промежуточная версия 1 участника)
Строка 1: Строка 1:
PostgreSQL (произносится «Пост-Грэс-Кью-Эл»[6]) — свободная объектно-реляционная система управления базами данных (СУБД).
+
[[PostgreSQL]] (произносится «Пост-Грэс-Кью-Эл») — свободная объектно-реляционная [[система управления базами данных]] (СУБД). PostgreSQL нужна для гибкого доступа к базам данных, их организация и хранения, для управления записями в базах данных: создания, редактирования и удаления, обновления версий и так далее.
Существует в реализациях для множества UNIX-подобных платформ, включая AIX, различные BSD-системы, HP-UX, IRIX, Linux, macOS, Solaris/OpenSolaris, Tru64, QNX, а также для Microsoft Windows.
 
  
Поддержка стандартов, возможности, особенности
+
Существует в реализациях для множества UNIX-подобных платформ, включая [[AIX]], различные [[BSD-системы]], [[HP-UX]], [[IRIX]], [[Linux]], [[macOS]], [[Solaris/OpenSolaris]], [[Tru64]], [[QNX]], а также для [[Microsoft Windows]].
Править
 
PostgreSQL базируется на языке SQL и поддерживает многие из возможностей стандарта SQL:2011[7][8].
 
  
В PostgreSQL версии 12 есть следующие ограничения[9]:
 
  
Максимальный размер базы данных Нет ограничений
+
==Поддержка стандартов, возможности, особенности==
Максимальный размер таблицы 32 Тбайт
+
PostgreSQL базируется на языке [[SQL]] и поддерживает многие из возможностей стандарта SQL:2011.
Максимальный размер поля 1 Гбайт
 
Максимум записей в таблице Ограничено размерами таблицы
 
Максимум полей в записи 250—1600, в зависимости от типов полей
 
Максимум индексов в таблице Нет ограниченийСильными сторонами PostgreSQL считаются:
 
  
высокопроизводительные и надёжные механизмы транзакций и репликации;
+
В PostgreSQL версии 12 есть следующие ограничения:
расширяемая система встроенных языков программирования: в стандартной поставке поддерживаются PL/pgSQL, PL/Perl, PL/Python и PL/Tcl; дополнительно можно использовать PL/Java, PL/PHP, PL/Py, PL/R, PL/Ruby, PL/Scheme, PL/sh и PL/V8, а также имеется поддержка загрузки модулей расширения на языке C[10];
+
{| class="wikitable"
наследование;
+
|-
возможность индексирования геометрических (в частности, географических) объектов и наличие базирующегося на ней расширения PostGIS;
+
| Максимальный размер базы данных || Нет ограничений
встроенная поддержка слабоструктурированных данных в формате JSON с возможностью их индексации;
+
|-
расширяемость (возможность создавать новые типы данных, типы индексов, языки программирования, модули расширения, подключать любые внешние источники данных).
+
| Максимальный размер таблицы || 32 Тбайт
Функции
+
|-
Править
+
| Максимальный размер поля || 1 Гбайт
 +
|-
 +
| Максимум записей в таблице || Ограничено размерами таблицы
 +
|-
 +
| Максимум полей в записи || 250—1600, в зависимости от типов полей
 +
|-
 +
| Максимум индексов в таблице|| Нет ограничений
 +
|-
 +
|}
 +
 +
==Преимущества PostgreSQL==
 +
*высокопроизводительные и надёжные механизмы транзакций и репликации;
 +
*расширяемая система встроенных языков программирования: в стандартной поставке поддерживаются [[PL/pgSQL]], [[PL/Perl]], [[PL/Python]] и [[PL/Tcl]]; дополнительно можно использовать [[PL/Java]], [[PL/PHP]], [[PL/Py]], [[PL/R]], [[PL/Ruby]], [[PL/Scheme]], [[PL/sh]] и [[PL/V8]], а также имеется поддержка загрузки модулей расширения на языке C;
 +
*наследование;  
 +
*возможность индексирования геометрических (в частности, географических) объектов и наличие базирующегося на ней расширения PostGIS;
 +
*встроенная поддержка слабоструктурированных данных в формате JSON с возможностью их индексации;
 +
*легкая расширяемость (возможность создавать новые типы данных, типы индексов, языки программирования, модули расширения, подключать любые внешние источники данных).
 +
 
 +
==Функции==
 
Функции являются блоками кода, исполняемыми на сервере, а не на клиенте БД. Хотя они могут писаться на чистом SQL, реализация дополнительной логики, например, условных переходов и циклов, выходит за рамки SQL и требует использования некоторых языковых расширений. Функции могут писаться с использованием одного из следующих языков:
 
Функции являются блоками кода, исполняемыми на сервере, а не на клиенте БД. Хотя они могут писаться на чистом SQL, реализация дополнительной логики, например, условных переходов и циклов, выходит за рамки SQL и требует использования некоторых языковых расширений. Функции могут писаться с использованием одного из следующих языков:
  
Встроенный процедурный язык PL/pgSQL, во многом аналогичный языку PL/SQL, используемому в СУБД Oracle;
+
''Встроенный процедурный язык'' [[PL/pgSQL]], во многом аналогичный языку [[PL/SQL]], используемому в СУБД Oracle;
Скриптовые языки PL/Lua, PL/LOLCODE, PL/Perl, PL/PHP, PL/Python, PL/Ruby, PL/sh, PL/Tcl, PL/Scheme, PL/v8 (Javascript);
+
''Скриптовые языки'' - [[PL/Lua]], [[PL/LOLCODE]], [[PL/Perl]], [[PL/PHP]], [[PL/Python]], [[PL/Ruby]], [[PL/sh]], [[PL/Tcl]], [[PL/Scheme]], [[PL/v8]] (Javascript);
Классические языки C, C++, Java (через модуль PL/Java);
+
''Классические языки'' - [[C]], [[C++]], [[Java]] (через модуль PL/Java);
Статистический язык R (через модуль PL/R).
+
''Статистический язык''- [[R]] (через модуль PL/R).
 
PostgreSQL допускает использование функций, возвращающих набор записей, который далее можно использовать так же, как и результат выполнения обычного запроса.
 
PostgreSQL допускает использование функций, возвращающих набор записей, который далее можно использовать так же, как и результат выполнения обычного запроса.
  
Строка 34: Строка 44:
  
 
Иногда функции отождествляются с хранимыми процедурами, однако между этими понятиями есть различие. С девятой версии возможно написание автономных блоков, которые позволяют выполнять код на процедурных языках без написания функций, непосредственно в клиенте.
 
Иногда функции отождествляются с хранимыми процедурами, однако между этими понятиями есть различие. С девятой версии возможно написание автономных блоков, которые позволяют выполнять код на процедурных языках без написания функций, непосредственно в клиенте.
 +
 +
==Связанные лектио==
 +
*[[Готовые Решения]]

Текущая версия на 14:02, 13 сентября 2022

PostgreSQL (произносится «Пост-Грэс-Кью-Эл») — свободная объектно-реляционная система управления базами данных (СУБД). PostgreSQL нужна для гибкого доступа к базам данных, их организация и хранения, для управления записями в базах данных: создания, редактирования и удаления, обновления версий и так далее.

Существует в реализациях для множества UNIX-подобных платформ, включая AIX, различные BSD-системы, HP-UX, IRIX, Linux, macOS, Solaris/OpenSolaris, Tru64, QNX, а также для Microsoft Windows.


Поддержка стандартов, возможности, особенности

PostgreSQL базируется на языке SQL и поддерживает многие из возможностей стандарта SQL:2011.

В PostgreSQL версии 12 есть следующие ограничения:

Максимальный размер базы данных Нет ограничений
Максимальный размер таблицы 32 Тбайт
Максимальный размер поля 1 Гбайт
Максимум записей в таблице Ограничено размерами таблицы
Максимум полей в записи 250—1600, в зависимости от типов полей
Максимум индексов в таблице Нет ограничений

Преимущества PostgreSQL

  • высокопроизводительные и надёжные механизмы транзакций и репликации;
  • расширяемая система встроенных языков программирования: в стандартной поставке поддерживаются PL/pgSQL, PL/Perl, PL/Python и PL/Tcl; дополнительно можно использовать PL/Java, PL/PHP, PL/Py, PL/R, PL/Ruby, PL/Scheme, PL/sh и PL/V8, а также имеется поддержка загрузки модулей расширения на языке C;
  • наследование;
  • возможность индексирования геометрических (в частности, географических) объектов и наличие базирующегося на ней расширения PostGIS;
  • встроенная поддержка слабоструктурированных данных в формате JSON с возможностью их индексации;
  • легкая расширяемость (возможность создавать новые типы данных, типы индексов, языки программирования, модули расширения, подключать любые внешние источники данных).

Функции

Функции являются блоками кода, исполняемыми на сервере, а не на клиенте БД. Хотя они могут писаться на чистом SQL, реализация дополнительной логики, например, условных переходов и циклов, выходит за рамки SQL и требует использования некоторых языковых расширений. Функции могут писаться с использованием одного из следующих языков:

Встроенный процедурный язык PL/pgSQL, во многом аналогичный языку PL/SQL, используемому в СУБД Oracle; Скриптовые языки - PL/Lua, PL/LOLCODE, PL/Perl, PL/PHP, PL/Python, PL/Ruby, PL/sh, PL/Tcl, PL/Scheme, PL/v8 (Javascript); Классические языки - C, C++, Java (через модуль PL/Java); Статистический язык- R (через модуль PL/R). PostgreSQL допускает использование функций, возвращающих набор записей, который далее можно использовать так же, как и результат выполнения обычного запроса.

Функции могут выполняться как с правами их создателя, так и с правами текущего пользователя.

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

Связанные лектио