5

ご存知のように、リレーショナルデータベースのすべての関数従属性を推測するための3つのアームストロングの公理があります。(X、Y、Zは属性のセットです)

  1. 再帰性: X⊆Yの場合、Y→X
  2. 拡張X→Yの場合、任意のZに対してXZ→YZ
  3. 推移性X→YおよびY→Zの場合、X→Z

たとえば、そのようなスキーマがある場合、拡張と推移性を理解します。

SOME_SCHEMA(a、b、c、d)

そのような機能依存性を持つ:

  1. a→b
  2. b→c

拡張を使用することでac→bcを取得するか、推移性を使用することで→cなどを取得できますが、再帰性の公理を使用してより多くの関数従属性を推測する方法がわかりません。一部の属性が他の属性のサブセットであることは、実際にはどういう意味ですか?

私のスキーマを使用した例、または独自のスキーマを作成した例を教えてください。

4

1 に答える 1

4

一時的なルールは、次のように記述することもできます。

A1, A2, …, An → Ai

ここで、iは1からnまでの任意の数です。このルールの定義はもう少し明確だと思います。A1はA1からAnのサブセットであるため、上記の依存関係を推測できます。

これらのタイプの依存関係は、自明な依存関係と呼ばれます。これの最も単純な形式は次のとおりです。

A → A

ご覧のとおり、AはAのサブセットであるため、再帰性の定義により、上記の依存関係を推測できます。

これは実際にはあまり有用な公理ではありません。最初の2つの公理はどちらもそれ自体ではあまり有用ではありませんが、形式上の目的で存在するため、最後の公理に到達できます。これは非常に有用です。

あなたの例を使用するために、私たちは次のように言うことができます。テーブルがあるとすると:

SOME_SCHEMA(a, b, c, d)

次のような依存関係を推測できます。

a, b, c, d → a
a, b, c, d → a, c

そして、同じ性質のより多くの依存関係。

ちなみに、ここに機能従属性を一般的に非常によく説明するいくつかの良いスライドがあります。アームストロングのルールについてもいくつかのスライドがあります。このようなことを学ぶときに、これらが役立つことがわかりました:機能従属性スライド

于 2013-01-27T05:40:41.370 に答える