SQL 与 XML:数据交互与标准规范解析
1. SQL与XML的数据转换
当数据库管理系统(DBMS)支持对象 - 关系扩展(如结构化数据类型)时,数据的编组(marshaling)和解组(unmarshaling)过程既会变得简单,也会更加复杂。由于表中的各个列现在可以拥有自己的层次结构,因此与 XML 之间的转换可能会更简单。例如,一个高级的 XML 元素(如由街道、城市、州、国家和邮政编码元素组成的账单地址)可以映射到具有抽象 ADDRESS 数据类型的相应列,该数据类型有其自身的内部层次结构。然而,这种转换在数据库设计中涉及更多决策,需要在结构化数据类型的编组/解组简单性与扁平化行/列方法的灵活性之间进行权衡。
一些商业产品已经开始提供编组/解组功能,或者宣布计划在未来版本中提供此功能。这种转换的性能开销可能非常大,其在实际应用中的受欢迎程度还有待观察。但如果应用程序要处理 XML 形式的外部数据,那么在某个阶段必须进行 XML 和 SQL 数据之间的转换,而在 DBMS 内部进行转换可能是最有效的方法。
2. XML 与元数据
关系模型的强大特性之一是它对数据类型和数据结构的严格支持,通过表、列、主键、外键和约束的定义来实现。此外,关系数据库的系统目录包含元数据,即关于数据库中数据的数据。通过查询系统目录,可以了解数据库的结构,包括列的数据类型、组成表的列以及表内关系。
相比之下,XML 文档本身提供的元数据非常有限。它们为数据施加了层次元素结构,但关于该结构的实际数据仅为元素和属性的名称。一个格式良好的 XML 文档可能仍然具有相当不规则的结构。例如,一个格式良好的 XML 文档中的某个命名元素,在一个实例中可能包含文本数
超级会员免费看
订阅专栏 解锁全文
1万+

被折叠的 条评论
为什么被折叠?



