Уточнение основных атрибутов и частичных зависимостей - PullRequest
0 голосов
/ 09 апреля 2019

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

R = (A, B, C)
Functional Dependencies = (A -> B, B -> A)

В примере указано, что наивысшая нормальная форма для приведенного выше - 1NF, потому что A-> B образует частичную зависимость.

Myрешение:

AC -> BC (via augmentation axiom)
BC -> AC (via augmentation axiom)

(A,C) and (B,C) are minimal keys and (A, B, C) are prime attributes.

Правильно ли я сказал следующее:

If (A,C) is the primary key, A -> B is NOT partial FD as RHS is a prime 
attribute. B -> A is a non trivial FD as LHS is not a candidate key.

Объяснение моего лектора было таково: если (A, C) выбрать в качестве первичного ключа, нам не нужно обрабатывать(B, C) в качестве ключа, если так, B не является основным атрибутом, следовательно, частичная зависимость стоит

1 Ответ

1 голос
/ 09 апреля 2019

Предполагая, что данные функциональные зависимости покрывают все функциональные зависимости схемы отношений, представленная схема находится в 3NF, как вы обнаружили. На самом деле единственными подходящими ключами являются (A, C) и (B, C), поэтому каждый атрибут является простым, и по определению отношение находится в 3NF. (Обратите внимание, что основные атрибуты зависят от ключей-кандидатов, а не от первичного ключа).

В общем случае зависимость X → Y в F+ (закрытие набора зависимостей отношения) называется частичной, если Y зависит также от правильного подмножества X. (Точнее, Y называется частично зависимым от X.) И отношение находится во Второй нормальной форме, если каждый непростой атрибут полностью зависит от каждого ключа-кандидата. В этом случае вы правы, говоря, что A → B является неполной зависимостью (но не по той причине, что B является основным атрибутом. Например, B не полностью зависит от кандидата ключ A C (из-за существования частичной зависимости A C → B в F+). Однако тот факт, что B является основным атрибутом, означает, что схема находится в 2NF.

Другими словами, с учетом предыдущего определения частичной зависимости, касающегося этой части вашего вопроса:

Правильно ли я сказать это:

If (A,C) is the primary key, A → B is NOT partial FD as RHS is a prime attribute. B → A is a non trivial FD as LHS is not a candidate key.

можно сказать, что:

  1. A → B является частичной зависимостью не потому, что B простое число, а потому, что никакое правильное подмножество {A} не может определить B.

  2. B → A нетривиально не потому, что LHS не является ключом-кандидатом, а потому, что {A} не является подмножеством {B}.

Как последнее замечание, отношение не в нормальной форме Бойса-Кодда. Разложение, которое учитывает эту нормальную форму, является R1(A, B), R2(A C).

...