Relationship Types, Relationship Sets, Roles, and Structural Constraints
In Figure 7.8 there are several implicit
relationships among the various entity types. In fact, whenever an
attribute of one entity type refers to another entity type, some relationship
exists. For example, the attribute Manager of DEPARTMENT refers to an employee who manages the department; the attribute Controlling_department of PROJECT
refers to the department that controls the project;
the attribute
Supervisor of EMPLOYEE refers
to another employee (the one who supervises this employee); the attribute Department of EMPLOYEE refers to the department for which the employee works; and so on. In
the ER model, these references should not be represented as attributes but as relationships, which are discussed in
this section. The COMPANY
database schema will be refined in Section 7.6 to
represent relationships explicitly. In the initial design
of entity types, relationships are typically captured in the form of
attributes. As the design is refined, these attributes get converted into
relationships between entity types.
This section is organized as follows: Section 7.4.1 introduces the
concepts of rela-tionship types, relationship sets, and relationship instances.
We define the concepts of relationship degree, role names, and recursive
relationships in Section 7.4.2, and then we discuss structural constraints on
relationships—such as cardinality ratios and existence dependencies—in Section
7.4.3. Section 7.4.4 shows how relationship types can also have attributes.
1. Relationship Types,
Sets, and Instances
A relationship type R among n entity types E1, E2, ..., En
defines a set of associa-tions—or a relationship
set—among entities from these entity types. As for the case of entity types
and entity sets, a relationship type and its corresponding rela-tionship set
are customarily referred to by the same
name, R. Mathematically, the
relationship set R is a set of relationship instances ri, where each ri associates n individual entities (e1, e2, ..., en),
and each entity ej in ri is a member of entity set Ej, 1 f j f n. Hence, a relationship set
is a mathematical relation on E1,
E2, ..., En; alter-natively, it can be
defined as a subset of the Cartesian product of the entity sets E1 × E2 × ... × En. Each of the entity types E1, E 2, ..., En
is said to participate in the rela-tionship type R; similarly, each of the individual entities e1, e2,
..., en is said to participate in the relationship
instance ri = (e1, e2, ..., en).
Informally,
each relationship instance ri
in R is an association of entities,
where the association includes exactly one entity from each participating
entity type. Each such relationship instance ri represents the fact that the entities participating
in ri are related in some
way in the corresponding miniworld situation. For example, consider a
relationship type WORKS_FOR between
the two entity types EMPLOYEE and DEPARTMENT, which associates each employee
with the department for which the employee works in the corresponding entity
set. Each relationship instance in the relationship set WORKS_FOR associates one EMPLOYEE entity and one DEPARTMENT entity. Figure 7.9 illustrates
this example, where each relationship
instance ri is shown connected to the EMPLOYEE and DEPARTMENT entities that participate in ri. In the miniworld represented
by Figure 7.9, employees e1,
e3, and e6 work for department d1; employees e2 and e4 work for department d2; and employ-ees e5
and e7 work for department
d3.
In ER
diagrams, relationship types are displayed as diamond-shaped boxes, which are
connected by straight lines to the rectangular boxes representing the
participat-ing entity types. The relationship name is displayed in the
diamond-shaped box (see Figure 7.2).
2. Relationship Degree, Role
Names, and Recursive Relationships
Degree of a Relationship Type. The degree of a relationship type is the
number of participating entity types.
Hence, the WORKS_FOR
relationship is of degree two. A relationship type of degree two is called binary, and one of degree three is
called ternary. An example of a ternary
relationship is SUPPLY, shown in Figure 7.10, where each relationship instance ri associates three
entities—a supplier s, a part p, and a project j—whenever s supplies
part p to project j. Relationships can generally be of any
degree, but the ones most common are binary relationships. Higher-degree
relationships are generally more complex than binary relationships; we
characterize them further in Section 7.9.
Relationships as Attributes. It is sometimes convenient to think of a binary relationship type in terms of attributes, as we discussed in Section 7.3.3. Consider the WORKS_FOR relationship type in Figure 7.9. One can think of an attribute called Department of the EMPLOYEE entity type, where the value of Department for each EMPLOYEE entity is (a reference to) the DEPARTMENT entity for which that employee works. Hence, the value set for this Department attribute is the set of all DEPARTMENT entities, which is the DEPARTMENT entity set. This is what we did in Figure 7.8 when we specified the initial design of the entity type EMPLOYEE for the COMPANY database. However, when we think of a binary relationship as an attribute, we always have two options. In this example, the alternative is to think of a multivalued attribute Employee of the entity type DEPARTMENT whose values for each DEPARTMENT entity is the set of EMPLOYEE entities who work for that department. The value set of this Employee attribute is the power set of the EMPLOYEE entity set. Either of these two attributes—Department of EMPLOYEE or Employee of DEPARTMENT—can represent the WORKS_FOR relationship type. If both are represented, they are constrained to be inverses of each other.
Role Names and Recursive Relationships. Each entity type that participates in a relationship type plays a particular role in the relationship. The role name signifies the role that a participating entity from the entity type plays in each relation-ship instance, and helps to explain what the relationship means. For example, in the WORKS_FOR relationship type, EMPLOYEE plays the role of employee or worker and DEPARTMENT plays the role of department or employer.
Role
names are not technically necessary in relationship types where all the
partici-pating entity types are distinct, since each participating entity type
name can be used as the role name. However, in some cases the same entity type participates more than
once in a relationship type in different
roles. In such cases the role name becomes essential for distinguishing the
meaning of the role that each participating entity plays. Such relationship
types are called recursive relationships.
Figure 7.11 shows an example. The SUPERVISION
relationship type relates an employee to a supervisor, where both employee and
supervisor entities are members of the same EMPLOYEE
entity
set. Hence, the EMPLOYEE entity
type participates
twice in SUPERVISION: once in the role of supervisor (or boss), and
once in the role of supervisee (or subordinate). Each relationship instance ri in SUPERVISION associates two employee entities ej and ek, one of which plays the role of supervisor and the
other the role of supervisee. In Figure 7.11, the lines marked ‘1’ represent
the super-visor role, and those marked ‘2’ represent the supervisee role;
hence, e1 supervises e2 and e3, e4
supervises e6 and e7, and e5 supervises e1
and e4. In this example,
each relationship instance must be connected with two lines, one marked with
‘1’ (supervisor) and the other with ‘2’ (supervisee).
3. Constraints on Binary
Relationship Types
Relationship
types usually have certain constraints that limit the possible combinations of
entities that may participate in the corresponding relationship set. These
constraints are determined from the miniworld situation that the relationships
rep-resent. For example, in Figure 7.9, if the company has a rule that each
employee must work for exactly one department, then we would like to describe
this constraint in the schema. We can distinguish two main types of binary
relationship constraints: cardinality
ratio and participation.
Cardinality Ratios for Binary Relationships. The cardinality
ratio for a
binary relationship specifies the maximum number of relationship instances
that an entity can participate in. For example, in the WORKS_FOR binary relationship type, DEPARTMENT:EMPLOYEE is of
cardinality ratio 1:N, meaning that each department can be related to (that is,
employs) any number of employees,9 but an employee can be related to
(work for) only one department. This means that for this particular
relationship WORKS_FOR, a
particular department entity can be related to any number of employees (N
indicates there is no maximum number). On the other hand, an employee can be
related to a maximum of one department. The possible cardinality ratios for
binary relationship types are 1:1, 1:N, N:1, and M:N.
An
example of a 1:1 binary relationship is MANAGES (Figure
7.12), which relates a department entity to the employee who manages that
department. This represents the miniworld constraints that—at any point in
time—an employee can manage one department only and a department can have one
manager only. The relation-ship type WORKS_ON (Figure
7.13) is of cardinality ratio M:N, because the mini
world
rule is that an employee can work on several projects and a project can have
several employees.
Cardinality
ratios for binary relationships are represented on ER diagrams by dis-playing
1, M, and N on the diamonds as shown in Figure 7.2. Notice that in this
notation, we can either specify no maximum (N) or a maximum of one (1) on
participation. An alternative notation (see Section 7.7.4) allows the designer
to specify a specific maximum number
on participation, such as 4 or 5.
Participation Constraints and Existence
Dependencies. The participation constraint specifies
whether the existence of an entity depends on its being related to another entity via the relationship
type. This constraint specifies the minimum
number of relationship instances that each entity can participate in, and is
some-times called the minimum cardinality
constraint. There are two types of participa-tion constraints—total and
partial—that we illustrate by example. If a company policy states that every employee must work for a
department, then an employee entity can exist only if it participates in at
least one WORKS_FOR
relationship instance (Figure 7.9). Thus, the participation of EMPLOYEE in WORKS_FOR is called total participation, meaning that every entity in the total set of employee entities must
be related to a department entity via WORKS_FOR. Total
participation is also called existence
dependency. In Figure 7.12 we do not expect every employee to manage a
department, so the participation of EMPLOYEE in the MANAGES relationship type is partial, meaning that some or part of the set of employee entities are related to some department
entity via MANAGES, but not
necessarily all. We will refer to the cardinality ratio and participation
constraints, taken together, as the structural
constraints of a relationship type.
In ER
diagrams, total participation (or existence dependency) is displayed as a double line connecting the participating
entity type to the relationship, whereas partial participation is represented
by a single line (see Figure 7.2).
Notice that in this notation, we can either specify no minimum (partial
participation) or a minimum of one (total participation). The alternative
notation (see Section 7.7.4) allows the designer to specify a specific minimum number on participation in the
relationship, such as 4 or 5.
We will
discuss constraints on higher-degree relationships in Section 7.9.
4. Attributes of
Relationship Types
Relationship
types can also have attributes, similar to those of entity types. For example,
to record the number of hours per week that an employee works on a particular
project, we can include an attribute Hours for the WORKS_ON relationship type in Figure
7.13. Another example is to include the date on which a manager started
managing a department via an attribute Start_date for the MANAGES relationship type in Figure
7.12.
Notice
that attributes of 1:1 or 1:N relationship types can be migrated to one of the
participating entity types. For example, the Start_date attribute for the MANAGES relationship can be an attribute of either EMPLOYEE or DEPARTMENT, although conceptually it
belongs to MANAGES. This is
because MANAGES is a 1:1 relation-ship, so every
department or employee entity participates in at most one relationship instance. Hence, the value of the Start_date attribute can be determined
separately, either by the participating department entity or by the
participating employee (manager) entity.
For a 1:N
relationship type, a relationship attribute can be migrated only to the entity type on the N-side of
the relationship. For example, in Figure 7.9, if the WORKS_FOR relationship also has an
attribute Start_date that
indicates when an employee
started working for a department, this attribute can be included as an
attribute of EMPLOYEE. This is
because each employee works for only one department, and hence participates in
at most one relationship instance in WORKS_FOR. In both
1:1 and 1:N relationship types, the decision where to place a relationship
attribute—as a relationship type attribute or as an attribute of a
participating entity type—is determined subjectively by the schema designer.
For M:N
relationship types, some attributes may be determined by the combination of participating entities in a relationship instance, not by any
single entity. Such attributes must be specified as relationship attributes.
An example is the Hours
attribute of the M:N relationship WORKS_ON (Figure
7.13); the number of hours per week an employee currently works on a project is
determined by an employee-project combination and not separately by either
entity.
Related Topics
Privacy Policy, Terms and Conditions, DMCA Policy and Compliant
Copyright © 2018-2023 BrainKart.com; All Rights Reserved. Developed by Therithal info, Chennai.