Документация по PostgreSQL 9.1.1 | ||||
---|---|---|---|---|
Prev | Fast Backward | Chapter 35. Расширенный SQL | Fast Forward | Next |
PostgreSQL является расширяемой системой, потому что её работа управляется каталогом. Если вы хорошо знакомы со стандартными РСУБД, вы знаете, что они хранят информацию о базах данных, таблицах, столбцах и т.д. в так называемых системных каталогах. (Некоторые системы называют их словарём данных). Эти каталоги выглядят для пользователя как обычные таблицы, но DBMS хранит в них свою внутреннюю кухню. Одно из ключевых отличий между PostgreSQL и стандартными РСУБД состоит в том, что PostgreSQL хранит в своих каталогах намного больше информации: не только информацию о таблицах и столбцах, но также информацию о типах данных, функциях, методах доступа и т.д. Таблицы каталога могут быть изменены пользователем и в силу этих операций функциональность PostgreSQL может быть расширена пользователями. Для сравнения, функциональность обычных СУБД может быть расширена только через изменение процедур, которые жёстко вкомпилированы в код, т.е. через изменение исходного кода или путём загрузки модулей, специально написанных производителем СУБД.
Кроме того, сервер PostgreSQL с помощью динамической загрузки может загружать в себя написанный пользователем код. Таким образом, пользователь может указать файл с объектым кодом (например, разделяемую(динамическую) библиотеку), который реализует какой-либо новый тип или функцию и PostgreSQL загрузит его как только он потребуется. Ещё более просто добавить к серверу код, написанный на языке SQL. Это делает возможным изменение операций "на лету", что делает PostgreSQL уникальным инструментом для быстрого создания прототипов новых приложений и структур хранения.