曝光臺(tái) 注意防騙
網(wǎng)曝天貓店富美金盛家居專(zhuān)營(yíng)店坑蒙拐騙欺詐消費(fèi)者
S t e p h e n兩個(gè)人的傳記。
(3) 連接
之所以稱(chēng)為關(guān)系數(shù)據(jù)庫(kù)是因?yàn)樗鼈兛梢蕴幚黻P(guān)系。連接的主要目的是在一個(gè)數(shù)據(jù)中建立表
之間的關(guān)系。盡管也可能把數(shù)據(jù)存儲(chǔ)在一個(gè)巨大的表中,沒(méi)有連接,它將很快在資源使用及響
應(yīng)時(shí)間上變得低效。例如,沒(méi)有人阻止我們創(chuàng)建像這樣的系統(tǒng)(參見(jiàn)表1 0 - 4):
表1 0 - 4
F i r s t N a m e L a s t N a m e B i o g r a p h i c a l Ti t l e I S B N
S t e p h e n M o h r ⋯⋯ XML Application 1 - 8 6 1 0 0 1 - 5 2 - 5
S t e p h e n M o h r ⋯⋯ Designing Distributed 1 - 8 6 1 0 0 2 - 2 7 - 0
Applications with
X M L,A S P,I E 5,L D A P
And MSMQ
K a t h i e K i n g s l e y ⋯⋯ XML Application 1 - 8 6 1 0 0 1 - 5 2 - 5
H u g h e s
F r a n k B o u m p h r e y ⋯⋯ Professional Style Sheets 1 - 8 6 1 0 0 1 - 6 5 - 7
For HTML and XML
F r a n k B o u m p h r e y ⋯⋯ XML Application 1 - 8 6 1 0 0 1 - 5 2 - 5
然而,很明顯,不需要重復(fù)每一個(gè)作者的名字和傳記的細(xì)節(jié)在每一本他們寫(xiě)的書(shū)上,同樣
第10章XML和數(shù)據(jù)庫(kù)使用369 下載
表1 0 - 3
名姓
S t e p h e n M o h r
K a t h i e K i n g s l e y - H u g h e s
F r a n k B o u m p h r e y
也沒(méi)有地方顯示參與每本書(shū)寫(xiě)作的每個(gè)作者的名字。不僅僅是因?yàn)榈托,也是因(yàn)殡y于維護(hù),
當(dāng)一個(gè)作者的信息改變時(shí)就需要將它拷貝到每一個(gè)出現(xiàn)的地方。
為了實(shí)現(xiàn)在書(shū)與作者之間更高效的關(guān)系,我們需要建立多對(duì)多的關(guān)系。這就要求一個(gè)特別
的技術(shù),稍后將進(jìn)行介紹。在介紹之前,先看一下一對(duì)一和一對(duì)多的關(guān)系應(yīng)如何建立。
(4) 一對(duì)一和一對(duì)多連接
你可能還記得我們的書(shū)的目錄,一本書(shū)可以包括一個(gè)價(jià)格,每個(gè)價(jià)格可以有一個(gè)貨幣符號(hào):
程序清單1 0 - 8
如果我們采用剛才提到的方法—將所有的數(shù)據(jù)都放在一張表中—那樣它將像表1 0 - 5所示
存在數(shù)據(jù)庫(kù)中:
表1 0 - 5
Ti t l e I S B N C u r r e n c y P r i c e
XML Application 1 - 8 6 1 0 0 1 - 5 2 - 5 U S D 4 9 . 9 9
Designing Distributed Application 1 - 8 6 1 0 0 2 - 2 7 - 0 U S D 4 9 . 9 9
With XML, ASP, IE5, LDAP and MSMQ
Professional Style Sheets for HTML And XML 1 - 8 6 1 0 0 1 - 6 5 - 7 G B F 4 5 . 9 9
然而,模式可能會(huì)認(rèn)為只有三種貨幣符號(hào)是可用的,每一個(gè)價(jià)格(指書(shū))只能使用一種貨
幣符號(hào),盡管并不反對(duì)每個(gè)貨幣符號(hào)被使用多次。所以我們可以在書(shū)的實(shí)體與一個(gè)新的實(shí)體,
貨幣符號(hào),之間建立一種一對(duì)多的關(guān)系。合理化數(shù)據(jù)的過(guò)程叫做標(biāo)準(zhǔn)化,將在下面更詳細(xì)地討
論。將貨幣符號(hào)分離到另一個(gè)表中會(huì)給我們帶來(lái)幾個(gè)好處:
• 可以存儲(chǔ)貨幣符號(hào)的附加信息,像用在下拉框和報(bào)告中的貨幣符號(hào)名稱(chēng),也可能是一個(gè)匯
率。
• 我們可以保證在列表中只有一個(gè)符號(hào)被輸入到書(shū)的表中。
我們通過(guò)增加一個(gè)貨幣符號(hào)的新表來(lái)實(shí)現(xiàn)它(參見(jiàn)表1 0 - 6):
表1 0 - 6
貨幣編號(hào)縮寫(xiě)
1 U S D 美元
2 G B F 英鎊
3 C D 加拿大元
C u r r e n c y I D列是表的主鍵。用于確定表中的每一行都是唯一的,也用來(lái)記錄在其他表中的地
址的方法。盡管在這個(gè)例子中我們可以使用S h o r t N a m e作為主鍵,但是有一個(gè)普遍的經(jīng)驗(yàn)就是使
用數(shù)字來(lái)連接表,因?yàn)樗鼈兪菈嚎s的,并且可以比較得很快。
370使用XML 高級(jí)編程
下載
在建立起我們的貨幣符號(hào)表之后,修改書(shū)的表以便從貨幣符號(hào)表中指出它的貨幣符號(hào)(參
見(jiàn)表1 0 - 7):
表1 0 - 7
Ti t l e I S B N C u r r e n c y I D P r i c e
XML Application 1 - 8 6 1 0 0 1 - 5 2 - 5 1 4 9 . 9 9
Designing Distributed Application 1 - 8 6 1 0 0 2 - 2 7 - 0 1 4 9 . 9 9
With XML, ASP, IE5, LDAP and MSMQ
Professional Style Sheets for HTML And XML 1 - 8 6 1 0 0 1 - 6 5 - 7 2 4 5 . 9 9
這里我們看到通過(guò)使用主鍵的值建立了一個(gè)引用。因?yàn)镃 u r r e n c y I D在書(shū)表中看上去不像在貨
幣符號(hào)表中是主鍵,我們說(shuō)它是一個(gè)外鍵。在某些數(shù)據(jù)庫(kù)系統(tǒng),可能會(huì)加強(qiáng)這種主鍵與外鍵的
關(guān)系,例如,我們不能把數(shù)字10 000放到字段中,因?yàn)樵谪泿欧?hào)表中不存在相應(yīng)的記錄。設(shè)置
一個(gè)列具有一個(gè)外鍵的屬性是用來(lái)保證數(shù)據(jù)一致性的重要方法。
現(xiàn)在來(lái)通過(guò)在W H E R E子句里使用變量生成書(shū)和它們的貨幣符號(hào)的記錄集:
像前面一樣,我們想取出的列被列在S E L E C T和F R O M之間,但是這一次我們要求兩個(gè)不同
的表中的數(shù)據(jù),書(shū)的表和貨幣符號(hào)表。然而,為了讓每一行有意義我們要求書(shū)表中的每一行都
要與貨幣符號(hào)表中的每一行相匹配。但是我們不是想要隨便的一行,而是想要與在書(shū)表中的貨
幣符號(hào)數(shù)字相同的行。實(shí)際上,在書(shū)表中的C u r r e n c y I D列執(zhí)行了一個(gè)查找,在貨幣符號(hào)表中獲
得它所需要的細(xì)節(jié)。結(jié)果集看上去將同表1 0 - 8所示。
表1 0 - 8
Ti t l e S h o r t N a m e P r i c e
XML Application U S D 4 9 . 9 9
Designing Distributed Application U S D 4 9 . 9 9
With XML, ASP, IE5, LDAP and MSMQ
Professional Style Sheets for HTML And XML G B P 4 5 . 9 9
這時(shí),盡管已經(jīng)將我們的數(shù)據(jù)分割成不同的表,但可能在任何時(shí)候通過(guò)連接重新得到它,
就好像是一個(gè)表。
這個(gè)貨幣符號(hào)的例子模擬了一對(duì)多的關(guān)系—一個(gè)貨幣符號(hào)與多本書(shū)有關(guān)—但是同樣的
技術(shù)也可用來(lái)模擬一對(duì)一關(guān)系。例如,我們可能在一張表中保存價(jià)格和貨幣符號(hào),并且從一本
書(shū)中指出全部的價(jià)格。一本書(shū)應(yīng)該只有一個(gè)價(jià)格。
(5) 多對(duì)多的連接
剛剛描述的方法,是在一個(gè)表中的一列中設(shè)置了對(duì)另一個(gè)表的一列的引用,對(duì)于一對(duì)一或
中國(guó)航空網(wǎng) m.k6050.com
航空翻譯 www.aviation.cn
本文鏈接地址:
XML高級(jí)編程上(122)