Программа для поиска канонического покрытия или минимального количества функциональных зависимостей

1

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

Например:

Если у вас есть: Таблица = (A, B, C) < - это столбцы: A, B, C

И зависимости:

A → BC

B → C

A → B

AB → C

Каноническое покрытие (или минимальное количество зависимостей):

A → B

B → C

Есть ли программа, которая может это сделать? Если нет, любой код/​​псевдокод, чтобы помочь мне написать один, будет оценен. Предпочитаете на Python или Java.

Теги:
database
database-design

2 ответа

0

Похоже, вы можете реорганизовать любые правила формы:

   A ->  BC

в

 A -> B

и

  A -> C

и любых правил вида:

  AB -> C

в

  A -> C

и

  B -> C

После этого рефакторинга вы должны иметь набор правил одиночных пар:

  X -> Y

(Вероятно, с большим количеством избыточных копий можно сразу удалить). Это формирует частичный порядок, который, как представляется, ссылался на rlotun.

Для примера до сих пор вы заканчиваете:

 A -> B
 B -> C
 A -> C

Если вы затем минимизируете частичный порядок (например, удаляете любые избыточные ссылки, любые книги по структуре данных на частичном языке должны сообщать вам, как это сделать), вы будете имеют минимальный частичный порядок, и я думаю, что ответ вы хотите. Минимизируя частичный порядок в примере, вы должны удалить A → C из частичный порядок, заканчивающийся вашим ответом.

  • 0
    Предполагая, что это единственные правила при минимизации зависимостей. я уверен, что есть и другие правила ... я думаю, что это тоже подразумеваемый вопрос. Какие правила используются для минимизации зависимостей?
  • 0
    например: какое правило вы бы использовали для зависимости AB -> DE? или ABC -> EDF или A -> BCF
Показать ещё 3 комментария
0

Посмотрев на свои зависимости, вы можете просмотреть их как частичный порядок на A, B, C. То, что вы хотите, звучит очень похоже (но не полностью) топологическая сортировка (частичный порядок сортировки на направленном ациклическом графе).

  • 0
    Можете ли вы показать мне, как топологическая сортировка минимизирует эти зависимости в каноническом покрытии, которое я описал в своем вопросе?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню