Являются ли факультативность (обязательная, необязательная) и участие (общая, частичная) одинаковыми?

Как я знаю, необязательность означает минимальное количество отношений, которые обозначаются как необязательные для необязательных, обязательные для необязательных, обязательные для обязательных.

И участие обозначается как жирная линия и нормальная линия.

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

а некоторые называют это минимальным количеством элементов

Каковы правильные определения этих отношений и в чем разница..

1 ответ

Решение

Давайте начнем с определений и примеров каждого из понятий:

Полное и частичное участие:

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

Полная и частичная связь

Medicine полностью участвует в Produce отношения, означающие, что Medicine не может существовать, если Produced по Laboratory, В отличие от Laboratory может существовать без ProducingMedicine - Laboratory частично участвует в Produce relationsip.

Обязательные и необязательные роли:

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

Обязательные и необязательные объекты

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

В приведенном выше примере Patient Можно PurchaseMedicine с или без Prescription, Purchase не может существовать без Patient а также Medicine, но Prescription не является обязательным (в целом, хотя это может потребоваться в определенных случаях).

Выявление отношений / слабой сущности:

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

Выявление отношений / слабых лиц

В этом примере Prescription содержит LineItems которые определены Prescriptionключ и номер строки. Другими словами, LineItems таблица будет иметь составной ключ (Prescription_ID, Line_Number),

Примеры неидентифицирующих отношений см. В предыдущих примерах. В то время как Medicine полностью участвует в Produce отношения, у него есть своя собственная идентичность (например, суррогатный ключ, хотя я не указал это). Обратите внимание, что суррогатные ключи всегда подразумевают обычные объекты.

Обязательно / необязательно против общего / частичного участия

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

Обязательное частичное участие: см. Выше: A Laboratory может существовать без производства каких-либо лекарств, но Medicine не может быть Produced без Laboratory,

Обязательное общее участие: см. Выше: Medicine не может существовать без Producedи Laboratory не может Produce что-то не указано.

Дополнительное частичное участие: см. Выше: A Prescription может существовать без Purchasedи Purchase может существовать без Prescription,

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

Дополнительное общее участие

Немного PatientsDie неизвестного Cause, но Cause смерти не может существовать без PatientDying этого

Полное / частичное участие против идентифицирующих / неидентифицирующих отношений

Как я уже говорил, слабые наборы сущностей всегда полностью участвуют в их идентифицирующих отношениях. См. Выше: LineItem должно быть Contained в PrescriptionЭто идентичность и существование зависит от этого. Частичное участие в идентификационных отношениях невозможно.

Полное участие не подразумевает идентифицирующие отношения - Medicine не может существовать без Produced по Laboratory но Medicine идентифицируется своими собственными атрибутами.

Частичное участие в неидентифицирующих отношениях очень распространено. Например, Medicine может существовать без Purchased, а также Medicine идентифицируется своими собственными атрибутами.

Обязательные / необязательные или идентифицирующие / неидентифицирующие отношения

Для отношений необычно иметь менее двух обязательных ролей. Идентификационные отношения - это бинарные отношения, поэтому родительские и дочерние роли будут обязательными. Contain отношения между Prescription а также LineItem не может существовать без обеих сущностей.

Дополнительные роли обычно встречаются только в тройных и более высоких отношениях (хотя см. Пример пациентов, умирающих от причин) и не участвуют в идентификации. Альтернативой необязательной роли является отношение в отношении:

Ассоциативный субъект

Поворачивая Purchase в ассоциативную сущность, мы можем участвовать в Fill отношения с Prescription, Чтобы сохранить ту же семантику, что и выше, я указал, что Purchase может только Fill один Prescription,

Физическое моделирование

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

Примеры физической модели

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

Денормализованные умершие отношения

Отношение физически представлено в виде двух или более ключей сущности в таблице. В этом случае ключи сущности - patient_id а также cause_of_death_id оба найдены в Patient Таблица. Многие думают, что линия внешнего ключа представляет отношение, но это происходит из-за того, что модель отношения объекта путают со старой моделью данных сети.

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

Надеюсь, это поможет. Не стесняйтесь задавать вопросы.

Другие вопросы по тегам