Database-Design
嘗試在光碟詳細資訊場景中辨識最小的功能依賴關係
我相信這個關係/表格是第一範式(1NF):
收藏(cd_id,標題,標籤,藝術家,類型,國家,song_id,song_title,長度)
**注:**粗體表示鍵。
我設法確定的內容:
{cd_id, song_id} → {song_title, length} {cd_id} → {title, label, artist, type, country}
- 這個對嗎,說符合1NF對嗎?
- 我還缺少更多功能依賴項嗎?
額外細節
所涉及的屬性/列的上下文資訊和/或樣本值:
- CD_id: 009329
- 標題:CD的標題
- 藝術家:尼克爾貝克
- 類型:組 | 獨奏
- 國家:引用藝術家的國家或原籍
- 歌曲名稱:“把它燒毀”
- 時長:3:32 分鐘
附加功能
CD 下的每首歌曲,這意味著會有重複。每次添加屬於 CD 的歌曲時。
存在的一個問題是,一首歌可能會作為單曲發行,然後作為專輯的一部分,然後在“最熱門”專輯中重新發行。這將導致我有一個歌曲表,然後創建一個連接表,將專輯表連接到歌曲表。該連接表將允許將一首歌曲連接到多個專輯。該表的 PK 可以是 Album_ID 和 Song_ID,使其成為複合表。我還會考慮創建一個藝術家表,它將藝術家姓名、原籍國和組/獨奏等數據分開。這也可能阻止歌手/團體更改名稱的“王子效應”。表格(PK 為粗體)
專輯(Album_ID、Artist_ID、Album_Title、Release_Date)
藝術家(Artist_ID、Country_Of_Origin、類型、Artist_Name)
歌曲 ( Song_ID , Song_Name, Song_Duration)
Song_Album(Album_ID、Song_ID、 Track_Number)