PostgreSQL реализует части спецификации SQL/MED, позволяя вам получать доступ к данным, которые находятся за пределами PostgreSQL, с помощью обычных запросов SQL. Такие данные называются внешними данными . (Обратите внимание, что это использование не следует путать с внешними ключами, которые являются типом ограничения в базе данных.)

Доступ к внешним данным осуществляется с помощью оболочки внешних данных . Оболочка сторонних данных — это библиотека, которая может взаимодействовать с внешним источником данных, скрывая детали подключения к источнику данных и получения данных из него. contribВ виде модулей доступны некоторые сторонние оболочки данных. Другие виды внешних оболочек данных могут быть найдены как сторонние продукты. Если ни одна из существующих внешних оболочек данных вам не подходит, вы можете написать свою собственную.

Чтобы получить доступ к внешним данным, вам необходимо создать объект внешнего сервера , который определяет, как подключиться к конкретному внешнему источнику данных в соответствии с набором параметров, используемых поддерживающей его оболочкой внешних данных. Затем вам нужно создать одну или несколько внешних таблиц , которые определяют структуру удаленных данных. Внешняя таблица может использоваться в запросах точно так же, как и обычная таблица, но внешняя таблица не хранится на сервере PostgreSQL. Всякий раз, когда он используется, PostgreSQL просит стороннюю оболочку данных получить данные из внешнего источника или передать данные во внешний источник в случае команд обновления.

Для доступа к удаленным данным может потребоваться аутентификация во внешнем источнике данных. Эта информация может быть предоставлена ​​сопоставлением пользователей , которое может предоставить дополнительные данные, такие как имена пользователей и пароли, в зависимости от текущей роли PostgreSQL .

Таблицы являются центральными объектами в структуре реляционной базы данных, поскольку они содержат ваши данные. Но они не единственные объекты, которые существуют в базе данных. Многие другие виды объектов могут быть созданы, чтобы сделать использование данных и управление ими более эффективным или удобным. Они не обсуждаются в этой главе, но мы даем вам список здесь, чтобы вы знали, что возможно:

  • Views
  • Функции, процедуры и операторы
  • Типы данных и домены
  • Триггеры и rewrite правила