Class, Aggregation, Composition, in HQDM

What is the difference, and when should each be used?