Вкратце : вы правы, зависимости сохранены.
Длинное объяснение.
Для определения концепции сохранения зависимостей сначала нам необходимо определить концепцию проекции набора функциональных зависимостей :
С учетом схемы R (T) с набором зависимостей F и с заданным подмножеством T i от T, проекция из F на T i определяется как:
π T i = {X → Y ∈ F + | X, Y ⊆ T i }
Обратите внимание, что нам нужно учитывать зависимости F + (закрытие зависимости F), а не только от F.
Теперь мы можем определить свойство сохранения зависимостей для декомпозиции:
Разложение ρ = {R 1 (T 1 ), ..., R n (T n )} R (T) с зависимостями F сохраняет зависимости тогда и только тогда, когда ∪ π T i (F) ≡ F.
Это может быть формально подтверждено путем применения алгоритма, описанного в книгах, по крайней мере, с 1983 года (см., Например, Уллман Дж. (1983). Принципы систем баз данных. Пресса компьютерных наук, Роквилл, Мэриленд), который вычисляет в за полиномиальное время замыкание набора атрибутов относительно проекции зависимостей.
На практике, чтобы проверить, что зависимости сохраняются в вашем примере, нет необходимости применять этот алгоритм, но достаточно вычислить каноническое покрытие зависимостей:
A B → C
C → B
C → E
E → D
Из него видно, что каждая зависимость содержится в разложенном отношении, поэтому мы можем сделать вывод, что зависимости сохранены.
Обратите внимание, что при рассуждении о множестве зависимостей всегда удобно рассуждать о их каноническом покрытии.