Attributes do not have their own identifiers. An attribute is
specified by the identifier of the component of which it is a part and
its name. This combination is unique for a given attribute. For example
the `data type' attribute of a column (see Section
) is
specified by the identifier of the column and the name of the attribute
(`DTYPE' in this case). Each attribute has a data type associated with
it. Families of subroutines (one per data type) are available to set
and inquire the values of attributes:
See Section
for details of using these subroutines.
All the attributes for a given component adopt values when the component is created. Some attributes are mandatory, in which case values must be supplied for them. For the remaining attributes values are optional, and if they are not supplied defaults are adopted.
Most attributes are immutable; they are specified once when the
component is created and are fixed thereafter. A few, however, are
mutable and may be changed at any stage during the life of the
component. The immutable attributes of all the columns in a catalogue
are frozen when values are first written to the table11.
CAT [1ex