Subclasses, Superclasses, and Inheritance
The EER model includes all the
modeling concepts of the ER model that were presented in Chapter 7. In
addition, it includes the concepts of subclass
and superclass and the related
concepts of specialization and generalization (see Sections 8.2 and 8.3). Another concept
included in the EER model is that of a category
or union type (see Section 8.4),
which is used to represent a collection of
objects (entities) that is the union
of objects of different entity types. Associated with these concepts is the
important mechanism of attribute and
relationship inheritance.
Unfortunately, no standard terminology exists for these concepts, so we use the most common terminology.
Alternative terminology is given in foot-notes. We also describe a diagrammatic
technique for displaying these concepts when they arise in an EER schema. We
call the resulting schema diagrams enhanced
ER or EER diagrams.
The first Enhanced ER (EER) model concept we take up is that of a subtype or subclass of an entity type. As we discussed in Chapter 7, an entity
type is used to represent both a type of entity and the entity set or collection of entities of that type that exist in the database. For
example, the entity type EMPLOYEE describes the type (that is, the
attributes and relationships) of each employee entity, and also refers to the
current set of EMPLOYEE entities in the COMPANY database. In many cases an
entity type has numerous subgroupings or subtypes of its entities that are
meaning-ful and need to be represented explicitly because of their significance
to the database application. For example, the entities that are members of the EMPLOYEE entity type may be distinguished further into SECRETARY, ENGINEER, MANAGER,
TECHNICIAN,
SALARIED_EMPLOYEE, HOURLY_EMPLOYEE, and so
on. The set of
entities in each of the latter groupings is a subset
of the entities that belong to the EMPLOYEE entity
set, meaning that every entity that is a member of one of these subgroupings is
also an employee. We call each of these subgroupings a subclass or subtype of
the EMPLOYEE entity
type, and the EMPLOYEE entity type is called the
superclass or supertype for each
of these subclasses. Figure 8.1 shows how to repre-sent these concepts
diagramatically in EER diagrams. (The circle notation in Figure 8.1 will be
explained in Section 8.2.)
We call the relationship between a superclass and any one of its subclasses a superclass/subclass or supertype/subtype or simply class/subclass relationship.
In our previous example, EMPLOYEE/SECRETARY and EMPLOYEE/TECHNICIAN are two class/subclass relationships. Notice that a member entity of
the subclass repre-sents the same
real-world entity as some member of the superclass; for example, a SECRETARY entity ‘Joan Logano’ is also the EMPLOYEE ‘Joan
Logano.’ Hence, the subclass member is the same as
the entity in the superclass, but in a distinct specific role. When we
implement a superclass/subclass relationship in the database system, however, we may represent a member of
the subclass as a distinct database object— say, a distinct record that is
related via the key attribute to its superclass entity. In Section 9.2, we
discuss various options for representing superclass/subclass relationships in
relational databases.
An entity cannot exist in the database merely by being a member of a
subclass; it must also be a member of the superclass. Such an entity can be
included optionally as a member of any number of subclasses. For example, a
salaried employee who is also an engineer belongs to the two subclasses ENGINEER and SALARIED_EMPLOYEE
of the EMPLOYEE entity
type. However, it is not necessary that
every entity in a superclass is a member of some subclass.
An important concept associated with subclasses (subtypes) is that of type inheritance. Recall that the type of an entity is defined by the attributes it possesses and the relationship types in which it participates. Because an entity in the subclass rep-resents the same real-world entity from the superclass, it should possess values for its specific attributes as well as values of its attributes as a member of the superclass. We say that an entity that is a member of a subclass inherits all the attributes of the entity as a member of the superclass. The entity also inherits all the relationships in which the superclass participates. Notice that a subclass, with its own specific (or local) attributes and relationships together with all the attributes and relationships it inherits from the superclass, can be considered an entity type in its own right.
Related Topics
Privacy Policy, Terms and Conditions, DMCA Policy and Compliant
Copyright © 2018-2023 BrainKart.com; All Rights Reserved. Developed by Therithal info, Chennai.