Объяснение 7 типов ключей в СУБД
Опубликовано: 2021-03-12Оглавление
Что такое ключи в СУБД?
Ключ в СУБД — это атрибут или набор атрибутов, которые помогают однозначно идентифицировать кортеж (или строку) в отношении (или таблице). Ключи также используются для установления отношений между различными таблицами и столбцами реляционной базы данных. Отдельные значения в ключе называются ключевыми значениями.
В этом блоге будет рассказано все, что вам нужно знать о ключах в СУБД и закрытии атрибутов для найти Ключ любого отношения (таблицы). Дочитайте статью до конца, чтобы ответить на некоторые критические вопросы GATE о ключах в СУБД.
Зачем нужны ключи?
Ключ используется в определениях различных видов ограничений целостности. Таблица в базе данных представляет собой набор записей или событий для определенного отношения. Сейчас таких записей могут быть тысячи и тысячи, часть из которых может дублироваться.
Должен быть способ идентифицировать каждую запись отдельно и уникально, т. е. без дубликатов. Ключи позволяют нам быть свободными от этих хлопот.
Возьмем реальный пример базы данных каждого студента инженерного вуза.
Как вы думаете, какой атрибут студента однозначно идентифицирует каждого из них? Вы можете обратиться к студенту, используя его имя, факультет, год и раздел. Или вы можете указать только университетский номер студента, и вы можете получить все остальные детали из него.
Ключ может быть комбинацией нескольких атрибутов (или столбцов) или только одного атрибута. Основной мотив этого состоит в том, чтобы придать каждой записи уникальную идентичность .
Читайте также: СУБД против РСУБД
Типы ключей в СУБД
В целом в СУБД существует семь типов ключей:
- Первичный ключ
- Ключ-кандидат
- Супер Ключ
- Внешний ключ
- Составной ключ
- Альтернативный ключ
- Уникальный ключ
Давайте рассмотрим каждый из них отдельно.
1. Первичный ключ
Первичный ключ — это столбец таблицы или набор столбцов, который помогает однозначно идентифицировать каждую запись, присутствующую в этой таблице. В таблице может быть только один первичный ключ. Кроме того, первичный ключ не может иметь одинаковые значения, повторяющиеся для любой строки. Каждое значение первичного ключа должно быть разным и не повторяться.
Ограничение PRIMARY KEY (PK), наложенное на столбец или набор столбцов, не позволит им иметь нулевые значения или любые дубликаты. Одна таблица может иметь только одно ограничение первичного ключа. Любое значение в первичном ключе не может быть изменено какими-либо внешними ключами (объяснено ниже), которые ссылаются на него.
2. Супер Ключ
Суперключ — это набор всех ключей, которые помогают однозначно идентифицировать строки в таблице. Это означает, что все те столбцы таблицы, которые способны однозначно идентифицировать другие столбцы этой таблицы, будут считаться суперключами.
Суперключ — это надмножество ключа-кандидата (поясняется ниже). Первичный ключ таблицы выбирается из набора суперключей, чтобы сделать атрибут идентификации таблицы.
3. Ключ-кандидат
Ключи-кандидаты — это те атрибуты, которые однозначно идентифицируют строки таблицы. Первичный ключ таблицы выбирается из одного из возможных ключей. Таким образом, ключи-кандидаты обладают теми же свойствами, что и первичные ключи, описанные выше. В таблице может быть более одного ключа-кандидата.
4. Альтернативный ключ
Как указано выше, таблица может иметь несколько вариантов первичного ключа; однако он может выбрать только один. Таким образом, все ключи, которые не стали первичными ключами, называются альтернативными ключами.
5. Внешний ключ
Внешний ключ используется для установления отношений между двумя таблицами. Внешний ключ потребует, чтобы каждое значение в столбце или наборе столбцов соответствовало первичному ключу ссылочной таблицы. Внешние ключи помогают поддерживать целостность данных и ссылочную целостность.
6. Составной ключ
Составной ключ — это набор из двух или более атрибутов, помогающих однозначно идентифицировать каждый кортеж в таблице. Атрибуты в наборе могут не быть уникальными, если рассматривать их по отдельности. Однако, взятые все вместе, они обеспечат уникальность.
7. Уникальный ключ
Уникальный ключ — это столбец или набор столбцов, которые однозначно идентифицируют каждую запись в таблице. Все значения должны быть уникальными в этом ключе. Уникальный ключ отличается от первичного ключа тем, что он может иметь только одно нулевое значение, тогда как первичный ключ не может иметь никаких нулевых значений.
Функциональные зависимости
Теперь, когда мы знаем другой тип ключей в СУБД, давайте посмотрим, как их идентифицировать при наличии таблицы из базы данных. Для этого воспользуемся понятием функциональных зависимостей.
Функциональная зависимость (FD) — это ограничение между двумя наборами атрибутов. Это ограничение действует для любых двух кортежей t1 и t2 в r, если t1[X] = t2[X], тогда они имеют t1[Y] = t2[Y]. Это означает, что значение компонента X кортежа однозначно определяет значение компонента Y.
FD обозначается как X ? Y (это читается как «Y функционально зависит от X»). Левая часть называется определителем, а правая — зависимой.
Закрытие набора атрибутов
Замыкание — это набор всех возможных ФД, полученных из заданного набора ФД. Его также называют полным набором FD. Если F используется для пожертвования множества FD для отношения R, то замыкание множества FD, подразумеваемое F, обозначается через F+ .
Теперь мы определим замыкание набора атрибутов, относящихся к данному набору ФД. Это поможет определить суперключ отношения и выяснить, можно ли вывести FD из заданного набора FD или FD является избыточным. Следующим шагом после обнаружения набора функциональных зависимостей для отношения является поиск суперключа для этого отношения (таблицы).
Затем мы узнаем набор замыканий атрибутов, чтобы решить, является ли атрибут (или набор атрибутов) какой-либо таблицы ключом для этой таблицы или нет. Набор атрибутов , функционально зависимых от атрибута X, называется закрытием атрибута X и может быть представлен как X+.
Ниже приведены некоторые правила, необходимые для определения F+:
- Рефлексивность: если X является надмножеством Y или Y является подмножеством X, то X ? Ю.
- Расширение: если X ? Y, затем XZ? ЮЗ. Или если Z ⊆ W и X ? Y, затем XW? ЮЗ.
- Транзитивность: если X ? Y и Y? Z, затем Х? З.
- Союз: Если X ? Y и Х? Z, затем Х? ЮЗ.
- Разложение: если X ? YZ, затем Х? Y и Х? З.
- Псевдотранзитивность: если X ? Y и YW? Z, затем XW? З.
Как найти ключи-кандидаты и суперключи с помощью закрытия атрибутов?
- Если закрытие атрибута набора атрибутов содержит все атрибуты отношения, набор атрибутов будет суперключом отношения.
- Если ни одно подмножество этого набора атрибутов не может функционально определить все атрибуты отношения, этот набор будет ключом-кандидатом.
Давайте обсудим несколько ранее заданных вопросов GATE, чтобы увидеть применение замыкания атрибутов.
ВОРОТА 2014
Рассмотрим схему отношений R = {E, F, G, H, I, J, K, L, M, N} и множество функциональных зависимостей {{E, F} ? {Г}, {Ф} ? {И, Дж}, {Е, Н}? {К, L}, К ? {М}, Л ? {N} на R. Какой ключ для R?
(А) {Е, Ф}
(Б) {Э, Ф, Н}
(С) {Э, Ф, Н, К, Л}
(Д) {Е}
Подход: мы проверим закрытие атрибута всех предоставленных вариантов. Множество, замыкание которого даст нам полное отношение R, будет правильным ответом.
A: {E, F} + = {EFGIJ} ≠ R
B: {E, F, H} + = {EFGHIJKLMN} = R
C: {E, F, H, K, L} + = {EFGHIJKLMN} = R
D: {E} + = {E} ≠ R
Оба варианта B и C дают нам полную схему отношений. Однако мы выбираем минимальный вариант как правильный ответ, потому что ключ-кандидат должен быть минимальным суперключом .
Отвечать: Б
ВОРОТА 2013
Отношение R имеет восемь атрибутов ABCDEFGH. Поля R содержат только атомарные значения. F = {СН ? Г, А? БК, Б? КФХ, Е? А, Ф? EG} — это набор функциональных зависимостей (FD), так что F+ — это в точности тот набор FD, который выполняется для R.
Сколько ключей-кандидатов имеет отношение R?
(А) 3
(Б) 4
(С) 5
(Д) 6
Подход: мы возьмем LHS каждой функциональной зависимости, указанной в вопросе, и найдем замыкание их атрибутов.
СН+ = Г
А+ = ABCEFGH
B+ = ABCEFGH
E+ = ABCEFGH
F+ = ABCEFGH
Итак, мы видим, что замыкания A, B, E, F имеют полное отношение, кроме атрибута D. Таким образом, всего имеется 4 ключа-кандидата AD, BD, ED и FD.
Ответ: Б
Изучайте онлайн-курсы по программному обеспечению от лучших университетов мира. Участвуйте в программах Executive PG, Advanced Certificate Programs или Master Programs, чтобы ускорить свою карьеру.
Заключение
Ключи и функциональные зависимости играют очень важную роль при проектировании базы данных. Эти концепции также помогают найти разницу между хорошим и плохим дизайном базы данных. Последним процессом удаления избыточности и повышения эффективности базы данных является нормализация , в которой используются все концепции, упомянутые в этой статье.
Если вам интересно узнать больше о разработке полного стека, ознакомьтесь с программой Executive PG upGrad и IIIT-B в разработке программного обеспечения с полным стеком, которая предназначена для работающих профессионалов и предлагает более 500 часов тщательного обучения, более 9 проектов, и задания, статус выпускника IIIT-B, практические практические проекты и помощь в трудоустройстве в ведущих фирмах.
Какие существуют типы ключей в СУБД?
В базе данных используются несколько типов ключей. Первичный ключ используется для идентификации конкретной строки в таблице. Уникальный ключ используется для обеспечения того, чтобы в конкретной таблице была только одна запись. Внешний ключ используется для связи записей одной таблицы с другой. Составной ключ — это набор нескольких столбцов в таблице, которые все вместе используются для идентификации строки. Эти ключи помогают точно и однозначно идентифицировать конкретный столбец строки таблицы. Следовательно, очень важно использовать точные столбцы в качестве ключа в соответствии с вашим вариантом использования.
Что такое внешний ключ в СУБД?
Внешний ключ — это столбец или набор столбцов, которые используются для связывания строк одной таблицы со строками другой таблицы. Он используется для предотвращения несогласованности данных. В СУБД внешний ключ реализуется с использованием одного столбца или набора столбцов (логический столбец), и СУБД проверяет, соответствуют ли значения в этих столбцах значениям в указанных столбцах (первичный ключ). Например, предположим, что таблица A и таблица B имеют столбец с именем столбец A. Можно сказать, что столбец A в таблице A является ссылкой на столбец A в таблице B. Это можно представить как стрелку со значением внешнего ключа, указывающую на целевая таблица.
Что такое составной ключ в СУБД?
Составной ключ является суперключом. Это комбинация одного или нескольких столбцов. Это позволяет создать один ключ из комбинации разных столбцов. Его также называют составным идентификатором, составным ключом или составным ключом. Короче говоря, вы можете использовать набор столбцов для идентификации уникальной строки в вашей таблице, если у вас нет ни одного столбца, который может однозначно идентифицировать строку. В таком случае набор всех столбцов, которые вы будете использовать, будет рассматриваться как составной ключ. Следовательно, можно с полным правом сказать, что если первичный ключ имеет более одного столбца, он переименовывается в составной ключ.