Peter Chen introduced entity-relationship modeling during the late 1970s. Along with a number of other theorists, such as Hammer and McLeod with their Semantic Data Model, Chen introduced a new way of thinking about data. Chen’s ideas stressed that a data model should represent the reality of a business, without regard for how that model might be implemented in a manual or automated system. Though it can seem ridiculous today, these ideas were revolutionary at the time, and were instrumental in freeing individuals from the constraints of a hierarchical business model. The ability to model a business “on paper” let business planners test out and debug ideas before implementing them, thus saving money, other resources, and aggravation.
The basic idea behind entity-relationship modeling is this: everything in a business can be generalized into an abstract or archetypal ideal, which we call an entity. These entities have certain characteristics or attributes. These entities also are related to one another through actions that each entity performs on one or more of the other entities. We call these actions, relationships.
In determining the relationship between each of the entities in a data model, you will define a number of business rules. Business rules define your business and how you run it. For instance, you know that to be useful, each employee ID, project ID, and department ID must be unique. While you could use the social security number as the employee ID, you might want to keep the ID short and more easily sorted. More complex issues to consider are questions such as, “How are we to connect employees, projects, and departments so that we minimize data redundancy and maximize our reporting capabilities?” The answers to this and other questions form the rules by which you run your business.
Attribute definitions can be used along with relationships to determine or enforce business rules. You can define a particular set of valid values for any attribute of any entity. For example, you can define a valid range of salaries for a subset of employees for an attribute called Salary. This set of values is known as a domain.