xml与数据库的区别

这是风牛马不相及的两个概念,他们的结构,应用范围是完全不同的,目前的数据库基本上都是关系型数据库,以sql与oracle为代表,都是非常大型的,可以进行数据的海量存储;而xml主要解决的是数据在网上传输标准的问题,把原来各种各样的数据孤岛可以通过xml这座桥梁连接起来,所以打个比方,数据库就好比是盛数据的桶,而xml则是数据传输转换的桥梁,所以数据库是数据库,xml是xml,二者是截然不同的,当然二者也存在非常紧密的联系,毕竟都是处理数据的工具,就是很多其他的数据格式可以通过xml输入到数据库中,数据库中的关系型数据也可以通过xml转化成其他的数据格式
所以,不要因为他们都与数据有关,就把他们混为一谈,就好比楼和猪舍都是砖砌的,是不是二者就是一样的呢

-------------------------------------------------------------------------------------------------------------------------------------------------

xml是文档形式,利于长久保存,而且只要命名做的好,可读性就会很高;再者,数据库是关系型数据库,某些关系是数据库表现不出来的,可以用xml,而且xml形成schema之后转化.cs很方便,不用自己处理(嘿嘿,这是我自己认为的方便之处啦)

--------------------------------------------------------------------------------------------------------------------------------------------------

xml和数据库根本不能做来比较,这个是两回事。
1、xml是一种存储数据的标准格式,是为了便于网络数据传输和交互,而存在的期性能和存储的数据量,严重受着文件的大小而影响,存储xml的文件越大传递和读取起来越耗时,不信你可以打开一个50MB的有Xml标准格式的文件,你看看cpu使用率会到多少。
2、数据库自然不必说了,存储大量数据像小型的Access,MySql,SqlServer桌面版。大型的有DB2,orcale,SqlServer等等。可以进行大量数据的存储和分析,不过数据库确实有文件型数据库不过那是数据库的低级阶段,现在大多数数据库都优化了自己的引攀已经不是文件型的了,具体是什么形式的那得问DBA啊!这种人据说是按小时收美金的啊!多说了。


----------------------------------------------------------------------------------------------------------------------------------------------------

有了数据库为什么还要用XML?XML与数据库各自的特点、他们的应用与区别我想你从Google上可以查到一大堆,那么在这里

我只说说自己的体会:
1:尽管XML和数据库都可以定义数据模型并存储数据,然而,XML更加通用、更加标准化,前些年我们公司的软件要与其他公司软件做接口传输数据时,采用了最简单的接口数据库方式,开发最容易,带来了些问题:
     一是这个接口数据库是某种数据库产品(DB2\MSSQL\MYSQL),接口代码在更换了数据库产品(我们公司的软件要经常面对不同厂商的应用系统)后需要修改或重写;
     二是如果接口需求变动的话,可能要改动数据库结构,导致还要改接口代码,这是致命的。
     三是接口的稳定取决于这个数据库管理系统本身要稳定,你得考虑维护管理(自动化日志清理等)问题;
     四是为了穿过防火墙(电信、网通公司可能会关闭某些端口)及安全性考虑,你不能直接通过TCP/IP去访问远程接口机器上的数据库,需要将数据再编码发布(比如之前的Remoting或现在的WCF)
     那么现在我们改用XML来做程序接口,我们给其他公司的是一些XML Schema、Web Serivce的URI、业务流程说明,我们不再需要一个接口电脑、接口数据库等,现在上述的四个问题不再困扰我们。

2:我们之前的业务数据库大概有二百多张表,一年左右会因需求变动对表结构做些调整,当然也影响到了应用程序代码的调整,现在我们的业务数据库大概有不到五十张表,因为一些容易发生需求变动的表和一些半结构化、非结构化的数据被存储为数据库表内的XML字段,需求变动仅影响我们去修改一下Schema,不用去动数据库结构,这对已经部署到用户那边的系统来说是非常重要的改进。不仅如此,表数量的减少对开发人员、业务人员、数据库管理人员非常有益。

3:说了两点XML的好处,那么我再说说它作为数据存储方面目前无法替代 数据库的地方:
    XML缺少数据库具备的特性:高效的存储(即使是数据库内XML字段还是没有传统字段的速度快)、索引和数据修改机制(DB2等数据库产品对XML内的元素和属性可以加索引,内建在数据库中的XML字段享受了数据库带来的一些好处);严格的数据安全访问控制;完整的事务和数据一致性控制;多用户访问机制;触发器、完善的并发控制等因此,用户量大、数据集成度高以及性能要求高的数据环境中还是需要数据库来完成任务,IBM的DB2工程师也在讨论时建议我们统计类数据还是用传统字段为好。

   总之,现在XML对数据库是一个很好的补充,大的数据库厂商都在数据库产品里内置了对XML的支持,这样将XML与数据库配合使用,将让他们相互配合利用各自发挥出威力,也提高也我们信息产品的灵活性。


-----------------------------------------------------------------------------------------------------------------------------------------------------------------------

XML是什么,它可以做什么?——写给XML入门者

XML即可扩展标记语言(eXtensible Markup Language)。标记是指计算机所能理解的信息符号,通过此种标记,计算机之间可以处理包含各种信息的文章等。如何定义这些标记,既可以选择国际通用的标记语言,比如HTML,也可以使用象XML这样由相关人士自由决定的标记语言,这就是语言的可扩展性。XML是从SGML中简化修改出来的。它主要用到的有XML、XSL和XPath等。

上面这段是对XML的一个基本定义,一个被广泛接受的说明。简单说,XML就是一种数据的描述语言,虽然它是语言,但是通常情况下,它并不具备常见语言的基本功能——被计算机识别并运行。只有依靠另一种语言,来解释它,使它达到你想要的效果或被计算机所接受。

假如你是刚接触XML的新手,那么可能并无法从定义上是了解XML是什么。也许,你可以换个角度来认识XML是什么;从应用面来认识XML,从XML可以做些什么来认识它,这应该能比那更空洞的定义对你更有帮助。

XML应用面主要分为两种类型,文档型和数据型。下面介绍一下几种常见的XML应用:

1、自定义XML+XSLT=>HTML,最常见的文档型应用之一。XML存放整个文档的XML数据,然后XSLT将XML转换、解析,结合XSLT中的HTML标签,最终成为HTML,显示在浏览器上。典型的例子就是CSDN上的帖子。

2、XML作为微型数据库,这是最常见的数据型应用之一。我们利用相关的XML API(MSXML DOMJAVA DOM等)对XML进行存取和查询。留言板的实现中,就经常可以看到用XML作为数据库。同时,这里要告诉一些新人,数据库和数据库系统,这两个概念是不同的。这里顺便提一下XML对数据库系统的影响。在新版本的传统数据库系统中,XML成为了一种数据类型。和“传统”相对的就是一种新形态的数据库,完全以XML相关技术为基础的数据库系统。目前比较知名的eXist

3、作为信息传递的载体。为什么说是载体呢?因为这些应用虽然还是以XML为基本形态,但是都已经发展出具有特定意义的格式形态。最典型的就是WEB SERVICE,将数据包装成XML来传递,但是这里的XML已经有了特定的规格,即SOAP。不过这里还不得不说AJAXAJAX的应用中,相信也有一部分的应用是以自定义XML为数据,不过没有成为工业标准,这里不做详述。

4、应用程序的配置信息数据。最典型的就是J2EE配置WEB服务器时用的web.XML。这个应用估计是很容易理解的了。我们只要将需要的数据存入XML,然后在我们的应用程序运行载入,根据不同的数据,做相应的操作。这里其实和应用2,有点类似,所不同的在于,数据库中的数据变化是个常态,而配置信息往往是较为静态,缺少变化的。

5、其他一些文档的XML格式。如WORD、EXCEL等。

6、保存数据间的映射关系。如Hibernate。

这几种常见应用中,我们还可以根据其应用广泛程度,分为:自定义XML特定意义XML。在1和2就是属于自定义XML的范畴;3至6则属于特定意义XML,或者说是XML的延伸。

这里介绍的6种应用,基本涵盖了XML的主要用途。总之,XML是一种抽象的语言,它不如传统的程序语言那么具体。要深入的认识它,应该先从它的应用入手,选择一种你需要的用途,然后再学习如何使用。


  • 9
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值