Найти минимальный ключ для схемы отношений - PullRequest
0 голосов
/ 20 марта 2012

У меня есть база данных для инвестиционной фирмы:

  • B (брокер)
  • O (офис брокера)
  • Я (инвестор)
  • S (сток)
  • Q (количество акций, принадлежащих инвестору)
  • D (дивиденды выплачиваются акциями)

Функциональные зависимости

  • S ⟶ D
  • I ⟶ B
  • IS ⟶ Q
  • B ⟶ O

Мне нужно найти минимальный ключ для схемы отношений R = BOSQID и нужно это доказать.

Понятия не имею, как решить эту проблему. Можете ли вы дать мне какую-либо идею?

1 Ответ

1 голос
/ 20 марта 2012

Джей, как я понимаю, это следующее.Вам нужно найти минимальный набор полей, который позволил бы вам идентифицировать все поля BOSQID.Есть алгоритм, который я не помню сейчас, чтобы правильно выполнить анализ, который вы ищете, но упражнение кажется достаточно простым, чтобы не нуждаться в нем.

  • Take B -> O.Поскольку B определяет O, мы можем сохранить B и удалить O из ключей.Текущие возможные ключевые поля: BSQID.
  • Take I -> B.Поскольку I определяет B, мы можем сохранить I и удалить B из ключей.Обратите внимание, что по транзитивности I определяет O.Текущие возможные ключевые поля SQID
  • Take S -> D.Поскольку S определяет D, мы можем сохранить S и удалить D из ключей.Текущие возможные ключевые поля SQI
  • Take IS -> Q.Поскольку IS определяет Q, мы можем оставить IS и удалить Q из ключей.Текущие возможные ключевые поля: IS

Поскольку у нас больше нет функциональных зависимостей, мы не можем продолжать работу, поэтому результат равен IS.Есть более сложные примеры для работы, в которых эта простая техника не поможет вам, потому что она сведет вас с ума, поэтому я рекомендую вам также поискать алгоритм для решения этой проблемы.

...