10.1.3 アソシエーションの種類
アソシエーションクラスが表すオブジェクトクラスの関連には、同一のキープロパティでの関連と、異なるキープロパティでの関連の2種類があります。
また、アソシエーションクラスの属性として、主従関係(Weakアソシエーション)になるものがあります。
アソシエーションが表すオブジェクトクラスの関連、およびWeakアソシエーションについて説明します。
-
同一のキープロパティでの関連
例えば、「HardwareLink」というアソシエーションクラスは、資産情報「AssetInfo」とハードウェア資産情報「HardwareInfo」の関連を表しますが、どちらのオブジェクトクラスでも、キーとなるプロパティは「AssetID」です。
「AssetInfo」と「HardwareInfo」は常に1対1で関連づけられるため、2つのオブジェクトクラスは、「AssetID」によって関連を表すことができます。
そのため、資産管理データベース上には、「AssetInfo」と「HardwareInfo」の関連を定義した情報(アソシエーションクラスとしての情報)は作成されません。
「HardwareLink」の表すオブジェクトクラスの関連を次の図に示します。
図10‒3 同一のキープロパティでの関連 -
異なるキープロパティでの関連
例えば、「ContractLeaseLink」というアソシエーションクラスは、契約情報「Contract」と資産情報「AssetInfo」の関連を表しますが、キーとなるプロパティは、それぞれ「ContractID」と「AssetID」で異なります。
これは、複数の機器をまとめて契約する場合、1つの「Contract」に複数の「AssetInfo」が関連づけられるためです。
そのため、資産管理データベース上には、異なるキープロパティを対応させて2つのオブジェクトクラスの関連を定義した情報(アソシエーションクラスとしての情報)が作成されます。
「ContractLeaseLink」の表すオブジェクトクラスの関連を次の図に示します。
図10‒4 異なるキープロパティでの関連 -
あるクラスともう一方のクラスを、主従関係で表します。この関係では、主となるクラスを削除すると、従属するクラス(Weakクラス)も自動的に削除されます。
主従関係を表すアソシエーションクラスには、例えば「HardwareLink」クラスがあります。これは、資産としての情報「AssetInfo」クラスと、その資産がハードウェアであるとき、ハードウェア資産としての「HardwareInfo」クラスを関連づけています。つまり、まず資産がありその付加情報としてハードウェア資産情報があります。したがって、「AssetInfo」クラスが主となり、「HardwareInfo」クラスが従となるWeakアソシエーションの関係となります。
オブジェクトクラス同士の主従関係については、「20.1.3 クラス関連図」を参照してください。