XML到关系映射中的信息保存
立即解锁
发布时间: 2025-08-23 00:36:28 阅读量: 2 订阅数: 3 

### XML到关系映射中的信息保存
#### 1. 引言
使用关系引擎存储XML文档的问题受到了广泛关注,因为关系引擎能提供强大可靠的数据管理服务。在基于映射的XML存储系统中,XML文档被表示为关系数据库,对文档的查询(包括更新)会被转换为对数据库的查询。因此,将XML查询和更新正确转换为SQL事务非常重要,特别是应只允许能产生有效文档的更新。
目前,设计XML文档映射方案的工作重点在于确保能使用关系表示回答XML查询。而本文研究的是设计能确保仅执行有效更新操作的映射方案。
映射系统的一个重要要求是文档的任何查询都必须能从表示该文档的数据库中计算得出,即映射必须是无损的,意味着文档本身必须能从其关系映像中恢复。考虑更新时,在将操作应用于数据库之前,必须能够测试该操作是否会产生有效文档的表示,这相当于检查结果数据库是否表示一个格式良好的文档(即树),以及该文档是否符合文档模式。
#### 2. 相关工作
- **信息保存映射**:在关系数据库中定义信息保存映射的文献很多,无损映射方案的概念受到关系无损分解的启发。
- **增量检查**:关系视图/完整性约束的增量检查也得到了广泛研究,一些视图维护技术已扩展到XML的前身——半结构化模型。
- **XML文档验证**:XML文档相对于XML模式形式的增量验证也有相关研究。
- **XML到关系数据库的映射**:相关文献众多,如Edge方案是一种通用方法,显式存储文档树中的所有边。此外,还有一些专门策略,如Shanmugasundaram等人提出的三种策略,旨在通过内联某些元素的内容来最小化数据碎片化;LegoDB是一个基于成本的工具,使用内联和其他操作生成关系映射;STORED是一种混合方法,使用关系表存储最规则和频繁的结构,使用溢出图存储半结构化数据库的其余部分。但这些工作都没有处理更新有效性的检查。
- **约束翻译**:将文档模式中的约束转换为关系模式的工作也有研究,如键和函数依赖的传播,但这些工作没有考虑文档模式中内容模型(即正则表达式)定义的约束的翻译。
#### 3. 预备知识
- **XML文档**:将XML文档建模为带有元素和文本节点的有序标记树。根节点代表整个文档,有一个子节点代表最外层元素。元素节点的内容是其子节点的(可能为空)列表。为简单起见,在混合内容元素中,将每个文本节点替换为标签为#PCDATA的元素节点。
- **文档模式**:将文档模式建模为一组规则,这些规则约束文档中元素的结构和标签。元素类型由路径表达式定义,内容模型由1 - 无歧义正则表达式指定。
- **关系数据库**:每个关系方案R有一组(可能为空)域为代理的属性和一组(可能为空)域为常量的属性。
- **文档和数据库等价**:定义了文档等价和数据库等价的概念,即重命名文档中的节点ID或数据库中的代理不会产生新的文档或映射。
#### 4. XML到关系映射
- **映射方案定义**:将XML到关系的映射方案定义为一个三元组,包括关系模式S、将数据库分配给XML文档的映射函数和将XML文档分配给数据库的发布函数。
- **参数化类的映射方案**:基于用于指定映射函数、发布函数和目标模式中关系约束的语言来定义映射方案的类。语言的能力决定了可以指定的映射类型。
- **XDS类的映射**:介绍了一种自然的映射方案类XDS(XQuery、Datalog和SilkRoute),它能表达文献中所有已知的映射方案。
- **映射语言**:由XQuery增强而来,带有sql ... end子句用于指定SQL插入语句。
- **关系约束**:关系模式中的每个约束是一个布尔查询,除非约束被违反,否则必须评估为false。这些查询用一组带有分层否定和不等号的datalog规则表示。
- **发布语言**:发布函数是对关系数据库的“规范”XML视图的任意XQuery表达式。
以下是Edge映射方案的示例:
- **关系模式**:包含Edge和Value关系,Edge关系存储文档树中元素到元素的边,Value关系存储树中的每个叶子节点。
- **映射函数**:由一个递归过程定义,访问给定节点的子节点,将元素节点存储在Edge关系中,将文本节点存储在Value关系中。
- **发布函
0
0
复制全文
相关推荐









