About
aggregation is a containment relationship where one or more entities are part of a container entity.
In other word, aggregation is combining multiple pieces of data into one unit.
The container entity may be:
- another entity (for instance, a class that has student)
- or a nominal attribute (a tag, label or class) (for instance, a color that is present on sweaters)
aggregation is also known as:
- whole/part relationship
- catalog containment because when the container is destroyed, the content object is not destroyed (whereas in a composition it is).
In other term, this is not a dependency relationship (whereas a composition is)
The container is said to be an aggregate/compound type.
The structure to implements this kind of relationship is known as a collection.
Articles Related
Example
- Library and Students. Because the student can exist without library, the relation between student and library is aggregation.
- professor and students: when the professor dies the students do not die along with him or her.
Property
A aggregation is:
- asymmetric - only one end of the relation can be an aggregation.
- transitive - if a aggregates b, if b aggregates c, then a aggregates c
Visualization
In a Object - Class Diagram (UML), an aggregation is represented with an association (ie the link) with a hollow diamond at the aggregate end.