ER-диаграмма: тернарная связь - как правильно читать?

Я не совсем уверен, как читать тройные отношения в ER-диаграмме. Допустим, это тройное отношение, которое дано. Что я могу из этого понять?

трехстороннее отношение учетная запись-пользователь-проект

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

Рука об учетной записи и пользователе: Пара учетная запись и пользователь могут быть связаны с проектами M.

Hand on Account и Project: пара Account и Project может быть связана с M пользователями.

Hand on Project and User: пара Project и User может быть связана с 1 учетной записью.

Всегда ли пары находятся в отношениях один к одному или сколько пар может быть?


person user2276094    schedule 21.08.2013    source источник


Ответы (3)


Поздний ответ, но может послужить будущим читателям.

Предположим, что в тройном отношении участвуют сущности A, B и C (для степени > 3 это становится довольно сложно).

Способ прочтения отношений состоит в том, чтобы всегда изолировать 2 из 3 участвующих сущностей и смотреть, как они относятся к третьей. И сделать это нужно для всех возможных пар.

Точнее: 2 объекта, которые вы соединяете каждый раз, должны рассматриваться как «один из» для каждого из них, и вопрос, на который нужно ответить, состоит в том, «сколько» из третьего может соответствовать этой паре.

Абстрактный пример

"One of A and one of B can {have/associate with/belong to} X? of C". Нам нужно использовать наши знания о нашей бизнес-модели, чтобы ответить, должно ли X? быть 1 или N. Это кардинальность, назначаемая троичной связи на ребре, соединяющем троичную связь с сущностью C.

Эту фразу нужно переформулировать для всех возможных комбинаций (не перестановок, так как порядок спаривания не имеет значения). Таким образом, чтобы ответить на вопрос How many pairs are there?, простая математика подсказывает, что возможные способы объединения 3 вещей в группы по 2:

3!/(2!*(3-2)!) = 3.

Итак, все возможные фразы, на которые можно ответить, используя нашу бизнес-модель:

  • One of A and one of B can {have/associate with/belong to} ?X? of C
  • One of A and one of C can {have/associate with/belong to} ?Y? of B
  • One of B and one of C can {have/associate with/belong to} ?Z? of A

Конкретный пример

Я позаимствовал это изображение, которое нашел в Интернете.

введите описание изображения здесь

Реалии нашей бизнес-модели, которые привели к этому образу:

  • 1 Physician with 1 specific Patient can log M Treatments
  • 1 Physician logs 1 specific Treatment for N Patients
  • 1 Patient is logged 1 specific Treatment by 1 Physician

Таким образом, троичная связь log представляет собой связь M-N-1 между участвующими сущностями Treatment-Patient-Physician (в этом порядке).

person Thalis K.    schedule 15.07.2016
comment
Очень понятное объяснение, спасибо. Для тех, кого смущает взаимозаменяемость m и n, это разные имена переменных для одного и того же понятия: количества объектов. - person arlyon; 05.01.2017
comment
Рассматривая пары, должны ли мы рассматривать фактически связанную пару или просто любую пару? В частности, должны ли мы связать одного врача с одним пациентом, которого они лечили… или любого врача с любым пациентом (в базе данных)…? - person Soumya; 14.01.2018

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

person Gigamegs    schedule 21.08.2013

Еще один поздний ответ, но может послужить будущим читателям. Но да, вы правы @user2276094.

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

Таким образом, вы можете сформулировать эти множественности в отношениях (говорит персонал, регистрирующий клиента в филиале) как:

Для фиксированной пары экземпляров Staff и Branch могут быть или не быть клиенты (поскольку некоторые сотрудники могут не регистрировать клиентов, они могут быть заняты другими обязанностями).

Для фиксированной пары экземпляра Branch и экземпляра Client должен быть один и только Staff (поскольку Client может быть зарегистрирован только один раз одним и единственным сотрудником).

Для фиксированной пары экземпляров Staff и Client должно быть одно и только одно (при условии, что Client может быть зарегистрирован только в одном отделении).

person Ihan Dilnath    schedule 26.10.2018