Lion 2012 Ответов: 3

Разница между первичным ключом, ключом-кандидатом и суперключем в СУБД


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

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

3 Ответов

Рейтинг:
22

WajihaAhmed

Супер Ключ: Атрибут или набор атрибутов, которые однозначно идентифицируют Кортеж в пределах отношения

Потенциальный ключ: Супер ключ такой что ни одно правильное подмножество не является супер ключом внутри отношения

Первичный ключ: Ключ-кандидат, выбранный для уникальной идентификации кортежей в пределах отношения, ключи-кандидаты, которые не выбраны в качестве PKs, называются "альтернативными ключами"


ridoy

точно..+5

Рейтинг:
1

hemant paul

Super Keys : Super key расшифровывается как Супернабор ключа.
Супер ключ-это набор одного или нескольких атрибутов, которые взяты вместе и могут однозначно идентифицировать все остальные атрибуты.


Candidate Keys
Потенциальных ключей супер, ключи для которых нет соответствующего подмножество супер-ключа. Другими словами, ключи-кандидаты-это минимальные супер-ключи.

<br />
Primary Key:

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

Composite Key
Составной ключ состоит из нескольких атрибутов.

Пример: рассмотрим отношение или таблицу R1. Пусть A,B,C,D,E-атрибуты этого отношения.

R(A,B,C,D,E)
A→BCDE это означает,что атрибут 'A' однозначно определяет другие атрибуты B,C,D, E.
BC→ADE это означает,что атрибуты " BC " совместно определяют все остальные атрибуты A, D,E в отношении.

Первичный Ключ :
Ключи-кандидаты :A, BC
Супер ключи : A,BC,ABC,AD

АВС,объявление не Ключи кандидата, так как не минимальный супер ключи.


sumitkrishna2002

хорошее объяснение

Member 12923909

Вы не определили "ключ". Как мы должны знать, что значит для супер-ключа быть надмножеством ключа, если мы не знаем, что такое ключ?

Рейтинг:
0

manub22

Проверить это блог[^] Видео[^]

Я возьму пример с Ан Работник стол:
Работник (
идентификатор сотрудника,
Полное имя,
ПЛА,
DeptID
)

1. Кандидатский Ключ: это отдельные столбцы в таблице, которые отвечают требованиям уникальности всех строк. Здесь в таблице Employeeid и SSN - это ключи-кандидаты.

2. Первичный Ключ: это столбцы, которые вы выбираете для поддержания уникальности в таблице. Здесь в таблице Employee вы можете выбрать столбцы EmployeeID или SSN, EmployeeID является предпочтительным выбором, так как SSN является безопасным значением.

3. Альтернативный Ключ: Столбец кандидата другой основной столбец, например, если EmployeeID-это PK, то SSN будет альтернативным ключом.

4. Супер Ключ: Если вы добавляете любой другой столбец/атрибут к первичному ключу, то он становится супер-ключом, например EmployeeID + FullName-это супер-ключ.

5. Составной Ключ: Если в таблице есть один столбец, который подходит для ключа-кандидата, то вы должны выбрать 2 или более столбцов, чтобы сделать строку уникальной. Например, если нет столбцов EmployeeID или SSN, то вы можете сделать FullName + DateOfBirth в качестве составного первичного ключа. Но все же может быть узкий шанс дублировать ряд.


Dave Kreskowiak

Почему вы добавляете решения к вопросам 3-летней давности? Ваш ответ не добавляет к дискуссии ничего, что еще не было сказано.

manub22

Я считаю, что это открытый форум, будь то 3-4 года, мне все равно, насколько я помогаю сообществу SQL и получаю от него пользу. Пусть он движется вниз, если это не полезно, в противном случае пусть он движется вверх. В чем твоя проблема?

Dave Kreskowiak

Потому что каждый пост на вопрос QA толкает его в начало списка вопросов, где другие люди размещают дополнительные уточняющие вопросы для оригинального плаката и не замечают, что они никогда не получат на них ответов.

Как я уже сказал, Вы ничего не добавляете к дискуссии, о которой еще не было сказано.

manub22

О, би-ти-у, Спасибо, что отклонил мой ответ, я только что проверил его!

Dave Kreskowiak

Да, и я уже сказал тебе почему.

CHill60

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

BP19421

Ответ мануба был очень полезен. И Дейв тоже признался в этом. И тебе, и Дейву нужно повзрослеть.

Member 12560321

Просто зарегистрировался здесь, чтобы поддержать ваше решение и поддержать вас в свете грубости этих модераторов.

Продолжайте помогать другим понять, независимо от того, является ли вопрос старым или новым!! Я читал все предыдущие решения, но они были настолько теоретическими, что мне нужен был один простой пример, чтобы прояснить это.

Еще раз спасибо, братан!

manub22

спасибо дорогая :)

Vikas Kumar

Но я думаю, что это очень ясный ответ на примере.

manub22

Я полагаю, что вы являетесь модератором этого портала. Если да, и если вам не нравится мой ответ, и этот вопрос выходит на первое место из-за него, вы можете удалить мой ответ. Спасибо!

AHMAD ANAS

довольно кратко, спасибо manub22.

manub22

Спасибо @Member

Member 12329471

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

manub22

Спасибо, друг!
Хотя принятое решение является правильным, но не описательным, поэтому я просто попытался помочь здесь, чтобы люди поняли простыми словами, Вот и все.
Но если бы вы видели рейтинг, то только эти 2 парня прокомментировали бы и дали бы моему ответу 1 Рейтинг.

Member 12329471

Всегда пожалуйста! Я просто изучаю материал базы данных сейчас, и ваш ответ был тем, который я нашел наиболее полезным - он объяснял его в достаточно простых терминах, чтобы кто-то без предварительного знания СУБД мог понять. Определенно ценю помощь HW :)

Member 11646435

Спасибо, что это мне помогло.

Maiko Martin

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

timewithvasanth@gmail.com

manub22, благодаря вашему ответу, он ясно объясняет концепции. Я не хочу никаких бессмысленных слов, просто ответ. ты сделал это. спасибо.

Member 13503598

Уважаемые manub22,

Спасибо за объяснение с этим примером. Других объяснений я так и не нашел.

С уважением,
от SK

Member 14536014

Это самое лучшее и самое ясное объяснение без каких-либо осложнений. Большое вам спасибо @manub22. Позор людям, которые напали на тебя. Наилучшие пожелания.

manub22

спасибо дорогая за поддержку :)