Системные таблицы базы геоданных в PostgreSQL

При подключении вами к многопользовательской базе геоданных из клиента ArcGIS или через веб-сервис ArcGIS Server вы взаимодействуете с наборами данных, которые были вами или другими пользователями баз данных добавлены в базу геоданных. Для отслеживания этих данных и имплементации возможностей базы геоданных многопользовательские базы геоданных используют системные таблицы.

Не изменяйте системные таблицы и их содержимое другими средствами, кроме программного обеспечения ArcGIS или SDK. Однако вы можете просматривать содержание системных таблиц через SQL.

Основные системные таблицы

Когда вы выполняете запрос к базе данных PostgreSQL, содержащей многопользовательскую базу геоданных, вы увидите следующие основные системные таблицы в пользовательской схеме sde:

  • gdb_conflicts
  • gdb_itemrelationships
  • gdb_itemrelationshiptypes
  • gdb_items
  • gdb_itemtypes
  • gdb_locks
  • gdb_replicalog
  • gdb_tables_last_modified
  • sde_archives
  • sde_branch_tables_modified
  • sde_branches
  • sde_column_registry
  • sde_compress_log – создается при первом сжатии базы геоданных.
  • sde_coordinate_systems
  • sde_dbtune
  • sde_geometry_columns
  • sde_layer_locks
  • sde_layers
  • sde_lineages_modified
  • sde_multibranch_tables
  • sde_mvtables_modified
  • sde_object_ids
  • sde_object_locks
  • sde_process_information
  • sde_raster_columns
  • sde_server_config
  • sde_spatial_references – хранится в схеме public, а не в схеме sde.
  • sde_state_lineages
  • sde_state_locks
  • sde_states
  • sde_table_locks
  • sde_table_registry
  • sde_tables_last_edit_time
  • sde_tables_modified
  • sde_version
  • sde_version_history
  • sde_versions

В базе данных есть следующие больше не использующиеся таблицы. Они могут быть удалены в будущих версиях.

  • sde_locators
  • sde_metadata
  • sde_layer_stats
  • sde_logfile_pool
  • sde_xml_columns
  • sde_xml_index_tags
  • sde_xml_indexes

Таблицы, реализующие функциональность многопользовательской базы геоданных

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

  • Атрибутивные правила - хранятся в системной таблице gdb_items.
  • Сервис-ориентированные версии - шесть полей добавляются в бизнес-таблицу таблицы или класса пространственных объектов, когда она регистрируется для участия в управлении сервис-ориентированными версиями для отслеживания изменений.
  • Домены – хранятся в системной таблице gdb_items. Поле в системной таблице gdb_itemtypes определяет объект в качестве домена.
  • Реплики базы геоданных отслеживаются в базе данных в системных таблицах базы геоданных gdb_items, gdb_itemrelationships, gdb_itemtypes и gdb_replicalog.
  • Классы отношений – хранятся в системных таблицах gdb_items и gdb_itemrelationships.

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

Архивы базы геоданных

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

Когда для таблицы включено архивирование таблицы или класса объектов, создается класс архива. Архивный класс - это копия бизнес-таблицы, которая содержит все те же поля, а также три новых поля: gdb_from_date, gdb_to_date и gdb_archive_oid. При включении вами для таблицы и класса объектов, участвующих в традиционной версии, запись также добавляется в системную таблицу sde_archives. В этой записи сохраняются регистрационные ID таблицы, для которой было включено архивирование и связанная с ней таблица класса архива.

Имя таблицы класса архива совпадает с оригинальным именем рабочей таблицы; к нему добавляются символ подчеркивания и буква H. Например, если для класса объектов buildings включено архивирование, создается класс архива buildings_H. Эта таблица архивного класса хранится в той же схеме, что и бизнес-таблица.

Когда вы сокращаете ненужные архивные записи из архивированных классов, которые не зарегистрированы как версионные, то эта транзакция записывается в системную таблицу sde_metadata.

Традиционные версии

При регистрации класса объектов или таблицы для их включения в традиционные версии будут созданы две таблицы, в которых будут отслеживаться изменения данных: таблица добавлений и таблица удалений. Все вместе они называются дельта-таблицами.

Таблица добавлений (a_<registration_id>) содержит информацию о каждой добавленной или обновленной записи (объекте) в версионной бизнес-таблице. Для определения добавленных или измененных записей в данном состоянии базы данных к ней выполняется запрос.

Таблица удалений (d_<registration_id>) поддерживает информацию о каждой удаленной или обновленной строки в версионной таблице. К этой таблице выполняется запрос определения удаленных или измененных в определенном состоянии базы данных строках. При удалении строки запись не удаляется из базы данных; она помечается как удаленная и никогда не возвращается при последующих запросах к базе данных.

Значение registration_id в именах таблицы добавлений и таблицы удалений - значение версионной таблицы в системной таблице sde_table_registry.

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

Помимо дельта-таблиц, основные системные таблицы, отслеживающие версионные таблицы и изменения, - sde_states, sde_state_lineages, sde_mvtables_modified и sde_versions.

Таблицы ключей

Таблицы ключей используются клиентами ArcGIS для улучшения производительности запросов. Таблицы ключей используются для сохранения списка выбранных строк в случае, когда клиент ArcGIS выполняет запрос связи в базе геоданных, объединяющий таблицы с помощью атрибутов, которые относятся к типам Целое, Число, Дата или Строка. Они размещают объединения, используя атрибуты, отличные от поля Object ID.

Таблицы ключей в базе геоданных отсутствуют до тех пор, пока не будет выполняться одна из следующих операций:

  • Выбор более 99 записей класса объектов на карте в ArcGIS Pro, и класс объектов включен в класс отношений.
  • В ArcGIS Pro откройте таблицу атрибутов класса объектов, участвующего в классе отношений и получите связанную таблицу.

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

Формат имен таблицы ключей:

keyset_<process_id>, где <process_id> - идентификационный номер процесса пользовательской сессии, во время которой была создана таблица ключей.

Таблицы файлов журнала

Таблицы файлов журнала используются клиентами ArcGIS для увеличения производительности запросов и хранят списки выбранных строк. Таблицы файлов журнала используют соединения по атрибутам Object ID.

Базы геоданных в PostgreSQL используют временные таблицы в базе данных для таблиц файлов журналов. Эти таблицы создаются для каждого пользователя и называются pg_temp<#>.sde_logfiles.