ER Model

Entities
Entities represent actual physical world things

Entities are Defined by
Entities are defined by a set of attributes

Relationships
Relationships are associations between two or more entities

Relationships are Defined by
Relationships are defined by the entities it connects and an optional set of attributes.

Keys
Keys are defined by underlines. The ssn field is the key in the above relation

Attributes
Attributes are denoted as circles connected to the rectangle that is the entity

No Key Constraint


Entities with no key constraints are denoted with a single solid line

Key Constraint


Entities with key constraints are denoted with a single solid arrow

Participation Constraint
A participation constraint says "one or more" and any entity with a participation constraint is said to be in total participation

Weak Entities


Weak entities are entities that can be identified uniquely only with the primary key of another (owner) entity

Key and Participation Constraints
The owner entity and the weak entity are connected with a One-To-Many relationship, with a key and participation constraint. What the key constraint says is that dependents can only be part of at most one policy, meaning that dependents can not be part of multiple policies. What the participation constraint says is that dependents must be part of at least one policy, meaning that there can not be a dependent that is not part of a policy.

Aggregation


Aggregation allows relationships between relationship sets. This process essentially converts a relationship into (functionally) an entity. In the diagram to the right, we see that employees can monitor sponsorships.

ISA Hierarchies


Similar to the idea of inheritance in many programming languages. Attributes from the parent entity are inherited by the children entities.

Overlap Constraint
An overlap constraint defines whether an entity can simultaneously be different child entities. For example, can the Employee Simon be both an Hourly_Emps employee and also a Contract_Emps employee.

Covering Constraint
This constraint defines whether the parent entity can exist separately from the children entity. In the example above, whether every employee has to be an Hourly_Emps employee or a Contract_Emps employee

Reasons for Using ISA

 * 1) To add descriptive attributes to a child entity that may not be relevant for the parent entity
 * 2) To identify child entites that participate in a relationship that may not make sense for every entity in the parent entity set