資料庫設計的基本概念

適用對象: Access 2016 Access 2013 Access 2010

適當設計的資料庫為您提供最新版本且正確無誤資訊的存取權。正確的設計是要達成目標使用的資料庫,因為花一些時間才能了解良好的設計的原則意義。最後,您會更容易有符合您需求的資料庫,可輕鬆地變更。

本文提供的規劃桌面資料庫的方針。您將學習如何決定您需要何種資訊、 將該資訊分割成適當的資料表和資料行,以及如何這些表格互相關聯。建立您的第一個桌面資料庫之前,您應該閱讀本文。

重要: Access提供可讓您建立 web 資料庫應用程式的設計體驗。當您設計 web 時,許多設計考量會不同。本文不討論 Web 資料庫應用程式的設計。如需詳細資訊,請參閱建立要在網路上共用資料庫的文件。

若要知道資料庫詞彙

Access組織您成表格的資訊︰ 的列數和欄其形式相似於字鍵台或試算表的清單。在簡單的資料庫中,您可能只有一個資料表。大部分的資料庫的您會需要多個。例如,您可能必須表格儲存客戶的相關資訊產品、 儲存訂單的相關資訊的另一個資料表和另一個資料表的相關資訊。

每個資料列更正確稱為記錄及每個資料行] 欄位。記錄是有意義且一致的方式合併內容的相關資訊。欄位是資訊的單一項目,會出現在每一筆記錄中的項目類型。在 [產品] 資料表中,舉個例說,每一列或記錄會保留一份產品的相關資訊。每個資料行或欄位保留某些類型的該產品,例如其名稱或價格的相關資訊。

什麼是良好的資料庫設計?

某些原則指引資料庫設計程序。第一個準則是重複 (也稱為重複的資料) 的資訊不正確,因為它會浪費空間,並增加的錯誤和不一致的可能性。第二個原則會是正確性和資訊的完整性很重要。如果您的資料庫包含不正確的資訊,擷取資料庫中的資訊任何報表也會包含不正確的資訊。如此一來,然後將 misinformed 任何作您根據這些報表。

良好的資料庫設計,因此,其中一個的︰

會將您的資訊將主旨為基礎的資料表,以減少重複的資料。

提供存取一起視加入資料表中的資訊所需的資訊。

可協助支援,並確保正確性和資訊的完整性。

適合您資料處理和報表的需求。

設計程序

設計程序包含下列步驟︰

確定資料庫的用途   

這可協助您準備其餘的步驟。

尋找及組織所需的資訊   

收集所有您可能會想要記錄的資料庫,例如產品名稱] 和 [訂單編號的資訊類型。

分割成表格的資訊   

將您的資訊項目分成主要項目或主旨的郵件,例如產品或訂單。每個主旨就會變成表格。

將轉換成欄的資訊項目   

決定您要儲存每個資料表中哪些的資訊。每個項目] 欄位中,並且會顯示為資料表中的資料行。例如,員工] 資料表可能會包含欄位,例如 [姓氏] 和 [雇用日期。

指定主索引鍵   

選擇每個資料表的主索引鍵。主索引鍵是用來唯一識別每個資料列的資料行。範例可能產品識別碼] 或 [訂單編號]。

設定資料表關聯   

查看每個資料表,並決定如何一個資料表中的資料與其他資料表中的資料。新增欄位至資料表,或建立新的資料表,釐清視關聯。

改善您的設計   

分析您的設計錯誤。建立表格並新增範例資料的一些記錄。如果您可以取得您要從您的資料表的結果,請參閱。視需要進行調整設計]。

套用正規化規則   

套用資料正規化規則,以查看是否表格的結構正確。視需要進行調整表格。

判斷資料庫的用途

建議的紙張上寫資料庫的用途,其目的您希望如何使用它,與誰會使用它。家用根據企業小型資料庫,比方說,您可能會撰寫簡單等 「 客戶資料庫保持客戶的資訊,來產生郵寄和報表的清單]。如果資料庫更複雜,或使用許多人,請為通常是在公司的設定,目的是段落或多,並且包含時機與方式每位人員會使用該資料庫。概念是設計程序可以參考的也開發的宗旨。讓您著重於您的目標時做出決策這類陳述式可協助。

尋找及組織所需的資訊

若要尋找及組織必要的資訊,從現有的資訊。例如,您會記錄採購單在紙本表單檔案櫃總帳或保留客戶資訊。收集這些文件,並列出每一種所顯示的資訊 (例如,您填寫表單上的每一個方塊)。如果您沒有安裝任何現有的表單,假設是您已設計記錄客戶資訊的表單。您放置在表單上的資訊?您建立何種填滿方塊?找出並清單這些項目。例如,假設您目前將客戶清單索引卡。檢查這些卡片,可能會顯示每個卡片保留客戶姓名、 地址、 縣/市、 狀態、 郵遞區號和電話號碼。這些項目代表表格中的潛在資料行。

當您準備這份清單,不必擔心取得完美第一次。不過,列出傳入注意事項每個項目。如果其他人會使用資料庫,請太要求他們的想法。您可以稍後微調清單。

接下來,請考慮報表或您可能會想要從資料庫產生的郵件的類型。舉個例說,您可能會想要顯示區域,銷售的產品銷售報表或顯示產品庫存庫存摘要報表。您也可以產生套印信件傳送給客戶的宣告銷售事件,或提供進階版。設計您記住報表,並假設其外觀。您將在報表上哪些資訊?列出每個項目。執行相同的動作套印信件及任何其他您將會建立的報表。

提供認為報表和要建立的郵件,可協助您識別您需要在資料庫中的項目。例如,假設您有機會客戶至 (或郵件) 採用定期電子郵件的更新,而您想要列印的清單中選擇的人。若要錄製的資訊,您可以新增 「 傳送電子郵件 」 欄客戶資料表。每位客戶,您可以將該欄位為 [是] 或 [否]。

若要將電子郵件訊息傳送給客戶的需求建議錄製的另一個項目。一旦您知道客戶想要接收電子郵件訊息,您也必須知道您要傳送給他們的電子郵件地址。因此,您需要每位客戶記錄的電子郵件地址。

合理的好建構的每個報表原型或輸出清單,請考慮哪些項目必須以產生報表。舉例來說,當您檢查套印信件,幾個項目可能會種。如果您想要包含適當的問候語,例如啟動問候語的 「 」、 「 mrs 」 或 「 毫秒 」 字串,則必須以建立問候語項目。此外,您通常是可能會開始以字母"親愛先生 Smith",而非 「 親愛。先生 Sylvester Smith"。這表示通常要儲存之姓氏名字從另一個。

請記住,是,您應該中斷每一種資訊到其最小的實用部分。若是名稱,若要使用的最後一個名稱容易,您將會中斷名稱分為兩個部分,名字和姓氏。若要依姓氏排序報表,例如,有助於必須分別儲存客戶的姓氏。一般而言,如果您想要排序、 搜尋、 計算,或報表基礎的資訊項目,您應該將該項目放在自己的欄位。

思考您可能會想資料庫回答問題。舉個例說,您的主要產品多少銷售並未您關閉上個月?最佳客戶在哪裡?暢銷產品的供應商是誰?預期這些問題可協助您零中記錄其他項目。

之後收集這項資訊,準備好執行下一個步驟。

分割成表格的資訊

若要分割成表格的資訊時,選擇主要項目或主旨。例如之後尋找及組織產品銷售資料庫的資訊,, 初步的清單可能看起來像這樣︰

此處所示的主要實體是產品、 供應商、 客戶和訂單]。因此,合理的開始下列四個表格︰ 事實產品的相關的其中一個,一個有關供應商、 客戶有關一個,一個用於有關訂單。雖然這不完整清單,是絕佳起點。若要調整這份清單,直到您有很適合的設計,可以繼續。

當您第一次檢閱的項目初步的清單時,您可能會想要將欄位放置全部在單一資料表,而不是在上圖中顯示的四個項目。您將學習以下就是理想的原因。請考慮一下,此處顯示的表格︰

在此案例中,每個資料列包含產品、 產品的供應商的相關資訊。您可以有許多相同的供應商的產品,因為供應商的姓名和地址資訊有要重複的次數。這會浪費磁碟空間。錄製供應商資訊一次在不同的供應商資料表,然後連結至 [產品] 資料表中的 [表格,請比較好的解決方案。

當您需要修改供應商的相關資訊,此設計的第二個問題會出現。例如,假設您需要變更 [供應商的地址。因為它會出現在許多地方,可能不小心變更在同一個位置的地址,但若要變更其在其他忘了。只有一個位置錄製供應商的地址解決問題。

當您設計資料庫時,一律嘗試錄製每項事實只一次。如果您發現自己重複相同的資訊中多個位置,例如 [地址特定供應商,將該資訊在不同的資料表。

最後,假設只有一個 Coho Winery 所提供的產品,並想要刪除的產品,但保留供應商的姓名和地址資訊。如何要刪除的產品記錄不也會遺失供應商的資訊?您無法。因為每一筆記錄中包含有關產品,以及有關供應商,您無法刪除但不刪除另一個。要分開以下幾點,您必須將一個資料表分割成兩個︰ 一個資料表產品的詳細資訊,以及另一個資料表的供應商的資訊。刪除產品記錄應刪除只有關產品,不需供應商的事項。

一旦您選擇主旨的表格,表格中的資料行應該儲存事實只需主旨。例如,產品] 資料表應該儲存事實只產品的相關。供應商地址是關於供應商,並且不產品的相關事項,因為其所屬供應商資料表中。

將資訊項目轉換成欄

若要判斷表格中的資料行,決定您必須追蹤主題相關的資訊記錄的資料表中。例如,[客戶] 資料表的名稱、 地址,City-State-Zip,傳送電子郵件、 問候語和電子郵件地址組成的資料行的建議開始清單。在資料表中的每一筆記錄包含相同的資料行,因此您可以儲存名稱、 地址,City-State-Zip,傳送電子郵件],問候語及電子郵件地址每一筆記錄的資訊。例如,[位址] 欄位包含客戶的地址。每一筆記錄包含一位客戶,相關資料和地址] 欄位包含的地址的客戶。

一旦您決定一組初始每個資料表的資料行,您可以進一步精簡資料行。例如,這麼做為兩個不同的欄中儲存客戶名稱︰ 名字和姓氏,好讓您可以排序,搜尋及編製索引只這些資料行。同樣地,地址實際包含五個不同的元件、 地址、 縣/市、 狀態、 郵遞區號,以及國家/地區,以及也這麼做,將它們儲存不同的欄。如果您想要執行的搜尋、 篩選或排序作業的狀態,例如,您需要不同的欄位中儲存的狀態資訊。

您也必須考量資料庫是否會保留,也是唯一的或國際國內原點的資訊。比方說,如果您打算儲存國際地址,這是更有地區資料欄位,而不是狀態,因為這類欄可以容納國內狀態和其他國家/地區的區域。同樣地,郵遞區號更有意義的郵遞區號比如果您要儲存國際地址。

下列清單會顯示一些秘訣可以決定您的資料行。

不包含導出的資料   

在大部分情況下,您應該不儲存資料表中的計算結果。不過,您可以讓 Access 執行計算,當您想要查看結果。例如,假設訂購的產品資料庫中的每個類別顯示單位的小計的訂購產品報表。不過,在任何資料表中沒有訂購量的小計資料行。不過,[產品] 資料表包含每個產品的訂單儲存單位的訂購量欄。Access 計算小計使用該資料,每次列印報表。不應在表格中儲存的小計本身。

將資訊儲存在其最小邏輯組件   

您可能會想要有一個欄位的完整名稱,或產品描述以及產品名稱的項目。如果您合併多個欄位中的資訊類型,很難稍後聽取個別事實。請試著劃分邏輯的組件; 將資訊例如,建立第一個和最後一個名稱,或產品名稱]、 [類別] 和 [描述的不同欄位。

一旦您有精簡每個資料表中的資料行,您準備好選擇每個資料表的主索引鍵。

指定主索引鍵

每個資料表應該包含一個或一組資料行的唯一識別資料表中所儲存的每個資料列。這通常是唯一識別碼,例如員工識別碼] 或 [序列值。在資料庫的術語,這項資訊稱為主索引鍵的資料表。Access 會使用快速關聯從多個資料表的資料,並將資料一起為您的主索引鍵欄位。

如果您已經有的唯一的表格,例如 [產品編號,可唯一識別每個產品類別目錄,您可以使用該識別碼為資料表的主索引鍵,但只有當此欄中的值一律為不同的每一筆記錄。主索引鍵,您不能有重複的值。例如,不要使用人員的姓名為主索引鍵,因為不是唯一的名稱。在相同的資料表,輕鬆地就會有兩人使用相同的名稱。

主索引鍵必須永遠具有的值。如果資料行的值可能會變得指派] 或 [未知 (缺少值) 有些時候,不能作為主索引鍵的元件。

您應該一律選擇其值不會變更主索引鍵。在資料庫中使用多個資料表,資料表的主索引鍵可在其他資料表的參考。變更主索引鍵,變更必須也會套用地方參照索引鍵。使用主索引鍵不會變更減少主索引鍵,可能會與其他資料表的參照,同步處理的機率。

通常,唯一任意數量作為主索引鍵。例如,您可能會指派的每個訂單唯一的順序編號。順序編號的唯一用途是識別順序。一旦指派,永遠不會變更。

如果您沒有安裝記住一欄或一組可能會使理想的主索引鍵的資料行,請考慮使用 [自動編號] 資料類型的資料行。當您使用 [自動編號] 資料類型時,Access 會自動指派值為您。例如,識別項是 factless;它不包含事實資訊描述其代表的資料列。因為不會變更,factless 識別碼很適合當作主索引鍵。主索引鍵包含有關列,使用電話號碼或客戶名稱,例如,若要變更,其他可能是因為本身事實資訊可能會變更。

1.通常設定為 [自動編號資料類型的資料行會讓理想的主索引鍵。沒有兩個產品識別碼都相同。

在某些情況下,您可能會想要使用兩個或多個欄位,在一起,提供的資料表的主索引鍵。例如,儲存線條的項目訂單的訂單詳細資料資料表可能會想使用兩個資料行的主索引鍵︰ 訂單編號] 和 [產品識別碼。當主索引鍵採用了多個資料行時,也稱為複合索引鍵。

產品銷售資料庫,您可以建立的每個要作為主索引鍵的資料表的 [自動編號] 欄: [產品] 資料表的產品識別碼、 訂單的訂單編號表格,[客戶] 資料表中的客戶編號] 和 [供應商資料表。

建立資料表關聯

現在您擁有您的資訊分類成表格,您需要的方式將資訊一起再次以有意義的方式。例如,下列格式包含數個資料表中的資訊。

1. 此表單的資訊來自 [客戶] 資料表...

2....。 隨即會 [員工] 資料表...

3....。 隨即會訂單] 資料表中...

4....。 隨即會 [產品] 資料表...

5....能訂單詳細資料] 資料表。

關聯式資料庫管理系統存取。在關聯式資料庫中,您可以將您的資訊成個別的主旨為基礎的表格。然後,您會使用資料表關聯以將資訊一起視。

建立一對多關聯

請考慮以下範例︰ 訂單項產品中的 [供應商和產品] 資料表。供應商可以提供產品的任何數的字。是的話的供應商] 資料表中表示任何供應商,可能會有許多產品,在 [產品] 資料表中表示。供應商] 資料表和 [產品] 資料表之間的關係是,因此,一對多關聯。

若要顯示在您的資料庫設計的一對多關聯,採取關聯 「 一 」 端的主索引鍵,再將它作為其他欄] 或 [欄新增關聯 「 多 」 端的資料表。在此情況下,例如,您供應商識別碼] 資料行將資料表中新增供應商 [產品] 資料表。然後 access 就可以供應商識別碼使用在 [產品] 資料表中,找出正確的供應商,每個產品。

在 [產品] 資料表中的 [供應商識別碼] 欄稱為外部索引鍵。外部索引鍵是另一個資料表的主索引鍵。在 [產品] 資料表中的 [供應商識別碼] 資料行是外部索引鍵,因為這也是供應商] 資料表的主索引鍵。

您建立的主索引鍵和外部索引鍵配對加入相關的資料表中提供的基礎。如果您不確定讓哪些資料表應共用常見的資料行,找出一對多關聯可確保的兩個資料表之間,事實上,需要共用資料行。

建立多對多關聯

請考慮產品資料表和 [訂單] 資料表之間的關聯。

以單一順序可以包含一個以上的產品。另一方面,單一產品可以出現在許多訂單。因此,在 [訂單] 資料表中每一筆記錄,可以有多筆記錄在 [產品] 資料表中。然後在 [產品] 資料表中每一筆記錄,可以有多筆記錄在 [訂單] 資料表中。這種關聯性稱為多對多關聯,因為任何的產品,可能會有許多訂單。與任何訂單,可以有許多產品。請注意,偵測到您的資料表之間的多對多關聯,您必須考量兩側的關聯。

兩個資料表的主旨,訂單] 和 [產品,具有多對多關聯性。這代表有問題。若要瞭解此問題,假設會發生什麼事如果您嘗試建立兩個資料表,將 [產品識別碼] 欄位新增至 [訂單] 資料表之間的關聯。若要讓每筆訂單顯示一種以上的產品,您需要每筆訂單的訂單] 資料表中的多筆記錄。您想要的重複這些步驟訂單資訊與單一訂單每個資料列,結果可能會導致不正確的資料沒有效率設計。如果您將 [訂單識別碼] 欄位放在 [產品] 資料表中執行相同的問題,您必須在每個產品的 [產品] 資料表中多筆記錄。您要如何解決這個問題?

建立第三個表格,通常稱為的細分多對多關聯性,將兩個項目對多關聯聯合資料表,可回答。您插入的主索引鍵的兩個資料表第三個資料表。因此,第三個資料表記錄每個項目] 或 [關聯性的執行個體。

在 [訂單詳細資料] 資料表中的每一筆記錄代表一個項目上順序。訂單詳細資料] 資料表的主索引鍵包含兩個欄位,訂單] 和 [產品] 資料表的外部索引鍵。使用了解單獨使用 [訂單識別碼] 欄位會無法運作的主索引鍵,為此資料表,因為一個訂單可以有多個線條的項目。訂單識別碼重複每行上項目的順序,因此欄位不包含唯一值。使用了解單獨使用 [產品識別碼] 欄位無法運作,因為一個產品,會出現在許多不同的順序。但在一起,兩個欄位產生每一筆記錄的唯一值。

在產品銷售資料庫中,[訂單] 資料表和 [產品] 資料表與不相關彼此直接。不過,其相關間接透過 [訂單詳細資料] 資料表。多對多之間的關係訂單] 和 [產品在資料庫中由使用兩個項目對多關聯︰

訂單] 資料表和訂單詳細資料] 資料表有一個對多關聯。每個訂單可以有多個線條的項目,但是每個項目連線到單一的順序。

產品] 資料表和訂單詳細資料] 資料表有一個對多關聯。每個產品可以有多個線條項目相關聯,但只有一個產品是指每個項目。

您可以從 [訂單詳細資料] 資料表中判斷所有上以特定順序的產品。您也可以決定所有特定產品訂單。

之後併入訂單詳細資料表格,表格和欄位的清單看起來可能像這樣︰

建立一對一關聯

其他類型的關聯性是一對一關聯。例如,假設您要記錄您所需要的某些特殊增補產品資訊,或只套用到幾項產品。由於您不需要的資訊,而且將資訊儲存在 [產品] 資料表中時,會導致它不會套用至每個產品的空白區域,您將它放在不同的資料表。[產品] 資料表中,例如您可以使用 [產品識別碼作為主索引鍵。此補充資料表和 [產品] 資料表之間的關係是一對一關聯。Product 資料表中每一筆記錄,有一個相符的記錄補充的資料表。當您找對多關聯時,這兩個資料表必須共用常見的欄位。

當您在資料庫中偵測一對一關聯的需求時,請考慮是否您可以將兩個資料表中的資訊放在一起一個資料表中。如果您不想要執行這項作業基於某種原因,可能是因為其會造成許多空白區域,下列清單說明如何代表您設計中的 [關聯︰

如果兩個資料表都有相同的主題,您可以可能是因為設定關聯兩個資料表中使用相同的主索引鍵。

如果兩個資料表有不同的主索引鍵使用不同的主題,請選擇其中一個資料表 (任一項目),然後插入其他資料表的外部索引鍵作為主索引鍵。

決定使用資料表之間的關聯,可協助您確保您擁有正確的資料表和資料行。當一對一或一對多關聯存在時,所包含的資料表必須共用常見的一個或多欄。多對多關聯時,第三個資料表時需要代表關聯性。

修正設計

一旦您有資料表、 欄位和您所需要的關聯,您應該建立和填入您的資料表中的範例資料並嘗試使用資訊︰ 建立查詢,新增記錄,依此類推。這可協助醒目提示潛在問題的實際操作,例如,您可能需要新增您忘了您設計階段插入一欄或您可能需要資料表,您應該分割成若要移除重複的兩個資料表。

如果您還可以使用的資料庫,以取得您想要的答案,請參閱。建立的表單和報表概略草稿,請參閱是否就會顯示您預期的資料。尋找不必要的重複的資料,當您發現任何,變更您的設計,若要將它移除。

當您嘗試在您初始的資料庫,您可能會發現改進的空間。以下是一些檢查事項︰

您是否有忘記的任何資料行?如果是這樣,是否資訊所屬現有的資料表中?如果是其他項目的相關資訊,您可能需要建立另一個資料表。建立欄的每一個您要追蹤的資訊項目。如果無法計算的資訊,從其他欄,則可能會需要新的資料行。

有任何資料行不必要,因為他們可以從現有的欄位來計算?如果可以由其他現有的資料行來計算的資訊項目,折扣的價格計算零售價格,例如,最好是若要執行這就是,避免建立新的資料行。

您重複輸入重複的資訊中其中一個資料表?如果是這樣,您可能需要分成一對多關係的兩個資料表的資料表。

您有多個欄位、 有限的記錄,與在個別記錄中的多個空白欄位的資料表嗎?如果是這樣,請考慮設計,讓它具有較少的欄位和其他記錄的資料表。

已將其最小的實用部分中斷每個資訊項目?如果您需要報告、 排序、 搜尋,或計算的資訊項目上,將該項目自己的資料行中。

每個資料行是否包含相關資料表的主旨事項?如果資料行不包含資料表的主旨的相關資訊,將其屬於不同的表格。

表示的一般欄位或第三個資料表的資料表之間的所有關聯嗎?一對一和一對多關聯需要常見的欄。多對多關聯需要第三個資料表。

調整 [產品] 資料表

假設產品銷售資料庫中的每個產品落在 [一般] 類別,例如飲料、 調味品或海鮮底下。[產品] 資料表可能包含的欄位會顯示的每個產品類別。

假設之後檢查並修正資料庫的設計,決定儲存的類別,以及其名稱的描述。如果您類別描述] 欄位新增至 [產品] 資料表時,您必須重複每個類別描述每個產品的所屬的類別,這不是很好的解決方案。

更好的解決方案是類別來追蹤,其資料表與自己的主索引鍵的資料庫新增主旨。您可以再主索引鍵將資料表中新增類別 [產品] 資料表為外部索引鍵。

類別及產品資料表有一個對多關聯︰ 類別可以包含一個以上的產品,但產品可以屬於一種類別。

當您檢閱您的資料表結構時,請的重複群組。例如,請考慮包含下列資料行的資料表︰

產品識別碼

Name (名稱)

產品 ID1

Name1

ID2 產品

Name2

產品 ID3

Name3

以下,每個產品是不同的其他人,只是藉由新增數字的資料行名稱結尾的資料行的重複群組。當您看到欄編號如此一來時,您應該重新瀏覽您的設計。

這類設計有幾個問題。首先,它會強制您置於產品數量上限。一旦您在超出的限制,您必須新增新群組資料行的資料表結構,也就是主要的管理任務。

另一個問題是少於產品的數目上限供應商會浪費一些空間,因為其他欄將為空白。這類設計的最大瑕疵,亦即許多工作難執行,例如排序或編製索引的資料表,依產品識別碼或名稱。

每當您看到的重複群組檢閱密切以查看分割表格中的設計。在上述範例中使用兩個資料表,一個供應商,一個供應商 id 連結的產品的更好

套用的正規化規則

在您的設計,您可以為下一步套用資料正常化規則 (有時候只要稱為正規化規則)。您可以使用這些規則來查看是否表格的結構正確。將規則套用至您的資料庫設計的程序稱為正規化的資料庫或只正規化。

您有表示的所有資訊項目,並有抵達初步的設計後正規化有幫助的。是可協助您確保您有成適當的表格分割您的資訊項目。無法何種正規化是確保您擁有正確的資料項目開始。

套用連續,在每個步驟,確保您的設計送達其中一個所謂的 「 一般的表單。 」 的規則是否廣泛接受五個一般的表單,透過第五個標準表單的第一個標準表單。本文將前三個,因為它們是所有所需的大部分的資料庫設計。

第一標準表單

第一標準表單狀態位於資料表中每一列和欄交集處,有單一值和永遠不會清單的值。例如,您不能有名為的價格在其中放置將多個價格的欄位。如果您認為的每個資料列和欄交集為儲存格,每個儲存格可以容納只有一個值。

第二個標準的表單

第二個標準表單必須在整個的主索引鍵,而不只是屬於鍵完全相依每個非索引鍵資料行。當您有多個資料行組成的主索引鍵時,就會套用此規則。例如,假設您有包含下列欄,訂單編號] 和 [產品識別碼表單的主索引鍵的資料表︰

訂單識別碼 (也就是主索引鍵)

產品識別碼 (也就是主索引鍵)

產品名稱

此設計違反第二個標準表單,因為產品名稱是產品識別碼,但不是開啟訂單識別碼,而定,因此不相依於整個主索引鍵。您必須從資料表移除產品名稱。它屬於不同的表格 (產品)。

第三個標準的表單

第三個標準的表單需要不只每個非索引鍵資料行是整個的主索引鍵,而定,但非索引鍵資料行是個別獨立。

另一種拒絕這是每個非索引鍵資料行必須是相關的主索引鍵和其實的主索引鍵。例如,假設您有包含下列資料行的資料表︰

產品識別碼 (也就是主索引鍵)

Name (名稱)

SRP

Discount

假設折扣,而定的建議的零售價格 (SRP)。此表格違反第三個標準的表單,因為非索引鍵資料行,折扣,取決於另一個非索引鍵資料行,SRP。欄獨立性表示,您應該可以變更任何非索引鍵資料行,而不會影響其他任何資料行。如果您變更 [SRP] 欄位中的值,折扣會隨之變更,因此違反該規則。在此情況下折扣應該 SRP 上移至另一個做為索引鍵的資料表。

Share this page