EXPRESS (язык моделирования данных)

Стандартный язык моделирования данных для данных о продуктах
Рис. 1. Требования к базе данных для коллекции аудиокомпакт-дисков (CD), представленные в нотации EXPRESS-G.

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]

Простой пример

Рис. 2. Диаграмма EXPRESS-G для схемы Family

Простая модель данных EXPRESS выглядит так, как показано на рис. 2, а код выглядит так:

Семейство СХЕМА;СУЩНОСТЬ Лицо АБСТРАКТНЫЙ СУПЕРТИП (ОДИН ИЗ (Мужской, Женский)); имя: СТРОКА; мать: НЕОБЯЗАТЕЛЬНО Женщина; отец: НЕОБЯЗАТЕЛЬНО Мужской;КОНЕЦ_ЭНТЕТИ;СУЩНОСТЬ Женский ПОДТИП (Лица);КОНЕЦ_ЭНТЕТИ;СУЩНОСТЬ Мужской ПОДТИП (Лица);КОНЕЦ_ЭНТЕТИ;КОНЕЦ_СХЕМЫ;

Модель данных заключена в схему EXPRESS Family . Она содержит супертип сущности Person с двумя подтипами Male и Female . Поскольку Person объявлен как ABSTRACT , могут существовать только вхождения (ONEOF) подтипа Male или Female . Каждое вхождение person имеет обязательный атрибут name и необязательные атрибуты mother и father . Существует фиксированный стиль чтения для атрибутов некоторого типа сущности:

  • Женщина может играть роль матери для Человека
  • Мужчина может играть роль отца для Человека

ЭКСПРЕСС Строительные блоки

Типы данных

EXPRESS предлагает ряд типов данных с определенными символами типов данных нотации EXPRESS-G: [2]

  • Тип данных сущности: Это самый важный тип данных в EXPRESS. Он рассматривается ниже более подробно. Типы данных сущности могут быть связаны двумя способами: в дереве под-супертипов и/или по атрибутам.
  • Тип данных перечисления: Значения перечисления — это простые строки, такие как красный, зеленый и синий для rgb-перечисления. В случае, если тип перечисления объявлен расширяемым, он может быть расширен в других схемах.
  • Определенный тип данных: это еще больше специализирует другие типы данных — например, определяет положительный тип данных, который имеет тип integer со значением > 0.
  • Выбор типа данных: Выбор определяет выбор или альтернативу между различными вариантами. Чаще всего используются выборы между различными entity_types. Более редкие выборы включают определенные типы. В случае, если тип перечисления объявлен расширяемым, он может быть расширен в других схемах.
  • Простой тип данных
    • Строка: Это наиболее часто используемый простой тип. Строки EXPRESS могут быть любой длины и содержать любые символы (ISO 10646/Unicode).
    • Двоичный: Этот тип данных используется очень редко. Он охватывает несколько бит (не байтов). Для некоторых реализаций размер ограничен 32 битами.
    • Логический: Подобно типу данных Boolean, логический тип имеет возможные значения TRUE и FALSE, а также UNKNOWN.
    • Булевы значения: с булевыми значениями ИСТИНА и ЛОЖЬ.
    • Число: Тип данных числа является супертипом как целого, так и вещественного. Большинство реализаций используют тип double для представления вещественного типа, даже если фактическое значение является целым числом.
    • Целое число: целые числа EXPRESS в принципе могут иметь любую длину, но большинство реализаций ограничивают их 32-битным значением со знаком.
    • Real: В идеале EXPRESS real значение не ограничено по точности и размеру. Но на практике real значение представляется значением с плавающей точкой типа double.
  • Тип данных агрегации: Возможные типы aggregation_types: SET, BAG, LIST и ARRAY. В то время как SET и BAG неупорядочены, LIST и ARRAY упорядочены. BAG может содержать определенное значение более одного раза, это не разрешено для SET. ARRAY — единственный агрегат, который может содержать неустановленные элементы. Это невозможно для SET, LIST, BAG. Элементы агрегата могут иметь любой другой тип данных.

Следует упомянуть несколько общих моментов, касающихся типов данных.

  • Сконструированные типы данных могут быть определены в схеме EXPRESS. Они в основном используются для определения сущностей и указания типа атрибутов сущностей и агрегированных членов.
  • Типы данных могут использоваться рекурсивно для построения все более и более сложных типов данных. Например, можно определить СПИСОК МАССИВА SELECT некоторых сущностей или других типов данных. Имеет ли смысл определять такие типы данных — это другой вопрос.
  • EXPRESS определяет несколько правил, как тип данных может быть дополнительно специализирован. Это важно для повторно объявленных атрибутов сущностей.
  • Типы данных GENERIC могут использоваться для процедур, функций и абстрактных сущностей.

Сущность-Атрибут

Атрибуты сущности позволяют добавлять "свойства" к сущностям и связывать одну сущность с другой в определенной роли. Имя атрибута определяет роль. Большинство типов данных могут напрямую служить типом атрибута. Это также включает агрегацию.

Существует три различных вида атрибутов: явные, производные и обратные. И все они могут быть переопределены в подтипе. Кроме того, явный атрибут может быть переопределен как производный в подтипе. Никакие другие изменения вида атрибутов невозможны.

  • Явные атрибуты — это атрибуты с прямыми значениями, видимыми в STEP-файле.
  • Производные атрибуты получают свои значения из выражения. В большинстве случаев выражение ссылается на другие атрибуты ЭТОГО экземпляра. Выражение также может использовать функции EXPRESS.
  • Обратные атрибуты не добавляют «информацию» к сущности, а только именуют и ограничивают явный атрибут сущности с другой стороны.

Конкретные атрибутивные символы нотации 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

Смотрите также

Предметы, связанные с ИСО
  • ISO 10303 : Стандарт ISO для компьютерно-интерпретируемого представления и обмена данными о промышленной продукции.
  • ISO 10303-21 : Форма обмена данными STEP со структурой ASCII
  • ISO 10303-22 : Стандартный интерфейс доступа к данным, часть методов реализации STEP
  • ISO 10303-28 : STEP-XML определяет использование расширяемого языка разметки (XML) для представления схемы EXPRESS
  • ISO 13584 -24: Логическая модель PLIB определена в EXPRESS
  • ISO 13399 : Стандарт ISO для представления и обмена данными о режущих инструментах
  • ISO/PAS 16739 : Классы отраслевого фундамента указаны в EXPRESS
  • Список деталей STEP (ISO 10303)
Другие смежные темы

Ссылки

Общественное достояние В статье использованы материалы, являющиеся общественным достоянием Национального института стандартов и технологий.

  1. ^ ISO 10303-11:2004 Системы промышленной автоматизации и интеграция. Представление и обмен данными о продукции. Часть 11. Методы описания. Справочное руководство по языку EXPRESS.
  2. ^ abcd Майкл Р. Маккалеб (1999). «Концептуальная модель данных систем данных». Национальный институт стандартов и технологий. Август 1999.
  3. ^ Международный стандарт ISO 10303-11:1994, Системы промышленной автоматизации и интеграция. Представление и обмен данными о продукции. Часть 11. Методы описания. Справочное руководство по языку EXPRESS, Международная организация по стандартизации, Женева, Швейцария (1994).
  4. ^ 4 Обзор языка EXPRESS-G Архивировано 09.11.2008 на Wayback Machine . Доступ 9 ноября 2008 г.
  5. ^ Информацию о нотации EXPRESS-G см. в Приложении B к Справочному руководству по языку EXPRESS (ISO 10303-11).

Дальнейшее чтение

  • ISO 10303 , главная страница STEP, стандарта обмена данными о моделях продуктов
  • Дуглас А. Шенк и Питер Р. Уилсон, Информационное моделирование методом EXPRESS , Oxford University Press, 1993, ISBN  978-0-19-508714-7
  • Фонд языка EXPRESS, организация, занимающаяся продвижением языковой семьи EXPRESS
Получено с "https://en.wikipedia.org/w/index.php?title=EXPRESS_(язык_моделирования_данных)&oldid=1184228028#EXPRESS-G"