User's Manual

Persistence Glossary 205
Link Attributes
A Link is the path from one object to another. Associations are types of links. A Link Attribute
is a property of this link. For instance, if a developer wanted to know when the link was created,
he could store the creationDate as a Link Attribute.
See Section 9.3.4 Link Attributes and Section 9.8 Link Attributes.
Link Role
See: Roles
Multiplicity
Multiplicity refers to a set of values (all non-negative integers, plus infinity) that can be used to
describe cardinality. PDL uses a Multiplicity to specify the relationship between objects within
Associations. Specifically, it can be used to answer the question, "given an object of type A, what
is the range of number of objects of type B that can be related to A?" The syntax used is "[#..#]"
where # is either "0", "1", or "n". The valid multiplicities are "[0..1]" (there may or may not be a
single associated object), "[0..n]" (there may be zero to n associated objects), and "[1..1]" (there
is always exactly one object related to the given object). The Multiplicities with an upper bound
of "n" are typically used when there is a mapping table involved. The Multiplicity of "[1..1]" is
typically used when there is a non-null, single column in the table referencing another table. If
no multiplicity is specified, "[0..1]" is used as the default.
Property
Within the persistence system, Property is used as the global term to describe either an attribute
or an association of an Object Type.
Reference Key
The Reference Key provides the Metadata Driven SQL system information about how to join
the current Object Type with its super Object Type. In a standard Object Type that does not
extend anything, an Object Key is declared to uniquely identify the object within the tables. If
an Object Type extends another Object Type, a Reference Key is used instead of an Object Key.
This Reference Key holds information about how the table of the child type can be joined with
the table of the super type. For an example, see Section 9.2.6 Object Type Inheritance.
If the Object Key of the parent is keyed off of multiple rows, the columns in the reference key
must appear in the order in which they should be joined. For instance, the definitions below will
produce the join syntax that follows them (remove the "\" and make it all one line).
model tutorial;
object type FirstObjectType {
Attributes defined here
object key (object_id_one, object_id_two);
}
object type SecondObjectType extends FirstObjectType {
Attributes defined here
reference key (secondtable.second_object_id_one, \
secondtable.second_object_id_two);
}
The above PDL would produce SQL join code similar to the following: