結合依存関係

データベース制約

データベース理論において結合依存性とは、データベーススキーム上の法的関係の集合に対する制約です。あるテーブルが結合依存性の対象となれるのは、そのテーブルが、その属性のサブセットをそれぞれ持つ複数のテーブルを結合することによって常に再作成できる場合です。結合に含まれるテーブルの1つがテーブルのすべての属性を持つ場合、その結合依存性は自明と呼ばれます。 T {\displaystyle T} T {\displaystyle T} T {\displaystyle T} T {\displaystyle T}

結合依存性は、射影結合正規形とも呼ばれる第5 正規形(5NF)において重要な役割を果たします。これは、 の法的な関係がと呼ばれる の結合依存性に制限されている場合、スキームが のテーブルに分解されると、その分解はロスレス結合分解になることが証明できるためです R {\displaystyle R} R 1 {\displaystyle R_{1}} R n {\displaystyle R_{n}} R {\displaystyle R} R {\displaystyle R} R 1 R 2 R n {\displaystyle *(R_{1},R_{2},\ldots ,R_{n})}

結合依存関係を説明する別の方法は、結合依存関係内の関係が互いに独立していると言うことです。

関数従属性の場合とは異なり、結合従属性には健全完全な公理化は存在しない[1]。ただし、完全型付き従属性のようなより表現力豊かな従属性言語では公理化が存在する。[2] :第8章 ただし、結合従属性の含意は決定可能である。[2] :定理8.4.12 

正式な定義

を関係スキーマとし、の分解とします R {\displaystyle R} R 1 R 2 R n {\displaystyle R_{1},R_{2},\ldots ,R_{n}} R {\displaystyle R}

この関係は結合依存性 を満たしている r R {\displaystyle r(R)}

R 1 R 2 R n {\displaystyle *(R_{1},R_{2},\ldots ,R_{n})} もし 1 n Π R r r {\displaystyle \bowtie _{i=1}^{n}\Pi _{R_{i}}(r)=r.}

結合依存関係は、その中の1つがそれ自身である場合は自明である[3] R {\displaystyle R_{i}} R {\displaystyle R}

2項結合依存性は、一般の場合よりも以前に研究されていたという歴史的事実から、多値依存性と呼ばれます。より具体的には、 Uが属性の集合であり、Rがその上の関係である場合、Rが次を満たす場合と、 Rが次を満たす場合に限ります。 X はい {\displaystyle X\twoheadrightarrow Y} X はい X あなた はい {\displaystyle *(X\cup Y,X\cup (UY)).}

テーブル Order = {注文番号, 顧客名, ピザ名, 配達人} で購入履歴をモデル化するピザチェーンがあるとします。以下の関係式が導き出されます。

  • 顧客名は注文番号によって異なります
  • ピザの名前は注文番号によって異なります
  • 注文番号に応じて配送業者が異なります

関係は独立しているため、次のような結合依存関係があります: *((order-number, customer-name), (order-number, pizza-name), (order-number, courier))。

しかし、各顧客に専用の宅配業者がいる場合、次のような結合依存関係が考えられます。*((注文番号, 顧客名), (注文番号, ピザ名), (注文番号, 宅配業者), (顧客名, 宅配業者))。ただし、*((注文番号, 顧客名, 宅配業者), (注文番号, ピザ名)) も有効です。このことから、結合依存関係だけではデータベーススキームを正規化するには不十分であることが明らかです。

参照

参考文献

  1. ^ Petrov, SV (1989). 「システム特性の表現のための言語の有限公理化」.情報科学. 47 : 339–372 . doi :10.1016/0020-0255(89)90006-6.
  2. ^ ab Abiteboul; Hull; Vianu (1995). 『データベースの基礎』 Addison-Wesley. ISBN 9780201537710
  3. ^ Silberschatz, Korth.データベースシステムの概念(第1版)。
「https://en.wikipedia.org/w/index.php?title=Join_dependency&oldid=1321740398」から取得