アームストロングの公理は、リレーショナルデータベースにおけるすべての関数従属性を推論するために使用される公理(より正確には推論規則)の集合である。これらは、ウィリアム・W・アームストロングが1974年の論文[1]で開発した。これらの公理は、関数従属性の集合( と表記 )に適用された場合、その集合( と表記)の閉包における関数従属性のみを生成するという点で健全である。また、これらの規則を繰り返し適用することで、閉包におけるすべての関数従属性が生成されるという点で完全である。
より正式には、関数従属性の集合 を持つ属性集合上の関係スキームを で表すものとします。関数従属性はによって論理的に導かれると言い、 における関数従属性を満たす のすべてのインスタンスに対して も を満たす場合のみ、 で表します。によって論理的に導かれるすべての関数従属性の集合を で表します。
さらに、推論規則の集合 に関して、関数従属性 は内の関数従属性から の推論規則の集合 によって導出可能であるといい、 の推論規則を内の関数従属性に繰り返し適用することによって が得られる場合のみ、それを で表します。の推論規則によってから導出可能なすべての関数従属性の集合を で表します。
そして、推論規則のセットが健全なのは、次の条件が満たされる場合のみです。
つまり、 によって論理的に導かれない関数従属性を用いてを導出することはできない。推論規則の集合は、以下が成り立つ場合、完全であると言われる。
もっと簡単に言えば、によって論理的に暗示されるすべての機能的依存関係を によって導出することができます。
公理(基本ルール)
を属性集合 上の関係スキームとします。以降、、の任意の部分集合を文字 で表し、さらに、2つの属性集合 と の和集合を通常の の代わりに文字で表します。この表記法は、データベース理論において属性集合を扱う際に 標準的なものです。
反射性の公理
が属性の集合であり、が のサブセットである場合、が成り立ちます。ここで、[ ]が成り立つということは、 が機能的に を決定することを意味します。
- もしそうなら。
増加の公理
が成り立ち、が属性の集合である場合、が成り立ちます。これは、依存関係内の属性が基本的な依存関係を変更しないことを意味します。
- ならば、任意の に対して となります。
推移性公理
が成り立ち、 が成り立つ場合、 が成り立ちます。
- かつならば。
追加ルール(二次ルール)
これらの規則は上記の公理から導き出すことができます。
分解
ならば、そして。
証拠
| 1. | (与えられた) |
| 2. | (反射性) |
| 3. | (1と2の推移性) |
構成
ならば、。
証拠
| 1. | (与えられた) |
| 2. | (与えられた) |
| 3. | (1とAの拡張) |
| 4. | (2とYの増分) |
| 5. | (3と4の推移性) |
連合
ならば、。
証拠
| 1. | (与えられた) |
| 2. | (与えられた) |
| 3. | (2とXの増分) |
| 4. | (1とZの拡張) |
| 5. | (3と4の推移性) |
擬似推移性
ならば、。
証拠
| 1. | (与えられた) |
| 2. | (与えられた) |
| 3. | (1とZの拡張) |
| 4. | (3と2の推移性) |
自己決定
任意の に対して となる。これは反射性公理から直接導かれる。
拡張性
次の特性は、 の場合の拡張の特殊なケースです。
- もし なら、。
拡張性は、他の公理とともに拡張性から証明できるという意味で、公理として拡張性を置き換えることができます。
証拠
| 1. | (反射性) |
| 2. | (与えられた) |
| 3. | (1と2の推移性) |
| 4. | (拡張度3) |
| 5. | (反射性) |
| 6. | (4と5の推移性) |
アームストロング関係
関数従属性の集合が与えられたとき、アームストロング関係とは、閉包内の全ての関数従属性と、それらの従属性のみを満たす関係である。与えられた従属性の集合に対する最小サイズのアームストロング関係は、考慮される従属性内の属性数の指数関数となるサイズを持つことができる。[2]
参考文献
外部リンク
- UMBC CMSC 461 春 '99
- スタンフォード大学のCS345講義ノート