Вкратце: да - это можно сделать.
Более подробная информация.
Предположим, у нас есть отношение R
, которое находится между x -> y
. Если предположить, что R
не в 2НФЕ, новые отношения P
и Q
сусла существует, где P: x -> z
и Q: z -> y
и P
, Q
не должен быть тривиальным. Здесь x
, y
, z
являются соответствующими функциональными объектами (они не являются «колонны» в общем случае, они также могут быть «набором столбцов», если говорить в терминах таблиц SQL).
Предположим также, что P
и Q
не имеют переходных суб-отношений (как R
есть) - то есть они находятся в 3NF (в противном случае, что ничего не изменится, мы будем просто идти глубже и повторить все снова, пока найдены суб- отношения, не имеющие транзитивных подзависимостей).
Итак, мы имеем:
R(x) = y,
P(x) = z, => Q(P(x)) = y
Q(z) = y
Это по определению транзитивного отношения. Таким образом, R
будет разделен на два отношения P
и R
(потому что только P
и Q
достаточно установить отношения x -> y
, так R
является излишним и может быть заменен P
и Q
с присоединением этих двух отношений). Наши P
и Q
находятся в 3NF, таким образом, у нас есть R
, преобразованный в отношения 3NF. Фактически, это работа, которая должна быть выполнена при нормализации 2NF -> 3NF (т. Е. Найти и разрешить все транзитивные отношения таким образом).
Фактически каждое отношение может быть преобразовано в состояние 3NF. –
'Может ли отношение 2NF быть заключено в отношение 3NF?' Что вы хотите спросить, как конвертировать? –
спросите его здесь http://cs.stackexchange.com/questions, чтобы получить ответы –