XML与数据库目录1.0 简介 1.0 简介 (Introduction)本文对怎样使用XML和数据库做了总体回顾,描述了以数据为中心和以文档文中心的文档的差异如何影响到在数据库中的应用,XML和关系型数据库的一般用法,以及什么是原生XML数据库和何时使用它。 2.0 XML是数据库吗?(Is XML a Database?)在开始讨论XML和数据库之前,我们先回答许多人提过的问题:“XML是数据库吗?” 如果仅按数据库这个术语的本质来看,XML文件是数据库。即它是数据的集合。在许多方面看起来它和其他文件没什么区别 -- 无论如何,每个文件都含有某种类型的数据。作为一种“数据库”格式,XML有一些优势:例如,它是自描述的(所用的标记描述了数据的结构和类型,尽管缺乏语义),可交换的(portable)(Unicode),能够以树型或图形结构描述数据。同样它也有缺点,例如,它是冗余的,由于要对它进行解析和文本转换,所以数据访问速度较慢。 一个更有用的问题就是在宽松的意义上,XML及其周边技术是否可以算作“数据库” -- 即数据库管理系统(DBMS)。答案是“在某种程度上是(sort of)”。从正面来说,XML提供了许多数据库所具备的东西:存储(XML文档), 模式(DTD, XML schema语言), 查询语言(XQuery, XPath, XQL, XML-QL, QUILT等等),编程接口(SAX, DOM, JDOM)等等。从反面来说,它缺少一些真正的数据库所应具备的东西:高效的存储,索引,安全,事务和数据一致性,多用户访问,触发器,在多个文件中查询等等。 XML适合于用作所谓“数据库”的一个好例子就是 .ini文件 -- 它包含应用程序的配置信息。与其写一个处理以逗号分隔(comma-delimited)的文件的解析器,开发一种小型的XML语言并写一个解释它的SAX程序要容易的多。此外,XML允许使用嵌套的实体,而逗号分隔的文件(comma-delimited files)很难做到这点。然而,说它就是数据库还很勉强,因为它是线性读写的,而且仅用在程序开始和结束时。 比较适合于XML数据库的一些复杂的数据集就是个人通讯录(名字,电话号码,地址等),或用于描述浏览器书签以及用Napster偷来的MP3。然而,由于dBase和Access之类的数据库物美价廉,即使在这种情况下似乎也没有多少理由把XML文件作为数据库使用。XML的唯一真正好处就是数据的可交换性(portable),由于有越来越多的工具可以用来将数据库当作XML进行存取,这一点好处似乎也要打些折扣。 3.0 为什么要用数据库?(Why Use a Database?)当你开始考虑XML和数据库的时候首先要回答这个问题:为什么你会先想到使用数据库?你是否想利用现有数据?是否想找个地方存储Web页面? 是否在电子商务中使用数据库,而XML在其中作为数据传输载体? 对这些问题的回答将会极大地影响你对数据库和中间件(如果有的话)的选择, 以及如何使用数据库。 例如,你有个电子商务的应用,将XML用作数据交换。那么你的数据最好有个高度规整的结构并且供非XML程序使用。还有,XML文档所用的某些东西如实体和编码对你来说可能并不重要 -- 总之,你感兴趣的是数据,而不是它在XML内如何存储。在这种情况下,你大概需要一个关系型数据库以及在XML和数据库之间转换数据的软件。如果你的应用程序是面向对象的,你甚至还需要一个在数据库或XML中存取这些对象的系统。 另一方面,假如你要从一些面向散文(prose-oriented)的XML文档建立一个网站。你不但要管理这个网站,还要提供一个途径让用户可以查找内容。你的文档看起来结构比较松散,其中的实体的使用对你来说可能更重要,因为它们是文档结构的重要部分。这种情况下,你也许需要一个原生XML数据库(native XML database)或内容管理系统(content management system)。这就使你可以保持文档的物理结构,支持文件级的事务处理,以及使用XML Query语言进行查询。 4.0 数据和文档 (Data versus Documents)在选择数据库时最重要因素大概就是你想在数据库存储数据还是文档。例如,是简单地把XML当作数据库和(可能不支持XML)应用程序之间的数据转换工具,还是用于集成,就像XHTML和DocBook中的那样?通常这是个偏好,但是却非常重要,因为所有以数据为中心的(data-centric)文档有着许多相同的特性,所有以文档为中心的(document-centric)也有许多相同的特性。这会影响到XML在数据库中如何存储。下面两部分中我们就来考察这些特性。 (历史背景:我在xml-dev邮件列表上第一次听说data-centric和document-centric这些术语,不知道是谁发明的,但是我在1997的消息中发现有使用document-centric的,从1998年以后这两个术语都有使用。) 4.1 以数据为中心的文档 (Data-Centric Documents)以数据为中心的文档就是将XML用作数据的传输载体,专门提供给机器消费,其实没有必 |
XML与数据库
最新推荐文章于 2023-02-09 15:58:08 发布
本文探讨了XML作为数据交换格式在数据库中的应用,包括如何将XML文档存储到数据库中,如何利用XML Schema进行数据验证,以及如何通过XQuery等查询语言检索XML数据。同时,讨论了XML与关系型数据库的集成,如使用XPath映射关系表,以及NoSQL数据库对XML的原生支持。
摘要由CSDN通过智能技术生成