Это нарушение BCNF? - PullRequest
       75

Это нарушение BCNF?

0 голосов
/ 01 октября 2018

Я прочитал множество примеров, утверждающих, что 3NF является BCNF, если нет перекрывающихся ключей-кандидатов ...

Дано:

R(a,b,c,d,e,f)
a,b,c -> d 
a,b,c -> e 
a,b,c -> f

, поэтому a, b, cединственный ключ-кандидат.Пока это BCNF.

Теперь я добавляю FD f-> c, который не прост -> простое , но У меня все еще нет перекрытияключи-кандидаты.

Вернулся ли я в 3NF или все еще в BCNF?

1 Ответ

0 голосов
/ 02 октября 2018

Если вы добавите новый FD, вам придется переопределить CK, атрибуты которых простые и не простые, будь то в 3NF, есть ли перекрывающиеся CK и есть ли в BCNF.

У нас естьновая заданная обложка с еще одним FD.(Если мы хотим, чтобы все FD, которые сейчас удерживаются, мы должны повторно применить аксиомы Армстронга. Если мы хотим минимальное покрытие для нового покрытия, то мы должны рассчитать его.) Применяя определение CK и / или алгоритм для поиска CK, у нас есть CK.{a, b, c} & {a, b, f}.Непростыми атрибутами являются d & e.Применяя определение 3NF, например, что каждый непростой атрибут нетранзитивно функционально зависит от каждого CK, мы имеем 3NF.Есть перекрывающиеся CK, поэтому у нас может не быть BCNF.Применяя определение BCNF, например, что каждый определитель нетривиального FD является суперключем, мы замечаем, что f-> c не вне суперключа, поэтому у нас нет BCNF.

...