1.3.1 Object Ownership
Metadata objects are owned by other objects. For example, a Table object owns a collection of Column objects.
The two classifications of object ownership relationships are as follows:
Strongly Typed: An object type can have a collection of child objects of a particular type. For example, a Table has a collection of objects of type Column. This in turn means that each Column object has a well-defined Table parent object.
Weakly Typed: An object type can own a shared object type. For example, an Annotation object type can belong to a Model object, a Table object, a Column object, and so forth. This in turn means that the shared object type can belong to different parent types.
The importance of recognizing the distinction between these two ownership scenarios is that commands that reference the parent or child object also specify the type of the parent.
Similarly, objects can have reference links to other objects (for example, a PerspectiveTable object can link to a Table object). These links can also be strongly typed or weakly typed.
In addition, it is important to recognize that objects can include collections of child objects (for example, a Table that has a collection of columns), and sometimes objects can have a single child object (for example, a Column that has a single AttributeHierarchy child object).