The Entity Relationship Data Model
The Entity Relationship Data Model
Adrienne Watt
The entity relationship (ER) data model has existed for over 35 years. It is well suited to data modelling
for use with databases because it is fairly abstract and is easy to discuss and explain. ER models are
readily translated to relations. ER models, also called an ER schema, are represented by ER diagrams.
Here is an example of how these two concepts might be combined in an ER data model: Prof. Ba
(entity) teaches (relationship) the Database Systems course (entity).
For the rest of this chapter, we will use a sample database called the COMPANY database to illustrate the
concepts of the ER model. This database contains information about employees, departments and
projects. Important points to note include:
There are several departments in the company. Each department has a unique identification, a
name, location of the office and a particular employee who manages the department.
A department controls a number of projects, each of which has a unique name, a unique
number and a budget.
Each employee has a name, identification number, address, salary and birthdate. An employee is
assigned to one department but can join in several projects. We need to record the start date of
the employee in each project. We also need to know the direct supervisor of each employee.
We want to keep track of the dependents for each employee. Each dependent has a name,
birthdate and relationship with the employee.
An entity is an object in the real world with an independent existence that can be differentiated from
other objects. An entity might be
Entities can be classified based on their strength. An entity is considered weak if its tables are existence
dependent.
Its primary key is derived from the primary key of the parent entity
o The Spouse table, in the COMPANY database, is a weak entity because its primary key is
dependent on the Employee table. Without a corresponding employee record, the
spouse record would not exist.
An entity is considered strong if it can exist apart from all of its related entities.
A table without a foreign key or a table that contains a foreign key that can contain nulls is a
strong entity
Another term to know is entity type which defines a collection of similar entities.
An entity set is a collection of entities of an entity type at a particular point of time. In an entity
relationship diagram (ERD), an entity type is represented by a name in a box. For example, in Figure 8.1,
the entity type is EMPLOYEE.
Existence dependency
Kinds of Entities
You should also be familiar with different kinds of entities including independent entities, dependent
entities and characteristic entities. These are described below.
Independent entities
Independent entities, also referred to as kernels, are the backbone of the database. They are what
other tables are based on. Kernels have the following characteristics:
If we refer back to our COMPANY database, examples of an independent entity include the Customer
table, Employee table or Product table.
Dependent entities
Dependent entities, also referred to as derived entities, depend on other tables for their
meaning. These entities have the following characteristics:
Many to many relationships become associative tables with at least two foreign keys.
Characteristic entities
Characteristic entities provide more information about another table. These entities have the following
characteristics:
2. Create a new simple primary key. In the COMPANY database, these might include:
Employee (EID, Name, Address, Age, Salary) – EID is the simple primary key.
EmployeePhone (EID, Phone) – EID is part of a composite primary key. Here, EID
is also a foreign key.
Attributes
Each entity is described by a set of attributes (e.g., Employee = (Name, Address, Birthdate (Age), Salary).
Each attribute has a name, and is associated with an entity and a domain of legal values. However, the
information about attribute domain is not presented on the ERD.
In the entity relationship diagram, shown in Figure 8.2, each attribute is represented by an oval with a
name inside.
Figure 8.2. How attributes are represented in an ERD.
Types of Attributes
There are a few types of attributes you need to be familiar with. Some of these are to be left as is, but
some need to be adjusted to facilitate representation in the relational model. This first section will
discuss the types of attributes. Later on we will discuss fixing the attributes to fit correctly into the
relational model.
Simple attributes
Simple attributes are those drawn from the atomic value domains; they are also called single-valued
attributes. In the COMPANY database, an example of this would be: Name = {John} ; Age = {23}
Composite attributes
Composite attributes are those that consist of a hierarchy of attributes. Using our database example, and
shown in Figure 8.3, Address may consist of Number, Street and Suburb. So this would be written as →
Address = {59 + ‘Meek Street’ + ‘Kingsford’}
Multivalued attributes
Multivalued attributes are attributes that have a set of values for each entity. An example of a
multivalued attribute from the COMPANY database, as seen in Figure 8.4, are the degrees of an
employee: BSc, MIT, PhD.
Derived attributes
Derived attributes are attributes that contain values calculated from other attributes. An example of this
can be seen in Figure 8.5. Age can be derived from the attribute Birthdate. In this situation, Birthdate
is called a stored attribute, which is physically saved to the database.
Keys
An important constraint on an entity is the key. The key is an attribute or a group of attributes whose
values can be used to uniquely identify an individual entity in an entity set.
Types of Keys
Candidate key
A candidate key is a simple or composite key that is unique and minimal. It is unique because no two
rows in a table may have the same value at any time. It is minimal because every column is necessary in
order to attain uniqueness.
From our COMPANY database example, if the entity is Employee(EID, First Name, Last Name, SIN,
Address, Phone, BirthDate, Salary, DepartmentID), possible candidate keys are:
EID, SIN
First Name and Last Name – assuming there is no one else in the company with the same name
Last Name and DepartmentID – assuming two people with the same last name don’t work in the
same department
Composite key
Using the example from the candidate key section, possible composite keys are:
First Name and Last Name – assuming there is no one else in the company with the same name
Last Name and Department ID – assuming two people with the same last name don’t work in the
same department
Primary key
The primary key is a candidate key that is selected by the database designer to be used as an identifying
mechanism for the whole entity set. It must uniquely identify tuples in a table and not be null. The
primary key is indicated in the ER model by underlining the attribute.
A candidate key is selected by the designer to uniquely identify tuples in a table. It must not be
null.
A key is chosen by the database designer to be used as an identifying mechanism for the whole
entity set. This is referred to as the primary key. This key is indicated by underlining the attribute
in the ER model.
Employee(EID, First Name, Last Name, SIN, Address, Phone, BirthDate, Salary, DepartmentID)
Secondary key
A secondary key is an attribute used strictly for retrieval purposes (can be composite), for example:
Phone and Last Name.
Alternate key
Alternate keys are all candidate keys not chosen as the primary key.
Foreign key
A foreign key (FK) is an attribute in a table that references the primary key in another table OR it can be
null. Both foreign and primary keys must be of the same data type.
Employee(EID, First Name, Last Name, SIN, Address, Phone, BirthDate, Salary, DepartmentID)
Nulls
A null is a special symbol, independent of data type, which means either unknown or inapplicable. It
does not mean zero or blank. Features of null include:
No data entry
Can represent
Can create problems when functions such as COUNT, AVERAGE and SUM are used
Use the Salary table (Salary_tbl) in Figure 8.6 to follow an example of how null can be used.
To begin, find all employees (emp#) in Sales (under the jobName column) whose salary plus commission
are greater than 30,000.
This result does not include E13 because of the null value in the commission column. To ensure that the
row with the null value is included, we need to look at the individual fields. By adding commission and
salary for employee E13, the result will be a null value. The solution is shown below.
Relationships
Relationships are the glue that holds the tables together. They are used to connect related
information between tables.
Relationship strength is based on how the primary key of a related entity is defined. A weak, or non-
identifying, relationship exists if the primary key of the related entity does not contain a primary key
component of the parent entity. Company database examples include:
Customer(CustID, CustName)
A strong, or identifying, relationship exists when the primary key of the related entity contains the
primary key component of the parent entity. Examples include:
Course(CrsCode, DeptCode, Description)
Types of Relationships
A one to many (1:M) relationship should be the norm in any relational database design and is found in all
relational database environments. For example, one department has many employees. Figure 8.7 shows
the relationship of one of these employees to the department.
A one to one (1:1) relationship is the relationship of one entity to only one other entity, and vice versa. It
should be rare in any relational database design. In fact, it could indicate that two entities actually
belong in the same table.
An example from the COMPANY database is one employee is associated with one spouse, and one
spouse is associated with one employee.
The composite entity table must contain at least the primary keys of the original tables.
The linking table contains multiple occurrences of the foreign key values.
It can avoid problems inherent in an M:N relationship by creating a composite entity or bridge
entity. For example, an employee can work on many projects OR a project can have many
employees working on it, depending on the business rules. Or, a student can have many classes
and a class can hold many students.
Figure 8.8 shows another another aspect of the M:N relationship where an employee has different start
dates for different projects. Therefore, we need a JOIN table that contains the EID, Code and StartDate.
S needs to contain the PKs of A and B. These together can be the PK in the S table OR these
together with another simple attribute in the new table R can be the PK.
The combination of the primary keys (A and B) will make the primary key of S.
A unary relationship, also called recursive, is one in which a relationship exists between occurrences of
the same entity set. In this relationship, the primary and foreign keys are the same, but they represent
two entities with different roles. See Figure 8.9 for an example.
For some entities in a unary relationship, a separate column can be created that refers to the primary key
of the same entity set.
Ternary Relationships
A ternary relationship is a relationship type that involves many to many relationships between three
tables.
Refer to Figure 8.10 for an example of mapping a ternary relationship type. Note n-ary means multiple
tables in a relationship. (Remember, N = many.)
For each n-ary (> 2) relationship, create a new relation to represent the relationship.
The primary key of the new relation is a combination of the primary keys of the participating
entities that hold the N (many) side.
In most cases of an n-ary relationship, all the participating entities hold a many side.
Key Terms
alternate key: all candidate keys not chosen as the primary key
candidate key: a simple or composite key that is unique (no two rows in a table may have the same
value) and minimal (every column is necessary)
characteristic entities: entities that provide more information about another table
dependent entities: these entities depend on other tables for their meaning
derived attributes: attributes that contain values calculated from other attributes
entity: a thing or object in the real world with an independent existence that can be differentiated from
other objects
entity relationship (ER) data model: also called an ER schema, are represented by ER diagrams. These
are well suited to data modelling for use with databases.
foreign key (FK): an attribute in a table that references the primary key in another table OR it can be null
independent entity: as the building blocks of a database, these entities are what other tables are based
on
key: an attribute or group of attributes whose values can be used to uniquely identify an individual entity
in an entity set
multivalued attributes: attributes that have a set of values for each entity
null: a special symbol, independent of data type, which means either unknown or inapplicable; it does
not mean zero or blank
relationships: the associations or interactions between entities; used to connect related information
between tables
relationship strength: based on how the primary key of a related entity is defined
ternary relationship: a relationship type that involves many to many relationships between three tables.
unary relationship: one in which a relationship exists between occurrences of the same entity set.
Exercises
2. The database in Figure 8.11 is composed of two tables. Use this figure to answer questions 2.1 to
2.5.
Figure 8.11. Director and Play
tables for question 2, by A. Watt.
5. Does the PLAY table exhibit referential integrity? Why or why not?
3. Define the following terms (you may need to use the Internet for some of these):
schema
host language
data sublanguage
data definition language
unary relation
foreign key
virtual relation
connectivity
composite key
linking table
4. The RRE Trucking Company database includes the three tables in Figure 8.12. Use Figure 8.12 to
answer questions 4.1 to 4.5.
Figure 8.12. Truck,
Base and Type tables for question 4, by A. Watt.
2. Does the TRUCK table exhibit entity and referential integrity? Why or why not? Explain
your answer.
3. What kind of relationship exists between the TRUCK and BASE tables?
Figure 8.13.
Customer and BookOrders tables for question 5, by A. Watt.
5. Suppose you are using the database in Figure 8.13, composed of the two tables. Use Figure 8.13
to answer questions 5.1 to 5.6.
5. Does the BookOrders table exhibit referential integrity? Why or why not?
6. Do the tables contain redundant data? If so which table(s) and what is the redundant
data?
6. Looking at the student table in Figure 8.14, list all the possible candidate keys. Why did you
select these?
Use the ERD of a school database in Figure 8.15 to answer questions 7 to 10.
7. Identity all the kernels and dependent and characteristic entities in the ERD.
9. Looking at each of the tables in the school database in Figure 8.15, which attribute could have a
NULL value? Why?
10. Which of the tables were created as a result of many to many relationships?