1

Допустим, мы имеем следующие функциональные зависимости:Есть ли переходная зависимость в следующих функциональных зависимостей

A->B, B->C, C->B, and A->C 

Если функциональная зависимость A->C явно, то есть вам не придется пройти через B, чтобы добраться до C от A.

Существует ли транзитивная зависимость между A и C? Если бы я хотел, чтобы использовать это, чтобы построить свое отношение и иметь отношение удовлетворяет третью нормальную форму, что я должен разбить его на два отношения ?:

A* B 
B* C 

(где * означает первичный ключ, и каждая строка заголовок отношения)

Или держать его как:

A* B C 

по-прежнему удовлетворять 3NF?

Явно мой вопрос задан функциональными зависимостями: A->B, B->C, C->B, and A->C Является ли A->C транзитивной зависимостью и почему/почему нет?

ответ

0

A-> C не является транзитивной зависимостью. A-> B-> C - транзитивная зависимость.

Термин «транзитивный» означает, что зависимость имеет более чем одну часть. Обратите внимание, что отношение может удовлетворять 3NF, сохраняя при этом транзитивные зависимости. В этом случае, однако, для удовлетворения 3NF вам необходимо разложить A, B, C как минимум на два отношения с A, B и C, все из которых являются ключами-кандидатами.

+0

Я думал, что 3NF означает, что у вас нет транзитивных зависимостей. – thed0ctor

+0

К сожалению, 3NF часто объясняется с точки зрения транзитивных зависимостей, что, возможно, затрудняет понимание, чем должно быть. Объяснение ИМО Карло Заниоло о 3NF более ясное и более удовлетворительное (хотя это в точности эквивалентно Codd's). Отношение R равно 3NF, если для каждого нетривиального FD из R, X -> A, (a) X является суперключем для R или (b) A является ключевым атрибутом для R. – sqlvogel

+0

http: //www.cs .ucla.edu/~ Zaniolo/документы/tods82b.pdf – sqlvogel

0

Если это полный список зависимостей, то есть transitive dependency A -> B -> C, потому что:

  • A -> B
  • не B -> A
  • B -> C

(Если это не полный список зависимостей, то мы не знаем, есть ли может быть B -> A или нет, и, следовательно, ш е не знаю, верно ли, что транзитивное зависимость)

Существует также зависимость Транзитивная. -> C -> B.

ли A-> C транзитивной зависимости и почему/почему нет ?

Переходная зависимость между 3 атрибутами, поэтому нет.


Чтобы нормализовать отношения к 3NF, вам нужно разделить его на 2 отношения ...

  • A * B
  • B * C *

...или...

  • A * C
  • В * С *

... где * обозначает ключ (первичный или альтернативный).

Смежные вопросы