Основной автор этой статьи, по-видимому, тесно связан с ее темой. ( Июнь 2016 г. ) |
ERIL ( Entity-Relationship and Inheritance Language ) — визуальный язык для представления структуры данных компьютерной системы. Как следует из названия, ERIL основан на диаграммах сущностей-связей и диаграммах классов . ERIL сочетает в себе реляционный и объектно-ориентированный подходы к моделированию данных .
ERIL можно рассматривать как набор рекомендаций, направленных на улучшение читаемости структурных схем. Эти рекомендации были заимствованы из DRAKON , варианта блок-схем, созданных в рамках российской космической программы. Сам ERIL был разработан Степаном Миткиным.
Рекомендации ERIL по рисованию диаграмм:
Класс (таблица) в ERIL может иметь несколько индексов. Каждый индекс в ERIL может включать одно или несколько полей, аналогично индексам в реляционных базах данных . Индексы ERIL являются логическими. Они могут опционально быть реализованы реальными структурами данных.
Связи между классами (таблицами) в ERIL реализуются с помощью так называемых "связных" полей. Связные поля могут быть разных типов в зависимости от типа связи:
Пример: между Documents и Lines существует связь «один ко многим» . Один Document может иметь много Lines . Тогда поле Document.Lines представляет собой набор ссылок на строки, принадлежащие документу. Line.Document — это ссылка на документ, содержащий строку.
Поля ссылок также являются логическими. Они могут быть или не быть реализованы физически в системе.
ERIL должен моделировать любые типы данных независимо от хранилища. Одна и та же диаграмма ERIL может представлять данные, хранящиеся в реляционной базе данных , в базе данных NoSQL , XML- файле или в памяти.
Диаграммы ERIL служат двум целям. Основная цель — объяснить структуру данных существующей или будущей системы или компонента. Вторичная цель — автоматически генерировать исходный код из модели. Код, который может быть сгенерирован, включает специализированные классы коллекций, хэш-функции и функции сравнения, процедуры извлечения и изменения данных, код определения данных SQL и т. д. Код, сгенерированный из диаграмм ERIL, может гарантировать ссылочную и уникальную целостность данных . Код сериализации различных видов также может быть автоматически сгенерирован. В некотором смысле ERIL можно сравнить с объектно-реляционными фреймворками отображения .