曝光臺(tái) 注意防騙
網(wǎng)曝天貓店富美金盛家居專營(yíng)店坑蒙拐騙欺詐消費(fèi)者
內(nèi)。然而,后一種方式并不區(qū)分是哪一級(jí)別的標(biāo)記,所以如果叫< Ti t l e >元素出現(xiàn)在我們的不同
文檔中,它們將被找到。所以它們不能像我們?cè)诤竺嬉f(shuō)到的X P a t h一樣復(fù)雜。
第10章XML和數(shù)據(jù)庫(kù)使用365 下載
圖10-4
然而,一個(gè)非常有力的特點(diǎn)是重用內(nèi)容的能力。一個(gè)組件可以從其他的地方引用,但是只
需要維護(hù)一次。組件的方式仿佛確實(shí)是在它所引用的位置上(參見(jiàn)圖1 0 - 5)。
圖10-5
像其他的一些產(chǎn)品一樣, C M S具有組件登錄( c h e c k - i n)和注銷( c h e c k - o u t),版本控制和
樣式轉(zhuǎn)換等功能。更多的信息請(qǐng)?jiān)L問(wèn)h t t p : / / w w w. p o e t . c o m /。
(8) 小結(jié)
O O數(shù)據(jù)庫(kù)的本地能力使它們成為操縱X M L文檔的最有可能的后選對(duì)象。獨(dú)立操縱節(jié)點(diǎn)的能
366使用XML 高級(jí)編程
下載
力—是否加鎖、安全或版本控制—給了它們滿足前面所提到的高級(jí)需求的潛力。這里提出
的兩個(gè)應(yīng)用程序的每一個(gè)都提供一個(gè)可靠的基礎(chǔ),用在一個(gè)基于需要先進(jìn)的存儲(chǔ)和獲取處理的
X M L的項(xiàng)目中。
如果每件事都很好,你可能會(huì)問(wèn)自己收獲是什么。在許多方面,文化比技術(shù)更重要。O O數(shù)
據(jù)庫(kù)軟件安裝的庫(kù)只是關(guān)系數(shù)據(jù)庫(kù)的一小部分,這一點(diǎn)似乎也不會(huì)很快發(fā)生改變。當(dāng)然像這里
所介紹的產(chǎn)品可能會(huì)取得一些進(jìn)展,原因就是它們可以很好地管理X M L,但是用O O技術(shù)的產(chǎn)品
很少。
這不是說(shuō)不存在技術(shù)問(wèn)題。聽(tīng)上去很明顯,但O O數(shù)據(jù)庫(kù)比對(duì)象數(shù)據(jù)更好。在模擬其他類型
的結(jié)構(gòu)時(shí),它們不像關(guān)系數(shù)據(jù)庫(kù)一樣有效,然而在分級(jí)的情況下是非常快的—比方說(shuō)幾個(gè)對(duì)
象,每一個(gè)都包含幾萬(wàn)個(gè)其他的對(duì)象。
所以,盡管我們找到了一個(gè)用O O數(shù)據(jù)庫(kù)的很好的解決方案,但必需繼續(xù)探索,因?yàn)榇蟛糠?br />
你要處理的是關(guān)系型存儲(chǔ)介質(zhì)。
2. 關(guān)系數(shù)據(jù)庫(kù)
關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)—或R D B M S—使用熟悉的行和列的方法來(lái)存儲(chǔ)數(shù)據(jù)(參見(jiàn)圖1 0 - 6)。
圖10-6
這個(gè)模式顯示了一張表,它將包含作者。每一個(gè)作者用一行表示,一個(gè)作者的每個(gè)屬性用
一列表示。
拋開(kāi)O O數(shù)據(jù)庫(kù)的眾多優(yōu)勢(shì),到目前為止R D B M S仍然是最流行的,因?yàn)樗鼈兛梢员硎咎?br />
的現(xiàn)實(shí)世界的問(wèn)題,并且對(duì)很多這樣的問(wèn)題給出更快的響應(yīng)時(shí)間。例如,貨物訂單。這些例子
都非常適用于這個(gè)模型,作為一個(gè)二維數(shù)組的集合,像聯(lián)系管理系統(tǒng),股票控制軟件包,等等
(參見(jiàn)圖1 0 - 7)。
圖10-7
第10章XML和數(shù)據(jù)庫(kù)使用367 下載
基本的關(guān)系數(shù)據(jù)庫(kù)概念是:
• 表
• 查詢
• 連接
下面的幾個(gè)部分介紹了這些概念,如果你對(duì)使用關(guān)系數(shù)據(jù)庫(kù)很有經(jīng)驗(yàn),可以忽略這些概念。
在學(xué)習(xí)過(guò)這些基礎(chǔ)知識(shí)后,將看一下如何用關(guān)系數(shù)據(jù)庫(kù)來(lái)模擬節(jié)點(diǎn)的分級(jí),然后是如何自動(dòng)完
成某些轉(zhuǎn)換。你將需要熟悉這些概念,并了解這個(gè)模擬是如何做的。
(1) 表
一個(gè)簡(jiǎn)單的用來(lái)存儲(chǔ)作者的書(shū)目的數(shù)據(jù)表可能包含如表1 0 - 1所示的內(nèi)容:
表1 0 - 1
作者城市編號(hào)名M I 姓簡(jiǎn)歷
1 S t e p h e n M o h r S t e p h e n高中起即開(kāi)始編程,現(xiàn)在是Omicron Consulting的資
深軟件系統(tǒng)工程師。他使用C + +、J a v a、J a v a S c r i p t、C O M和各
種互聯(lián)標(biāo)準(zhǔn)和協(xié)議設(shè)計(jì)和開(kāi)發(fā)系統(tǒng)
2 K a t h i e K i n g s l e y K a t h i e是K i n g s l e y - H u g h e s開(kāi)發(fā)公司的M D,這是一家專注于
H u g h e s We b開(kāi)發(fā)和可視化編程語(yǔ)言的培訓(xùn)和咨詢公司
3 F r a n k B o u m p h r e y Frank Boumphrey現(xiàn)在在Cormorant Consulting供職,這是一
家專門(mén)為醫(yī)藥和法律文檔提供服務(wù)的公司。它主要負(fù)責(zé)將X M L
應(yīng)用在We b文檔中
在表中每一個(gè)作者有著他們自己的入口或行。每一行是由許多字段組成的,對(duì)每一個(gè)作者
是通用的,例如,每個(gè)作者都有一個(gè)姓的字段和名的字段。即使一個(gè)特別的字段為空,像每一
個(gè)作者的M I字段,但在每一行中仍然會(huì)存在。
表頭對(duì)應(yīng)于表定義中的列。這些可以被定義如下形式(參見(jiàn)表1 0 - 2):
表1 0 - 2
列名數(shù)據(jù)類型是否允許空值
A u t h o r C i t e I D I n t e g e r 否
F i r s t N a m e S t r i n g 是
M I S t r i n g 是
L a s t N a m e S t r i n g 否
B i o g r a p h y S t r i n g 是
用這個(gè)定義,我們已經(jīng)指明了要存儲(chǔ)的每個(gè)作者的屬性,并且指出哪些字段必須存在,哪
些是可選的。因?yàn)楹苌儆凶髡邲](méi)有一個(gè)唯一的I D和姓,我們已經(jīng)制訂了一條記錄的最小需求。
在決定了如何在表中存儲(chǔ)數(shù)據(jù)之后,我們需要一種機(jī)制來(lái)取出它。
(2) 查詢
處理存儲(chǔ)在關(guān)系數(shù)據(jù)庫(kù)中數(shù)據(jù)的通用辦法是使用結(jié)構(gòu)化查詢語(yǔ)言或S Q L。盡管在這幾年中對(duì)
于S Q L中的可用的特性有了改進(jìn)和增強(qiáng),它的核心仍是S E L E C T語(yǔ)句。使用這個(gè)語(yǔ)句,請(qǐng)求
R D B M S服務(wù)器返回給我們所有在數(shù)據(jù)庫(kù)中的作者的請(qǐng)求應(yīng)該是如下形式:
368使用XML 高級(jí)編程
下載
對(duì)那些新手來(lái)說(shuō)的一個(gè)常見(jiàn)的錯(cuò)誤是將星號(hào)讀成“請(qǐng)檢索所有的記錄”。這個(gè)理解是
將星號(hào)的作用等同于在目錄中查找文件時(shí)*的作用,但是在S Q L中,它的意思是“請(qǐng)檢索
所有的列”。
在前面我們定義的作者表的例子中,將意味著返回五列數(shù)據(jù)。一個(gè)只取出指定列的查詢,
應(yīng)該是這樣:
一個(gè)S E L E C T語(yǔ)句的結(jié)果形成一個(gè)結(jié)果集—一
個(gè)查詢結(jié)果的列表,可以被單步遍歷,取出每一行的
數(shù)據(jù)—在這個(gè)例子中將包含如下的結(jié)果(參見(jiàn)表
1 0 - 3):
如你所見(jiàn),即使沒(méi)有星號(hào)我們也從數(shù)據(jù)庫(kù)中取回
了所有行,因?yàn)檫@是S E L E C T的缺省行為。一個(gè)限制
返回記錄的方法是使用一個(gè)W H E R E子句。例如,如果我們需要Stephen Mohr的傳記,我們應(yīng)該
書(shū)寫(xiě)下面的查詢:
在這個(gè)例子中,我們要求數(shù)據(jù)庫(kù)返回字段L a s t N a m e被設(shè)成M o h r的所有記錄,然后只返回給
我們B i o g r a p h i c a l字段。你可能希望W H E R E子句非常豐富,下面舉出的例子將返回K a t h i e和
中國(guó)航空網(wǎng) m.k6050.com
航空翻譯 www.aviation.cn
本文鏈接地址:
XML高級(jí)編程上(121)