【问题标题】:I need an example of 2NF and 3NF normalization我需要一个 2NF 和 3NF 标准化的例子
【发布时间】:2015-03-01 05:22:47
【问题描述】:

我理解规范化概念,特别是第一范式 (1NF),但 2NF 和 3NF 有点令人困惑。我已经阅读了有关它们的信息,但仍然没有完全理解。例如如何将下面的示例表转换为 2NF 和 3NF?

Prod_id 产品名称 产品类型 产品价格

1 生命值 笔记本电脑 200
2 阿迪达斯 服装 100
3 三星 电话 300
3 三星 电视 500

【问题讨论】:

  • 规范化需要了解函数依赖关系。即一组列只出现在另一列的相同值的所有情况。所以你必须提供这些信息! (表中唯一的列集在功能上确定所有其他列。主键和备用键是不包含较小的唯一列集的唯一列集。因此,给出一些 PK、备用键和/或唯一列集可能足以说明FD 来告诉表格满足什么范式并规范化为具有更高范式的表格。)

标签: database-normalization 3nf


【解决方案1】:

这里有一些例子:

示例 1:2FN; 假设我们有这个 registry(numStudent,nameStudent ,codeModule) 表; 由于这种依赖性,这不在 2NF 中: (numStudent,codeModule) 是注册表的候选键,但我们有 numStudent-> nameStudent 所以规范化我们只需提供registry(numStudent,codeModule)

示例 2:3FN

假设我们有这个客户(numCustomer,city,country) tatble ;这不在 3FN 中 因为:城市->国家 所以为了纠正这个问题,我们会做这个 R1(numCustomer,city) 和 R2(city,country)

【讨论】:

    猜你喜欢
    • 2016-03-19
    • 1970-01-01
    • 2011-08-26
    • 1970-01-01
    • 1970-01-01
    • 2011-06-09
    • 1970-01-01
    • 1970-01-01
    • 2014-12-14
    相关资源
    最近更新 更多