Express(数据建模语言)

Express是产品数据的通用数据建模语言的标准。 Express在交换产品模型步骤(ISO 10303)的ISO标准中已正式化,并标准化为ISO 10303-11。
概述
数据模型正式定义数据对象和数据对象之间的关系。数据模型的一些典型应用程序包括支持数据库的开发,并为特定感兴趣领域的数据提供交换。数据模型以数据建模语言指定。 Express是ISO 10303-11(Express语言参考手册)中定义的数据建模语言。
可以通过两种方式在文本和图形上以两种方式来定义一个明确的数据模型。对于正式验证,作为SDAI等工具的输入, ASCII文件中的文本表示是最重要的。另一方面,图形表示通常更适合于人类使用,例如解释和教程。称为Express-G的图形表示无法表示可以以文本形式提出的所有细节。
Express类似于Pascal等编程语言。在架构中,各种数据类型可以与结构约束和算法规则一起定义。 Express的一个主要特征是有可能正式验证数据类型的群体 - 这是检查所有结构和算法规则。
Express-G
Express-G是信息模型的标准图形表示法。它是用于显示实体和类型定义,关系和基数的Express语言的伴侣。该图形符号支持Express语言的子集。使用Express-G而不是Express的优点之一是,数据模型的结构可以更易于理解。 Express-G的缺点是无法正式指定复杂的约束。图1是一个示例。图中介绍的数据模型可用于指定音频紧凑盘(CD)集合数据库的要求。
简单示例

一个简单的快递数据模型看起来像图2,类似的代码:
SCHEMA Family; ENTITY Person ABSTRACT SUPERTYPE OF (ONEOF (Male, Female)); name: STRING; mother: OPTIONAL Female; father: OPTIONAL Male; END_ENTITY; ENTITY Female SUBTYPE OF (Person); END_ENTITY; ENTITY Male SUBTYPE of (Person); END_ENTITY; END_SCHEMA;
数据模型封闭在Express模式家族中。它包含一个具有两个亚型男性和女性的超级型实体人。由于人们被宣布为抽象,只有(一种)可能存在雄性或女性的(一种)。一个人的每一次发生都有强制性的名称属性,并且可选地归因于父亲和父亲。某些实体类型的属性有固定的阅读方式:
- 女性可以扮演母亲的角色
- 男性可以为一个人扮演父亲的角色
快速构建块
数据类型
Express提供了一系列数据类型,并具有Express-G表示法的特定数据类型符号:

- 实体数据类型:这是Express中最重要的数据类型。它在下面更详细地介绍。实体数据类型可以通过两种方式,在子苏联树和/或属性中相关。
- 枚举数据类型:枚举值是简单的字符串,例如红色,绿色和蓝色,用于RGB驱动。如果枚举类型被声明可扩展,则可以在其他模式中扩展。
- 定义的数据类型:这进一步专门介绍了其他数据类型 - EG,定义一个数据类型阳性,该数据类型是类型整数,值> 0。
- 选择数据类型:选择定义不同选项之间的选择或替代方案。最常用的是不同entity_types之间的选择。更罕见的选择包括定义类型。如果枚举类型是可扩展的,则可以在其他模式中扩展。
- 简单的数据类型
- 字符串:这是最常用的简单类型。 Express字符串可以具有任何长度,并且可以包含任何字符(ISO 10646/Unicode)。
- 二进制:此数据类型仅使用很少使用。它涵盖了许多位(不是字节)。对于某些实现,大小限制为32位。
- 逻辑:类似于布尔数据类型的逻辑具有可能的值和错误,并且另外未知。
- 布尔:布尔值真实和错误。
- 数字:数字数据类型是整数和真实的超级模型。大多数实现都采用双重类型来表示real_type,即使实际值是整数。
- 整数:明确的整数原则上可以有任何长度,但是大多数实现都将其限制为签名的32位值。
- 真实:理想情况下,明确的实际价值在准确性和尺寸上是无限的。但是在实践中,实际值由双型的浮点值表示。
- 聚合数据类型:设置了可能的聚合_型,袋,列表和数组。固定和袋子是无序的,订购了列表和数组。袋子可能包含一个特定值,不止一次,这是不允许的。数组是唯一可能包含不设置成员的聚合。这是设置,列表,袋子不可能的。汇总的成员可能是任何其他数据类型。
对于数据型,将提及一些一般性的事情。
- 可以在Express模式中定义构造的数据类型。它们主要用于定义实体,并指定实体属性和汇总成员的类型。
- 数据类型可用于递归方式来构建越来越复杂的数据类型。例如,可以定义选择某些实体或其他数据类型的数组的列表。如果定义此类数据型是一个不同的问题,则有意义。
- Express定义了一些规则,如何进一步专业化数据类型。这对于重新宣布实体的属性很重要。
- 通用数据类型可用于过程,功能和抽象实体。
实体 - 属性
实体属性允许将“属性”添加到实体,并将一个实体与另一个实体相关联。属性的名称指定角色。大多数数据类型可以直接用作属性的类型。这也包括聚合。
有三种不同类型的属性,即显式,派生和逆属性。所有这些都可以重新确定为子类型。另外,可以按照子类型得出的明确属性重新宣布。没有其他属性类型的更改。
- 显式属性是在逐步文件中可见的直接值的属性。
- 派生的属性从表达式中获取其值。在大多数情况下,表达式是指此实例的其他属性。该表达式还可以使用表达功能。
- 逆属性不会向实体添加“信息”,而仅将“信息”添加到名称并将显式属性从另一端限制为实体。
特定属性符号的特定符号:

超类和亚型
一个实体可以定义为一个或几个其他实体的子类型(允许多个继承!)。超级类型可以具有任何数量的子类型。在构建非常复杂的子苏联型图的步骤中,这是非常普遍的做法。有些图将100及更多实体相互关联。
可以为单个实体(如果不是抽象)或这种子苏联图中实体的复杂组合构建实体实例。对于大图,可能的组合数可能会在天文范围内增加。为了限制可能的组合,引入了特殊的超级构想约束,例如OneOf和TotalOver。此外,可以宣布一个实体是抽象的,以强制执行任何实体可以构造的实例,但只有当它包含非抽取分支分类的情况下。
算法约束
实体和定义的数据类型可能会进一步限制 在哪里规则。规则也是全球规则的一部分。其中的规则是一种表达式,必须评估为真实,否则表达式构图的群体是无效的。像派生的属性一样,这些表达式可能会调用表达函数,这可以进一步调用表达过程。这些功能和过程允许用局部变量,参数和常数制定复杂的语句 - 与编程语言非常相似。
快递语言可以描述本地和全球规则。例如:
ENTITY area_unit
SUBTYPE OF (named_unit);
WHERE
WR1: (SELF\named_unit.dimensions.length_exponent = 2) AND
(SELF\named_unit.dimensions.mass_exponent = 0) AND
(SELF\named_unit.dimensions.time_exponent = 0) AND
(SELF\named_unit.dimensions.electric_current_exponent = 0) AND
(SELF\named_unit.dimensions.
thermodynamic_temperature_exponent = 0) AND
(SELF\named_unit.dimensions.amount_of_substance_exponent = 0) AND
(SELF\named_unit.dimensions.luminous_intensity_exponent = 0);
END_ENTITY; -- area_unit
此示例描述了区域_unit实体必须具有长度的平方值。为此,属性尺寸。Length_exponent必须等于2,并且所有其他基本SI单元的其他指数必须为0。
另一个例子:
TYPE day_in_week_number = INTEGER;
WHERE
WR1: (1 <= SELF) AND (SELF <= 7);
END_TYPE; -- day_in_week_number
也就是说,这意味着周的价值不能超过7。
因此,您可以向您的实体描述一些规则。有关给定示例的更多详细信息可以在ISO 10303 -41中找到
也可以看看
- ISO相关主题
- ISO 10303 :ISO标准用于计算机干扰的表示和交换工业产品数据。
- ISO 10303-21 :带有ASCII结构的步骤的数据交换形式
- ISO 10303-22 :标准数据访问接口,一部分步骤实现方法
- ISO 10303-28 :Step-XML指定使用可扩展标记语言(XML)代表Express模式
- ISO 13584 -24:PLIB的逻辑模型在Express中指定
- ISO 13399 :ISO切割工具数据表示和交换的ISO标准
- ISO/PAS 16739 :在Express中指定行业基金会课程
- 步骤列表(ISO 10303)零件
- 其他相关主题