以文本方式查看主题

-  W3CHINA.ORG讨论区 - 语义网·描述逻辑·本体·RDF·OWL  (http://bbs.xml.org.cn/index.asp)
--  『 XML 与 数据库 』  (http://bbs.xml.org.cn/list.asp?boardid=17)
----  XML和数据库  (http://bbs.xml.org.cn/dispbbs.asp?boardid=17&rootid=&id=6379)


--  作者:showery
--  发布时间:4/1/2004 7:03:00 PM

--  XML和数据库
今天起陆续介绍一些关于XML和XML数据库的知识,我接触XML也只有不到3年,现在正试图在做一些关于XML数据库方面的研究。论述中有什么错误或者不妥的地方,还请大家讨论并指教。
首先,初学XML者,常常有的一个疑问是:“XML是不是数据库?”
这个问题看似简单,其实还真的不那么简单。广义上,XML文本具有数据库的特征,它是数据的集合。形式上,它和其他文件没有是们不同,并且还是文本文件。但又有显著的不同,例如,XML可以自定义标记符(tag),本身就具有结构,可以用树结构描述,使用unicode代码。
即便数据库是指数据库管理系统(DBMS)的场合,XML也具备相当的特征。譬如,
存储,XML文本本身就具备存储数据的功能;
结构定义,可以使用DTD,XML Schema或者REALX NG等等进行定义;
查询语言,可以使用XQuery, XPath, XQL, XML-QL, QUILT等等对XML文本进行查询;
编程工具,有SAX, DOM, JDOM等等等等。

--  作者:showery
--  发布时间:4/1/2004 7:44:00 PM

--  数据和文档
首先自我纠正一个不妥的用词,上篇的“XML文本“,改成“XML文档”或许会更合适些。
在讨论XML的邮件列表,经常会看到这样的两个词:“data-centirc documents”和“document-centric documents”,是指什么意思呢?
数据中心文档(data-centirc documents)
数据中心文档是指那些用于数据转换的XML文档。基本上可以说,它们是给电脑看而不是给人看的。所有你从其他数据库系统转换而成的XML都属于这类,为了测试你的程序,你或许会看其中的一个两个文档,我想你绝没有耐心和毅力去通读这些文档的。
文件中心文档(document-centric documents)
相对而言,文件中心文档却是设计出来供人来看的。你经常参考的书,写的邮件,到处都是铺天盖地躲都躲不掉的广告,每天上网看的网页,还有,我正在写你正在看的这些贴子。
但是,为什么要把文档分为数据中心文档和文件中心文档呢?
别忘了,你正在研究的XML技术,是计算机技术发展到今天,唯一一种既便于机器操作又易于为人类读懂的语言。

--  作者:showery
--  发布时间:4/1/2004 8:06:00 PM

--  数据存取---结构映射
从XML文档到数据库的映射方法,大致有以下两种。
基于数据库的表的映射
大部分提供XML和数据库转换功能的中间件使用这种方法。一个单一的XML文档对应一个或者一组表。象下面这个样子。

   <database>
      <table>
         <row>
            <column1>...</column1>
            <column2>...</column2>
            ...
         </row>
         <row>
            ...
         </row>
         ...
      </table>
      <table>
         ...
      </table>
      ...
   </database>

基于对象的映射
较大的传统的关系数据库供应商现在几乎都提供能够处理XML文档的产品。他们一般使用这种映射方法。


--  作者:admin
--  发布时间:4/1/2004 9:48:00 PM

--  写得很好啊,,希望大家都来讨论这个问题。
:-)


--  作者:kxxxx001
--  发布时间:4/5/2004 8:03:00 PM

--  
XML本身就可以是数据库阿,在一本XML数据库的书上好像说的是XML文件就是数据库的保存方式。我也是这么想的,不知道对不对?
--  作者:showery
--  发布时间:4/8/2004 6:48:00 PM

--  
以下是引用kxxxx001在2004-4-5 20:03:21的发言:
XML本身就可以是数据库阿,在一本XML数据库的书上好像说的是XML文件就是数据库的保存方式。我也是这么想的,不知道对不对?

我的意见是:
XML既其关联技术具备一定的数据管理功能, 但还不能算是完全的数据库管理系统.
否则也就没必要讨论什么NXDB(NATIVE XML DATABASE, 原生XML数据库?)了.


--  作者:showery
--  发布时间:4/8/2004 7:23:00 PM

--  对象映射(续)
譬如有下面的XML文档.
   <订单 订单号="12345">
      <客户 客户号="543">
         <客户名称>中国W3C</客户名称>
         <地址>中国北京</地址>
      </客户>
      <订购日期>20040408</订购日期>
      <项目 项目号="1">
         <物品 物品号="123">
            <名称>XML数据库</名称>
            <价格>10000</价格>
         </物品>
         <数量>2</数量>
      </项目>
      <项目 项目号="2">
         <物品 物品号="456">
            <名称>XML数据库使用手册</名称>
            <价格>100</价格>
         </物品>
         <数量>50</数量>
      </项目>
   </订单>
它的结构如下:
                                   订单
                    /         |            |         |
                 客户     订购日期   项目   项目
                                            |        |
                                          物品   物品
DOM中的树结构如下:
                      Element --- Attr
                    (订单)      (订单号)
               ____/   /         |   | ____
              /          /              |         |
       Element     Text     Element  Element
      ( 客户)    (订购日期)   (项目)    (项目)
          |                             |            |
      Element                  Element    Element
    (等等, 画图不便的缘故, 从略)
应用程序就可以通过类和对象来操作这个XML文档.

--  作者:showery
--  发布时间:4/8/2004 7:30:00 PM

--  对象映射(续)
譬如有下面的XML文档.
   <订单 订单号="12345">
      <客户 客户号="543">
         <客户名称>中国W3C</客户名称>
         <地址>中国北京</地址>
      </客户>
      <订购日期>20040408</订购日期>
      <项目 项目号="1">
         <物品 物品号="123">
            <名称>XML数据库</名称>
            <价格>10000</价格>
         </物品>
         <数量>2</数量>
      </项目>
      <项目 项目号="2">
         <物品 物品号="456">
            <名称>XML数据库使用手册</名称>
            <价格>100</价格>
         </物品>
         <数量>50</数量>
      </项目>
   </订单>
它的结构如下:
                                   订单
                    /         |            |         |
                 客户     订购日期   项目   项目
                                            |        |
                                          物品   物品
DOM中的树结构如下:
                      Element --- Attr
                    (订单)      (订单号)
               ____/   /         |   | ____
              /          /              |         |
       Element     Text     Element  Element
      ( 客户)    (订购日期)   (项目)    (项目)
          |                             |            |
      Element                  Element    Element
    (等等, 画图不便的缘故, 从略)
应用程序就可以通过类和对象来操作这个XML文档.

--  作者:yuji1998
--  发布时间:4/11/2004 4:15:00 PM

--  
我刚接触XML 不知道数据库通过XML映射的效率怎么样!它跟数据库直接视图输出有什么优势吗?

--  作者:渤海
--  发布时间:8/11/2004 9:11:00 AM

--  
yuji1998所说的其实是一个问题的两个方面,如果把XML看成是非XML原生数据库的视图的话。转换方式和效率正是一个研究的内容。提高效率是努力的方向。
--  作者:s3group
--  发布时间:8/16/2004 11:46:00 AM

--  
要是有专门基于 Xml 的数据库引擎就好了. 也像传统的 DBMS 那样, 使用引擎来访问加密后的XML数据元信息, 呵呵. 谁有兴趣请加 QQ 78733370 啊.
--  作者:沉入海底的影子
--  发布时间:10/28/2004 5:01:00 PM

--  
这个不错

--  作者:沉入海底的影子
--  发布时间:10/28/2004 5:01:00 PM

--  
这个不错

--  作者:愚者
--  发布时间:10/28/2004 7:33:00 PM

--  
如果一个论坛的数据也保存在一个XML里。这样也可以的吧!
(论坛的数据不是很多!)
--  作者:xmzhy
--  发布时间:11/12/2004 11:55:00 AM

--  
yuji1998:
    能否提供范例,让我参考。谢谢!xmzhy@21cn.com
--  作者:布克
--  发布时间:12/17/2004 11:18:00 AM

--  
DataAnyWhere(xml)Tools (http://www.szhzz.com)就是很好的数据影射工具。你用用就知道了。
--  作者:bluesky8405
--  发布时间:12/18/2004 8:58:00 AM

--  
其实把XML看作各种一个数据库间的一个转换中介工具可能更贴切一些
--  作者:anchen0617
--  发布时间:12/23/2004 1:43:00 PM

--  
我认为XML只是一个暂存数据的地方,最终还需要用HTML来显示出来,只是一个缓冲器,不过也可以把XML当成一个数据库来看。我是这样想的,不一定正确,仅供参考。
--  作者:anchen0617
--  发布时间:12/23/2004 1:43:00 PM

--  
我认为XML只是一个暂存数据的地方,最终还需要用HTML来显示出来,只是一个缓冲器,不过也可以把XML当成一个数据库来看。我是这样想的,不一定正确,仅供参考。
--  作者:渤海
--  发布时间:1/4/2005 11:53:00 AM

--  映射方法
关系模式和XML模式之间的映射方法有许多,并不局限于基于表的结构映射和对象映射。
--  作者:冰红茶
--  发布时间:5/11/2005 10:24:00 PM

--  
我是刚学不会呀
郁闷
--  作者:d_hao20@ustc.edu
--  发布时间:5/17/2005 2:04:00 PM

--  
以下是引用showery在2004-4-8 19:23:40的发言:
譬如有下面的XML文档.
    <订单 订单号="12345">
       <客户 客户号="543">
          <客户名称>中国W3C</客户名称>
          <地址>中国北京</地址>
       </客户>
       <订购日期>20040408</订购日期>
       <项目 项目号="1">
          <物品 物品号="123">
             <名称>XML数据库</名称>
             <价格>10000</价格>
          </物品>
          <数量>2</数量>
       </项目>
       <项目 项目号="2">
          <物品 物品号="456">
             <名称>XML数据库使用手册</名称>
             <价格>100</价格>
          </物品>
          <数量>50</数量>
       </项目>
    </订单>
它的结构如下:
                                    订单
                     /         |            |         |
                  客户     订购日期   项目   项目
                                             |        |
                                           物品   物品
DOM中的树结构如下:
                       Element --- Attr
                     (订单)      (订单号)
                ____/   /         |   | ____
               /          /              |         |
        Element     Text     Element  Element
       ( 客户)    (订购日期)   (项目)    (项目)
           |                             |            |
       Element                  Element    Element
     (等等, 画图不便的缘故, 从略)
应用程序就可以通过类和对象来操作这个XML文档.



你在写读后感吗


--  作者:萤火虫
--  发布时间:5/17/2005 9:34:00 PM

--  
请问各位,用XML做异构数据库的组件,需要注意什么?谢谢
W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
5,546.875ms