2013-04-23 7 views
1

Я получил реляционную базу данных типа R = {A, B, C, D, E, F} с функциональными зависимостями, такими как F = {{AB -> C}; {А -> D}; {D -> АЯ}; {E -> F}}Реляционные базы данных декомпозиции

Однако, с помощью правил вывода, я придумал утверждение BD -> ABCEF, интересно, разрешено ли с помощью правила декомпозиции исключить B с правой стороны?

Правило разложения говорит:

Если X -> YZ, то X -> Y и X -> Z

В основном это BD -> ACEF правильно?

+0

Кроме того, если у вас есть (BD) и (AB) в качестве ключей-кандидатов, а кто-то запрашивает первичный ключ, являются ли кандидат-ключи произвольными для первичного ключа? –

ответ

0

Да: AB-> CDEF, BD-> ACEF.

являются кандидатными ключами, произвольными для первичного ключа?

Исправить. Формальной основы выбора первичного ключа нет, и первичные ключи в любом случае не имеют никакого значения в теории зависимости.

+0

Благодарим за быстрый ответ! Дальнейший вопрос: Когда вы на следующем шаге должны разложить R в 2NF (вторая нормальная форма, где неперфейные атрибуты должны быть функционально зависимыми от части ключа-кандидата), вы тогда смотрите только на определенные функциональные зависимости или абстрактные зависимости от подразумеваемых правил вывода? > например. Does A -> CDEF нарушает определение 2NF? > (где A -> CDEF разлагается из AB -> CDEF) –

+0

В нормализации вы рассматриваете закрытие всех зависимостей - данных и полученных из них. Как вы дошли до A-> CDEF? AB-> CDEF не означает A-> CDEF. – sqlvogel

+0

Я взял из F {..}: (AB -> C) => (A -> C); (А -> D), и (А -> С) => (А -> CD); из (D -> AE) в (D -> E) с (E -> F) дает (D -> EF), то, наконец, дается (A -> CDEF). Я не знаю, правильно ли это? –

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