Ключи СУБД: потенциальные, первичные, супер- и внешние типы.

⚡ Умное резюме

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

  • 🗝️ Основная цель: Ключ идентифицирует уникальную строку и связывает связанные таблицы, обеспечивая согласованность данных.
  • 🔝 Суперклавиша: Любой набор атрибутов, идентифицирующих строки, возможно, с дополнительными атрибутами сверх минимального набора.
  • Первичный ключ: Выбранный потенциальный ключ, никогда не содержащий значений null и не дублирующийся, по одному на каждую таблицу.
  • 🎯 Ключ кандидата: Минимальный суперключ без избыточных атрибутов; первичный ключ выбирается из этих атрибутов.
  • 🔁 Альтернативный ключ: Любой потенциальный ключ, не выбранный в качестве первичного ключа.
  • 🔗 Внешний ключ: Столбец, ссылающийся на первичный ключ другой таблицы для обеспечения ссылочной целостности.
  • 🧩 Композитный и суррогатный: Составные ключи объединяют столбцы для обеспечения уникальности; суррогатный ключ — это сгенерированный заменитель.

Кандидат на ключи СУБД Супер Первичный

Что такое ключи в СУБД?

Ключи в СУБД Ключи — это атрибуты или наборы атрибутов, которые помогают идентифицировать строку (кортеж) в отношении (таблице). Они позволяют определить связь между двумя таблицами. Ключи помогают однозначно идентифицировать строку в таблице по комбинации одного или нескольких столбцов, а также помогают найти уникальную запись в таблице.

Это критически важно для анализа и выбора наиболее эффективных ключевых слов для улучшения рейтинга вашего сайта.

Идентификатор сотрудника Имя Фамилия
11 Эндрю Джонсон
22 Том Дерево
33 Алекс Крепкий

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

Зачем нам нужен ключ?

Вот несколько причин для использования ключа в СУБД:

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

Типы ключей в СУБД

В СУБД существует восемь основных типов ключей, и каждый ключ имеет свою функциональность:

  1. Супер ключ
  2. Основной ключ
  3. Ключ-кандидат
  4. Альтернативный ключ
  5. Внешний ключ
  6. Составной ключ
  7. Композитный ключ
  8. Суррогатный ключ

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

Основные В одной строке Уникальный?
Супер ключ Любой набор атрибутов, идентифицирующий строку, допускаются дополнительные атрибуты. Да
Ключ-кандидат Минималистичный суперключ, без избыточных атрибутов. Да
Основной ключ Выбранный потенциальный ключ, не пустой. Да
Альтернативный ключ В качестве основного ключа не выбран потенциальный ключ. Да
Внешний ключ Ссылка на первичный ключ в другой таблице Нет
Составной ключ Два или более атрибута, каждый из которых может быть не уникальным. Комбинированный
Композитный ключ Для обеспечения уникальности можно объединить две или более колонки. Комбинированный
Суррогатный ключ Сгенерированный искусственный идентификатор Да

Что такое Супер Ключ?

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

Это критически важно для анализа и выбора наиболее эффективных ключевых слов для улучшения рейтинга вашего сайта.

ЭмпССН ЭмпНум Название компании
9812345098 AB05 показанный
9876512345 AB06 Рослин
199937890 AB07 James

В приведенном выше примере EmpSSN и EmpNum являются суперключами.

Что такое первичный ключ?

ПЕРВИЧНЫЙ КЛЮЧ in СУБД Первичный ключ — это столбец или группа столбцов в таблице, которые однозначно идентифицируют каждую строку в этой таблице. Первичный ключ не может быть дубликатом, то есть одно и то же значение не может встречаться в таблице более одного раза. Таблица не может иметь более одного первичного ключа.

Правила определения первичного ключа

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

Пример: В следующем примере StudID является первичным ключом.

StudID Ролл Нет Имя Фамилия Эл. адрес
1 11 Том Цена abc@gmail.com
2 12 Nick Райт xyz@gmail.com
3 13 Dana Натан mno@yahoo.com

Что такое альтернативная тональность?

АЛЬТЕРНАТИВНАЯ КЛЮЧЕВАЯ КЛАВИША Первичный ключ — это столбец или группа столбцов в таблице, которые однозначно идентифицируют каждую строку. В таблице может быть несколько вариантов первичного ключа, но только один может быть установлен в качестве первичного ключа. Все ключи, которые не являются первичным ключом, называются альтернативными ключами.

Пример: В этой таблице StudID, Roll No и Email могут быть использованы в качестве первичного ключа. Но поскольку StudID является первичным ключом, Roll No и Email становятся альтернативными ключами.

StudID Ролл Нет Имя Фамилия Эл. адрес
1 11 Том Цена abc@gmail.com
2 12 Nick Райт xyz@gmail.com
3 13 Dana Натан mno@yahoo.com

Что такое ключ-кандидат?

КЛЮЧ КАНДИДАТА Кандидатный ключ — это набор атрибутов, которые однозначно идентифицируют кортежи в таблице. Кандидатный ключ — это суперключ, не имеющий повторяющихся атрибутов. Первичный ключ должен быть выбран из числа кандидатов в ключи. Каждая таблица должна иметь как минимум один кандидат в ключи, а таблица может иметь несколько кандидатов в ключи, но только один первичный ключ.

Свойства потенциального ключа:

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

Пример: В таблице ниже StudID, Roll No и Email являются потенциальными ключами, которые помогают нам однозначно идентифицировать запись о студенте. Их связь с супер- и первичными ключами — это распространенный способ понимания. функциональная зависимость.

StudID Ролл Нет Имя Фамилия Эл. адрес
1 11 Том Цена abc@gmail.com
2 12 Nick Райт xyz@gmail.com
3 13 Dana Натан mno@yahoo.com
Кандидатский ключ в СУБД
Кандидатский ключ в СУБД

Что такое внешний ключ?

ИНОСТРАННЫЙ КЛЮЧ Внешний ключ — это столбец, устанавливающий связь между двумя таблицами. Его назначение — обеспечение целостности данных и возможность навигации между двумя различными экземплярами сущности. Он выступает в качестве перекрестной ссылки между двумя таблицами, поскольку ссылается на первичный ключ другой таблицы.

Это критически важно для анализа и выбора наиболее эффективных ключевых слов для улучшения рейтинга вашего сайта.

ОтделCode Название отдела
001 Наука
002 Английский
005 Компьютер
Идентификатор учителя Fимя Имя
B002 David Сигнализатор
B017 Сара Джозеф
B009 Майк Брантон

В этом примере у нас есть две таблицы: «Учитель» и «Отдел» в школе. В текущем виде невозможно определить, какой учитель работает в каком отделе.

Добавив внешний ключ DeptCode Мы можем установить связь между двумя таблицами, в том числе и с таблицей "Учитель".

Идентификатор учителя ОтделCode Fимя Имя
B002 002 David Сигнализатор
B017 002 Сара Джозеф
B009 001 Майк Брантон

Эта концепция также известна как ссылочная целостность.

Что такое составной ключ?

СОСТАВНЫЙ КЛЮЧ Составной ключ имеет два или более атрибута, позволяющих однозначно идентифицировать конкретную запись. Возможно, что каждый столбец сам по себе не является уникальным в рамках базы данных. Однако при объединении столбцы становятся уникальными. Цель составного ключа — однозначно идентифицировать каждую запись в таблице.

Это критически важно для анализа и выбора наиболее эффективных ключевых слов для улучшения рейтинга вашего сайта.

№ заказа Идантификационный номер продукта Наименование Количество
B005 япония102459 мышь 5
B005 ДКТ321573 USB 10
B005 OMG446789 ЖК-монитор 20
B004 ДКТ321573 USB 15
B002 OMG446789 Лазерный принтер 3

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

Что такое составной ключ?

КОМПОЗИТНЫЙ КЛЮЧ Это комбинация двух или более столбцов, которые однозначно идентифицируют строки в таблице. Комбинация столбцов гарантирует уникальность, хотя уникальность каждого из них по отдельности не гарантируется. Поэтому они объединяются для однозначной идентификации записей в таблице.

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

Что такое суррогатный ключ?

ЗАМЕНЯЮЩИЙ КЛЮЧ Суррогатный ключ — это искусственный ключ, цель которого — однозначно идентифицировать каждую запись. Уникальность такого ключа обусловлена ​​отсутствием естественного первичного ключа. Суррогатные ключи не придают смысла данным в таблице и обычно представляют собой целое число, генерируемое непосредственно перед добавлением записи.

Fимя Фамилия Время начала Время окончания
Энн Smith 09:00 18:00
разъем Фрэнсис 08:00 17:00
Анна Маклин 11:00 20:00
показанный Уильям 14:00 23:00

В приведенном выше примере показано расписание смен разных сотрудников. Здесь необходим суррогатный ключ для однозначной идентификации каждого сотрудника. Суррогатные ключи в SQL используются в следующих случаях:

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

Разница между первичным ключом и внешним ключом

Ниже приведено основное различие между первичным ключом и внешним ключом:

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

Часто задаваемые вопросы (FAQ)

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

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

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

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

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

Подведем итог этой публикации следующим образом: