2016-04-19 141 views
0

美好的一天-2NF數據庫規範化

我正在研究基於以下信息創建數據模型的任務。

你的任務是創建模型,用於存儲以下 信息:專輯列表和 專輯封面每個(圖像文件),爲一個專輯,樂隊的唱片公司或唱片公司的曲目,他們的 類型,樂隊成員。

到目前爲止,我已經創建了五張表。我必須涵蓋標準化部分但我很困惑。我創建的表中有一列有以下列和數據。

bandMember

  1. bandMemberId - 自動遞增
  2. bandladelId - FK
  3. 實名
  4. 暱稱
  5. memberphoneNo
  6. memberRole
  7. memberActive
  8. memberdob
  9. memberAge

,這表有下列數據爲止。

enter image description here

解決該我已刪除了逗號分隔值,並添加每一行中的數據。現在看起來像這樣。

enter image description here

可能有人請指導我如何拆分此表,並刪除此問題(如果存在規範化)?因爲我也在這裏與主鍵混淆。互聯網上提到的例子是基於年齡欄。但我沒有得到這些例子。提前致謝。

+0

您是否特別需要創建2NF佈局?如果不是,3NF通常是目標正常化的「最佳」水平,並且最容易處理。 –

+0

@MarcB特別我需要創建所有3層規範化。謝謝 –

+1

@MarcB 3NF不再是最好的標準化水平,而3號齒輪是最好的齒輪來驅動英寸而不是豎琴在一個正常的形式,嘗試瞭解依賴和異常。 – reaanb

回答

0

將多行屬性分割成多行的步驟看起來就像解決重複組達到1NF的步驟一樣。但是,在該轉換中,每個新行都獲得原始對應值的副本。您的自動增量列增加了新行,因此您的第二張表是另一個問題,而不是第一張的1NF版本。

轉換爲1NF的第一個表格將包含2行,兩個值均爲bandMemberId,值爲1,使用(bandMemberId, memberRole)作爲候選鍵。由於所有非主素屬性僅取決於bandMemberId,這是部分依賴關係。將(bandMemberId, memberRole)複製到單獨的表中,並從bandMember表中刪除memberRole將爲我們提供2NF模式。您不提供任何函數依賴關係,因此我不確定該架構是否也在3NF中。