web-dev-qa-db-ja.com

すべての可能な最小限のカバーを見つける

リレーションスキーマR = {A、B、C}と次の機能依存関係があります。

  • A→B
  • A→C
  • B→A
  • B→C
  • C→A
  • C→B

このリレーションスキーマから派生できる最小のカバーはいくつありますか?私は以下を見つけましたが、それらがすべてかどうか本当にわかりません:

  • A→C
  • B→C
  • C→A
  • C→B

また、すべての可能な最小限のカバーを見つけたかどうかを知る方法に関するルールがあるかどうかもわかりません。

助けてくれてありがとう!

1
BlackPearl

一般に、機能的な依存関係のセットにはさまざまなcanonicalカバーがあり、同等のカバーの依存関係が少ない場合、正規カバーはminimalと呼ばれます。

したがって、たとえば、あなたの例ではカバーは:

A → B
B → C
C → A

3つの依存関係があり、依存関係の少ないカバーを見つけることができないため、最小です。

カバーにはいくつかの定義とアルゴリズムがあります。たとえば、Maier、D. Computer Science Press、1983年の「Theory of Relational Databases」の第5章では、数種類のカバー(非冗長、正規、最小、最適、環状)とそれらを見つけるためのさまざまなアルゴリズムについて説明していますが、誰もが可能な最小限のカバーをすべて見つけるための正式なアルゴリズムを誰も与えていないことを知っているからです。

1
Renzo