ERIL
   HOME

TheInfoList



OR:

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.


Overview

ERIL can be seen as a set of guidelines aimed at improving the readability of structure diagrams. These guidelines were borrowed from
DRAKON DRAKON is a free and open source algorithmic visual programming and modeling language developed within the Buran space project following ergonomic design principles. The language provides a uniform way to represent flowcharts of any com ...
, a variant of
flowchart A flowchart is a type of diagram that represents a workflow or process. A flowchart can also be defined as a diagrammatic representation of an algorithm, a step-by-step approach to solving a task. The flowchart shows the steps as boxes of va ...
s 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 Aggregation may refer to: Business and economics * Aggregation problem (economics) * Purchasing aggregation, the joining of multiple purchasers in a group purchasing organization to increase their buying power * Community Choice Aggregation, the ...
). * 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.ERIL: a Visual Language for Data Modelling
/ref>


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 database A relational database is a (most commonly digital) database based on the relational model of data, as proposed by E. F. Codd in 1970. A system used to maintain relational databases is a relational database management system (RDBMS). Many relatio ...
s. ERIL indexes are logical. They can optionally be implemented by real data structures.


Links

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

ERIL is supposed to model any kind of data regardless of the storage. The same ERIL diagram can represent data stored in a
relational database A relational database is a (most commonly digital) database based on the relational model of data, as proposed by E. F. Codd in 1970. A system used to maintain relational databases is a relational database management system (RDBMS). Many relatio ...
, in a
NoSQL A NoSQL (originally referring to "non- SQL" or "non-relational") database provides a mechanism for storage and retrieval of data that is modeled in means other than the tabular relations used in relational databases. Such databases have existed ...
database, XML file or in the memory. ERIL diagrams serve two purposes. The primary purpose is to explain the data structure of an existing or future system or component. The secondary purpose is to automatically generate source code from the model. Code that can be generated includes specialized collection classes, hash and comparison functions, data retrieval and modification procedures, SQL data-definition code, etc. Code generated from ERIL diagrams can ensure referential and uniqueness data integrity. Serialization code of different kinds can also be automatically generated. In some ways ERIL can be compared to object-relational mapping frameworks.


See also

* Model-driven engineering *
UML The Unified Modeling Language (UML) is a general-purpose, developmental modeling language in the field of software engineering that is intended to provide a standard way to visualize the design of a system. The creation of UML was originally ...
* Entity–relationship model *
Flowchart A flowchart is a type of diagram that represents a workflow or process. A flowchart can also be defined as a diagrammatic representation of an algorithm, a step-by-step approach to solving a task. The flowchart shows the steps as boxes of va ...
s * Class diagram *
DRAKON DRAKON is a free and open source algorithmic visual programming and modeling language developed within the Buran space project following ergonomic design principles. The language provides a uniform way to represent flowcharts of any com ...


Notes

{{Reflist Architecture description language Data modeling languages Data modeling diagrams Diagrams Knowledge representation Specification languages Software modeling language