跨模型转换的统一方法
立即解锁
发布时间: 2025-08-20 00:40:28 阅读量: 1 订阅数: 5 

# 跨模型转换的统一方法
## 1 超图数据模型概述
超图数据模型(HDM)中的模式是一个三元组 ⟨Nodes, Edges, Constraints⟩。对模式 $S = ⟨Nodes, Edges, Constraints⟩$ 的查询 $q$ 是一个表达式,其变量是 $Nodes ∪ Edges$ 的成员。Nodes 和 Edges 定义了一个带标签的、有向的、嵌套的超图,其中边可以连接任意数量的节点和其他边。Constraints 是一组对 $S$ 的布尔值查询。
模式 $S = ⟨Nodes, Edges, Constraints⟩$ 的实例 $I$ 是一组集合,需满足以下条件:
1. 每个构造 $c ∈ Nodes ∪ Edges$ 都有一个范围,用 $Ext_{S,I}(c)$ 表示,可从 $I$ 推导得出。
2. 反之,$I$ 中的每个集合都可以从范围集合 $\{Ext_{S,I}(c)|c ∈ Nodes ∪ Edges\}$ 推导得出。
3. 对于每个 $e ∈ Edge$,$Ext_{S,I}(e)$ 仅包含出现在 $e$ 所连接构造范围内的值(域完整性)。
4. 每个约束 $c ∈ Constraints$ 的值为真,查询 $q$ 的值由 $q[c_1/Ext_{S,I}(c_1), ..., c_n/Ext_{S,I}(c_n)]$ 给出,其中 $c_1, ..., c_n$ 是 $Nodes ∪ Edges$ 中的构造。
我们将函数 $Ext_{S,I}$ 称为扩展映射。模型是一个三元组 ⟨$S, I, Ext_{S,I}$⟩。如果两个模式具有相同的实例集,则它们是等价的。
HDM 的原始转换包括:
1. `renameNode ⟨fromName, toName⟩`:重命名节点。条件:toName 不是已有节点的名称。
2. `renameEdge ⟨⟨fromName, c1, ..., cm⟩, toName⟩`:重命名边。条件:toName 不是已有边的名称。
3. `addConstraint c`:添加新约束 $c$。条件:$c$ 求值为真。
4. `delConstraint c`:删除约束。条件:$c$ 存在。
5. `addNode ⟨name, q⟩`:添加名为 name 的节点,其范围由查询 $q$ 的值给出。条件:该名称的节点不存在。
6. `delNode ⟨name, q⟩`:删除节点。$q$ 说明如何从剩余模式构造的范围中恢复被删除节点的范围。条件:节点存在且不参与任何边。
7. `addEdge ⟨⟨name, c1, ..., cm⟩, q⟩`:在现有模式构造 $c_1, ..., c_m$ 之间添加新边。边的范围由查询 $q$ 的值给出。条件:边不存在,$c_1, ..., c_m$ 存在,且 $q$ 满足适当的域约束。
8. `delEdge ⟨⟨name, c1, ..., cm⟩, q⟩`:删除边。$q$ 说明如何从剩余模式构造的范围中恢复被删除边的范围。条件:边存在且不参与任何边。
这些转换都有一个三元版本,需要额外的条件参数。复合转换是一系列 $n ≥ 1$ 个原始转换。转换 $t$ 相对于模式 $S$ 是模式依赖(s - d)的,如果对于 $S$ 的任何模型,$t$ 都不返回未定义模型 $\varphi$,否则是实例依赖(i - d)的。
每个成功的原始转换 $t$ 都可以通过另一个成功的原始转换 $t^{-1}$ 逆转,复合转换也具有可逆性。
## 2 支持更丰富的语义建模语言
### 2.1 建模语言构造分类
一般来说,任何语义建模语言 $M$ 的构造可以分为外延构造、约束构造或两者兼有。外延构造表示来自某个域的一组数据值,必须使用 HDM 的外延构造(节点和边)构建。外延构造有三种类型:
- 节点构造:可以独立于其他构造存在于模型中,其方案唯一标识 $M$ 中的构造,映射到 HDM 中的节点。例如,ER 模型实体可以独立存在,其方案是实体名称。
- 链接构造:只有在某些其他节点构造存在时才能存在于模型中,其范围是这些节点构造范围的笛卡尔积的子集,映射到 HDM 中的边。例如,ER 模型中的关系是链接构造。
- 节点 - 链接构造:是节点构造,但只有在某些其他节点构造存在并与之链接时才能存在,映射到 HDM 中的节点和边的组合。例如,ER 模型中的属性是节点 - 链接构造。
约束构造表示对 $M$ 外延构造范围的限制。例如,ER 泛化层次结构限制每个子类实体的范围是超类实体范围的子
0
0
复制全文
相关推荐










