這個問題顯然是一個家庭作業問題。我無法理解我的教授,也不知道他在選舉期間說了些什麼。我需要一步一步的指示,將下表首先歸一化爲1NF,然後是2NF,然後是3NF。將表格歸一化爲第三範式
我感謝所有幫助和指導。
這個問題顯然是一個家庭作業問題。我無法理解我的教授,也不知道他在選舉期間說了些什麼。我需要一步一步的指示,將下表首先歸一化爲1NF,然後是2NF,然後是3NF。將表格歸一化爲第三範式
我感謝所有幫助和指導。
好吧,我希望我能記得所有的人都正確,讓我們開始...
爲了使它們非常短(而不是非常精確,只是給你的就是它的第一個想法全部關於):
列 「state
」 具有像 「WA,華盛頓」 的值。 NF1被違反,因爲這是兩個值,縮寫和名稱。
解決方案:要完成NF1,請創建兩列STATE_ABBREVIATION
和STATE_NAME
。
想象一下,你已經有了這些4列的表格,表達車型的國際名稱:
COUNTRY_ID
(數字,主鍵)CAR_MODEL_ID
(數字,主鍵)COUNTRY_NAME
(VARCHAR)CAR_MODEL_NAME
(VARCHAR)該表可以有這兩個數據行:
,上面寫着模式「福克斯」被稱爲美國「福克斯」,但同樣的車型在德國被稱爲「波羅」(不記得是否這實際上真正)。
NF2被違反,因爲國名不取決於車型ID和國家ID,而只取決於國家ID。
解決方案:要履行NF2,請將COUNTRY_NAME
轉換爲單獨的表「COUNTRY」,其中列COUNTRY_ID
(主鍵)和COUNTRY_NAME
。要獲得包含國家/地區名稱的結果集,您需要使用JOIN連接兩個表。
說你有這些列的表格,表達國家的氣候條件:
STATE_ID
(VARCHAR,主鍵)CLIME_ID
(外鍵,ID的氣候帶,如「沙漠」,「熱帶雨林」等)IS_MOSTLY_DRY
(布爾)NF3被違反,因爲IS_MOSTLY_DRY只取決於CLIME_ID(至少我們假設),但不取決於STATE_ID(主鍵)。
解決方法:爲了實現NF3,將列MOSTLY_DRY
放入氣候區表中。
以下是關於此次演習給予實際的表的一些想法:
我申請上述NF規則,而不去挑戰主鍵列。但他們實際上沒有道理,我們稍後會看到。
所以,如果您刪除所有違反NF2或NF3的列,只剩下主鍵(EMP_ID和DEPT_CD)。剩下的部分違反了給定的業務規則:這種結構將允許員工同時在多個部門工作。
讓我們從遠處查看它。您的數據模型是關於員工,部門,技能以及這些實體之間的關係。如果你規範化,你最終會得到一張僱員表(包含DEPT_CD作爲外鍵),一個用於部門,一個用於技能,另一個用於員工和技能之間的關係,持有「技能年「爲EMP_ID和SKILL_CD的每個元組(我的老師會稱後者爲」關聯實體「)。
好的,我看到了編輯Walter Mitty的觀點。當一列依賴於主鍵列和其他列時,NF3被違反是正確的。但是,如果一列根本不依賴主鍵,NF3也會受到侵犯,不是嗎?所以我建議NF3:「根據任何非主鍵列查找列」。你同意嗎? – user1992821 2013-03-08 16:34:01
非常詳細,我覺得非常有用!謝謝 – 2013-07-30 14:28:37
另一個過於簡單的答案即將到來。
在3NF關係表中,每個非鍵值都由鍵,整個鍵以及除鍵外的所有值來決定(所以幫助我Codd;))。
1NF:關鍵。這意味着如果您指定鍵值和命名列,那麼在行和列的交點處最多隻有一個值。多值,就像用逗號分隔的一系列值一樣,是不允許的,因爲只有一個鍵和一個列名才能直接獲取值。
2NF:整個鍵。如果不是密鑰的一部分的列由密鑰列的正確子集確定,則2NF被違反。
3NF:沒什麼,只是關鍵。如果一列由某些非關鍵字列確定,那麼3NF被違反。
看着你的表中的前兩行,
看着這列被標記爲「PK」,在表中,
並假設「PK」代表「主鍵」,
看着值是出現在這兩行中的那兩列,
我會建議你的教授從數據庫教學中走出來,不要回來,直到他得到本人正確的主題教育。
這個練習不能被認真對待,因爲問題陳述本身包含無可救藥的矛盾信息。
(注意,作爲一種結果,根本不是一個「好」或「右」的回答這個問題的任何這樣的事情!)只有
3NF滿足,如果它是在第二範式和沒有任何傳遞依賴性,所有非關鍵屬性都應該依賴於主鍵。
傳遞依賴: R =(A,B,C)。 A-> B AND B-> C THEN A-> C
[1NF](http://en.wikipedia.org/wiki/First_normal_form),[2NF](http://en.wikipedia.org/wiki/Second_normal_form),[3NF](http://en.wikipedia.org/wiki/Third_normal_form) – Kermit 2013-03-07 15:27:34