プログラミング言語、オペレーティングシステムの設計、およびデータベース管理システムでは、さまざまなオブジェクトとクラスがオブジェクト間の関連付けとともに格納されます。時間と空間の複雑さを軽減することにより、データセットをより効率的に格納および取得するためのオブジェクト間のこの関係を記述するために、集約と構成の両方が使用されます。
集約と構成
AggregationとCompositionの主な違いは、Aggregationは、作成のために相互に依存しているオブジェクト間の関連付けを表すことです。一方、Compositionは、作成と機能に関して相互に直接依存しているオブジェクトを表します。この場合、一方のオブジェクトがもう一方のオブジェクトに対して所有権を持ちます。
集約は、クラスやオブジェクトなどの2つのデータセット間の関連付けであり、関連するオブジェクトは、作成または機能に関して相互に直接依存していません。したがって、一方のオブジェクトを操作しても、もう一方のオブジェクトのステータスは変わりません。この関連付けにより、変更を失うことなく行うことができます。
コンポジションは特殊なタイプのアグリゲーションであり、2つのデータセット間の関係を記述します。ここで、関連するオブジェクトまたはクラスは、作成、保存、機能などについて互いに直接依存しています。したがって、データセットの1つを変更すると、他のデータセットに直接影響します。
集計と構成の比較表
比較のパラメータ | 集約 | 構成 |
意味 | 集約は、オブジェクトが相互に依存しないタイプの関連付けです。 | 構成は、オブジェクトの相互依存との関連です |
関係 | データセット間には間接的な関係があります | データセット間の親子関係 |
UMLシンボル | 集合体は空のひし形で示されます | 構成は塗りつぶされたひし形で示されます |
変形 | 一方のオブジェクトを変更しても、もう一方のオブジェクトは変更されません | 一方のオブジェクトを変更すると、もう一方のオブジェクトのデータが変更されます |
アソシエーションの強さ | 弱い連想です | 強い連想です |
アグリゲーションとは何ですか?
集約は、クラス、オブジェクトなどの2つのデータセット間の関連付けまたは関係の一種です。関連付けは、類似性のあるデータセットをグループ化するために行われます。
このタイプの関連付けでは、オブジェクトまたはクラスは直接の関係を持ちません。データセットには「Has-A」の関係があります。
これは、データセットの作成、保存、または機能や操作が相互に依存していないことを意味します。これは、同様のデータセットを保存するためにこの形式の関連付けを使用することの主な利点です。
オブジェクトとクラスは相互に直接依存していないため、オブジェクトまたはクラスの1つに変更または変更を加えても、他のデータセットに格納されているデータの内容は変更または変更されません。
これにより、他のデータセットに格納されているデータを気にすることなく、集約されたデータセットの1つを破棄することができます。
集約関係のこのプロパティのため、データを絶えず変更する必要があるテスト環境で主に使用されます。集約されたオブジェクト間の「Has-A」関係により、他のデータセットのデータは破棄されません。
UML表現の場合、空のひし形記号を使用して集約関係を指定します。
作曲とは?
構成はデータセット間の関係の一種であり、主にデータベース管理システムやオペレーティングシステムの設計で使用されます。データセットには、オブジェクト、クラスなどが含まれる場合があります。
コンポジションは、アグリゲーションよりも直接的なデータセット間の関係を作成します。したがって、オブジェクトとクラスは、データセットの作成中に相互に直接関連付けられます。
オブジェクトとクラスは直接関連しているため、作成、保存、および操作や機能は相互に依存しています。
この関係は、「親子」関係または「所有者」関係として表されることがあります。この場合、一方のデータセットがもう一方のデータセットの所有者になります。
このタイプの関係を使用する主な欠点は、オブジェクトまたはクラスの1つが変更または変更されると、その変更が他のデータセットに反映され、データセットに含まれるデータも変更されることです。
これは、データセットの1つが破棄または削除されたかのようにデータセットを操作しているときに、そのデータセットに関連付けられている他のデータセットも破棄されることに注意する必要があります。
ただし、オブジェクトまたはクラス間の構成関係を使用すると、データはより安全に保存されます。コンポジションタイプの関連付けのUML表現には、塗りつぶされたひし形が使用されます。
集約と構成の主な違い
結論
関連するデータ間にある程度の類似性がある場合、データをより効率的に保存するには、データセットが必要です。したがって、データベース管理システムを作成する際に、データセット間の関係を反映するために、さまざまなタイプのデータセットの関連付けが行われます。
AggregationとCompositionはどちらも、関連するデータ間の関係を反映するタイプの関連付けです。
集約は直接的な関係ではなく、このタイプの関連付けに関係するデータは、それらの作成と機能について相互に依存していません。
構成は直接的なタイプの関連付けであり、関連するデータ間の関係は「親子」表現として表される場合があります。
したがって、コンポジションはアグリゲーションよりも強力な関連付けですが、このタイプの関連付けを使用する場合は、データセットの依存関係に注意する必要があります。