функциональные зависимости таблицы, имеющей независимые атрибуты

у меня есть сомнения по поводу независимых атрибутов (например, постоянного столбца) в таблице. каким должен быть первичный ключ и fds для следующего примера:

пусть a,b,c,d,e — атрибуты, a,b,c однозначно идентифицирует строку, а d,e — независимые столбцы. то какие должны быть ключевые атрибуты и какие фдс


person user2450833    schedule 23.07.2013    source источник


Ответы (2)


пусть a,b,c,d,e — атрибуты, a,b,c однозначно идентифицирует строку, а d,e — независимые столбцы. то какие должны быть ключевые атрибуты и какие фдс

Если ABC однозначно идентифицирует строку, и если ни одно подмножество ABC не идентифицирует строку однозначно, то ABC является неприводимым суперключом, также известным как ключ-кандидат. Если предположить, что ABC является единственным ключом-кандидатом, и предположить, что ABC также является единственным детерминантом, то это FD.

  • АВС->Д
  • АВС->Е

ABC->ABC — тривиальная зависимость. Тривиальные зависимости обычно опускаются.

Что означает предположение, что ABC является единственным определяющим фактором? Это означает, что у вас нет других невыраженных FD, таких как D->E, или AB->D, или D->A.

person Mike Sherrill 'Cat Recall'    schedule 23.07.2013

Обычно говорят, что атрибут является независимым по отношению к некоторому набору зависимостей, если он не появляется в левой части какой-либо зависимости в этом наборе или в правой части какой-либо (нетривиальной) зависимости в этом наборе. Независимый не обязательно означает постоянный, это просто означает, что атрибут не определяется другими атрибутами.

«Правильный» (5-я нормальная форма) способ моделирования атрибута, который не зависит от любого другого атрибута в схеме, состоит в том, чтобы поместить его в собственную таблицу.

Следует различать набор зависимостей, предназначенных для моделирования любой таблицей, и набор зависимостей, фактически действующих в таблице. Ваш вопрос не совсем ясен, потому что вы говорите, что d, e являются «независимыми» атрибутами в таблице, а затем спрашиваете, каковы зависимости. Если a,b,c является (супер)ключом, как вы говорите, тогда действующая зависимость де-факто состоит в том, что все атрибуты в таблице определяются a, b,c - значит, d и e вовсе не "независимы".

Если, с другой стороны, вы не собирались реализовывать какие-либо зависимости от d или e, вы могли бы сделать (a,b,c,d,e) ключ-кандидат (так что сами по себе a,b,c больше не являются однозначно идентифицирующими) ИЛИ вы можете разложить d и e отдельно на свои собственные таблицы.

person nvogel    schedule 23.07.2013
comment
допустим, здесь d и e имеют постоянные значения. тогда какой будет первичный ключ? - person user2450833; 24.07.2013
comment
ABC, если это единственный ключ-кандидат. - person nvogel; 24.07.2013