В ERD слабое/не идентифицирующее отношение - это соединение, которое соединяет два сильных объекта и обозначается пунктирной линией. Сильная/идентифицирующая связь - это связь, которая соединяет сильный объект со слабым сущностью (слабый объект - это тот, который содержит внешний ключ [FK] из связанного с ним объекта как компонент его собственного первичного ключа [PK]), и указывается сплошной линией.
Мой вопрос: И что? Почему так важно различать слабые/неидентифицирующие отношения по сравнению с сильными/идентифицирующими отношениями, которые, по мнению дизайнеров ERD, должны делать это различие с пунктирными или сплошными линиями, соответственно? Почему это так важно?
Для меня каждый элемент и соглашение в ERD должны добавлять необходимую информацию, которая либо переводится непосредственно в конструкцию базы данных (то есть, в заявлениях DDL SQL), либо, по крайней мере, объясняет важную информацию, но не обязательно очевидную (и пример этот последний случай будет называть отношения - они не переводятся в SQL, но они очень полезны для понимания ERD). Вот пример ERD для обсуждения (изменен из qaru.site/info/12743/...):
Я это много рассмотрел, и для меня единственная информация, которую добавляет сплошная или пунктирная линия, уже адекватно передана в следующих соглашениях:
- Независимо от того, является ли FK частью объекта PK (PK, FK1 или PK, FK2 в образце ERD).
- Независимо от того, является ли FK обязательным атрибутом (жирным) или необязательным атрибутом (не жирным).
Насколько я вижу, сплошная и пунктирная линия отношений не добавляет дополнительной полезной информации. Вместо того, чтобы добавлять информацию, это соглашение не является интуитивным и очень запутанным. Как один из примеров путаницы, которые они вызывают, в StackOverflow есть много повторяющихся вопросов, которые спрашивают, что это такое; вот лишь несколько примеров:
- Как определить сильную и слабую связь с ERD?
- Какая разница между идентифицирующими и неидентифицирующими отношениями?
- Все еще запутано в определении неиндексирующих отношений
- Идентификация против неидентифицирующих отношений (снова!!!)
Может ли кто-нибудь объяснить мне, какая дополнительная информация добавляется в соглашение, которая не содержится в том, что FK может быть или не быть частью ПК? Я серьезно рассматриваю возможность полностью игнорировать соглашение (то есть, я хочу начать рисовать ERD со всеми сплошными линиями), но я был бы очень признателен, если бы кто-то мог указать на что-то важное, что я пропускаю.