PostgreSQL — различия между версиями
(Добавлено описание базы данных для работы над Справами в Брацкой Справе) |
Sonya (обсуждение | вклад) |
||
Строка 1: | Строка 1: | ||
− | 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. | |
− | PostgreSQL базируется на языке SQL и поддерживает многие из возможностей стандарта SQL:2011 | ||
− | В PostgreSQL версии 12 есть следующие ограничения | + | В PostgreSQL версии 12 есть следующие ограничения: |
− | + | {| class="wikitable" | |
− | Максимальный размер базы данных Нет ограничений | + | |- |
− | Максимальный размер таблицы 32 Тбайт | + | | Максимальный размер базы данных || Нет ограничений |
− | Максимальный размер поля 1 Гбайт | + | |- |
− | Максимум записей в таблице Ограничено размерами таблицы | + | | Максимальный размер таблицы || 32 Тбайт |
− | Максимум полей в записи 250—1600, в зависимости от типов полей | + | |- |
− | Максимум индексов в таблице Нет | + | | Максимальный размер поля || 1 Гбайт |
− | + | |- | |
− | высокопроизводительные и надёжные механизмы транзакций и репликации; | + | | Максимум записей в таблице || Ограничено размерами таблицы |
− | расширяемая система встроенных языков программирования: в стандартной поставке поддерживаются 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 | + | |- |
+ | | Максимум полей в записи || 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; | + | *возможность индексирования геометрических (в частности, географических) объектов и наличие базирующегося на ней расширения PostGIS; |
− | встроенная поддержка слабоструктурированных данных в формате JSON с возможностью их индексации; | + | *встроенная поддержка слабоструктурированных данных в формате 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); |
− | Классические языки | + | ''Классические языки'' - [[C]], [[C++]], [[Java]] (через модуль PL/Java); |
− | Статистический язык R (через модуль PL/R). | + | ''Статистический язык''- [[R]] (через модуль PL/R). |
PostgreSQL допускает использование функций, возвращающих набор записей, который далее можно использовать так же, как и результат выполнения обычного запроса. | PostgreSQL допускает использование функций, возвращающих набор записей, который далее можно использовать так же, как и результат выполнения обычного запроса. | ||
Строка 34: | Строка 41: | ||
Иногда функции отождествляются с хранимыми процедурами, однако между этими понятиями есть различие. С девятой версии возможно написание автономных блоков, которые позволяют выполнять код на процедурных языках без написания функций, непосредственно в клиенте. | Иногда функции отождествляются с хранимыми процедурами, однако между этими понятиями есть различие. С девятой версии возможно написание автономных блоков, которые позволяют выполнять код на процедурных языках без написания функций, непосредственно в клиенте. | ||
+ | |||
+ | ==Связанные лектио== | ||
+ | *[[Готовые Решения]] |
Версия 18:34, 11 сентября 2022
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 допускает использование функций, возвращающих набор записей, который далее можно использовать так же, как и результат выполнения обычного запроса.
Функции могут выполняться как с правами их создателя, так и с правами текущего пользователя.
Иногда функции отождествляются с хранимыми процедурами, однако между этими понятиями есть различие. С девятой версии возможно написание автономных блоков, которые позволяют выполнять код на процедурных языках без написания функций, непосредственно в клиенте.