Вычислите каноническое покрытие, используя аксиомы Армстронга

Вопрос: Определите каноническое покрытие с помощью аксиом Армстронга. Приведите аксиомы, которые вы используете, чтобы прийти к каждому шагу.

R = (A, B, C, D, E, F) Fdependencies = {A -> B, A -> C, CD -> E, CD -> F, B -> E}

Я знаю аксиомы Армстронга: объединение, разложение, псевдотранзитивность, рефлексивность, увеличение и транзитивность. Я также знаю, что такое каноническая обложка. Однако я не знаю, как использовать аксиомы Армстронга для получения ответа на этот конкретный вопрос — я думал, что вы обычно используете аксиомы Армстронга для вычисления F+, а не cc. Спасибо за помощь.


person pete    schedule 18.04.2011    source источник
comment
В вашем учебнике нет алгоритма вычисления канонического покрытия по набору функциональных зависимостей? Если нет, то можете поискать в Google каноническую обложку или просмотреть главу 5 книги Майера. web.cecs.pdx.edu/~maier/TheoryBook/MAIER/ C05.pdf   -  person Mike Sherrill 'Cat Recall'    schedule 18.04.2011


Ответы (1)


Главный ответ, который появляется, когда я гуглил «каноническую обложку»:

http://www.koffeinhaltig.com/fds/ueberdeckung.php

Вычисление F+ само по себе обычно не очень интересно. Вычисление некоторого минимального множества, которое доказуемо эквивалентно, может быть немного более интересным, хотя у меня есть сомнения.

Обратите внимание (это не ваш фактический вопрос, но я все же упомяну об этом), что, хотя ваша проблема заключается в «минимизации наборов атрибутов с обеих сторон FD», наиболее полезное использование аксиом Армстронга состоит в том, чтобы вычислить FD, которые имеют минимальные наборы атрибутов слева, а максимальное справа (=все атрибуты). Это дает вам все (минимальные) ключи и, таким образом, дает вам простой способ проверить NF.

person Erwin Smout    schedule 18.04.2011
comment
Для людей, которые программируют системы управления базами данных, минимальный эквивалентный набор действительно важен для производительности. Он представляет собой наименьший объем работы, которую должна выполнить СУБД, чтобы гарантировать сохранение всех функциональных зависимостей. Но большинство из нас проектирует и создает системы баз данных, а не системы управления базами данных. - person Mike Sherrill 'Cat Recall'; 18.04.2011
comment
Хм ? Я никогда не слышал о СУБД, в которой пользователь (то есть разработчик базы данных) должен указывать FD для использования СУБД. Я слышал о СУБД, в которых разработчик базы данных должен указывать ключи для использования СУБД. - person Erwin Smout; 18.04.2011
comment
Под людьми, которые программируют системы управления базами данных, я подразумеваю людей, которые пишут исходный код, который компилируется в исполняемые файлы Oracle, исполняемые файлы SQL Server и т. д. Я не один из них; Я один из тех, кто использует Oracle для создания систем баз данных. - person Mike Sherrill 'Cat Recall'; 18.04.2011
comment
Я тоже один из тех людей (которые пишут исходный код, который заканчивается исполняемым файлом и т. д.). Итак, я думаю, что понимаю причину, по которой я говорю, что системы СУБД просто не имеют дело с FD (за исключением, конечно, тех, которые замаскированы под объявление ключа). И я думаю, что поэтому также понимаю причину, по которой я говорю, что системы СУБД просто не выполняют никаких вычислений FD, включая вычисление минимального эквивалента. - person Erwin Smout; 18.04.2011
comment
Тогда вы, конечно, знаете об этом больше, чем я. Я поверю тебе на слово. - person Mike Sherrill 'Cat Recall'; 18.04.2011