Подготовка к созданию класса отношений

Класс отношений - это один из рабочих процессов, доступных в ArcGIS Pro для связывания объектов и записей друг с другом в базе геоданных.

Инструменты для создания класса отношений

У вас есть два инструмента геообработки, которые можно выбрать для создания класса отношений базы геоданных:

  • Используйте инструмент геообработки Создать класс отношений - Создает класс отношений для хранения связей между полями или пространственными объектами таблицы-источника и таблицы-адресата.
  • Используйте инструмент геообработки Таблица в класс отношений — Создает атрибутивный класс отношений таблицы-источника, таблицы-адресата и таблицы отношений. Этот инструмент позволяет задать существующую промежуточную таблицу, такую как требуется в отношении многие-ко-многим или в отношении, имеющем атрибуты.

Замечания по классам отношений базы геоданных

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

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

      Класс отношений базы геоданных может иметь одну из трех кардинальностей:

      Класс отношений базы геоданных может иметь одну из трех кардинальностей.
      • Один-к-одному (1:1) - Каждая строка или пространственный объект таблицы-источника могут быть связаны с одной строкой или пространственным объектом таблицы-адресата или не иметь связей. Используется по умолчанию.
      • Один-ко-многим (1:М) - Каждая строка или пространственный объект таблицы-источника могут быть связаны с одной или несколькими строками, или пространственными объектами в таблице-адресате.
      • Многие-ко-многим (M:N) - Несколько строк или пространственных объектов таблицы-источника могут быть связаны с одной или несколькими строками, или пространственными объектами в таблице-адресате.

      Более подробного о типах кардинальности и о том, как их можно использовать

  • Общее ключевое поле, существующее как в таблице-источнике, так и в таблице-адресате или классах.
    • Посредством общего поля, получившего название ключевого, можно связывать записи одной таблицы (таблица-источник) с записями в другой таблице (таблице-адресате). Прежде чем вы сможете создать какой-либо тип класса отношений, нужно определить поле в каждой таблице, которое имеет общие значения и относится к одному типу данных. Это поле известно как поле первичного ключа в таблице-источнике и поле внешнего ключа в таблице-адресате.

      Например, класс объектов оборудование инфраструктуры палаточного лагеря (таблица-источник) может быть связан с классом объектов кемпингов (таблица-адресат), поскольку каждый из них имеет общее поле, содержащее общие значения, FacilityID в таблице-источнике и ParentFacilityID в таблице-адресате, и они имеют одинаковый тип данных длинное целое для этого поля. В этом примере связь этих записей позволила бы выбрать один объект инфраструктуры палаточного лагеря и получить доступ ко всем кемпингам, связанным с этим палаточным лагерем.

      Отображает первичный ключ в таблице-источнике и ключ назначения в таблице-адресате
      Примечание:

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

      В следующем примере класс отношений один-ко-многим был создан между инфраструктурой палаточного лагеря и кемпингами, расположенными в каждом палаточном лагере. Использование отношение один-ко-многим позволяет выбрать один палаточный лагерь и получить доступ к связанным с ним кемпингам и атрибутам каждого кемпинга.

      Диаграмма класса отношений один-ко-многим
      Класс отношений создается между Campground Facilities и индивидуальным Campsites, назначенным каждому палаточному лагерю.

    Более подробно о первичных и внешних ключах

  • Использование поля 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 остаются пустыми, и пользователь должен поддерживать эти поля.

Более подробно о создании классов простых отношений или о том, как создать класс сложных отношений.

Создать и настроить правила для Классов отношений базы геоданных

Если исходный класс и класс назначения существуют в одном наборе классов, класс отношений будет находиться в этом наборе классов. В противном случае класс отношений будет находиться непосредственно в базе геоданных, вне каких-либо наборов данных объектов.

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

  • Если имеется класс-источник и класс-адресат, заполненные объектами или записями, и если значения первичного ключа в классе-источнике правильно связаны с правильными значениями внешнего ключа в классе-адресате, рассмотрите этот рабочий процесс:

    1. Создайте класс отношений с помощью инструмента Создать класс отношений.
    2. Задайте правила класса отношений, ели необходимо.

      См. раздел Управление правилами класса отношений для подробной информации о включении или выключении правил в классе отношений.

    3. Если вы задаете правила класса отношений или работаете с классом сложных отношений, используйте правила атрибутов проверка или ограничение для проверки и обеспечения целостности ссылочных данных.

      Внимание:

      Этот рабочий процесс неприменим для классов отношений многие ко многим (M:N) или для классов атрибутивных отношений.

  • Если имеется класс-источник и класс-адресат, заполненные объектами или записями и значения первичного ключа в классе-источнике, но либо нет значений внешнего ключа в классе-адресате, либо значения неправильно связаны, рассмотрите этот рабочий процесс:

    1. Создайте класс отношений с помощью инструмента геообработки Создать класс отношений.
    2. Задайте правила класса отношений, ели необходимо.

      См. раздел Управление правилами класса отношений для подробной информации о включении или выключении правил в классе отношений.

    3. Интерактивно выберите связанные объекты-источники и объекты-адресаты, свяжите их в диалоговом окне Атрибуты, используя опцию Добавить выбранное к отношению.

      Это устанавливает значения внешнего ключа в назначении так, что они связаны со значениями первичного ключа в источнике.

      Дополнительные сведения см. в разделе Заполнение атрибутивной таблицы класса отношений.

    4. Дополнительно, если инструмент Создать класс отношений используется для создания атрибутивного класса отношений или класса отношений многие ко многим, заполните промежуточную таблицу вручную, поскольку в результирующей промежуточной таблице будут сгенерированы только поля, поскольку ArcGIS не отображает связи между объектом-источником и объектом-адресатом.

      Более подробно см. раздел Понимание классов атрибутивных отношений.

    5. Если вы задаете правила класса отношений или работаете со сложным отношением, используйте правила атрибутов проверка или ограничение для проверки и обеспечения целостности ссылочных данных.

      Внимание:

      Этот рабочий процесс не применим к классам отношений многие-ко-многим (M:N), которые не включают по меньшей мере один класс объектов как источник или адресат.

  • Чтобы создать класс отношений многие-ко-многим между двумя таблицами или создать класс отношений с использованием существующей промежуточной таблицы, которая содержит атрибуты отношений, рассмотрите этот рабочий процесс:
    1. Создайте и заполните таблицу-источник, таблицу-адресат и промежуточную таблицу, обеспечивая, что значения первичного ключа правильно относятся к значениям ключа-адресата.
    2. Создайте класс отношений с помощью средства Таблица в класс отношений.

      Более подробно см. раздел Понимание классов атрибутивных отношений и Создание атрибутивной таблицы класса отношений.

Узнайте о советах по использованию класса отношений и опциях, доступных для изменения класса отношений.

Связанные разделы