EXPRESS — это стандарт для универсального языка моделирования данных для данных о продуктах . EXPRESS формализован в стандарте ISO для модели обмена продуктами STEP (ISO 10303) и стандартизирован как ISO 10303-11. [1]
Модели данных формально определяют объекты данных и отношения между объектами данных для интересующей области. Некоторые типичные приложения моделей данных включают поддержку разработки баз данных и обеспечение обмена данными для определенной области интересов. Модели данных определены на языке моделирования данных. [2] EXPRESS — это язык моделирования данных, определенный в ISO 10303-11, Справочном руководстве по языку EXPRESS. [3]
Модель данных EXPRESS может быть определена двумя способами: текстовым и графическим. Для формальной проверки и в качестве входных данных для таких инструментов, как SDAI, текстовое представление в файле ASCII является наиболее важным. Графическое представление, с другой стороны, часто больше подходит для использования человеком, например, для объяснений и учебных пособий. Графическое представление, называемое EXPRESS-G, не способно представить все детали, которые можно сформулировать в текстовой форме.
EXPRESS похож на языки программирования, такие как Pascal . В SCHEMA могут быть определены различные типы данных вместе со структурными ограничениями и алгоритмическими правилами. Главной особенностью EXPRESS является возможность формальной проверки популяции типов данных — то есть проверка всех структурных и алгоритмических правил.
EXPRESS-G — это стандартная графическая нотация для информационных моделей . [4] Это дополнение к языку EXPRESS для отображения определений сущностей и типов, отношений и мощности. [5] Эта графическая нотация поддерживает подмножество языка EXPRESS. Одним из преимуществ использования EXPRESS-G по сравнению с EXPRESS является то, что структура модели данных может быть представлена более понятным образом. Недостатком EXPRESS-G является то, что сложные ограничения не могут быть формально указаны. Рисунок 1 является примером. Модель данных, представленная на рисунке, может быть использована для указания требований к базе данных для коллекции аудио компакт-дисков (CD). [2]
Простая модель данных EXPRESS выглядит так, как показано на рис. 2, а код выглядит так:
Семейство СХЕМА;СУЩНОСТЬ Лицо АБСТРАКТНЫЙ СУПЕРТИП (ОДИН ИЗ (Мужской, Женский)); имя: СТРОКА; мать: НЕОБЯЗАТЕЛЬНО Женщина; отец: НЕОБЯЗАТЕЛЬНО Мужской;КОНЕЦ_ЭНТЕТИ;СУЩНОСТЬ Женский ПОДТИП (Лица);КОНЕЦ_ЭНТЕТИ;СУЩНОСТЬ Мужской ПОДТИП (Лица);КОНЕЦ_ЭНТЕТИ;КОНЕЦ_СХЕМЫ;
Модель данных заключена в схему EXPRESS Family . Она содержит супертип сущности Person с двумя подтипами Male и Female . Поскольку Person объявлен как ABSTRACT , могут существовать только вхождения (ONEOF) подтипа Male или Female . Каждое вхождение person имеет обязательный атрибут name и необязательные атрибуты mother и father . Существует фиксированный стиль чтения для атрибутов некоторого типа сущности:
EXPRESS предлагает ряд типов данных с определенными символами типов данных нотации EXPRESS-G: [2]
Следует упомянуть несколько общих моментов, касающихся типов данных.
Атрибуты сущности позволяют добавлять "свойства" к сущностям и связывать одну сущность с другой в определенной роли. Имя атрибута определяет роль. Большинство типов данных могут напрямую служить типом атрибута. Это также включает агрегацию.
Существует три различных вида атрибутов: явные, производные и обратные. И все они могут быть переопределены в подтипе. Кроме того, явный атрибут может быть переопределен как производный в подтипе. Никакие другие изменения вида атрибутов невозможны.
Конкретные атрибутивные символы нотации EXPRESS-G: [2]
Сущность может быть определена как подтип одной или нескольких других сущностей ( множественное наследование разрешено!). Супертип может иметь любое количество подтипов. В STEP очень распространена практика построения очень сложных графов под-супертипов. Некоторые графы связывают друг с другом 100 и более сущностей.
Экземпляр сущности может быть создан либо для одной сущности (если она не абстрактная), либо для сложной комбинации сущностей в таком графе под-супертипа. Для больших графов число возможных комбинаций, вероятно, будет расти в астрономических диапазонах. Для ограничения возможных комбинаций были введены специальные ограничения супертипа, такие как ONEOF и TOTALOVER. Кроме того, сущность может быть объявлена абстрактной, чтобы обеспечить невозможность создания экземпляра только из этой сущности, но только если она содержит неабстрактный подтип.
Сущности и определенные типы данных могут быть дополнительно ограничены правилами WHERE . Правила WHERE также являются частью глобальных правил. Правило WHERE — это выражение, которое должно быть оценено как TRUE, в противном случае популяция схемы EXPRESS недействительна. Подобно производным атрибутам, эти выражения могут вызывать функции EXPRESS, которые могут далее вызывать процедуры EXPRESS. Функции и процедуры позволяют формулировать сложные операторы с локальными переменными, параметрами и константами — очень похоже на язык программирования.
Язык EXPRESS может описывать локальные и глобальные правила. Например:
СУЩНОСТЬ единица_площади ПОДТИП ( единица_измерения ) ; ГДЕ WR1 : ( SELF \ единица_измерения . размеры . показатель_длины = 2 ) И ( SELF \ единица_измерения . размеры . показатель_массы = 0 ) И ( SELF \ единица_измерения . показатель_времени = 0 ) И ( SELF \ единица_измерения . размеры . показатель_электрического_тока = 0 ) И ( SELF \ единица_измерения . показатель_термодинамической_температуры = 0 ) И ( SELF \ единица_измерения . показатель_количества_вещества = 0 ) И ( SELF \ единица_измерения . показатель_светимости = 0 ) ; КОНЕЦ СУЩНОСТИ ; -- единица_измерения
В этом примере описывается, что сущность area_unit должна иметь квадратное значение длины. Для этого атрибут dimensions.length_exponent должен быть равен 2, а все остальные показатели степеней основных единиц СИ должны быть равны 0.
Другой пример:
ТИП номер_дня_в_неделе = ЦЕЛОЕ ЧИСЛО ; ГДЕ WR1 : ( 1 <= SELF ) И ( SELF <= 7 ); КОНЕЦ_ТИП ; -- номер_дня_в_неделе
То есть это означает, что значение недели не может превышать 7.
Итак, вы можете описать некоторые правила для ваших сущностей. Более подробную информацию о приведенных примерах можно найти в ISO 10303 -41
В статье использованы материалы, являющиеся общественным достоянием Национального института стандартов и технологий.