荔园在线
荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀
[回到开始]
[上一篇][下一篇]
发信人: Sage (魅力四射), 信区: Database
标 题: [转载] 中文翻译(三)(转寄)
发信站: BBS 荔园晨风站 (Tue Sep 12 11:47:52 2000), 转信
【 以下文字转载自 Sage 的信箱 】
【 原文由 Sage 所发表 】
翻译:Batman
XML介绍之三十一:XML和数据库设计原则、展望、工具(三)
by Ronald Bourret
3.0 数据和文档的对比
也许在大多数情况下,判断是否采用数据库的最重要的因素是你使用数据库是用来
保存数据呢
还是保存文件。如果你想保存数据, 你需要的数据库则主要是面向数据存储的,例如一
个关系数
据库或则一个面向对象的数据库,或则也可以是一个在数据库和XML文档之间传递数据的
中间件。
从另一个角度来说,如果你想存储文件,你需要一个专门设计用来存储文件的内容管理
系统。
虽然可以把文件保存在关系数据库或则面向对象的数据库中,但你会发现你的工作
经常是在
重复实现一个内容管理系统中的功能而已。简单说,虽然一个内容管理系统通常是建立
在一个
面向对象数据库或则关系数据库的顶层,但是如果只是把一个内容管理系统当做数据库
来使用
被证明是失败的。
你是否需要存储数据或则文件经常取决与你的XML文件。原因是XML文件分为两类:
数据为主
和文档为主。
3.1 数据为主的文件
数据为主的文件表现出来的特点是结构相当规范,数据格式良好(就是说,数据中
最小的
独立单元是PCDATA-only元素级别或则是一个属性),和一些或则没有混合内容。其中同
类型元素
和PCDATA的出现顺序并不重要。例如XML文件内容是销售单、飞行计划、餐馆菜单等等。
数据为主的文件经常被用来设计机器消费,这时XML的调用是多余的---它仅仅是一种数
据传输。
例如,下面的销售单就是一个数据为主的文档:
<Orders>
<SalesOrder SONumber="12345">
<Customer CustNumber="543">
<CustName>ABC Industries</CustName>
<Street>123 Main St.</Street>
<City>Chicago</City>
<State>IL</State>
<PostCode>60609</PostCode>
</Customer>
<OrderDate>981215</OrderDate>
<Line LineNumber="1">
<Part PartNumber="123">
<Description>
<p><b>Turkey wrench:</b><br />
Stainless steel, one-piece construction,
lifetime guarantee.</p>
</Description>
<Price>9.95</Price>
</Part>
<Quantity>10</Quantity>
</Line>
<Line LineNumber="2">
<Part PartNumber="456">
<Description>
<p><b>Stuffing separator:<b><br />
Aluminum, one-year guarantee.</p>
</Description>
<Price>13.27</Price>
</Part>
<Quantity>5</Quantity>
</Line>
</SalesOrder>
</Orders>
注意在XML世界中,许多(其实应该是大量)的文件实际上都是数据为主的。例如,
考虑
在Amazon.com网站上显示一本书的各种信息的页面,虽然这个页面是一个相当巨大的文
本,但是
这个文本的结构是高度规范的,所有页面都包含有介绍书的共同点,并且每一页中文本
的大小是
受限制的。也就是说,它可以从一个简单的、数据为主的XML文档 + 包含有每一页信息
的数据库
+ XSL样板文件 就能够实现这个网站的结构了。通常,目前任何一个动态建立HTML的网
站
都可以被上面介绍的这种结构来实现的。
下面是一个很简单的例子:
<Lease>
<Lessee>ABC Industries</Lessee> agrees to lease the property at
<Address>123 Main St., Chicago, IL</Address> from <Lessor>XYZ
Properties</Lessor> for a term of not less than <LeaseTerm
TimeUnit="Months">18</LeaseTerm> at a cost of <Price
Currency="USD" TimeUnit="Months">1000</Price>.
</Lease>
它是使用下面的这个XML文档和一个简单的样板文件实现的:
<Lease>
<Lessee>ABC Industries</Lessee>
<Address>123 Main St., Chicago, IL</Address>
<Lessor>XYZ Properties</Lessor>
<LeaseTerm TimeUnit="Months">18</LeaseTerm>
<Price Currency="USD" TimeUnit="Months">1000</Price>
</Lease>
3.2 以文档为主的文件
以文档为主的文件表现出来的特点是:不规范的结构,大量的原始数据(就是说,
最小的独立
数据单元是包含有混合内容的元素级或则本身就是一个文档),和大量混合内容。其中
同类型元素
和PCDATA出现顺序是非常重要的。例如一本书,一封电子邮件,广告,以及几乎所有的
XHTML文档。
以文档为主的文件通常是用来设计人文消费:
例如,下面的产品描述就是一个以文档为主的文件:
<Product>
<Name>Turkey Wrench</Name>
<Developer>Full Fabrication Labs, Inc.</Developer>
<Summary>Like a monkey wrench, but not as big.</Summary>
<Description>
<Para>The turkey wrench, which comes in both right- and
left-handed versions (skyhook optional), is made of the finest
stainless steel. The Readi-grip rubberized handle quickly adapts
to your hands, even in the greasiest situations. Adjustment is
possible through a variety of custom dials.</Para>
<Para>You can:</Para>
<List>
<Item><Link URL="Order.html">Order your own turkey wrench</Link></Item>
<Item><Link URL="Wrenches.htm">Read more about wrenches</Link></Item>
<Item><Link URL="catalog.zip">Download the catalog</Link></Item>
</List>
<Para>The turkey wrench costs just $19.99 and, if you
order now, comes with a hand-crafted shrimp hammer as a
bonus gift.</Para>
</Description>
3.3 数据(Data)、文件(Documents)和数据库(Databases)
事实上,数据为主的文件和文档为主的文见之间的区别并不是很清晰。例如,虽然
一个数据
为主的文件(例如一张发票),也有可能包含大量的不规范结构的数据,例如发票的描
述部分。
而一个以文档为主的文件(例如用户手册),也可能包含有规范的数据结构(通常是元数
据
metadata),例如作者名和再版日期。除了这些,你用来判断是否是两者中其一的另外
一个重要特点是你是对数据还是对文档感兴趣,这也将决定你要采用什么样的系统。
要存储和获取数据,你可以使用一个数据库(通常是关系数据库,面向对象数据库
或则
树状体系数据库)和中间件,或则你也可以使用XML服务器(你可以把它看成是将数据库
和
中间件捆绑在一起)。要保存文档,你将需要一个内容管理系统。有关各种系统的探讨
在第
4.0小节中, "存储和获取数据"和第5.0小节 "存储和获取文档".你能够在第6.0小节找到
一些
可使用的软件列表"可利用的软件"。
--
※ 来源:·BBS 水木清华站 smth.org·[FROM: 202.112.137.7]
※ 修改:·Sage 於 Sep 12 11:45:52 修改本文·[FROM: 192.168.18.238]
--
※ 转载:·BBS 荔园晨风站 bbs.szu.edu.cn·[FROM: 192.168.18.238]
[回到开始]
[上一篇][下一篇]
荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店