Различия между ключом, суперключем, минимальным суперключем, кандидатом и первичным ключом - PullRequest
36 голосов
/ 05 августа 2011

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

Каковы различия между ключом, суперключем, минимальным суперключом, кандидатом и первичным ключом?

Ответы [ 9 ]

70 голосов
/ 05 августа 2011

Здесь я копирую и вставляю часть собранной мной информации

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

Типы ключей

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

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

Кандидат или альтернативный ключ Отношение может иметь только один первичный ключ.Он может содержать множество полей или комбинацию полей, которые можно использовать в качестве первичного ключа.Одно поле или комбинация полей используется в качестве первичного ключа.Поля или комбинация полей, которые не используются в качестве первичного ключа, известны как ключ-кандидат или альтернативный ключ.

Составной ключ или объединенный ключ Первичный ключ, который состоит из двух или более атрибутов,известный как составной ключ.

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

A superkey - это комбинация атрибутов, которые могут быть уникально использованы для идентификации записи в базе данных.В таблице может быть много суперключей.Ключи-кандидаты представляют собой особый набор суперключей, в которых нет никакой посторонней информации.

Пример для суперключа : представьте таблицу с полями <Name>, <Age>, <SSN> и <Phone Extension>.Эта таблица имеет много возможных суперключей.Три из них <SSN>, <Phone Extension, Name> и <SSN, Name>.Из перечисленных только ключ-кандидат <SSN>, так как остальные содержат информацию, необязательную для уникальной идентификации записей.

Внешний ключ Внешний ключ - это атрибут или комбинация атрибута вотношение, значение которого соответствует первичному ключу в другом отношении.Таблица, в которой создается внешний ключ, называется зависимой таблицей.Таблица, к которой относится внешний ключ, называется родительской таблицей.

21 голосов
/ 07 ноября 2013

Мне всегда было трудно запомнить все ключи;так что я держу нижеприведенные заметки под рукой, надеюсь, они кому-нибудь помогут! Дайте мне знать, если это можно улучшить.

  • Ключ : Атрибут или комбинация атрибутов, которые однозначно идентифицируют объект / запись вреляционная таблица.

  • PK : уникальный ключ, который не является нулевым.Это один из ключей-кандидатов.

  • Внешний ключ : FK - это ключ в одной таблице (дочерний), который уникальным образом идентифицирует строку другой таблицы (родительского).FK не уникален в дочерней таблице.Это ключ-кандидат в родительской таблице.Ссылочная целостность поддерживается, так как значение в FK присутствует как значение в PK в родительской таблице, в противном случае оно равно NULL.

  • Уникальный ключ : уникальный ключ, который можетили может не быть NULL

  • Натуральный ключ : PK в OLTP.Это может быть PK в OLAP.

  • Суррогатный ключ : Это суррогатный PK в OLAP, действующий в качестве замены PK в OLTP.Искусственный ключ, сгенерированный внутри OLAP.

  • Составной ключ : PK состоит из нескольких атрибутов

  • SuperKey : ключ, которыйможет быть уникально использован для идентификации записи базы данных, которая может содержать дополнительные атрибуты, которые не нужны для уникальной идентификации записей.

  • Ключ-кандидат : Ключ-кандидат может быть уникально использован для идентификации записи в базе данных без каких-либо посторонних данных.Они не нулевые и уникальные.Это минимальный супер-ключ.

  • Альтернативный ключ : Ключ-кандидат, который не является первичным ключом, называется альтернативным ключом.

  • Ключ-кандидат/ s с посторонними данными. Учтите, что это можно использовать для идентификации записи в таблице Employee, но для этой задачи достаточно одного ключа-кандидата.Так становятся посторонние данные.

Обратите внимание, что PK, внешний ключ, уникальный ключ, естественный ключ, суррогатный ключ, составной ключ определены как объекты базы данных;где естественный ключ - это PK в OLTP и может быть PK в целевом OLAP.Для остальных ключей разработчик / архитектор БД должен решить, нужно ли применять ограничения уникальной / ненулевой / ссылочной целостности или нет.

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

key = { All of the below keys   }
PK  = { PK  }
Foreign Key = { Key with Not Null constraint    }
Unique Key  = { {Candidate Key/s}, {attributes containing NULL} }
Natural key = { PK  }
Surrogate Key   = { PK  }
Composite Key   = { PK  }
Super Key   = { {Candidate Key/s}, {Candidate Key/s with Extraneous data}   }
Candidate Key   = { PK, {Alternate Key/s}   }
Alternate Key   = { {Candidate Keys} - PK   }
Candidate Key/s with Extraneous data    = {     }

Я резюмировал это ниже:

Database Keys

Примечания: an-overview-оф-базы-ключей первичной ключ-композиционный ключ-суррогат ключ-е-ал

1 голос
/ 19 октября 2017

В основном на основе принятого ответа, но с несколькими изменениями, чтобы лучше соответствовать определениям, которые преподаются в некоторых курсах:

  • Ключ : набор столбцов $ \ ge1 $.
  • Superkey : ключ, который $ \ supseteq $ - ключ-кандидат.
    • Следовательно, суперключ должен содержать столбцы $> 1 $.
    • Минимальный суперключ $ \ equ $ Ключ-кандидат : ключ, который может однозначно идентифицировать каждую строку в таблице.
    • Первичный ключ : выбранный ключ-кандидат для этого.
    • Вторичный ключ / Альтернативный ключ : Ключ-кандидат не выбран для этого.
  • Ключ поиска : Ключ, используемый для поиска записей.
  • Составной ключ или объединенный ключ : ключ со столбцами $> 1 $.
    • Обычно подразумевается «составной первичный ключ», хотя «составной альтернативный ключ» тоже вещь.
  • Сортировка или управляющая клавиша : клавиша, используемая для физической последовательности сохраненных данных.
  • Внешний ключ Ключ в одной таблице, соответствующий первичному ключу другой таблицы.
    • Таблица, в которой находится внешний ключ, называется зависимой таблицей.
    • Таблица, на которую ссылается внешний ключ, называется родительской таблицей.
1 голос
/ 23 июля 2016

Superkey - Атрибут или набор атрибутов, который однозначно определяет кортеж в отношении.Однако суперключ может содержать дополнительные атрибуты, которые не нужны для уникальной идентификации.

Кандидатный ключ - Суперключ, такой, что никакое правильное подмножество не является суперключем внутри отношения.Итак, в основном имеет два свойства: каждый кандидатный ключ однозначно идентифицирует кортеж в отношении;& нет правильного подмножества составного ключа, обладающего свойством уникальности .

Составной ключ - Когда ключ-кандидат состоит из нескольких атрибутов.

Первичный ключ - Ключ-кандидат, выбранный для уникальной идентификации кортежей внутри отношения.

Альтернативный ключ - Ключ-кандидат, который не является первичным ключом.

Внешний ключ - Атрибут или набор атрибутов в отношении, который соответствует ключу-кандидату некоторого отношения.

1 голос
/ 12 марта 2013

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

0 голосов
/ 26 февраля 2018

Ключ-кандидат : Ключ-кандидат может быть определен как минимальный набор атрибутов, который может уникальным образом Определить кортеж известен как ключ-кандидат. Например, STUD_NO ниже СТУДЕНЧЕСКИЕ ОТНОШЕНИЯ.

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

enter image description here

Супер Ключ : Набор атрибутов, которые могут однозначно идентифицировать кортеж, известен как Супер Ключ. Например, 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.

0 голосов
/ 23 декабря 2017

Суперключ: Суперключ - это набор из одного или нескольких атрибутов, значения которых однозначно идентифицируют кортеж в отношении.

Ключ-кандидат: Ключ-кандидат может бытьопределяется как минимальное подмножество супер ключа.В некоторых случаях кандидат-ключ может не один, поскольку существует только один атрибут - минимальное подмножество.Например,

Employee (id, ssn, name, addrress)

Здесь ключ-кандидат (id, ssn), потому что мы можем легко идентифицировать кортеж, используя id или ssn.В общем, минимальное подмножество суперключа - либо id, либо ssn.но оба они могут рассматриваться как ключ-кандидат.

Первичный ключ: Первичный ключ - это один из ключей-кандидатов.

Пример: Student (Id), Имя, Отдел, Результат)

Здесь

Супер ключ: {Id, Id + Name, Id + Name + Dept}, потому что супер ключ является набором атрибутов.

Ключ-кандидат: Id, потому что только Id является минимальным подмножеством супер ключа.

Первичный ключ: Id, потому что Id является одним из ключей-кандидатов

0 голосов
/ 05 мая 2017

СУПЕР КЛЮЧ:

Атрибут или набор атрибутов, используемых для уникальной идентификации кортежей в базе данных.

КАНДИДАТНЫЙ КЛЮЧ:

  1. Минимальный супер-ключ является ключом-кандидатом
  2. Может быть одним или несколькими
  3. Потенциальные первичные ключи
  4. не нуль
  5. атрибут или набор атрибутов для уникальной идентификации записей в БД

ПЕРВИЧНЫЙ КЛЮЧ:

  1. один из ключей-кандидатов, который используется для уникальной идентификации записей в БД

  2. не нуль

0 голосов
/ 01 августа 2014

Суперключ

A superkey is a combination of attributes that can be uniquely used to identify a 
database record. A table might have many superkeys.Candidate keys are a special subset
of superkeys that do not have any extraneous information in them.

Examples: Imagine a table with the fields <Name>, <Age>, <SSN> and <Phone Extension>.
This table has many possible superkeys. Three of these are <SSN>, <Phone Extension, Name>
and <SSN, Name>.Of those listed, only <SSN> is a **candidate key**, as the others
contain information not necessary to uniquely identify records.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...