Функциональные зависимости БД. - PullRequest
0 голосов
/ 17 ноября 2011

Я понимаю концепцию функциональных зависимостей в базах данных, но когда дело доходит до такого формата, я не могу обернуться вокруг него.

**Relation:**
A  B  C
a1|b1|c1
a2|b1|c1          
a1|b2|c2
a1|b1|c2
a3|b2|c1
a2|b1|c2    

Какие функциональные зависимости существуют в этом отношении?

Ответы [ 2 ]

1 голос
/ 15 декабря 2011

Функциональные зависимости удерживают / применяют к базе данных DESIGN .

Они не "существуют в отношениях". Относительно отношения можно сказать, что оно удовлетворяет некоторый [набор] функциональных зависимостей, но бессмысленно и запутанно говорить, что функциональная зависимость «существует в отношении».

Как более или менее отметил Виктор, ваше примерное отношение удовлетворяет только тривиальному FD {ABC} -> {ABC}.

Что касается вашего другого вопроса, «в какой нормальной форме находится это отношение», этот вопрос снова совершенно бессмыслен и запутан, потому что свойство «быть в какой-то нормальной форме» применимо только к дизайну , а не к какому-то конкретному значению отношения. В реляционных терминах: только отношение переменная может быть в некоторой нормальной форме, в зависимости от того, какие FD предполагается хранить в нем, но отношение значение не может иметь такого свойства.

Итак, если вы действительно говорите о [объявлении] отношения переменная с заголовком {ABC}, в котором нет нетривиальных FD (т. Е. Только {ABC} -> {ABC) } имеет место), эта переменная отношения, по крайней мере, находится в нормальной форме BC.

Если нет зависимостей соединения, то ваш relvar также находится в шестой нормальной форме (нет, это не ошибка подсчета).

0 голосов
/ 17 ноября 2011

Нет ни одного.

Функциональная зависимость подразумевает, что после устранения любых дубликатов, включающих столбцы как зависимых, так и определителей, вы можете прикрепить UNIQUE к столбцам определителей. Например, UNIQUE(A,B) не работает, потому что a1,b1 появляется дважды, UNIQUE(A,C) терпит неудачу, потому что a1,c2 появляется дважды, а UNIQUE(B,C) терпит неудачу, потому что b1,c1 появляется дважды.

...