Definition
IS-A Relation
The IS-A Relation describes a hierarchical relationship between classes, entities, or concepts. The IS-A relation is used to represent inheritance, categorisation, and generalisation.
Properties
Partial
Total
Disjunctive
An object following a disjunctive IS-A relationship cannot be more than one specialisation at a time.
Conjunctive
An object following a disjunctive IS-A relationship can be more than one specialisation at a time.
Relational Transformation
Generalisation
Roll-up
Embedding the attributes of two or more specialisations into a single one. If the specialisations are disjunctive, the unused values are set to null.
Generalisation by Main Classes
A particular entity is mapped to a single tuple in a single relation (to its main class).
- employee: {[ empID, name ]}
- employees that are neither professor nor assistants*
- professor: {[ empID, name, rank, officer ]}
- employees that are only professors
- assistant: {[ empID, name, department ]}
- employees that are only assistants
Generalisation by Partitioning
Parts of a particular entity are mapped to multiple relations, the key is duplicated.
Generally speaking, this is the most used variant of generalisation.
- employee: {[ empID, name ]}
- all employees
- professor: {[ empID → employee, rank, officer ]}
- additional info for employees that are professors
- assistant: {[ empID → employee, department ]}
- additional info for employees that are assistants
Generalisation by Full Redundancy
A particular entity is stored redundantly in the relations with all its inherited attributes.
- employee: {[ empID, name ]}
- all employees
- professor: {[ empID, name, rank, officer ]}
- all employees that are professors
- assistant: {[ empID, name, department ]}
- all employees that are assistants
Generalisation by a Single Relation
All entities are stored in a single relation. An additional attribute encodes the membership in a particular entity type.
- employee: {[ empID, name, type, rank, office, department ]}
Specialisation
Roll-down
Separating the specialisations into two or more tables whereby the the tables must be linked, e.g. through equal primary keys.