Ха-ха, нет! Ключ является составной частью атрибутов.
Простите за то, что забавляло, это просто, что вы знаете, что значения
ваших атрибутов различны A: 1 = 2 и B: 2 = 1.
Только представьте строки в таблице!.
A | B
1 | 2
2 | 1
Представьте, как, например, строка concatation: «1: 2», а «2: 1».
Очевидно, что эти строки не равны.
Внутренне представление составного первичного ключа будет менее тривиальным, конечно,
Propably на основе хэш-функции, хранящегося в область временной памяти для просмотровых окон
который разделен на страницы, основанные
диапазона.
Так что важно не упорядочить атрибуты в ключе, а значения для
соответствующих столбцов.
На самом деле процесс определения того, какие атрибуты могут быть использованы лучше всего для первичного ключа соединения, является очень интересным.
Таким образом, вы должны четко понимать этот процесс, иначе вы можете задаться вопросом, почему вы испытываете непоследовательность данных
.
Возьмем в качестве примера человека таблицу:
Имя, ПгвЬЫате, дата рождения, улица, город, страна, штат, почтовый индекс
На самом деле ни один из атрибутов не удовлетворяет условию однозначной идентификации человека.
И имя, и имя.
Ну, так что имя и имя и дата рождения, а также город не так уж плох, но посмотрите
на сколько людей по имени Питер Смит живет в Лондоне (может быть, он находится в Великобритании или в
Онтарио, Канада).
Процесс определения ключа-кандидата фактически является процессом определения функциональных зависимостей между атрибутами.
По сути идея:
Если я знаю имя человека, я знаю его имя.
Если я знаю имя человека и его имя, знаю ли я, в каком городе он живет?
и так далее.
Эта зависимость зависит от:
Город, страна, штат -> zip // Значение: когда я знаю город, страну и страну, я знаю его почтовый индекс.
(и, конечно же, наоборот) Атрибуты, которые не отображаются в правой части списка зависимостей, должны быть частью каждого ключа конфессии.
Если каждый атрибут else определяется этими атрибутами, все готово. Вы получили свой первичный ключ соединения
.
Если нет:
Тогда процесс поиска оптимального ключа конфеты - это всего лишь шаги по использованию ключа
ключа, сделанного из всех атрибутов в таблице.
Затем удалите атрибуты, которые зависят. Перечислите все ключи конфет и повторите.
Затем посмотрите на сходства (какие ключи-кандидаты содержатся в других ключах-кандидатах, это называется сокращением).
Итак, вы получите оптимальный составной первичный ключ для вашей таблицы.
В качестве примера для первого случая:
Атрибуты
имя, B LastName, C City, D, E Государственный почтовый индекс (на международном уровне)
E -> C // международные молниями имеют форму, например, GB-W11 2BQ
E -> D
Таким образом, первым кандидатом будет:
A, B, E (поскольку они не отображаются с правой стороны).
Является ли каждый атрибут другим в зависимости? Да, есть только C и D. И они зависят от E
Все готово.
Нет, он не откажет – ITroubs