Справочник от Автор24
Найди эксперта для помощи в учебе
Найти эксперта
+2

Первичные и внешние ключи в инфологической модели данных «сущность-связь»

Определение 1

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

Замечание 1

У каждой сущности должен быть хотя бы один возможный ключ.

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

Первичные ключи

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

Например, чтобы идентифицировать студента можно применять или уникальный номер зачетной книжки, или набор атрибутов (фамилия, имя, отчество, номер группы). Возможно к набору атрибутов добавление дополнительных атрибутов, т.к. в группе может быть 2 студента с одинаковыми данными.

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

Внешние ключи

  • Если сущности А и В связывает сущность С, то она должна содержать внешние ключи, которые соответствуют первичным ключам сущностей А и В.
  • Если сущность В характеризует сущность А, то она должна содержать внешний ключ, который соответствует первичному ключу сущности А.

Для каждого из внешних ключей нужно получить ответы на 3 вопроса:

1-й вопрос: может ли значение данного внешнего ключа быть неопределенным (NULL-значением)?

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

«Первичные и внешние ключи в инфологической модели данных «сущность-связь»» 👇
Помощь эксперта по теме работы
Найти эксперта
Решение задач от ИИ за 2 минуты
Решить задачу
Найди решение своей задачи среди 1 000 000 ответов
Найти

2-й вопрос: что должно произойти при УДАЛЕНИИ экземпляра сущности с первичным ключом, на который ссылается внешний ключ?

Например, если удаляется поставщик, осуществивший хотя бы одну поставку, существует 3 варианта, при которых поставка:

  • КАСКАДИРУЕТСЯ – удаляются все поставки данного поставщика.
  • ОГРАНИЧИВАЕТСЯ – удаляются только не осуществлявшие поставок поставщики. В противном случае удаление отклоняется.
  • УСТАНАВЛИВАЕТСЯ – для всех поставок данного поставщика значение внешнего ключа устанавливается в NULL (неопределенное), а после данный поставщик удаляется. Подобная возможность, естественно, не может быть применена, если внешний ключ не может содержать неопределенных значений (NULL).

3-й вопрос – какая операция должна выполняться при ОБНОВЛЕНИИ первичного ключа сущности, на который ссылается внешний ключ?

Например, при попытке обновления номера поставщика, который выполнил хотя бы одну поставку возможны те же 3 варианта, что и при удалении:

  • КАСКАДИРУЕТСЯ – обновляется также и внешний ключ в поставках данного поставщика.
  • ОГРАНИЧИВАЕТСЯ – обновляются первичные ключи только не осуществлявших поставок поставщиков, в противном случае операция обновления отклоняется.
  • УСТАНАВЛИВАЕТСЯ – для всех поставок поставщика, который обновляется, внешний ключ устанавливается в NULL-значение, а после выполняется обновление первичного ключа поставщика. Подобная возможность, естественно, не может быть применена, если внешний ключ не может содержать неопределенных значений (NULL).

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

Воспользуйся нейросетью от Автор24
Не понимаешь, как писать работу?
Попробовать ИИ
Дата написания статьи: 12.09.2016
Найди решение своей задачи среди 1 000 000 ответов
Крупнейшая русскоязычная библиотека студенческих решенных задач
Все самое важное и интересное в Telegram

Все сервисы Справочника в твоем телефоне! Просто напиши Боту, что ты ищешь и он быстро найдет нужную статью, лекцию или пособие для тебя!

Перейти в Telegram Bot