Модель данных

ADB построена на базе MPP-системы с открытым исходным кодом Greenplum, в основе которой, в свою очередь, лежит объектно-реляционная СУБД PostgreSQL. Поэтому большинство концепций, лежажих в основе модели данных PostgreSQL, применимо также и к ADB.

Основные компоненты модели данных ADB приведены ниже:

  • База данных (БД, database). Это набор данных, физически хранимых вместе. Каждый ADB-кластер может содержать одну или более баз данных. В этом заключается отличие от некоторых других СУБД (например, Oracle), где инстансу СУБД соответствует одна база данных. Тем не менее, клиентские приложения могут обращаться не более чем к одной базе данных ADB в рамках одного соединения — кросс-запросы между различными базами данных невозможны по причине физического разделения БД. Возможность переноса данных между БД также отсутствует.

  • Схема (schema). Это логическое объединение сущностей внутри одной базы данных. В отличие от БД, схемы разделены не так жестко: пользователи могут обращаться к нескольким схемам одновременно (при наличии соответствующих прав).

  • Объект (object). Это любая иная сущность, определенная внутри схемы БД. Например, таблица, функция, представление или материализованное представление и так далее. Для доступа к объектам можно использовать ASCII-стандарт: database.schema.object. Но форма schema.object предпочтительна (поскольку обращаться можно только к той БД, что указана в настройках текущего соединения). Обратите внимание, что одно и то же имя объекта может быть использовано в различных схемах.

Рисунок, приведенный ниже, иллюстрирует иерархию компонентов модели данных ADB на простом примере. Здесь представлены две базы данных books_store и books_store_archive с двумя схемами finance и books в каждой из них. Схемы, в свою очередь, содержат несколько таблиц и представлений. В этом примере допускается одновременное обращение к двум схемам любой БД (указанной в настройках текущего соединения). Однако одновременные запросы к обеим базам данных запрещены.

data model dark
Пример модели данных
data model light
Пример модели данных
Нашли ошибку? Выделите текст и нажмите Ctrl+Enter чтобы сообщить о ней