DATA - Data Architecture > Data and Database Design > Modeling Data dictionaries > IDEF1X Notation > Categorization Relationships (Generalizations) - (IDEF1X)
Categorization Relationships (Generalizations) - (IDEF1X)
*A generalization represents an inheritance relationship between a general entity and a more specific entity. The specific entity is fully consistent with the general entity and inherits its characteristics and behavior. It can however include additional attributes or associations. Any object of the specific entity is also a component of the general entity.
What is a Categorization (Generalization)? 
Categorization relationships are used to represent structures in which an entity is a “type” (category) of another entity.
Entities are used to represent the notion of “things about which we need information.” Since some real world things are categories of other real world things, some entities must, in some sense, be categories of other entities. For example, suppose employees are something about which information is needed.
Although there is some information needed about all employees, additional information may be needed about salaried employees which differs, from the additional information needed about hourly employees. Therefore, the entities "Salaried employee" and "Hourly employee" are categories of the entity "Employee". In the IDEF1X notation, they are related to one another through categorization relationships (generalization).
In another case, a category entity may be needed to express a relationship which is valid for only a specific category, or to document the relationship differences among the various categories of the entity. For example, a "Full-time employee" may qualify for a "Benefit", while a "Part-time employee" may not.
A “categorization relationship” or "generalization" is a relationship between one entity, referred to as the “generic entity”, and another entity, referred to as a “category entity” or "specialized entity". Cardinality is not specified for the category entity since it is always zero or one.
Category entities are also always identifier-dependent.
Creating a Categorization 
To create a categorization relationship:
1. Click the Generalization button in the objects toolbar.
2. Click the category entity, drag the mouse to the generic entity, then release the button.
The generalization is pictured in the diagram by an underlined circle. connected by a line to the generic entity and by another line to the category entity.
Categorization relationship
In the above example, attributes are interesting on persons that are of no avail for other categories of clients. Person is a dependent entity represented by a rounded corner box.
Multiple Categories 
A “category cluster” is a set of one or more categorization relationships. An instance of the generic entity can be associated with an instance of only one of the category entities in the cluster, and each instance of a category entity is associated with exactly one instance of the generic entity. Each instance of the category entity represents the same real-world thing as its associated instance in the generic entity. From the example above, EMPLOYEE is the generic entity and SALARIED-EMPLOYEE and HOURLY-EMPLOYEE are the category entities. There are two categorization relationships in this cluster, one between "Employee" and "Salaried employee" and one between "Employee" and "Hourly employee".
Multiple Categories
In the above example, companies and persons are two categories of clients.
Multiple Category Clusters 
Since an instance of the generic entity cannot be associated with an instance of more than one of the category entities in the cluster, the category entities are mutually exclusive. In the example, this implies that an employee cannot be both salaried and hourly. However, an entity can be the generic entity in more than one category cluster, and the category entities in one cluster are not mutually exclusive with those in others. For example, "Employee" could be the generic entity in a second category cluster with "Female employee" and "Male employee" as the category entities. An instance of "Employee" could be associated with an instance of either "Salaried employee" or "Hourly employee" and with an instance of either "Female employee" or "Male employee".
Complete Categorization 
In a “complete category cluster”, every instance of the generic entity is associated with an instance of a category entity, ie., all the possible categories are present. For example, each employee is either male or female, so the second cluster is complete. In an “incomplete category cluster”, an instance of the generic entity can exist without being associated with an instance of any of the category entities, ie., some categories are omitted. For example, if some employees are paid commissions rather than an hourly wage or salary, the first category cluster would be incomplete.
 
It is possible to specify whether a categorization relationship is complete or not in the Characteristics tab of the generalization properties dialog box. If the value of the characteristic Complete is set to "Yes", then all instances of the generic entity belong to at least one of the category entities of the generalization.
Discriminator 
An attribute in the generic entity, or in one of its ancestors, may be designated as the discriminator for a specific category cluster of that entity. The value of the discriminator determines the category of an instance of the generic. In the previous example, the discriminator for the cluster including the salaried and hourly categories might be named "Employee type". If a cluster has a discriminator, it must be distinct from all other discriminators.
To create a discriminator on a generalization:
1. Open properties of the generalization.
2. Click Characteristics.
3. In the Discriminator field, choose the discriminator among the super-entity attributes.
Once selected, the discriminator is displayed on the generalization.