【问题标题】:Database Normalisation (1NF 2NF 3NF)数据库规范化(1NF 2NF 3NF)
【发布时间】:2014-12-14 13:00:50
【问题描述】:

目前我对数据库的整个规范化感到困惑。

谁能帮我弄清楚如何从 3NF 转到 1NF?我的 1NF 版本看起来像这样,但不确定这是否正确..:

http://imgur.com/i7JTcXw,qPMtPdq

该链接包含 UNF 和我的 1NF 表版本。

【问题讨论】:

    标签: database normalization


    【解决方案1】:

    刚刚在这里寻找定义:) :http://www.studytonight.com/dbms/database-normalization.php。 1nf 要求每一行都可以可靠地识别。在您的表中,您没有明确的主键。每一行都可以通过航班号和部分状态字段(到达或离开)和预定时间来识别

    我可以看到您的表格违反了 2nf,因为您的状态字段似乎包含多条信息并且不是单一数据类型,即它告诉您 2 条信息:到达/离开和时间。 'Cancelled' 的实际状态也有一个隐含值,它没有关联的时间。

    3nf 消除了不属于主键的字段之间的依赖关系,在您的情况下,我会将手指指向 from 和 to 字段:它们的值可能是查找表的一部分,因为每个航班号通常专用于特定路线,因此在此表中重复它们是不必要的重复。例如,您似乎要去“Sidney”,但实际上您要去的是“Sidney”(没有逗号),因此对所有飞往 Sidney 的航班的查询将找到 QF431。 删除它们的另一个原因是,就目前而言,QF431 出发和目的地机场可能会在行之间发生变化,这可能违反每个航班号对于飞行路径都是唯一的规则。在当前结构下,dbms 无法执行此规则

    【讨论】:

    • 为您的帮助干杯,我会尝试实施您的建议
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-17
    • 1970-01-01
    • 1970-01-01
    • 2016-08-12
    • 2013-05-11
    • 2010-12-15
    相关资源
    最近更新 更多