При подключении вами к многопользовательской базе геоданных из клиента ArcGIS или через веб-сервис ArcGIS Server вы взаимодействуете с наборами данных, которые были вами или другими пользователями баз данных добавлены в базу геоданных. Для отслеживания этих данных и имплементации возможностей базы геоданных многопользовательские базы геоданных используют системные таблицы.
Системные таблицы и их содержание не следует изменять другими средствами, кроме программного обеспечения ArcGIS или SDK. Однако вы можете просматривать содержание системных таблиц через SQL.
Основные системные таблицы
Системные таблицы и их содержание не следует изменять другими средствами, кроме программного обеспечения ArcGIS или SDK. Однако вы можете просматривать содержание системных таблиц через SQL.
Когда вы выполняете запрос к базе данных Microsoft SQL Server, содержащей базу геоданных, вы увидите следующие основные системные таблицы либо в пользовательской схеме sde, либо в схеме dbo:
- 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_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
- 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_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. Эта таблица архивного класса сохраняется в той же схеме, что и бизнес-таблица.
Традиционные версии
При регистрации класса объектов или таблицы для их включения в традиционные версии будут созданы две таблицы, в которых будут отслеживаться изменения данных: таблица добавлений и таблица удалений.Все вместе они называются дельта-таблицами.
Таблица добавлений (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 открыта таблица атрибутов класса объектов, участвующего в классе отношений и выбрана связанная таблица.
- Начат сеанс редактирования в ArcMap.
Одна таблица ключей создается, как глобальная временная таблица, на одну сессию одного соединения. Поскольку эта таблица временная, она удаляется, когда пользователь отключается от базы геоданных.
Формат имен таблицы ключей:
<user_schema>.##keyset_<process_id>_sde, где <schema_name> - эта схема пользователя, создавшего таблицу, а <process_id> - идентификационный номер процесса пользовательской сессии, во время которой была создана таблица.
Таблицы файлов журнала
Таблицы файлов журнала используются клиентами ArcGIS для увеличения производительности запросов и хранят списки выбранных строк. Таблицы файлов журнала используют соединения по атрибутам Object ID.
Базы геоданных в SQL Server используют локальные временные таблицы, привязанные к сеансу, в качестве таблиц файлов журнала. Для каждого сеанса клиента, требующего наличия таблицы файлов журнала, в этой базе данных будет создаваться одна выделенная таблица файлов журнала. Имя таблицы - SDE_session<sde_ID>, где <SDE_ID> - уникальный идентификатор сеанса из таблицы SDE_process_information , а <DBID> - идентификатор базы данных из SQL Server.