簡體   English   中英

表中是否可以有不依賴於主鍵的列,但仍處於2NF中?

[英]Can a table have columns that are not dependent on primary key, and still be in 2NF?

我是數據庫新手,過去兩天一直在學習有關正常表單/數據庫實踐的知識。 我已經為飛機檢查數據創建了以下模型表,但是我不確定它是否為第二種標准格式。 檢驗ID是主鍵,但真正依賴於檢驗ID的唯一信息是日期。 技術訂單是機械師進行飛機檢查所遵循的准則,但是它絲毫不影響檢查ID。 檢查員姓名也不取決於檢查ID。

如果兩列不依賴主鍵,此表是否會破壞2NF?

下表如下:

在此處輸入圖片說明

您的表具有一個主鍵,該主鍵是單列,並且沒有其他唯一鍵(或者看起來是這樣),因此它自動以第二范式形式出現,因為主鍵沒有(非空) 正確的子集

我剩下的答案都是關於表格是否滿足第三范式的問題(感謝您指出,philipxy)。


主鍵和數據之間不必有任何邏輯依賴性。 實際上,主鍵通常是人為生成的數字。

關鍵是主鍵外,任何字段都不應依賴於其他任何字段。

例如,如果您的示例中的“ Inspector Name對於“ Technical Order始終是相同的,則該表將不是第二范式。 在這種情況下,您將創建第二個表,其中“ Technical Order是主鍵,“ Inspector Name將是一個字段。 這樣,您的原始表將僅包含Technical Order作為該第二個表的外鍵

以這種方式對數據模型進行規范化可以避免冗余,從而減少了存儲空間並自動減少了產生不一致的危險(現在不可能發生兩行具有相同的Technical Order ,但Inspector Name不同的情況。

要判斷表是否已規范化,您必須了解數據的語義。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM