Слабая сущность с уникальным номером ID

Это пример базы данных наблюдателя за птицами. Скажите, если у вас есть три лица, BirdSpecies, Location а также Observer, Иметь сущность ObservationВам нужны все эти три. Без них нет наблюдения.

Насколько я понимаю, требование выше делает Observation слабая сущность. Но что, если один и тот же человек может обнаружить один и тот же вид несколько раз в одном и том же месте? Тогда запись не будет уникальной.

Поэтому мой вопрос, можете ли вы иметь первичный ключ для Observation это просто число, последовательно увеличивающееся для каждого наблюдения, и объект все еще остается слабым?

2 ответа

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

Чтобы записать несколько наблюдений одного и того же человека одного и того же вида в одном и том же месте, я бы включил значение даты / времени в Observation отношение и первичный ключ или, в качестве альтернативы, столбец с не простым числом для записи количества наблюдений. Помните, что отношения не могут иметь повторяющиеся записи, поэтому риск заключается не в уникальности без отличительного столбца, а в вашей способности записывать несколько записей. СУБД SQL, однако, не являются должным образом реляционными и позволят вам выстрелить себе в ногу.

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

Я думаю, что слабость новой сущности обусловлена ​​ее отношениями, которые сейчас имеют первостепенное значение.

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

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