MicrosoftAccess是一種關(guān)系型數(shù)據(jù)庫(kù)開(kāi)發(fā)系統(tǒng)。Access 數(shù)據(jù)存儲(chǔ)在相關(guān)的表中,一個(gè)表中的數(shù)據(jù)(例如客戶(hù)〉與另一個(gè)表中的數(shù)據(jù)(例如定單〉是相關(guān)的。Access 維護(hù)了相關(guān)表之間的關(guān)系,然后提取客戶(hù)和該客戶(hù)的所有定單變得更容易,同時(shí)不會(huì)導(dǎo)致數(shù)據(jù)丟失或者提取他人的定單記錄。
1.2.1 使用多個(gè)表,
多個(gè)表可以通過(guò)減少冗余數(shù)據(jù)的輸入量來(lái)簡(jiǎn)化數(shù)據(jù)項(xiàng)和報(bào)表。例如,通過(guò)為一個(gè)需要使用客戶(hù)信息的應(yīng)用程序定義兩個(gè)表,就不需要在客戶(hù)每次購(gòu)買(mǎi)商品時(shí)存儲(chǔ)該客戶(hù)的名稱(chēng)和地址。
創(chuàng)建完表之后,需要讓它們關(guān)聯(lián)起來(lái)。例如,如果創(chuàng)建了一個(gè)Contacts 表和一個(gè)Sales 表,則必須建立Contacts 表和Sales 表之間的聯(lián)系以便于查看一個(gè)聯(lián)系人的所有銷(xiāo)售記錄。如果只有一個(gè)表,就必須重復(fù)查看每個(gè)銷(xiāo)售記錄對(duì)應(yīng)的聯(lián)系人姓名和地址。使用兩個(gè)表就可以使用關(guān)系字段Contact ID C 在Contacts 中)和Buyer ID C 在Sales 中)來(lái)查看Contacts 表中每次銷(xiāo)售的對(duì)應(yīng)信息。例如,客戶(hù)改變地址時(shí),只是在Contact 表中的一個(gè)記錄中變更了地址; Sales 信息顯示在屏幕上時(shí),始終可以看到正確的聯(lián)系人地址。
由于特定類(lèi)型的所有記錄都在同一表內(nèi),所以將數(shù)據(jù)分離到數(shù)據(jù)庫(kù)中的多個(gè)表內(nèi)可以便系統(tǒng)變得更易于維護(hù)?;ㄐr(shí)間將數(shù)據(jù)正確放入多個(gè)表內(nèi),可以大幅縮短設(shè)計(jì)和工作時(shí)間。這一過(guò)程稱(chēng)為卻/iJIt C 可以在第2 章了解規(guī)范化)。
在本章后面的"5 步驟設(shè)計(jì)方法"小節(jié)中,將有機(jī)會(huì)了解Access Auto Auctions 案例研究,該案例包含了5 個(gè)表。
1.2.2 了解創(chuàng)建多個(gè)表的原因
創(chuàng)建多個(gè)表總會(huì)使數(shù)據(jù)庫(kù)的初級(jí)用戶(hù)望而卻步。通常,他們希望創(chuàng)建一個(gè)包含全部所需信息的巨型表,在這個(gè)例子中,可以構(gòu)建一個(gè)包含所有客戶(hù)銷(xiāo)售情況以及每個(gè)客戶(hù)的出售和購(gòu)買(mǎi)情況的Customer 表。
因此,他們就創(chuàng)建)個(gè)包含有多個(gè)字段的表,其中包含了客戶(hù)信息(聯(lián)系人)、銷(xiāo)售信息字段(銷(xiāo)售日期、銷(xiāo)售人員、支付數(shù)額、折扣等),以及每次銷(xiāo)售的產(chǎn)品信息(銷(xiāo)售量、產(chǎn)品描述、單價(jià)等)。這種表會(huì)迅速增大,包含許多無(wú)法管理的字段,并且隨著新項(xiàng)目的添加而繼續(xù)增大。
可以看到,表設(shè)計(jì)有著自己的生命力。創(chuàng)建完這種單獨(dú)的表后,維護(hù)就會(huì)變得更難。就會(huì)開(kāi)始意識(shí)到必須為客戶(hù)進(jìn)行的每筆銷(xiāo)售輸入客戶(hù)信息(一次次地重復(fù)輸入客戶(hù)信息)。對(duì)于每筆銷(xiāo)售的購(gòu)買(mǎi)項(xiàng)目來(lái)說(shuō)亦是如此,即一筆銷(xiāo)售包含多個(gè)項(xiàng)目(于是需要再次重復(fù)該信息〉。這會(huì)使系統(tǒng)變得低效并且易于出現(xiàn)數(shù)據(jù)輸入錯(cuò)誤。存儲(chǔ)在表中的信息也無(wú)法進(jìn)行有效的維護(hù),因?yàn)樵S多字段可能會(huì)不適合每個(gè)記錄,并且在表的結(jié)束處會(huì)出現(xiàn)大量空字段。
為了確保系統(tǒng)易用并且具有足夠的增長(zhǎng)靈活性,創(chuàng)建多個(gè)包含最少量信息的表就顯得尤為重要。要實(shí)現(xiàn)這-點(diǎn),需要考慮創(chuàng)建多個(gè)表,其中每個(gè)表都包含很多具有多個(gè)字段的記錄,記錄中的信息只與該表的主要目的有關(guān)。這樣,創(chuàng)建表之后,就可以把它們進(jìn)行鏈接,以便從中收集有用信息。盡管這個(gè)過(guò)程昕起來(lái)很復(fù)雜,但實(shí)際的實(shí)現(xiàn)卻相當(dāng)容易。將一個(gè)表的內(nèi)容創(chuàng)建為多個(gè)表的過(guò)程稱(chēng)為卻應(yīng)佐(或者說(shuō)是規(guī)范化表)。
新聞熱點(diǎn)
疑難解答
圖片精選