Рубрики

Типы ключей в реляционной модели (кандидат, супер, первичный, альтернативный и иностранный)

Мы настоятельно рекомендуем ссылаться на этот пост ниже.

СУБД | Введение в реляционную модель и правила Кодда

Различные типы ключей в реляционной модели

Ключ-кандидат . Минимальный набор атрибутов, который может однозначно идентифицировать кортеж, известен как ключ-кандидат. Например, STUD_NO в отношении STUDENT.

  • Значение ключа-кандидата уникально и не равно нулю для каждого кортежа.
  • В отношении может быть более одного ключа-кандидата. Например, STUD_NO является ключом-кандидатом для отношения STUDENT.
  • Ключ-кандидат может быть простым (имеющим только один атрибут) или составным. Например, {STUD_NO, COURSE_NO} является составным ключом-кандидатом для отношения STUDENT_COURSE.

Примечание. В Sql Server уникальное ограничение, которое имеет столбец, допускающий значение NULL, допускает использование значения NULL в этом столбце только один раз . Вот почему атрибут STUD_PHONE в качестве кандидата здесь, но не может быть «нулевых» значений в атрибуте первичного ключа.

Super Key: набор атрибутов, которые могут однозначно идентифицировать кортеж, называется Super Key. Например, STUD_NO, (STUD_NO, STUD_NAME) и т. Д.

  • Добавление ноля или более атрибутов в ключ-кандидат создает супер-ключ.
  • Ключ-кандидат — это супер-ключ, но, наоборот, это не так.

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

Альтернативный ключ: Ключ- кандидат, отличный от первичного ключа, называется альтернативным ключом. Например, STUD_NO, как и STUD_PHONE, оба являются ключами-кандидатами для отношения STUDENT, но STUD_PHONE будет альтернативным ключом (только один из многих ключей-кандидатов).

Внешний ключ: если атрибут может принимать только значения, которые присутствуют в качестве значений какого-либо другого атрибута, он будет внешним ключом для атрибута, к которому он относится. Отношение, на которое ссылаются, называется ссылочным отношением, и соответствующий атрибут называется ссылочным атрибутом, а отношение, которое ссылается на ссылочное отношение, называется ссылочным отношением, а соответствующий атрибут называется ссылочным атрибутом. Ссылочный атрибут ссылочного отношения должен быть первичным ключом для него. Например, STUD_NO в STUDENT_COURSE является внешним ключом для STUD_NO в отношении STUDENT.

Может быть, стоит отметить, что в отличие от первичного ключа любого данного отношения внешний ключ может иметь значение NULL, а также может содержать повторяющиеся кортежи, т. Е. Он не должен следовать ограничениям уникальности.

Например, STUD_NO в отношении STUDENT_COURSE не является уникальным. Это было повторено для первого и третьего кортежа. Однако отношение STUD_NO в STUDENT является первичным ключом, и оно должно быть всегда уникальным и не может быть нулевым.

Пожалуйста, напишите комментарии, если вы обнаружите что-то неправильное, или вы хотите поделиться дополнительной информацией по обсуждаемой теме

Рекомендуемые посты:

Типы ключей в реляционной модели (кандидат, супер, первичный, альтернативный и иностранный)

0.00 (0%) 0 votes