1. A method for storing data for access by an application program being executed on a data processing system, comprising: storing in a first table a unique business object identifier and attribute data characterizing static attributes of a business object identified by the unique business object identifier, wherein the first table is a static data structure, and whereby an entity relationship model is implemented by the static data structure; varying data fields within each data record of the dynamic data structure in response to a data value stored in another data record, the dynamic data structure being configured to implement the entity relationship model by storing in a second table a role of the business object, wherein the second table is a dynamic data structure having data fields within each data record of the second table which is variable in response to the data value stored in another data record, whereby the entity relationship model is implemented by the dynamic data structure, the business object being identified by the unique business object identifier in the static data structure, the role being indexed by the unique business object identifier in the static data structure, the role of the business object being responsive to a type of the business object; determining at least one relationship between the business object and another business object and storing the at least one relationship in the second table; and specifying in metadata an allowed type of the business object, an allowed role for the business object, and an allowed relationship for the business object, whereby the entity relationship model is implemented by the metadata.