2016-04-19 142 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中。