 // ContainerId      Statically defined component instances link to the container they must be run in (Container.ContainerId). 
 //                  Otherwise -1 to indicate that the container will be assigned only at runtime. 
 //                  We do not use NULL because with JDBC it would be awkward to distinguish NULL from 0.
-// ImplLang         the PL this component is written in (see constraint ComponentImplLang below).
+// ImplLang         the PL this component is written in (see constraint defined in the ImplLangEnum ENUMERATIONS).
 //                  This attribute be redundant with Container.Type for all static components and some dynamic components.
 //                  Other dynamic components only get a container assigned at runtime, in which case it is useful to keep the component PL language separately.
 // ComponentTypeId  References the IDL type, such as "IDL:alma/MOUNT_ACS/Mount:1.0"

     CONSTRAINT ComponentIDL FOREIGN KEY (ComponentTypeId) REFERENCES ComponentType 
     CONSTRAINT ComponentContainer FOREIGN KEY (ContainerId) REFERENCES Container 
     CONSTRAINT ComponentConfig FOREIGN KEY (ConfigurationId) REFERENCES Configuration CASCADING INVERSE AGGREGATION
     CONSTRAINT ComponentImplLang CHECK (ImplLang IN ('java', 'cpp', 'py'))
ENDTABLE

// Entries in the BACIProperty table describe configuration for a single baci property.

    CONSTRAINT ContainerConfig FOREIGN KEY (ConfigurationId) REFERENCES Configuration CASCADING INVERSE AGGREGATION
    CONSTRAINT ContainerLoggingConfig FOREIGN KEY (LoggingConfigId) REFERENCES LoggingConfig CASCADING AGGREGATION
    CONSTRAINT ContainerComputer FOREIGN KEY (ComputerId) REFERENCES Computer CASCADING AGGREGATION
    CONSTRAINT ContainerRealTimeType CHECK (RealTimeType IN ('NONE', 'ABM', 'CORR'))
ENDTABLE

