Ключи СУБД: потенциальные, первичные, супер- и внешние типы.
⚡ Умное резюме
Ключи в СУБД — это атрибуты, которые однозначно идентифицируют строку в таблице и устанавливают связи между таблицами. Восемь типов ключей, от супер- и первичных до внешних и суррогатных, обеспечивают идентичность и целостность данных в реляционной базе данных.
Что такое ключи в СУБД?
Ключи в СУБД Ключи — это атрибуты или наборы атрибутов, которые помогают идентифицировать строку (кортеж) в отношении (таблице). Они позволяют определить связь между двумя таблицами. Ключи помогают однозначно идентифицировать строку в таблице по комбинации одного или нескольких столбцов, а также помогают найти уникальную запись в таблице.
Это критически важно для анализа и выбора наиболее эффективных ключевых слов для улучшения рейтинга вашего сайта.
| Идентификатор сотрудника | Имя | Фамилия |
|---|---|---|
| 11 | Эндрю | Джонсон |
| 22 | Том | Дерево |
| 33 | Алекс | Крепкий |
В приведенном выше примере идентификатор сотрудника является первичным ключом, поскольку он однозначно идентифицирует запись о сотруднике. В этой таблице ни один другой сотрудник не может иметь тот же идентификатор.
Зачем нам нужен ключ?
Вот несколько причин для использования ключа в СУБД:
- Ключи помогают идентифицировать любую строку данных в таблице. В реальных условиях таблица может содержать тысячи записей, и эти записи могут дублироваться. Ключи гарантируют, что вы сможете однозначно идентифицировать запись в таблице, несмотря на эти сложности.
- Они позволяют устанавливать и идентифицировать связи между таблицами.
- Они помогают укрепить идентичность и целостность в отношениях.
Типы ключей в СУБД
В СУБД существует восемь основных типов ключей, и каждый ключ имеет свою функциональность:
- Супер ключ
- Основной ключ
- Ключ-кандидат
- Альтернативный ключ
- Внешний ключ
- Составной ключ
- Композитный ключ
- Суррогатный ключ
В таблице ниже приведено краткое описание всех восьми пунктов, после чего каждый из них подробно объясняется.
| Основные | В одной строке | Уникальный? |
|---|---|---|
| Супер ключ | Любой набор атрибутов, идентифицирующий строку, допускаются дополнительные атрибуты. | Да |
| Ключ-кандидат | Минималистичный суперключ, без избыточных атрибутов. | Да |
| Основной ключ | Выбранный потенциальный ключ, не пустой. | Да |
| Альтернативный ключ | В качестве основного ключа не выбран потенциальный ключ. | Да |
| Внешний ключ | Ссылка на первичный ключ в другой таблице | Нет |
| Составной ключ | Два или более атрибута, каждый из которых может быть не уникальным. | Комбинированный |
| Композитный ключ | Для обеспечения уникальности можно объединить две или более колонки. | Комбинированный |
| Суррогатный ключ | Сгенерированный искусственный идентификатор | Да |
Что такое Супер Ключ?
Суперключ — это группа из одного или нескольких ключей, идентифицирующих строки в таблице. Суперключ может иметь дополнительные атрибуты, которые не требуются для уникальной идентификации.
Это критически важно для анализа и выбора наиболее эффективных ключевых слов для улучшения рейтинга вашего сайта.
| ЭмпССН | ЭмпНум | Название компании |
|---|---|---|
| 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 используются в следующих случаях:
- Ни одно свойство не имеет параметра первичного ключа.
- Основной ключ слишком большой или сложный.
Разница между первичным ключом и внешним ключом
Ниже приведено основное различие между первичным ключом и внешним ключом:
| Основной ключ | Внешний ключ |
|---|---|
| Помогает однозначно идентифицировать запись в таблице. | Это поле таблицы, которое является первичным ключом другой таблицы. |
| Первичный ключ никогда не принимает нулевые значения. | Внешний ключ может принимать несколько нулевых значений. |
| Первичным ключом является кластерный индекс, и данные в таблице физически организованы в последовательности, указанной в кластерном индексе. | Внешний ключ не может автоматически создать индекс, кластерный или некластерный. Вы можете создать его вручную. |
| В таблице может быть только один первичный ключ. | В таблице может быть несколько внешних ключей. |

