Что такое ключи в СУБД?
КЛЮЧИ в СУБД - это атрибут или набор атрибутов, которые помогают идентифицировать строку (кортеж) в отношении (таблице). Они позволяют найти связь между двумя таблицами. Ключи помогают однозначно идентифицировать строку в таблице по комбинации одного или нескольких столбцов в этой таблице. Ключ также полезен для поиска уникальной записи или строки в таблице. Ключ базы данных также полезен для поиска уникальной записи или строки в таблице.
Пример:
ID сотрудника | Имя | Фамилия |
11 | Андрей | Джонсон |
22 | Том | Дерево |
33 | Алекс | Hale |
В приведенном выше примере идентификатор сотрудника является первичным ключом, поскольку он однозначно определяет запись сотрудника. В этой таблице ни один другой сотрудник не может иметь такой же идентификатор сотрудника.
В этом руководстве вы узнаете:
- Что такое ключи?
- Зачем нам нужен ключ?
- Различные ключи в системе управления базами данных
- Что такое супер ключ?
- Что такое первичный ключ?
- Что такое альтернативный ключ?
- Что такое Candidate Key?
- Что такое внешний ключ?
- Что такое составной ключ?
- Что такое составной ключ?
- Что такое суррогатный ключ?
- Разница между первичным и внешним ключом
Зачем нам нужен ключ?
Вот несколько причин для использования ключа sql в системе СУБД.
- Ключи помогают идентифицировать любую строку данных в таблице. В реальном приложении таблица может содержать тысячи записей. Более того, записи могли дублироваться. Ключи гарантируют, что вы можете однозначно идентифицировать запись таблицы, несмотря на эти проблемы.
- Позволяет установить взаимосвязь между таблицами и определить взаимосвязь между ними.
- Помогите вам укрепить идентичность и целостность в отношениях.
Типы ключей в системе управления базами данных
В СУБД существует в основном семь различных типов ключей, и каждый ключ имеет свои разные функции:
- Супер-ключ - Супер-ключ - это группа из одного или нескольких ключей, которая идентифицирует строки в таблице.
- Первичный ключ - это столбец или группа столбцов в таблице, которые однозначно идентифицируют каждую строку в этой таблице.
- Ключ кандидата - это набор атрибутов, которые однозначно идентифицируют кортежи в таблице. Ключ кандидата - это супер ключ без повторяющихся атрибутов.
- Альтернативный ключ - это столбец или группа столбцов в таблице, которые однозначно идентифицируют каждую строку в этой таблице.
- Внешний ключ - это столбец, который создает связь между двумя таблицами. Назначение внешних ключей - поддерживать целостность данных и обеспечивать навигацию между двумя разными экземплярами объекта.
- Составной ключ - имеет два или более атрибута, позволяющих однозначно распознать определенную запись. Возможно, что каждый столбец не может быть уникальным сам по себе в базе данных.
- Составной ключ - искусственный ключ, предназначенный для уникальной идентификации каждой записи, называется суррогатным ключом. Такие ключи уникальны, потому что они создаются, когда у вас нет естественного первичного ключа.
- Суррогатный ключ . Искусственный ключ, предназначенный для уникальной идентификации каждой записи, называется суррогатным ключом. Такие ключи уникальны, потому что они создаются, когда у вас нет естественного первичного ключа.
Что такое супер ключ?
Суперключ - это группа из одного или нескольких ключей, которая идентифицирует строки в таблице. Супер ключ может иметь дополнительные атрибуты, которые не нужны для уникальной идентификации.
Пример:
EmpSSN | EmpNum | Empname |
9812345098 | AB05 | Показано |
9876512345 | AB06 | Рослин |
199937890 | AB07 | Джеймс |
В приведенном выше примере EmpSSN и EmpNum name являются суперключами.
Что такое первичный ключ?
ПЕРВИЧНЫЙ КЛЮЧ - это столбец или группа столбцов в таблице, которые однозначно идентифицируют каждую строку в этой таблице. Первичный ключ не может быть дубликатом, что означает, что одно и то же значение не может появляться в таблице более одного раза. Таблица не может иметь более одного первичного ключа.
Правила определения первичного ключа:
- Две строки не могут иметь одинаковое значение первичного ключа
- Для каждой строки должно быть значение первичного ключа.
- Поле первичного ключа не может быть пустым.
- Значение в столбце первичного ключа никогда не может быть изменено или обновлено, если какой-либо внешний ключ ссылается на этот первичный ключ.
Пример:
В следующем примере StudID
- это первичный ключ.
StudID | Ролл Нет | Имя | Фамилия | Электронное письмо |
1 | 11 | Том | Цена | Этот адрес электронной почты защищен от спам-ботов. У вас должен быть включен JavaScript для просмотра. |
2 | 12 | Ник | Райт | Этот адрес электронной почты защищен от спам-ботов. У вас должен быть включен JavaScript для просмотра. |
3 | 13 | Дана | Натан | Этот адрес электронной почты защищен от спам-ботов. У вас должен быть включен JavaScript для просмотра. |
Что такое альтернативный ключ?
ALTERNATE KEYS - это столбец или группа столбцов в таблице, которые однозначно идентифицируют каждую строку в этой таблице. Таблица может иметь несколько вариантов первичного ключа, но только один может быть установлен в качестве первичного ключа. Все ключи, которые не являются первичными, называются альтернативными ключами.
Пример:
В этой таблице StudID, Roll No, Email квалифицируются как первичный ключ. Но поскольку StudID является первичным ключом, Roll No, электронная почта становится альтернативным ключом.
StudID | Ролл Нет | Имя | Фамилия | Электронное письмо |
1 | 11 | Том | Цена | Этот адрес электронной почты защищен от спам-ботов. У вас должен быть включен JavaScript для просмотра. |
2 | 12 | Ник | Райт | Этот адрес электронной почты защищен от спам-ботов. У вас должен быть включен JavaScript для просмотра. |
3 | 13 | Дана | Натан | Этот адрес электронной почты защищен от спам-ботов. У вас должен быть включен JavaScript для просмотра. |
Что такое ключ кандидата?
CANDIDATE KEY - это набор атрибутов, которые однозначно идентифицируют кортежи в таблице. Ключ кандидата - это супер ключ без повторяющихся атрибутов. Первичный ключ должен быть выбран из возможных ключей. В каждой таблице должен быть хотя бы один ключ-кандидат. Таблица может иметь несколько ключей-кандидатов, но только один первичный ключ.
Свойства ключа кандидата:
- Он должен содержать уникальные значения
- Ключ кандидата может иметь несколько атрибутов
- Не должно содержать нулевых значений
- Он должен содержать минимум полей для обеспечения уникальности
- Однозначно идентифицируйте каждую запись в таблице
Пример: в данной таблице Stud ID, Roll No и email являются ключами-кандидатами, которые помогают нам однозначно идентифицировать запись студента в таблице.
StudID | Ролл Нет | Имя | Фамилия | Электронное письмо |
1 | 11 | Том | Цена | Этот адрес электронной почты защищен от спам-ботов. У вас должен быть включен JavaScript для просмотра. |
2 | 12 | Ник | Райт | Этот адрес электронной почты защищен от спам-ботов. У вас должен быть включен JavaScript для просмотра. |
3 | 13 | Дана | Натан | Этот адрес электронной почты защищен от спам-ботов. У вас должен быть включен JavaScript для просмотра. |
Что такое внешний ключ?
FOREIGN KEY - это столбец, который создает связь между двумя таблицами. Назначение внешних ключей - поддерживать целостность данных и обеспечивать навигацию между двумя разными экземплярами объекта. Он действует как перекрестная ссылка между двумя таблицами, поскольку ссылается на первичный ключ другой таблицы.
Пример:
DeptCode | DeptName |
001 | Наука |
002 | английский |
005 | Компьютер |
ID учителя | Fname | Lname |
B002 | Дэйвид | Warner |
B017 | Сара | Джозеф |
B009 | Майк | Брантон |
В этом ключе в примере с dbms у нас есть две таблицы: учить и отдел в школе. Однако нет возможности узнать, какие поисковые запросы работают в каком отделе.
В этой таблице, добавив внешний ключ в Deptcode к имени Учителя, мы можем создать связь между двумя таблицами.
ID учителя | DeptCode | Fname | Lname |
B002 | 002 | Дэйвид | Warner |
B017 | 002 | Сара | Джозеф |
B009 | 001 | Майк | Брантон |
Эта концепция также известна как ссылочная целостность.
Что такое составной ключ?
СОСТАВНЫЙ КЛЮЧ имеет два или более атрибута, которые позволяют однозначно распознать конкретную запись. Возможно, что каждый столбец не может быть уникальным сам по себе в базе данных. Однако при объединении с другим столбцом или столбцами комбинация составных ключей становится уникальной. Назначение составного ключа в базе данных - однозначно идентифицировать каждую запись в таблице.
Пример:
№ заказа | PorductID | наименование товара | Количество |
B005 | JAP102459 | Мышь | 5 |
B005 | DKT321573 | USB | 10 |
B005 | OMG446789 | ЖК монитор | 20 |
B004 | DKT321573 | USB | 15 |
B002 | OMG446789 | Лазерный принтер | 3 |
В этом примере OrderNo и ProductID не могут быть первичными ключами, поскольку они не однозначно идентифицируют запись. Однако можно использовать составной ключ, состоящий из идентификатора заказа и идентификатора продукта, поскольку он однозначно идентифицирует каждую запись.
Что такое составной ключ?
КОМПОЗИТНЫЙ КЛЮЧ - это комбинация двух или более столбцов, которые однозначно идентифицируют строки в таблице. Комбинация столбцов гарантирует уникальность, но индивидуальная уникальность не гарантируется. Следовательно, они объединяются для однозначной идентификации записей в таблице.
Разница между составным и составным ключом состоит в том, что любая часть составного ключа может быть внешним ключом, но составной ключ может быть частью внешнего ключа, а может и не быть.
Что такое суррогатный ключ?
СУРРОГАТНЫЕ КЛЮЧИ - это искусственный ключ, предназначенный для уникальной идентификации каждой записи, который называется суррогатным ключом. Этот вид частичного ключа в dbms уникален, потому что он создается, когда у вас нет естественного первичного ключа. Они не придают значения данным в таблице. Суррогатный ключ обычно является целым числом. Суррогатный ключ - это значение, генерируемое непосредственно перед вставкой записи в таблицу.
Fname | Фамилия | Начальное время | Время окончания |
Энн | Смит | 09:00 | 18:00 |
Джек | Фрэнсис | 08:00 | 17:00 |
Анна | Маклин | 11:00 | 20:00 |
Показано | Уильям | 14:00 | 23:00 |
Выше, в данном примере, показано расписание смен разных сотрудников. В этом примере суррогатный ключ необходим для уникальной идентификации каждого сотрудника.
Суррогатные ключи в sql разрешены, когда
- Ни одно свойство не имеет параметра первичного ключа.
- В таблице, когда первичный ключ слишком большой или сложный.
Разница между первичным и внешним ключом
Первичный ключ | Иностранный ключ |
Помогает однозначно идентифицировать запись в таблице. | Это поле в таблице является первичным ключом другой таблицы. |
Первичный ключ никогда не принимает нулевые значения. | Внешний ключ может принимать несколько значений NULL. |
Первичный ключ - это кластерный индекс, а данные в таблице СУБД физически организованы в последовательности кластерного индекса. | Внешний ключ не может автоматически создавать индекс, кластерный или некластеризованный. Однако вы можете вручную создать индекс по внешнему ключу. |
Вы можете иметь единственный первичный ключ в таблице. | В таблице может быть несколько внешних ключей. |
Резюме
- Ключ в SQL - это атрибут или набор атрибутов, которые помогают идентифицировать строку (кортеж) в отношении (таблице).
- Ключи СУБД позволяют установить взаимосвязь между таблицами и определить взаимосвязь между ними.
- Семь типов ключей СУБД: супер, первичный, кандидат, альтернативный, внешний, составной, составной и суррогатный ключ.
- Супер ключ - это группа из одного или нескольких ключей, которая идентифицирует строки в таблице.
- Столбец или группа столбцов в таблице, которая помогает нам однозначно идентифицировать каждую строку в этой таблице, называется первичным ключом.
- Все ключи, которые не являются первичным ключом, называются альтернативным ключом.
- Супер ключ без повторяющегося атрибута называется ключом-кандидатом.
- Составной ключ - это ключ, который имеет множество полей, которые позволяют однозначно распознать конкретную запись.
- Ключ, который имеет несколько атрибутов для однозначной идентификации строк в таблице, называется составным ключом.
- Искусственный ключ, предназначенный для уникальной идентификации каждой записи, называется суррогатным ключом.
- Первичный ключ никогда не принимает значения NULL, в то время как внешний ключ может принимать несколько значений NULL.