zoukankan      html  css  js  c++  java
  • 关于XML数据库与普通数据库(概述)

    1. 写作目的
    本文是作为Project Tracy(参见http://wrwcmaster.spaces.live.com/blog/cns!800C7A880C83AB69!2287.entry)的技术参考系列。

    该课题的起因于比较Tracy应该使用哪个作为本地存储的数据库比较好。之前也有翻译过一篇文章《选择合适的数据存储(SSCE,Access,XML等)》<http://www.cnblogs.com/galaxyyao/archive/2009/08/07/1541459.html>。不过这篇文章是作为SSCE的推广广告,虽然有可信度,但也不可全信。。。

    第二个起因是前一段时间在cnblogs上看到这样一个介绍:《XML数据库的有关架构和细节说明》<http://www.cnblogs.com/chenxizhang/archive/2009/08/12/1544105.html>。作者曾经到还是菜菜菜鸟的我负责的Forum上过一两个问题,有挺深的印象。

    于是本文的目的是为了介绍XML作为数据库的可行性与目前为止其他人的研究成果。

    2. XML数据库简介

    XML数据主要有两种形式:
    1. XML-enabled,接受XML形式的输入输出,但存储还是以传统数据库形式
    2. Native XML (NXD,原生XML数据库),将XML文档(XML documents)作为核心存储单元,而传统关系型数据库使用表中的一行作为最基本的逻辑存储单元。

    XML作为数据库
    优势:
    自描述(所用的标记描述了数据的结构和类型,尽管缺乏语义)
    可交换的(portable)(Unicode)
    能够以树型或图形结构描述数据
    劣势:
    对它进行解析和文本转换,所以数据访问速度较慢
    缺乏高效的存储,索引,安全,事务和数据一致性,多用户访问,触发器,在查询多个文件等等

    3. XML数据库的性能
    a. 查询速度
    有提到读取本地磁盘文件,通常比读取真正的关系型数据库要来得快。(这个其实很常识,但关键的不是读文件的速度,而是从所读的文件中找到所需的信息的速度。在这点上XML会比数据库快么?待我之后通过实验证明之。我猜想因为是从内存中读,所以速度应该也不会慢)
    可以考虑添加XML索引,但具体算法还没有很好的想法
    b. 于其他小型数据库之间的比较
    在对于无并发要求的情况下,使用XML是比较好的选择

    总结:
    XML数据库适用情况
    1. 少文件,数据量小
    2. 需要快捷部署
    3. 需要较好的可读性
    4. 较少安全性考虑
    5. 扔掉SQL,主要适用自己的读写API
    6. 少并发
    7. 性能要求不太高,可以使用本地数据库
    在这些情况下,可以将XML文档用作本地数据库。最常见的一种情况就是配置ini文件。
    这就是我在SSCE,Access与XML三者之间强烈建议使用XML作为Tracy本地存储的原因。
    从目前为止来看,我认为暂时不需要开发针对其他Provider例如OLE DB Provider的需要。但为了保证这不仅仅是感情倾向,下一步会通过实验来进行证明XML的效率。

    参考资料
    XML数据库的有关架构和细节说明
    http://www.cnblogs.com/chenxizhang/archive/2009/08/12/1544105.htm
    XML与数据库
    http://blog.csdn.net/onestab/archive/2006/11/20/1397135.aspx

  • 相关阅读:
    浅谈mongodb内存
    iptables 【转载】
    腾讯公司运维面试题
    nginx 的一些优化(突破十万并发)
    nginx 查看 并发连接数
    Linux内核调优部分参数说明
    web性能测试基本性能指标
    sort
    sed笔记
    ubuntu 18.04安装腾讯通RTX2015
  • 原文地址:https://www.cnblogs.com/galaxyyao/p/1555981.html
Copyright © 2011-2022 走看看