2

我通過一些正常化的例子閱讀,但我遇到了一個我不明白的地方。正常化3NF

網站的例子是位於:http://cisnet.baruch.cuny.edu/holowczak/classes/3400/normalization/#allinone

我不明白的是「第三範式」

在我腦子裏,我看到了傳遞依賴於EMPLOYEE_OFFICE_PHONE (Name, Office, Floor, Phone)爲以下Name->->Office|FloorName->->Office|Phone

的一部分

筆者拆分表EMPLOYEE_OFFICE_PHONE (Name, Office, Floor, Phone)EMPLOYEE_OFFICE (Name, Office, Floor)EMPLOYEE_PHONE (Office, Phone)

從我一開始的判斷,我仍然看到Name->->Office|Floor中的傳遞依賴,所以我不明白它爲什麼在3NF。在Name->->Office|Floor中表示存在傳遞依賴關係嗎?

推理的傳遞性: 這裏是我的函數依賴

  1. 名稱的列表 - >辦公
  2. 名稱 - >地板
  3. 名稱 - >手機
  4. 辦公室 - >電話
  5. 辦公室 - >樓(這是不正確的?爲什麼?

感謝您的幫助!

回答

1

5)您假設這裏命名爲sheme ......辦公室4xx必須位於第4層...... 5xx必須位於第5層......如果存在這樣的方案,您可以擁有您的依賴...只要這不是規範的一部分......不。 5退出遊戲......

0
1. Name -> Office 
2. Name -> Floor 
3. Name -> Phone 
4. Office -> Phone 
5. Office -> Floor (Is this the incorrect one? and why? 

(1)您和作者和我同意名稱 - >辦公室。

(2)您和作者同意Name-> Floor。儘管完全基於樣本數據,但Office-> Floor也是如此。我會問這樣一個問題來探討這類問題:「如果一個辦公室空着,我是否仍然知道該辦公室在哪個樓層?」 (是)

這些事情表明存在傳遞依賴關係,Name-> Office和Office-> Floor。所以我會不同意你和作者在這個問題上。

(3)你說Name-> Phone。作者說辦公室 - >電話。作者還說,「每個辦公室只有一個電話號碼。」所以給予Office的一個價值,我知道Phone的唯一價值。給出一個Name的值,我知道Phone的唯一值。我會問這個問題:「如果我搬到另一個辦公室,我的電話號碼跟着我嗎?」如果是,則Name-> Phone。如果沒有,則Office->電話。

這裏沒有足夠的信息來回答這個問題,而且我曾在兩個辦事處工作,因此現實世界的經驗對我們也無能爲力。在這種情況下,我必須與作者站在一起,儘管我認爲對於規範化示例並不是很好的想法。

(4)這實際上只是上面(3)的擴展。

(5)參見上面的(2)。這與命名方案沒有任何關係,並且您不需要假設5xx號辦公室位於5樓。唯一相關的問題是:給定Office的一個值,Floor是否有且僅有一個值? (是)我可以通過詢問「一個辦公室能夠在多個樓層上嗎?」來探討這個問題嗎? (在現實世界中,這是遠程可能的,但示例數據不支持這種可能性。)

一些額外的FD,僅基於樣本數據。

Phone->Office 
Phone->Floor 
Office->Name 
0

首先,讓我清楚地界定3NF: - 一個關係是3NF,如果滿足以下條件: - 1)關係是2NF 2)沒有非主屬性是及物依賴在主鍵上。 換句話說,在3NF中的關係是對於每個函數依賴關係X> Y滿足以下條件之一:1)X是超級鍵 2)Y是主要屬性 對於你的問題,if下面的函數依賴存在: -

Name -> Office 
Name -> Floor 
Name -> Phone 
Office -> Phone 

那麼我們不能說有關Office和Floor.You什麼都可以通過應用和檢查任何應用這些規則的阿姆斯特朗推理Rules.When的驗證這一點,你會發現你不能推斷任何關於辦公室和地板的事情。