Разместить заказ
Вы будете перенаправлены на Автор24

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

8-800-775-03-30 support@author24.ru
Статья предоставлена специалистами сервиса Автор24
Автор24 - это сообщество учителей и преподавателей, к которым можно обратиться за помощью с выполнением учебных работ.
как работает сервис
Все предметы / Базы данных / Инфологическая модель данных «сущность-связь». Основные понятия / Первичные и внешние ключи в инфологической модели данных «сущность-связь»
Первичные и внешние ключи в инфологической модели данных «сущность-связь»
Определение 1

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

Замечание 1

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

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

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

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

Готовые работы на аналогичную тему

Получить выполненную работу или консультацию специалиста по вашему учебному проекту Узнать стоимость

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ограниченное предложение
Введите email чтобы зафиксировать скидку
300 ₽
На любой первый заказ в Автор24