XML数据是Web上数据交换和表达的标准形式 和关系数据库相比 XML数据可以表达具有复杂结构的数据 比如树结构的数据 正因为此 在信息集成系统中 XML数据经常被用作信息转换的标准
管理三大领域数据
基于XML数据的特点 XML数据的高效管理通常有着以下的应用
复杂数据的管理
XML可以有效地表达复杂的数据 这些复杂的数据虽然利用关系数据库也可以进行管理 但是这样会带来大量的冗余 比如说文章和作者的信息 如果利用关系数据库 需要分别用关系表达文章和作者的信息 以及这两者之间的关系 这样的表达 在文章和作者关系的关系中分别需要保存文章和作者对应的ID 如果仅仅为了表达文章和作者之间的关系 这个ID是冗余信息 在XML数据中对象之间的关系可以直接用嵌套或者ID IDREF的指向来表达 此外XML数据上的查询可以表达更加复杂的语义 比如XPath可以表达比SQL更为复杂的语义 因此利用XML对复杂数据进行管理是一项有前途的应用
互联网中数据的管理
互联网上的数据与传统的事务数据库与数据仓库都不同 其特点可以表现为模式不明显 经常有缺失信息 对象结构比较复杂 因此在和互联网相关的应用 特别是对从互联网采集和获取的信息进行管理的时候 如果使用传统的关系数据库 存在着产生过多的关系 关系中存在大量的空值等问题 而XML可以用来表达半结构数据 对模式不明显 存在缺失信息和结构复杂的数据可以非常好的表达 特别在许多web系统中 XML已经是数据交换和表达的标准形式 因此XML数据的高效管理在互联网的系统中存在着重要的应用
信息集成中的数据管理
现代信息集成系统超越了传统的联邦数据库和数据集成系统 需要集成多种多样的数据源 包括关系数据库 对象 关系数据库以及网页和文本形式存在的数据 对于这样的数据进行集成 XML这样既可以表达结构数据也可以表达半结构数据的形式成为首选 而在信息集成系统中 为了提高系统的效率 需要建立一个cache 把一部分数据放到本地 在基于XML的信息集成系统中 这个cache就是一个XML数据管理系统 因此XML数据的管理在信息集成系统中也有着重要的应用
开发难点解决之道
在实际的XML数据库以及基于XML的信息集成系统的开发过程中 笔者遇到了一些技术难点 在解决这些难点的过程中 有一些经验是值得借鉴的参考的
关系数据库中复杂查询的优化
在基于关系数据库的XML数据管理系统中 在没有建立索引的情况下 系统的性能非常低 为了提高系统的性能 我们在编码上建立了索引 经过分析 由于在系统中最常做的 *** 作是a x b y的join *** 作 最好的选择是建立二维索引 由于我们的后端数据库没有对二维索引的支持 我们选择了在x和y属性上分别建立B+树的方法 使得系统性能得到了提高 此外 我们发现 在对嵌套查询进行翻译的过程中 如果嵌套查询的结果可能过大 对嵌套查询的结果建立临时表可以提高系统的性能
经验总结 对于一个数据库应用 需要对其workload进行分析 根据workload建立索引 对于执行效率很慢的查询或查询集合 可以通过分析查询计划找出系统的瓶颈进行处理
复杂数据库系统的调试
在调试XML数据的管理系统中 多次出现了小规模数据执行准确 效率很高 而大规模数据执行错误或执行效率很低的情况 对于这种情况 我们采取了定位错误 猜测错误 继而加以解决的策略 也就是首先确定出现错误的 *** 作 使得错误的出现具有可重复性 然后通过逐步删减数据 确定数据出现在哪些数据上 这样就使得调试设计的 *** 作和数据的规模大大减小了 然后根据经验对错误进行猜测 逐步排除错误
经验总结 对于数据规模大 *** 作复杂的数据库系统的调试 首要任务是让错误可以重现 然后把次要因素逐步排除 最后发现问题的所在
复杂数据库系统的测试
由于系统需要处理各种各样的XML上的查询 为了确保系统的健壮性 需要选取多种具有代表性的查询对系统进行测试 为了选取这样的查询 我们考察了XML上影响查询的不同参数 包括查询的长度 查询中包含的关系种类 查询的选择性和查询中约束条件的选择性 根据这些参数 我们分别选择有代表性的查询对系统进行测试
lishixinzhi/Article/program/net/201311/12558SqlDataAdapter
sqlData
=
new
SqlDataAdapter()
DataSet
ds
=
new
DataSet()
sqlData.Fill(ds)
string
xmlDoc
=
ds.GetXml()
然后xmlDoc就是数据Xml文档的string形式,服务器怎么存储数据的,就需要你自己去搞定了
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)