Классы отношений в базе геоданных управляют связями между объектами одного класса (класс объектов или таблица) и объектами другого. Объекты на обоих концах отношения могут быть элементами с геометрией или записями в таблице.
Например, класс объектов оборудование инфраструктуры палаточного лагеря (таблица-источник) может быть связан с классом объектов кемпингов (таблица-адресат), поскольку каждый из них имеет общее поле, содержащее общие значения, FacilityID в таблице-источнике и ParentFacilityID в таблице-адресате, и они имеют одинаковый тип данных длинное целое для этого поля. В этом примере связь этих записей позволила бы выбрать один объект инфраструктуры палаточного лагеря и получить доступ ко всем кемпингам, связанным с этим палаточным лагерем.
Преимущества использования классов отношений
Класс отношений в базе геоданных устанавливает соединение между двумя таблицами на основе общего поля, также известного как ключ. Это соединение можно использовать для обеспечения целостности ссылочных данных или для навигации между связанными записями. Ниже перечислены некоторые преимущества и дополнительные возможности, которые предоставляет класс отношений:
- Целостность ссылочных данных — класс отношений может обеспечивать целостность ссылочных данных, которая гарантирует, что отношения между таблицами остаются согласованными. Это означает, что при удалении записи в таблице-источнике все связанные с ней записи в таблице-адресате также будут удалены.
- Улучшенный ввод и редактирование данных — при редактировании данных классы отношений могут помочь обеспечить правильное распространение изменений через связанные таблицы. Это поможет избежать несоответствия данных и ошибок.
- Более глубокий анализ данных — когда между наборами данных установлен класс отношений, вы можете выполнять более сложные запросы и анализы. Например, вы можете найти все объекты в одной таблице, которые связаны с определенным объектом в другой таблице.
- Эффективное управление данными — классы отношений позволяют эффективно управлять связанными данными. Вместо того чтобы дублировать данные в нескольких таблицах, вы можете хранить их в одном месте и создавать связи с ними из других таблиц.
- Кардинальность — кардинальность описывает, как элементы или данные связаны друг с другом. Например, в данных ГИС города один-к-одному может означать "одно здание — один владелец". Один-ко-многим — это один автобусный маршрут, обслуживающий множество остановок. Многие-ко-многим — это множество покупателей, посещающих множество магазинов. Классы отношений помогают нам понять эти связи и придать смысл комплексным данным.
- Правила отношений — вы можете определить ограничения в классе отношений, чтобы обеспечить точность и согласованность пространственных данных при их редактировании. Например, правило отношений может гласить, что каждое здание должно быть связано с определенным земедбным участком. Вы можете установить правила для связи объектов, например, одного здания с одним участком, одного автобусного маршрута с множеством автобусных остановок или множества покупателей, посещающих множество магазинов, что поможет поддерживать целостность данных, сохраняя их точность и надежность в базе геоданных. Это поможет сохранить целостность ваших данных.
- Атрибутивные отношения — классы отношений могут хранить дополнительную информацию о самих отношениях. Например, в отношениях между дорогами и дорожно-транспортными происшествиями атрибут может хранить количество ДТП, произошедших на каждом участке дороги. Классы отношений могут иметь атрибуты, что позволяет хранить информацию о самих отношениях. Например, вы можете хранить дату установления отношений.
- Уведомления — уведомления позволяют автоматически обновлять информацию. При внесении изменений в одну таблицу связанные с ней записи в другой таблице могут быть автоматически обновлены. Классы отношений могут отправлять сообщения при наступлении определенных событий, например, при создании или удалении отношения. Это можно использовать для запуска пользовательского поведения в вашем приложении.
- Навигация — вы можете перемещаться по отношениям в обоих направлениях. Например, если у вас есть связь между таблицей Клиенты и таблицей Заказы, вы можете найти все заказы для определенного клиента или найти клиента, связанного с определенным заказом.
- Каскадные обновления и удаления — классы отношений поддерживают каскадные обновления и удаления. Это означает, что если запись в таблице-источнике обновляется или удаляется, изменения могут быть распространены на связанные записи в таблице-адресате.
Ограничения классов отношений
Классы отношений в базе геоданных управляют связями между объектами двух связанных классов объектов или таблиц. Однако ниже перечислены ограничения и запреты;
- Классы отношений могут быть заданы между классами объектов или таблицами в одной базе геоданных.
- Классы объектов или таблицы также должны храниться в пределах одной базы геоданных.
Наборы данных, участвующие более чем в одном классе отношений
Класс объектов или таблица могут участвовать в более одном классе отношений, но имеются некоторые ограничения.
- Данный класс объектов или таблица не могут быть назначением в двух сложных классах отношений. Однако можно использовать несколько простых отношений между парами классов. Это можно сделать если вам необходимо использовать различную кардинальность, в зависимости от направления отношения.
- Если между двумя классами имеется сложный класс отношений, между этими двумя классами нельзя создавать другие отношения.
- Чтобы создать класс отношений в наборе классов объектов, класс источника или назначения должен находиться в этом наборе классов.
- Можно использовать несколько простых отношений между парами классов. Это можно сделать если вам необходимо использовать различную кардинальность, в зависимости от направления отношения.
Не поддерживаемые классы отношений
Следующие типы и свойства классов отношений не поддерживаются в ArcGIS:
- Рекурсивные отношения, в которых отношение существует между записями в одном и том же классе объектов или в одной и той же таблице, в ArcGIS еще не поддерживаются.
- Первичный и внешний ключи должны быть основаны только на одном поле, сложные первичный и внешний ключи в ArcGIS не поддерживаются.
Если вы определили, что использование класса отношений в базе геоданных является наиболее подходящим методом, исходя из имеющихся у вас данных и вопросов, на которые вы пытаетесь ответить, то следующие шаги заключаются в понимании типов классов отношений базы геоданных и создании класса отношений.