Класс отношений - это один из рабочих процессов, доступных в ArcGIS Pro для связывания объектов и записей друг с другом в базе геоданных.
Инструменты для создания класса отношений
У вас есть два инструмента геообработки, которые можно выбрать для создания класса отношений базы геоданных:
- Используйте инструмент геообработки Создать класс отношений - Создает класс отношений для хранения связей между полями или пространственными объектами таблицы-источника и таблицы-адресата.
- Используйте инструмент геообработки Таблица в класс отношений — Создает атрибутивный класс отношений таблицы-источника, таблицы-адресата и таблицы отношений. Этот инструмент позволяет задать существующую промежуточную таблицу, такую как требуется в отношении многие-ко-многим или в отношении, имеющем атрибуты.
Замечания по классам отношений базы геоданных
Чтобы помочь определить тип класса отношений базы геоданных для создания и использования в рабочем процессе, рассмотрите следующее:
- Кардинальность, существующая между объектами в таблицах или классах.
Кардинальность класса отношений базы геоданных определяет, сколько строк или объектов в таблице-источнике связаны со сколькими строками или объектами в таблице-адресате.
Класс отношений базы геоданных может иметь одну из трех кардинальностей:
- Один-к-одному (1:1) - Каждая строка или пространственный объект таблицы-источника могут быть связаны с одной строкой или пространственным объектом таблицы-адресата или не иметь связей. Используется по умолчанию.
- Один-ко-многим (1:М) - Каждая строка или пространственный объект таблицы-источника могут быть связаны с одной или несколькими строками, или пространственными объектами в таблице-адресате.
Многие-ко-многим (M:N) - Несколько строк или пространственных объектов таблицы-источника могут быть связаны с одной или несколькими строками, или пространственными объектами в таблице-адресате.
Более подробного о типах кардинальности и о том, как их можно использовать
- Общее ключевое поле, существующее как в таблице-источнике, так и в таблице-адресате или классах.
-
Посредством общего поля, получившего название ключевого, можно связывать записи одной таблицы (таблица-источник) с записями в другой таблице (таблице-адресате). Прежде чем вы сможете создать какой-либо тип класса отношений, нужно определить поле в каждой таблице, которое имеет общие значения и относится к одному типу данных. Это поле известно как поле первичного ключа в таблице-источнике и поле внешнего ключа в таблице-адресате.
Например, класс объектов оборудование инфраструктуры палаточного лагеря (таблица-источник) может быть связан с классом объектов кемпингов (таблица-адресат), поскольку каждый из них имеет общее поле, содержащее общие значения, FacilityID в таблице-источнике и ParentFacilityID в таблице-адресате, и они имеют одинаковый тип данных длинное целое для этого поля. В этом примере связь этих записей позволила бы выбрать один объект инфраструктуры палаточного лагеря и получить доступ ко всем кемпингам, связанным с этим палаточным лагерем.
Примечание:
В классе отношений общие поля не обязательно должны иметь одинаковое имя, но они должны иметь одинаковый тип данных. Значения в общих полях используются для связывания записей в таблице на основе определенной кардинальности.
В следующем примере класс отношений один-ко-многим был создан между инфраструктурой палаточного лагеря и кемпингами, расположенными в каждом палаточном лагере. Использование отношение один-ко-многим позволяет выбрать один палаточный лагерь и получить доступ к связанным с ним кемпингам и атрибутам каждого кемпинга.
-
Использование поля Object ID или Global ID для представления отношений между первичным ключом в таблице-источнике и внешним ключом в таблице-адресате.
Ниже приведены некоторые замечания по использованию Object ID и Global ID:
- Поле Object ID
Создание класса отношений в ArcGIS Pro требует уникальных значений для представления отношений между первичным и внешним ключом. При создании таблицы в ArcGIS Pro, в таблицу добавляется уникальное целочисленное поле, которое не может иметь значение null, которое действует как идентификатор объекта (Object ID). В поле Object ID хранится уникальный идентификатор для каждой строки таблицы и он по умолчанию создается в таблицах и классах пространственных объектов как 32-разрядный Object ID.
Поле Object ID объекта автоматически поддерживается ArcGIS Pro и гарантирует, для каждой строки в таблице уникальный идентификатор при первоначальном добавлении. Ключевые функциональные возможности ArcGIS, такие как использование инструмента идентификации и отображение наборов выборок, зависят от того, что каждое значение в таблице имеет уникальное значение.
- По умолчанию таблицы базы геоданных и классы объектов создаются в ArcGIS с 32-разрядными Object ID. Однако бывает, что значения Object ID должны быть больше, чем 2,14 миллиарда. Инструмент геообработки Перевести Object ID в 64-разрядный можно использовать для того, чтобы перевести поля Object ID класса отношений.
Внимание:
Когда поле Object ID переводится для хранения 64-разрядных Object ID, это действие невозможно отменить, и набор данных больше нельзя будет использовать в ArcMap или ArcGIS Pro 3.1 и более ранних версиях.
Создание класса отношений на основе ObjectID не поддерживается при работе с сервис-ориентированными версиями.
Подсказка:
В качестве альтернативы можно запустить инструмент Перенести класс отношений, чтобы перенести класс отношений на основе Object ID в класс отношений на основе Global ID, прежде чем использовать данные в среде сервис-ориентированной версии.
- Поле Global ID
Global ID аналогичны Object ID в том смысле, что они поддерживаются ArcGIS Pro и не могут быть изменены.
Global ID уникально определяют объекты в базе геоданных и между базами геоданных. Рекомендуется добавлять Global ID к данным и использовать поле Global ID как первичный ключ. Использование поля Global ID слоя гарантирует уникальность первичного ключа класса отношений при установлении соединения между классом пространственных объектов и таблицей.
Также можно включить Global ID для класса отношений. Опция Global ID доступна на вкладке Управление для классов отношений многие-ко-многим или атрибутивных классов отношений, в файловой, мобильной или многопользовательской базе геоданных. После включения в промежуточную таблицу добавляется поле Global ID.
Одно из отличий между Global ID и GUID заключается в активном поддержании ArcGIS Pro полей Global ID. Например, при использовании поля Global ID при создании нового объекта, этому объекту назначается уникальное значение global ID а, в то время как поля GUID остаются пустыми, и пользователь должен поддерживать эти поля.
- Поле Object ID
Более подробно о создании классов простых отношений или о том, как создать класс сложных отношений.
Создать и настроить правила для Классов отношений базы геоданных
Если исходный класс и класс назначения существуют в одном наборе классов, класс отношений будет находиться в этом наборе классов. В противном случае класс отношений будет находиться непосредственно в базе геоданных, вне каких-либо наборов данных объектов.
При создании отношения может выполняться несколько дополнительных шагов, и имеются разные рабочие процессы, которым можно следовать для выполнения процесса. Рабочий процесс, которому нужно следовать, зависит от имеющихся данных и типа отношения, которое нужно создать.
- Если имеется класс-источник и класс-адресат, заполненные объектами или записями, и если значения первичного ключа в классе-источнике правильно связаны с правильными значениями внешнего ключа в классе-адресате, рассмотрите этот рабочий процесс:
- Создайте класс отношений с помощью инструмента Создать класс отношений.
Задайте правила класса отношений, ели необходимо.
См. раздел Управление правилами класса отношений для подробной информации о включении или выключении правил в классе отношений.
Если вы задаете правила класса отношений или работаете с классом сложных отношений, используйте правила атрибутов проверка или ограничение для проверки и обеспечения целостности ссылочных данных.
Внимание:
Этот рабочий процесс неприменим для классов отношений многие ко многим (M:N) или для классов атрибутивных отношений.
- Если имеется класс-источник и класс-адресат, заполненные объектами или записями и значения первичного ключа в классе-источнике, но либо нет значений внешнего ключа в классе-адресате, либо значения неправильно связаны, рассмотрите этот рабочий процесс:
- Создайте класс отношений с помощью инструмента геообработки Создать класс отношений.
Задайте правила класса отношений, ели необходимо.
См. раздел Управление правилами класса отношений для подробной информации о включении или выключении правил в классе отношений.
- Интерактивно выберите связанные объекты-источники и объекты-адресаты, свяжите их в диалоговом окне Атрибуты, используя опцию Добавить выбранное к отношению.
Это устанавливает значения внешнего ключа в назначении так, что они связаны со значениями первичного ключа в источнике.
Дополнительные сведения см. в разделе Заполнение атрибутивной таблицы класса отношений.
Дополнительно, если инструмент Создать класс отношений используется для создания атрибутивного класса отношений или класса отношений многие ко многим, заполните промежуточную таблицу вручную, поскольку в результирующей промежуточной таблице будут сгенерированы только поля, поскольку ArcGIS не отображает связи между объектом-источником и объектом-адресатом.
Более подробно см. раздел Понимание классов атрибутивных отношений.
Если вы задаете правила класса отношений или работаете со сложным отношением, используйте правила атрибутов проверка или ограничение для проверки и обеспечения целостности ссылочных данных.
Внимание:
Этот рабочий процесс не применим к классам отношений многие-ко-многим (M:N), которые не включают по меньшей мере один класс объектов как источник или адресат.
- Чтобы создать класс отношений многие-ко-многим между двумя таблицами или создать класс отношений с использованием существующей промежуточной таблицы, которая содержит атрибуты отношений, рассмотрите этот рабочий процесс:
- Создайте и заполните таблицу-источник, таблицу-адресат и промежуточную таблицу, обеспечивая, что значения первичного ключа правильно относятся к значениям ключа-адресата.
Создайте класс отношений с помощью средства Таблица в класс отношений.
Более подробно см. раздел Понимание классов атрибутивных отношений и Создание атрибутивной таблицы класса отношений.
Узнайте о советах по использованию класса отношений и опциях, доступных для изменения класса отношений.