1. A computer program product stored on a computer readable storage medium for discovering relationships in an arbitrarily complex environment, the computer program product comprising a computer program, wherein the computer program comprises instructions executable by a processor to: represent a first entity in a system being modeled with a first component of a first type of component in a data model, wherein the first component has a set of fields which contain information relating to the first entity, wherein at least one field in the set of fields contains information about the first type of component, and wherein the first entity is a logical or physical entity in the arbitrarily complex environment; represent a second entity in the system being modeled with a second component of a second type of component in the data model, wherein the second component has a set of fields which contain information relating to the second entity, wherein at least one field in the set of fields contains information about the second type of component, and wherein the second entity is a logical or physical entity in the arbitrarily complex environment; establish, maintain, delete and update one or more relationship discovery rules for analyzing one or more of information contained in one or more fields in the first component and information contained in one or more fields in the second component, one or more of data values associated with the first component and data values associated with the second component, and one or more references to a relationship discovery rule; select a relationship discovery rule from the set of relationship discovery rules based on the type of component associated with the first component; associate the selected relationship discovery rule with the first component; apply the selected relationship discovery rule to the second component; establish a relationship between the first component and the second component according to the relationship discovery rule, wherein the relationship represents an association between the first entity and the second entity in the system, and wherein each relationship contains a set of fields which contain information pertinent to the association, wherein one field of the set of fields contains information about type of relationship; and repeat one or more of selecting a relationship discovery rule from the set of relationship discovery rules, associating the selected relationship discovery rule with a first component, applying the selected relationship discovery rule with the second component to establish, delete or update a relationship when changes are made to the data model.