Может ли отношение в нормальной форме Бойса-Кодда иметь функциональные зависимости между основными атрибутами?

У меня довольно простой вопрос. Из того, что я видел, похоже, что нормализация от 1NF, 2NF, 3NF до формы Бойса-Кодда, похоже, в основном имеет дело с непервичными атрибутами. Если я не ошибаюсь, следующая таблица представлена ​​в форме Бойса-Кодда:

R(A,B,C), F = {AB->C, A->B}

с A, B - составным первичным ключом, что мне показалось бы странным.

Я что-то упустил?


person devoured elysium    schedule 20.07.2011    source источник
comment
Ваша таблица даже не в 3NF, поскольку C транзитивно зависит от A по B   -  person Quassnoi    schedule 20.07.2011
comment
Ваше у меня эти ФД не имеет смысла. Это все ФД, которые держатся? - Невозможно. Это все нетривиальные FD, которые имеют место? - Невозможно. Это какие-то ФД, которые держатся? - На вопрос нет ответа. Узнайте, что такое прикрытие и каковы точные условия применения того или иного определения / правила / алгоритма. Для определения CK и NF нам должны быть предоставлены FD, которые образуют прикрытие. Иногда минимальное / несократимое прикрытие. И набор всех атрибутов должен быть указан. См. этот ответ.   -  person philipxy    schedule 16.05.2020
comment
Прямо сейчас вы просто просите нас переписать ваш учебник с помощью индивидуального учебника. См. Раздел Как спросить, поиск в Google «домашнее задание stackexchange» и текст наведения курсора на стрелку голосования. Продемонстрируйте этапы своей работы, следуя учебнику, с обоснованием и задайте 1 конкретный исследуемый не повторяющийся вопрос о том, где вы впервые застряли. Цитируйте определения, теоремы и алгоритмы, на которые вы полагаетесь. Все шаги также являются часто задаваемыми вопросами. PS странное мне ничего не сообщает. PS ПК не имеют значения, СК имеют значение. Составные CK актуальны тем, что о них существует определенная теорема BCNF.   -  person philipxy    schedule 16.05.2020


Ответы (2)


Если A-> B, то {AB} не может быть первичным ключом, потому что он не минимальный. Если предположить, что A является единственным ключом, тогда R находится по крайней мере в BCNF в отношении зависимостей AB-> C, A-> B.

person nvogel    schedule 21.07.2011

Если A определяет B (A -> B), то утверждение, что AB определяет C (AB -> C), означает, что A определяет C (A -> C).

Сказать A -> B означает, что нет двух записей, в которых столбцы B имеют разные значения, но столбцы A имеют одинаковое значение.

Сказать AB -> C означает, что нет двух записей, в которых столбцы C имеют разные значения, но столбцы A и B имеют одинаковое значение. Хотя, поскольку A -> B, мы уже знаем, что если столбцы A имеют одинаковое значение, то столбцы B также имеют такое же значение. Таким образом, мы можем сказать, что, поскольку A -> B, то AB -> C влечет A -> C.

Таким образом, ФД в R:

  1. A -> B
  2. A -> C

Чтобы отношение находилось в BCNF, должно выполняться следующее:

  1. Он уже должен быть в 3НФ
  2. Не должно быть нетривиальных функциональных зависимостей, в которых определитель не является суперключом.

Поскольку у вас уже есть связь в 3NF, как вы заявили, мы удовлетворяем 1-му условию. Поскольку во всех FD R определитель является суперключом (A - суперключ), мы удовлетворяем второму условию.

Таким образом, R находится в BCNF.

person Alessandro Nerla    schedule 15.05.2020
comment
Ваше первое предложение неверно. Эти три FD говорят о трех разных вещах. Однако одни их комбинации подразумевают другие. Ваши первые 2 пули неправильные. Действуют частичные и транзитивные FD, но не проблемные - вы не используете правильные определения терминов для FD и NF. Вы четко не обосновываете претензии и не приводите доводы, поэтому даже если исправлены неправильные претензии, это не очень помогает. PA Подобные ответы, которые содержат фрагменты того, о чем люди думали при решении проблем, не дают тем, кто задает вопрос, ничего, что они могут использовать для решения других проблем. Отправьте их алгоритмам, которым они должны следовать. - person philipxy; 16.05.2020
comment
Как мое первое предложение неверно? Поскольку A однозначно идентифицирует B, а любая пара AB однозначно идентифицирует C, то любая A однозначно определяет C. В любом случае, я сделаю ответ более общим, чтобы помочь другим людям, имеющим эти проблемы. - person Alessandro Nerla; 16.05.2020