Как работает расширяемость
Эта страница переведена при помощи нейросети GigaChat.
PostgreSQL является расширяемым благодаря тому, что его работа основана на каталогах. Если знакомы со стандартными реляционными системами управления базами данных, то знаете, что они хранят информацию о базах данных, таблицах, столбцах и т.д. в том, что обычно называют системными каталогами. (Некоторые системы называют это словарем данных.) Каталоги выглядят для пользователя как таблицы, как любые другие, но СУБД хранит свою внутреннюю учетную запись в них. Одно из ключевых отличий между PostgreSQL и стандартными реляционными системами управления базами данных заключается в том, что PostgreSQL хранит гораздо больше информации в своих каталогах: не только информацию о таблицах и столбцах, но также информацию о типах данных, функциях, методах доступа и так далее. Эти таблицы могут быть изменены пользователем, а поскольку PostgreSQL основывает свою работу на этих таблицах, это означает, что PostgreSQL может быть расширен пользователями. В отличие от этого, традиционные системы управления базами данных могут быть расширены только путем изменения жестко запрограммированных процедур в исходном коде или путем загрузки модулей, специально написанных поставщиком СУБД.
Сервер PostgreSQL может дополнительно интегрировать код, написанный пользователем, через динамическую загрузку. То есть пользователь может указать объектный файл кода (например, общую библиотеку), который реализует новый тип или функцию, и PostgreSQL будет загружать его по мере необходимости. Код, написанный на SQL, еще проще добавить на сервер. Эта способность изменять свою работу «на лету» делает PostgreSQL уникальным инструментом для быстрого прототипирования новых приложений и структур хранения.