IDEF1X
IDEF1X is a modeling language in the computer-aided manufacturing standard and belongs to the group of IDEF languages. The 1 stands for the modeling of information structures, the X denotes the extension (E x tension) compared to the original standard.
IDEF1X is a data modeling technique and therefore focuses on the Entity Relationship Model (ERM).
history
IDEF1 was released in 1981 as part of the US Air Force's ICAM program . With the rapid progress of developments in the field of relational databases at the same time, the standard had to be considerably expanded relatively quickly. This extension was first published in 1985 under the name IDEF1X. In 1994, IDEF1X was adopted as the US government standard ( FIPS 184).
meaning
Because of the early disclosure and the desired independence of the modeling language from manufacturers of database software, many CASE tool manufacturers have supported the notation. Demand from the U.S. military and government agencies eventually made IDEF1X a de facto standard (among others).
scope
In the originally published context, IDEF1X also includes data modeling as a method of software development. Data modeling concepts and modeling guidelines are also listed.
Since these topics have meanwhile become part of general computer science, the syntax and semantics of the notation are in the foreground when considering IDEF1X today.
notation
The standard specifies notations for the ER diagram and the additional information in the ERM documentation. In summary, the following conventions apply in the diagram:
Entity syntax
Entities are shown as a rounded rectangle if they are dependent on a relationship, otherwise in a normal rectangle.
The name (or a number) is placed above it.
Attributes
The names of the attributes are written in the entity rectangle. Attributes belonging to the primary key are above, all others are below a hyphen.
In addition to the names, other identifiers are included, e.g. B. "(O)" for optional.
Relationships
Relationships know a direction (like e.g. also in UML ), way of speaking: They go from the parent entity to the child entity . The child end of the relationship is marked with a small black circle. In addition, the cardinality of the relationship is shown by the line type, line end and comments .
Next to the circle at the child end of the relationship line is the cardinality of the child entities:
Nothing | Zero, one or any number |
P | One to any number |
Z | Zero or one |
n | Exactly n |
n - m | between n and m |
( i ) | Reference to note i |
The cardinality of the parent side of the relationship can only be defined as can or must . An optional relationship is provided with a diamond at the end of the line on the parent side, a mandatory relationship has a normal line end.
This means that no n: m relationships are allowed in IDEF1X, which are among others in the Chen notation . A many-to-many relationship must be broken down into two 1: n relationships during modeling.
Another special feature compared to other notations is the explicit representation of foreign key attributes, although these are redundant from a modeling perspective.
Identifying relationships
An identifying relationship is a parent-child relationship in which the child entity is dependent on the existence of the parent entity and includes the primary key of the parent entity in its own primary key. This type of relationship is modeled with two display extensions:
- The relationship line is solid (a non-identifying relationship is dashed).
- The child entity is shown in a rounded rectangle, see above.
Sub and super types
The concept of inheritance, referred to as sub- and supertype in data modeling , is represented in IDEF1X via categorization .
The categorization is a set of special relationships between the supertype and its subtypes, which are provided with a discriminator. A solid line goes from the super type to the discriminator, a circle with a horizontal single or double line below it. A solid line goes from the discriminator line to each subtype. The double line of the discriminator stands for the completeness of the listed subtypes, also called categories in IDEF1X .