Простое определение ключей-кандидатов с функциональными зависимостями

Пусть R(A,B,C,D,E) будет схемой отношения и F = {A→C, B→D, C→E, E→A}, Найдите все ключи-кандидаты.

Я считаю, что в этом наборе нет CK из-за невозможности нанести карту. B или D к любому другому отношению, кроме B -> D . Означает ли это, что ключей-кандидатов нет? Хотя я могу сопоставить A со всеми другими объектами, кроме B и D.


person user1863504    schedule 29.11.2012    source источник
comment
Каждое отношение [схема] всегда имеет хотя бы один ключ-кандидат. Следовательно, если вы думаете, что в любом упражнении вывод состоит в том, что здесь нет ключей, то вы ошибаетесь.   -  person Erwin Smout    schedule 30.11.2012


Ответы (4)


Есть три ключа-кандидата.

B не появляется в правой части какой-либо функциональной зависимости. Это означает, что B должен быть частью каждого ключа-кандидата. Я думаю, что сам по себе не гарантирует наличие хотя бы одного ключа-кандидата, но из проверки должно быть ясно, что AB является одним из трех ключей-кандидатов здесь.

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

person Mike Sherrill 'Cat Recall'    schedule 29.11.2012
comment
Спасибо за разъяснение, и я определил, что AB , CB и EB являются возможными ключами для моего вопроса. - person user1863504; 29.11.2012
comment
Вот так. Тремя ключами-кандидатами являются AB, BC и BE. В заданиях по учебнику имена атрибутов традиционно упорядочиваются в алфавитном порядке, но в реляционной модели порядок атрибутов на самом деле не имеет смысла. - person Mike Sherrill 'Cat Recall'; 29.11.2012

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

  1. Если атрибут отсутствует ни в одном из FD, то он есть во всех ключах.

  2. Если атрибут встречается в правой части FD, но никогда не встречается в левой части, то он никогда не находится в ключе.

  3. Если атрибут встречается в левой части FD, но никогда не встречается в правой части, то он есть в каждом ключе.

  4. Если атрибут встречается и в правой части ФД, и в левой части ФД, то об атрибуте ничего нельзя сказать.

Чтобы найти ключи, определите, какие атрибуты присутствуют в каждом из приведенных выше случаев. Единицы в первом и третьем случаях должны быть в каждой тональности. Назовите этот набор атрибутов ядром. Вычислите атрибуты, которые определяются ядром. Это называется замыканием ядра. Если все атрибуты находятся в замыкании ядра, то ядро ​​является не только ключом, но и единственным ключом. Если при замыкании ядра будет не весь набор атрибутов, то часть будет отсутствовать. Запишите этот набор атрибутов и удалите любой атрибут, который находится во втором наборе выше (т. е. он встречается в правой части FD, но никогда не встречается в левой части). Это внешние атрибуты. Чтобы получить ключ, необходимо добавить к ядру один или несколько внешних атрибутов. Соответственно, добавляем их в ядро, сначала по одному, потом по два и так далее, пока не будет найден каждый ключ.

person Nurzaman    schedule 28.01.2014

Поскольку B не находится с правой стороны, поэтому B должен быть частью ключа-кандидата, а A и C встречаются с обеих сторон, поэтому они могут образовывать суперключ с B. при сопоставлении AB и BC являются суперключами и в качестве ключа-кандидата является минимальным суперключом, поэтому AB и BC являются возможными ключами.

person user3371122    schedule 02.03.2014

Каждый атрибут, который находится строго только слева во всех функциональных зависимостях, является атрибутом, который должен составлять часть каждого из ключей-кандидатов.

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

person Anshuman Mahanty    schedule 23.05.2014