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

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

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

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

Системные таблицы и их содержание не следует изменять другими средствами, кроме программного обеспечения 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_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_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 или ArcMap, и класс объектов включен в класс отношений.
  • В ArcGIS Pro или ArcMap открыта таблица атрибутов класса объектов, участвующего в классе отношений и выбрана связанная таблица.

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

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

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

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

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

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