XML 数据树中的函数依赖与阿姆斯特朗数据树研究
1. 预备知识
在处理 XML 编码的数据时,通常会将其表示为节点标记树,就像在 DOM、XPath、XQuery、XSL 和 XML Schema 中所使用的表示方法一样。下面是 XML 树相关的一些基本概念:
- XML 树 :一个有根树 (T),包含节点集 (V_T)、弧集 (A_T)、唯一的根节点 (r_T),以及映射 (name : V_T \to Names) 和 (kind : V_T \to {E, A, S}),分别为每个节点分配名称和类型。若 (V_T) 有限,则 (T) 为有限树;若 (V_T) 仅由根节点组成,则 (T) 为空树。
- 节点关系 :在 XML 树中,从根节点到任意节点 (v \in V_T) 有唯一路径。对于有向路径,路径起点 (u) 是终点 (v) 的祖先,(v) 是 (u) 的后代。对于弧 ((u, v)),(u) 是 (v) 的父节点,(v) 是 (u) 的子节点。没有子节点的节点为叶子节点,且类型为 (A) 和 (S) 的节点总是叶子节点。用 (L_T) 表示 (T) 中所有类型为 (A) 或 (S) 的叶子节点集合。
- XML 数据树 :由 XML 树 (T’) 和评估函数 (val : L_{T’} \to STRING) 组成,该函数为 (L_{T’}) 中的每个叶子节点 (v) 分配一个字符串 (val(v))。
- 同态与同构 :对于两个 XML 树 (T) 和 (T’),映射 (\varphi : V_{T’} \to