PostgreSQL

Материал из Брацка Правки
Версия от 19:31, 9 сентября 2022; Annabaybak (обсуждение | вклад) (Добавлено описание базы данных для работы над Справами в Брацкой Справе)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

PostgreSQL (произносится «Пост-Грэс-Кью-Эл»[6]) — свободная объектно-реляционная система управления базами данных (СУБД). Существует в реализациях для множества UNIX-подобных платформ, включая AIX, различные BSD-системы, HP-UX, IRIX, Linux, macOS, Solaris/OpenSolaris, Tru64, QNX, а также для Microsoft Windows.

Поддержка стандартов, возможности, особенности Править PostgreSQL базируется на языке SQL и поддерживает многие из возможностей стандарта SQL:2011[7][8].

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

Максимальный размер базы данных Нет ограничений Максимальный размер таблицы 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[10]; наследование; возможность индексирования геометрических (в частности, географических) объектов и наличие базирующегося на ней расширения 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 допускает использование функций, возвращающих набор записей, который далее можно использовать так же, как и результат выполнения обычного запроса.

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

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