databases

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

todo

Total

todo

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.