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

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

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

9 ответов


здесь я копирую вставить некоторые из информации, которую я собрал

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

типы Ключи!--14-->

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

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

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

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

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

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

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

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


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

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

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

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

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

  • естественный ключ: PK в OLTP. Это может быть ПК в OLAP.

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

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

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

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

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

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

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

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

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

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


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


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

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

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

первичный ключ - ключ-кандидат, выбранный для идентификации кортежей однозначно в пределах отношения.

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

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


СУПЕР КЛЮЧ:

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

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

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

основной Ключ:

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

  2. не null


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

  • ключ: набор столбцов $\ge1$.
  • Суперключ: ключ, потенциальный ключ\supseteq $$ а.
    • поэтому суперклей должен содержать столбцы $>1$.
    • минимальный супер ключ $\equiv$ Кандидат: ключ, который может однозначно идентифицировать каждую строку в таблица.
    • Первичный Ключ: выбранный ключ кандидата для этого.
    • вторичный ключ / запасной ключ: ключ кандидата не выбран для этого.
  • Поиск Ключа: ключ, используемый для поиска записей.
  • составной ключ или конкатенируют ключ: ключ с столбцами $>1$.
    • обычно подразумевает "составной первичный ключ", хотя " составной альтернативный ключ" - это тоже вещь.
  • вроде или клавишу управления: ключ, используемый для физической последовательности сохраненных данных.
  • Внешний Ключ ключ в одной таблице, который соответствует первичному ключу другой таблицы.
    • таблица, в которой находится внешний ключ, называется зависимой таблицей.
    • таблица, на которую ссылается внешний ключ, называется родительской таблицей.

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

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

сотрудник (id, ssn, имя, адрес)

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

Первичный Ключ : первичный ключ является одним из основных кандидатов.

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

здесь

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

ключ кандидата: Id потому что Id один минимальное подмножество super ключ.

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


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

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

enter image description here

Супер Ключ: набор атрибутов, которые могут однозначно идентифицировать Кортеж, называется Super Key. Например, STUD_NO, (STUD_NO, STUD_NAME) и т. д. Добавление нуля или более атрибуты ключа-кандидата генерирует супер ключ. Ключ-кандидат-это супер ключ, но наоборот неправда. Первичный ключ: не может быть более одного ключа-кандидата в отношение, из которого можно выбрать первичный ключ. например, STUD_NO а также STUD_PHONE оба потенциальных ключей отношения STUDENT, но STUD_NO можно выбрать в качестве первичного ключа (только один из многие ключи-кандидаты).

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

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


Суперключ

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.