ERIL

From Wikipedia, the free encyclopedia

An example ERIL diagram with 3 classes and 3 one-to-many relationships.

ERIL (Entity-Relationship and Inheritance Language) is a visual language for representing the data structure of a computer system. As its name suggests, ERIL is based on entity-relationship diagrams and class diagrams. ERIL combines the relational and object-oriented approaches to data modeling.

ERIL can be seen as a set of guidelines aimed at improving the readability of structure diagrams. These guidelines were borrowed from DRAKON, a variant of flowcharts created within the Russian space program. ERIL itself was developed by Stepan Mitkin.

The ERIL guidelines for drawing diagrams:

  • Lines must be straight, either strictly vertical or horizontal.
  • Vertical lines mean ownership (composition).
  • Horizontal lines mean peer relationships (aggregation).
  • Line intersections are not allowed.
  • It is not recommended to fit the whole data model on a single diagram. Draw many simple diagrams instead.
  • The same class (table) can appear several times on the same diagram.
  • Use the following standard symbols to indicate the type of the relationship.
    • One-to-one: a simple line.
    • One-to-many, two-way: a line with a "paw".
    • One-to-many, one-way: an arrow.
    • Many-to-many: a line with two "paws".
  • Do not lump together inheritance and data relationships.[1]

Indexes

A class (table) in ERIL can have several indexes. Each index in ERIL can include one or more fields, similar to indexes in relational databases. ERIL indexes are logical. They can optionally be implemented by real data structures.

Links between classes (tables) in ERIL are implemented by the so-called "link" fields. Link fields can be of different types according to the link type:

  • reference;
  • collection of references.

Example: there is a one-to-many link between Documents and Lines. One Document can have many Lines. Then the Document.Lines field is a collection of references to the lines that belong to the document. Line.Document is a reference to the document that contains the line.

Link fields are also logical. They may or may not be implemented physically in the system.

Usage

See also

Notes

Related Articles

Wikiwand AI