首先,你必須遵守的sql server標(biāo)準(zhǔn)化規(guī)則
1.什么是標(biāo)準(zhǔn)化?
標(biāo)準(zhǔn)化就是涉及數(shù)據(jù)模型,以便有效地在數(shù)據(jù)庫(kù)中存儲(chǔ)數(shù)據(jù)。最終結(jié)果就是消除了冗余數(shù)據(jù),只有與屬性相關(guān)的數(shù)據(jù)被存儲(chǔ)在表中。
例如,我們要為客戶在同一個(gè)表中存儲(chǔ)城市、州和郵政編碼數(shù)據(jù),其他客戶也有同樣的數(shù)據(jù)。通過(guò)這種方式,我們就會(huì)為在同一個(gè)城市的所有客戶重復(fù)輸入相同的城市、州,以及郵政編碼數(shù)據(jù)。為了不一次又一次地存儲(chǔ)同樣的數(shù)據(jù),我們應(yīng)該將數(shù)據(jù)標(biāo)準(zhǔn)化,然后創(chuàng)建一個(gè)名為city的相關(guān)表。city這個(gè)表用來(lái)存儲(chǔ)城市、州、郵政編碼,以及id號(hào),這個(gè)id號(hào)與客戶表中的id號(hào)相關(guān),這樣我們就可以刪除客戶表中的三個(gè)列,然后只添加一個(gè)新的id列。
標(biāo)準(zhǔn)化規(guī)則分解為幾種形式。當(dāng)談?wù)摰綌?shù)據(jù)庫(kù)設(shè)計(jì)的時(shí)候,人們經(jīng)常傾向于使用第三范式(3nf)。這是大多數(shù)數(shù)據(jù)庫(kù)設(shè)計(jì)人員想要得到的:在概念階段,數(shù)據(jù)是分段的,并且盡可能的標(biāo)準(zhǔn)化,但是為了實(shí)用的目的,這些分段在數(shù)據(jù)模型的修改中發(fā)生變化。可以在數(shù)據(jù)模型的不同部分引入各種范式來(lái)處理你可能面對(duì)的獨(dú)特的情況。
無(wú)論你是否聽(tīng)說(shuō)過(guò)標(biāo)準(zhǔn)化,你的數(shù)據(jù)庫(kù)都會(huì)遵循一些規(guī)則,除非你所有的數(shù)據(jù)都是存儲(chǔ)在一個(gè)龐大的表中。下面我們看一下三個(gè)范式中的第一范式,以及決定不同范式的規(guī)則。
◆ 第一范式的規(guī)則(1nf)
消除重復(fù)的組。下面這個(gè)表在軟件列中包含了重復(fù)的數(shù)據(jù)組。
computer software
1 word
2 access, word, excel
3 word, excel
為了遵循第一范式,我們?cè)诿總€(gè)記錄中只存儲(chǔ)了一種軟件類型。
computer software
1 word
2 access
2 word
3 excel
3 word
3 excel
◆ 第二范式的規(guī)則
消除第一范式中的冗余數(shù)據(jù)。下面這個(gè)表包含了冗余的軟件名字。
computer software
1 word
2 access
2 word
3 excel
3 word
3 excel
為了消除存儲(chǔ)的冗余數(shù)據(jù),我們創(chuàng)建了兩個(gè)表。第一個(gè)表存儲(chǔ)參考softwareid ,指向新表中惟一的軟件名稱。
computer softwareid
1 1
2 2
2 1
3 3
3 1
3 3
softwareid software
1 word
2 access
3 excel
◆ 第三范式的規(guī)則
消除第一、第二范式中不依賴于鍵值的列。在這個(gè)表中,同時(shí)含有有關(guān)計(jì)算機(jī)和用戶的數(shù)據(jù)。
computer user name user hire date purchased
1 joe 4/1/2000 5/1/2003
2 mike 9/5/2003 6/15/2004
為了消除不依賴于鍵的列,我們創(chuàng)建了以下的表?,F(xiàn)在,存儲(chǔ)在computer表中的數(shù)據(jù)只與計(jì)算機(jī)相關(guān),存儲(chǔ)在user表中的數(shù)據(jù)只與用戶相關(guān)。
computer purchased
1 5/1/2003
2 6/15/2004
user user name user hire date
1 joe 5/1/2003
2 mike 6/15/2004
user user name user hire date
1 joe 5/1/2003
2 mike 6/15/2004
1.什么是標(biāo)準(zhǔn)化?
標(biāo)準(zhǔn)化就是涉及數(shù)據(jù)模型,以便有效地在數(shù)據(jù)庫(kù)中存儲(chǔ)數(shù)據(jù)。最終結(jié)果就是消除了冗余數(shù)據(jù),只有與屬性相關(guān)的數(shù)據(jù)被存儲(chǔ)在表中。
例如,我們要為客戶在同一個(gè)表中存儲(chǔ)城市、州和郵政編碼數(shù)據(jù),其他客戶也有同樣的數(shù)據(jù)。通過(guò)這種方式,我們就會(huì)為在同一個(gè)城市的所有客戶重復(fù)輸入相同的城市、州,以及郵政編碼數(shù)據(jù)。為了不一次又一次地存儲(chǔ)同樣的數(shù)據(jù),我們應(yīng)該將數(shù)據(jù)標(biāo)準(zhǔn)化,然后創(chuàng)建一個(gè)名為city的相關(guān)表。city這個(gè)表用來(lái)存儲(chǔ)城市、州、郵政編碼,以及id號(hào),這個(gè)id號(hào)與客戶表中的id號(hào)相關(guān),這樣我們就可以刪除客戶表中的三個(gè)列,然后只添加一個(gè)新的id列。
標(biāo)準(zhǔn)化規(guī)則分解為幾種形式。當(dāng)談?wù)摰綌?shù)據(jù)庫(kù)設(shè)計(jì)的時(shí)候,人們經(jīng)常傾向于使用第三范式(3nf)。這是大多數(shù)數(shù)據(jù)庫(kù)設(shè)計(jì)人員想要得到的:在概念階段,數(shù)據(jù)是分段的,并且盡可能的標(biāo)準(zhǔn)化,但是為了實(shí)用的目的,這些分段在數(shù)據(jù)模型的修改中發(fā)生變化。可以在數(shù)據(jù)模型的不同部分引入各種范式來(lái)處理你可能面對(duì)的獨(dú)特的情況。
無(wú)論你是否聽(tīng)說(shuō)過(guò)標(biāo)準(zhǔn)化,你的數(shù)據(jù)庫(kù)都會(huì)遵循一些規(guī)則,除非你所有的數(shù)據(jù)都是存儲(chǔ)在一個(gè)龐大的表中。下面我們看一下三個(gè)范式中的第一范式,以及決定不同范式的規(guī)則。
◆ 第一范式的規(guī)則(1nf)
消除重復(fù)的組。下面這個(gè)表在軟件列中包含了重復(fù)的數(shù)據(jù)組。
computer software
1 word
2 access, word, excel
3 word, excel
為了遵循第一范式,我們?cè)诿總€(gè)記錄中只存儲(chǔ)了一種軟件類型。
computer software
1 word
2 access
2 word
3 excel
3 word
3 excel
◆ 第二范式的規(guī)則
消除第一范式中的冗余數(shù)據(jù)。下面這個(gè)表包含了冗余的軟件名字。
computer software
1 word
2 access
2 word
3 excel
3 word
3 excel
為了消除存儲(chǔ)的冗余數(shù)據(jù),我們創(chuàng)建了兩個(gè)表。第一個(gè)表存儲(chǔ)參考softwareid ,指向新表中惟一的軟件名稱。
computer softwareid
1 1
2 2
2 1
3 3
3 1
3 3
softwareid software
1 word
2 access
3 excel
◆ 第三范式的規(guī)則
消除第一、第二范式中不依賴于鍵值的列。在這個(gè)表中,同時(shí)含有有關(guān)計(jì)算機(jī)和用戶的數(shù)據(jù)。
computer user name user hire date purchased
1 joe 4/1/2000 5/1/2003
2 mike 9/5/2003 6/15/2004
為了消除不依賴于鍵的列,我們創(chuàng)建了以下的表?,F(xiàn)在,存儲(chǔ)在computer表中的數(shù)據(jù)只與計(jì)算機(jī)相關(guān),存儲(chǔ)在user表中的數(shù)據(jù)只與用戶相關(guān)。
computer purchased
1 5/1/2003
2 6/15/2004
user user name user hire date
1 joe 5/1/2003
2 mike 6/15/2004
user user name user hire date
1 joe 5/1/2003
2 mike 6/15/2004

