Какие ключи?
Ключ СУБД — это атрибут или набор атрибутов, который помогает идентифицировать строку (кортеж) в отношении (таблице). Они позволяют найти связь между двумя таблицами. Клавиши помогают однозначно идентифицировать строку в таблице по комбинации одного или нескольких столбцов в этой таблице.
Пример:
ID сотрудника | Имя | Фамилия |
11 | Эндрю | Джонсон |
22 | Том | Дерево |
33 | Alex | здоровый |
В приведенном выше примере идентификатор сотрудника является первичным ключом, поскольку он однозначно идентифицирует запись сотрудника. В этой таблице ни один другой сотрудник не может иметь такой же идентификатор сотрудника.
В этом уроке вы узнаете:
- Какие ключи?
- Зачем нам нужен ключ?
- Различные ключи в системе управления базами данных
- Что такое супер ключ?
- Что такое первичный ключ?
- Что такое альтернативный ключ?
- Что такое ключ-кандидат?
- Что такое внешний ключ?
- Что такое составной ключ?
- Что такое композитный ключ?
- Что такое суррогатный ключ?
- Разница между первичным и внешним ключом
Зачем нам нужен ключ?
Вот причины использования ключей в системе СУБД.
- Ключи помогают идентифицировать любую строку данных в таблице. В реальном приложении таблица может содержать тысячи записей. Более того, записи могут быть продублированы. Ключи гарантируют, что вы сможете однозначно идентифицировать запись таблицы, несмотря на эти проблемы.
- Позволяет установить связь между и определить связь между таблицами
- Помочь вам обеспечить идентичность и целостность в отношениях.
Различные ключи в системе управления базами данных
СУБД имеет следующие семь типов ключей, каждый из которых имеет свои различные функции:
- Супер Ключ
- Основной ключ
- Ключ-кандидат
- Альтернативный ключ
- Внешний ключ
- Составной ключ
- Композитный ключ
- Суррогатный ключ
Что такое супер ключ?
Суперключ — это группа из одного или нескольких ключей, которая идентифицирует строки в таблице. Супер ключ может иметь дополнительные атрибуты, которые не нужны для уникальной идентификации.
Пример:
EmpSSN | EmpNum | EmpName |
9812345098 | AB05 | показанный |
9876512345 | AB06 | Рослин |
199937890 | AB07 | Джеймс |
В приведенном выше примере имена EmpSSN и EmpNum являются суперключами.
Что такое первичный ключ?
PRIMARY KEY — это столбец или группа столбцов в таблице, которые уникально идентифицируют каждую строку в этой таблице. Первичный ключ не может быть дубликатом, то есть одно и то же значение не может появляться в таблице более одного раза. Таблица не может иметь более одного первичного ключа.
Правила определения первичного ключа:
- Две строки не могут иметь одинаковое значение первичного ключа
- Для каждой строки должно быть значение первичного ключа.
- Поле первичного ключа не может быть пустым.
- Значение в столбце первичного ключа никогда не может быть изменено или обновлено, если какой-либо внешний ключ ссылается на этот первичный ключ.
Пример:
В следующем примере <code> StudID </ code> является первичным ключом.
StudID | Ролл № | Имя | Фамилия | Электронное письмо |
1 | 11 | Том | Цена | [email protected] |
2 | 12 | Ник | Райт | [email protected] |
3 | 13 | Dana | Натана | [email protected] |
Что такое альтернативный ключ?
ALTERNATE KEYS — это столбец или группа столбцов в таблице, которые однозначно идентифицируют каждую строку в этой таблице. Таблица может иметь несколько вариантов выбора первичного ключа, но в качестве первичного ключа может быть задан только один. Все ключи, которые не являются первичными ключами, называются альтернативными ключами.
Пример:
В этой таблице StudID, Roll No, Email могут стать первичным ключом. Но поскольку StudID является первичным ключом, Roll No, Email становится альтернативным ключом.
StudID | Ролл № | Имя | Фамилия | Электронное письмо |
1 | 11 | Том | Цена | [email protected] |
2 | 12 | Ник | Райт | [email protected] |
3 | 13 | Dana | Натана | [email protected] |
Что такое ключ-кандидат?
CANDIDATE KEY — это набор атрибутов, которые однозначно идентифицируют кортежи в таблице. Ключ-кандидат — это супер-ключ без повторяющихся атрибутов. Первичный ключ должен быть выбран из возможных ключей. В каждой таблице должен быть хотя бы один ключ-кандидат. Таблица может иметь несколько ключей-кандидатов, но только один первичный ключ.
Свойства ключа-кандидата:
- Он должен содержать уникальные значения
- Ключ-кандидат может иметь несколько атрибутов
- Не должен содержать нулевые значения
- Он должен содержать минимальные поля для обеспечения уникальности
- Уникальная идентификация каждой записи в таблице
Пример: в данной таблице идентификатор студента, номер ролика и адрес электронной почты являются ключами-кандидатами, которые помогают нам однозначно идентифицировать запись студента в таблице.
StudID | Ролл № | Имя | Фамилия | Электронное письмо |
1 | 11 | Том | Цена | [email protected] |
2 | 12 | Ник | Райт | [email protected] |
3 | 13 | Dana | Натана | [email protected] |
Что такое внешний ключ?
FOREIGN KEY — это столбец, который создает связь между двумя таблицами. Назначение внешних ключей заключается в поддержании целостности данных и возможности навигации между двумя различными экземплярами объекта. Он действует как перекрестная ссылка между двумя таблицами, так как ссылается на первичный ключ другой таблицы.
Пример:
DeptCode | DEPTNAME |
001 | Наука |
002 | английский |
005 | компьютер |
ID учителя | Fname | Lname |
B002 | Дэвид | сигнализатор |
B017 | Сара | Джозеф |
B009 | Майк | Брантон |
В этом примере у нас есть два стола, учить и отдел в школе. Тем не менее, нет способа узнать, какой поиск работает в каком отделе.
В этой таблице, добавив внешний ключ в Deptcode к имени учителя, мы можем создать связь между двумя таблицами.
ID учителя | DeptCode | Fname | Lname |
B002 | 002 | Дэвид | сигнализатор |
B017 | 002 | Сара | Джозеф |
B009 | 001 | Майк | Брантон |
Эта концепция также известна как ссылочная целостность.
Что такое составной ключ?
КЛАВИША СОЕДИНЕНИЯ имеет два или более атрибута, которые позволяют однозначно распознавать конкретную запись. Возможно, что каждый столбец не может быть уникальным сам по себе в базе данных. Однако при объединении с другим столбцом или столбцами комбинация составных ключей становится уникальной. Целью составного ключа является уникальная идентификация каждой записи в таблице.
Пример:
№ заказа | PorductID | наименование товара | Количество |
B005 | JAP102459 | мышь | 5 |
B005 | DKT321573 | USB | 10 |
B005 | OMG446789 | ЖК монитор | 20 |
B004 | DKT321573 | USB | 15 |
B002 | OMG446789 | Лазерный принтер | 3 |
В этом примере OrderNo и ProductID не могут быть первичным ключом, поскольку они не уникально идентифицируют запись. Однако можно использовать составной ключ из идентификатора заказа и идентификатора продукта, поскольку он однозначно идентифицирует каждую запись.
Что такое композитный ключ?
КОМПОЗИЦИОННЫЙ КЛЮЧ — это комбинация двух или более столбцов, которые однозначно идентифицируют строки в таблице. Комбинация столбцов гарантирует уникальность, хотя индивидуальная уникальность не гарантируется. Следовательно, они объединены, чтобы однозначно идентифицировать записи в таблице.
Разница между составным и составным ключом заключается в том, что любая часть составного ключа может быть внешним ключом, но составной ключ может быть или не быть частью внешнего ключа.
Что такое суррогатный ключ?
Искусственный ключ, предназначенный для уникальной идентификации каждой записи, называется суррогатным ключом. Такие ключи уникальны, потому что они создаются, когда у вас нет естественного первичного ключа. Они не придают никакого значения данным в таблице. Суррогатный ключ обычно является целым числом.
Fname | Фамилия | Время начала | Время окончания |
Энн | кузнец | 9:00 | 18:00 |
Джек | Фрэнсис | 8:00 | 17:00 |
Анна | McLean | 11:00 | 20:00 |
показанный | Willam | 14:00 | 23:00 |
Выше приведен пример, показывающий сроки смены разных сотрудников. В этом примере суррогатный ключ необходим для уникальной идентификации каждого сотрудника.
Суррогатные ключи разрешены, когда
- Ни одно свойство не имеет параметра первичного ключа.
- В таблице, когда первичный ключ слишком большой или сложный.
Разница между первичным и внешним ключом
Основной ключ | Внешний ключ |
Помогает вам однозначно идентифицировать запись в таблице. | Это поле в таблице, которое является первичным ключом другой таблицы. |
Первичный ключ никогда не принимает нулевые значения. | Внешний ключ может принимать несколько нулевых значений. |
Первичный ключ — это кластеризованный индекс, а данные в таблице СУБД физически организованы в последовательности кластерного индекса. | Внешний ключ не может автоматически создавать индекс, кластеризованный или некластеризованный. Однако вы можете вручную создать индекс по внешнему ключу. |
Вы можете иметь один первичный ключ в таблице. | Вы можете иметь несколько внешних ключей в таблице. |
Резюме
- Ключ СУБД — это атрибут или набор атрибутов, который помогает вам идентифицировать строку (кортеж) в отношении (таблице)
- Ключи СУБД позволяют установить связь и идентифицировать связь между таблицами
- Семь типов ключей СУБД: супер, первичный, кандидатный, альтернативный, внешний, составной, составной и суррогатный ключ.
- Суперключ — это группа из одного или нескольких ключей, которая идентифицирует строки в таблице.
- Столбец или группа столбцов в таблице, которая помогает нам однозначно идентифицировать каждую строку в этой таблице, называется первичным ключом.
- Все ключи, которые не являются первичными ключами, называются альтернативными ключами.
- Супер ключ без повторяющегося атрибута называется ключом-кандидатом
- Составной ключ — это ключ, который имеет много полей, которые позволяют однозначно распознать конкретную запись
- Ключ, имеющий несколько атрибутов для уникальной идентификации строк в таблице, называется составным ключом.
- Искусственный ключ, предназначенный для уникальной идентификации каждой записи, называется суррогатным ключом.
- Первичный ключ никогда не принимает нулевые значения, в то время как внешний ключ может принимать несколько нулевых значений.