Почему не зависящая от разложения BCNF все еще считается находящейся в BCNF? - PullRequest
0 голосов
/ 06 мая 2018

Из учебника Концепция систем баз данных , для схемы r с набором зависимостей F для учета в BCNF, для всех зависимостей в F + (т. е. замыкание F ) вида a → b , должно быть хотя бы одно из следующих условий:

  • a → b - тривиальная функциональная зависимость ( b a )
  • a - суперключ для схемы r

Пример, приведенный в учебнике, для схемы dept_advisor ( s_ID, i_ID, dept_name ) с функциональными зависимостями F = { i_ID → dept_name; s_ID, dept_name → i_ID }, декомпозиция BCNF будет:

  • r1 ( s_ID, i_ID )
  • r2 ( i_ID, имя_депта )

Эта декомпозиция удовлетворяет 1-й зависимости ( i_ID → dept_name ), поскольку i_ID является суперключем для r2 , но поскольку она не удовлетворяет 2-й зависимости ( s_ID, dept_name → i_ID , следовательно, сохраняющий независимость), разве это разложение не соответствует BCNF, так как 2-я зависимость нетривиальна, но не является суперключем для схемы разложения?

1 Ответ

0 голосов
/ 06 мая 2018

Вы правильно сообщили об определении BCNF: для каждой нетривиальной зависимости F + определителем является суперключ.

Итак, в вашем примере обе схемы отношений в разложении удовлетворяют этому определению: в r2 в единственной нетривиальной зависимости i_ID → dept_name определителем является суперключ, а в r1 нет тривиальные зависимости, поэтому определение все еще выполняется. Итак, у вас есть две схемы, которые находятся в BCNF.

Но, как вы снова правильно заметили, зависимость s_ID, dept_name → i_ID не сохраняется в наборе зависимостей разложения (даже если вы выполняете замыкание объединения множества зависимостей r1 и r2), а это значит, что декомпозиция не сохраняет зависимости. На практике это означает, что в разложенной схеме тот факт, что пара значений s_ID и dept_name может соответствовать более чем одному значению i_ID, что приводит к потере важного нарушения целостности.

Чему этот пример может нас научить? Что у нас может быть декомпозиция схемы в BCNF, которая создает базу данных, которая может содержать противоречивые данные. И обратите внимание, что в этом конкретном случае в BCNF существует декомпозиция no , которая может сохранить зависимости. Таким образом, BCNF не является панацеей для устранения всех проблем в проектировании баз данных, и на самом деле были определены другие нормальные формы, которые можно использовать для решения ряда проблем проектирования баз данных. Например, исходная схема примера уже находится в третьей нормальной форме (3NF), и это считается приемлемым в практических ситуациях.

...