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



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



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

537   4  

4 ответов:

Существует три возможных ключа.

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

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

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

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

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

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

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

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

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

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

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

Comments

    Ничего не найдено.