文献阅读笔记:
一种产品数据的图形表达方法──EXPRESS-G
一种产品数据的图形表达方法──EXPRESS-G(下)
EXPRESS-G是理解EXPRESS语言写出的数据模型的一个很好的工具,其最大的特点在于用图形的方法描述概念。EXPRESS语言中将事物的主体抽象成为实体(ENTITY),这些主体的集合又可以形成一个更大的概念,又可以抽象为模式(SCHEMA),实体之间可以有不同的关系,用不同的线性来描述。
EXPRESS-G是用形成框图的图形符号来表达的,这种表达方法有三种类型的符号:
(1)定义符号,表示简单数据类型、命名数据类型、构造数据类型和模式声明;
(2)关系符号,描述定义之间存在的关系的符号;
(3)组合符号,允许一个框图在多于一页的图上表示的符号。
定义符号
-
简单数据类型符号——具有双竖线的矩形实线框,数据类型的名称被包含在框中。
-
构造数据类型符号
SELECT(选择类型)——左边有双竖线的虚线框表示,数据类型的名称被包含在框中。
ENUMERATION(枚举类型)——右边有双竖线的虚线框表示,数据类型的名称被包含在框中。
在定义构造类型数据时,可以采用完全形式或者简略形式。下面这两个框图是等价的:
-
定义数据类型符号——包含数据类型名的虚线框
-
实体数据类型符号——实线框
作为参数的实体名可以用星号(*)作标记。
在EXPRESS-G中,实体可以是非循环继承图的一部分,可以有显式属性,有导出属性,有反向属性。显式属性和导出属性的属性名放在关系线上,属性的后面跟着基数。导出属性要在属性名之前加上圆括号括起来的字符:(DER),反向属性则要加上:(INV)。 -
模式符号——上半部分含有模式名的矩形实线框,一水平线把该框分为两半,符号的下一半是空的。
关系符号
在EXPRESS-G中,不同的关系用不同线型表示:
粗实线:
- 表示继承关系(子类/超类关系)。关系线带圆圈的一端表示关系的子类一端。当一个超类是抽象超类时,就在实体名称前面加上字符:(ABS)。
虚线:
- 表示实体数据类型的可选属性(OPTIONAL)关系
- 模式与模式之间的引用
普通实线:
- 表述其他属性关系
关系是双向的,如果要强调两个方向中的一个,需要再所强调的方向上用一个空心圆作标记(这个空心圆可以看成是箭头,表示关系的流动方向)。
组合符号
EXPRESS-G图有时候很大,在一页上放不下,需要跨页标识(例如IFC的EXPRESS-G图就是这样子)。
-
页引用
-
模式间的引用
实体级框图
-
角色名称
在EXPRESS中,当一个实体与属性建立关系时,实体的属性要根据它所扮演的角色而命名——也就是规定属性名。
属性名放在关系线上。 -
基数(CARDINALITY)
实体和定义数据类型的属性有时要用聚集数据类型表示:LIST/SET/BAG/ARRAY。在EXPRESS-G图中,聚集在属性关系线上标出,接在属性名称的后面,在表示时仅使用聚集数据类型的第一个字母(即L/S/B/A,省略OF)。
例如在下面的案例中:
L[1:?] 表示一个列表,且索引的最小值是1,最大没有上限;
A[1:3] 表示一个数组,且索引的最小值是1,最大值是3。
这里的索引表示了实体和属性的基数关系,如果属性没有规定聚集,则基数关系为1。
可选属性是个特例,基数为0或1。 -
约束
在EXPRESS数据描述中被约束事项可以用在该事项名的前面带上星号(*)的办法表示。
具体的规则如下:
(1)如果一个实体是EXPRESS模式中的规则的一个参数,则在该实体名称之前可以前缀星号;
(2)如果实体的某个属性被实体中的UNIQUE子句或者WHERE子句所约束,可以在该属性名称前面前缀星号;
(3)如果一个定义类型被WHERE子句所约束,可以在该定义类型的名称之前前缀星号;
(4)如果一个聚集数据类型被一个UNIQUE关键字所约束,则该聚合数据类型的第一个字母之前可以前缀星号。
案例
- 这里面有六个实体(矩形框)——super, sub_1, sub_2, from_ent, to_ent, an_ent。
- 这里面有三个定义数据类型(虚线框)——name, choice, strings。
- 这里面还有几个简单数据类型(双竖线实现框)——Integer, Real, String。
- 实体super有两个子类实体(粗实线表示继承关系)sub_1和sub_2。
- sub_2有一个选择数据类型的属性choice,choice从名为an_ent的实体和定义数据类型name两者之间进行选择。实体an_ent有一个属性是整数数据类型,name为字符串数据类型(STRING)。
- from_ent实体是sub_1实体的属性,from_ent实体有两个属性:一个是可选属性to_ent实体,to_ent实体有一个必要属性strings,strings是定义数据类型;另一个是必要属性。