Database design 如何显示数据库设计为第三范式

Database design 如何显示数据库设计为第三范式,database-design,Database Design,如何证明我的数据库模式实际上是第三范式?是否有任何非键字段依赖于不属于键的另一个字段?如果是这样,则该模式不在3NF中。如果您满足1NF、2NF和3NF规则,则您的数据库在3NF中 作为粗略的指南 单行中没有重复数据。(相同数据以不同方式显示的列) 消除重复出现多次的数据子集(我认为这是“参考”数据,如查找。如CustomerRelationshipType) 删除与表的键不直接相关的任何数据(这是一项检查,以确保您没有不必要地携带任何内容或可能在错误的表中存储某些内容) 如果所有非关键点属性都

如何证明我的数据库模式实际上是第三范式?

是否有任何非键字段依赖于不属于键的另一个字段?如果是这样,则该模式不在3NF中。

如果您满足1NF、2NF和3NF规则,则您的数据库在3NF中

作为粗略的指南

  • 单行中没有重复数据。(相同数据以不同方式显示的列)

  • 消除重复出现多次的数据子集(我认为这是“参考”数据,如查找。如CustomerRelationshipType)

  • 删除与表的键不直接相关的任何数据(这是一项检查,以确保您没有不必要地携带任何内容或可能在错误的表中存储某些内容)


  • 如果所有非关键点属性都依赖于关键点、整个关键点以及除了关键点之外的任何东西,那么它应该是第三范式


    当然,原子性已经被假定。

    您的数据库处于3NF状态,当且仅当它遵循以下任意一条或两条规则时:

    规则1:对于每个给定的FD,FD的左侧(LHS)应该是数据库中任何表的超级键

    规则2:对于每个给定的FD,FD的右侧(RHS)应该是ant关系/表的主要属性


    有关Superkey、Prime属性等的更多详细信息,请参阅:

    这仍然是1NF。如果它依赖于整个键,那就只有2nfn他是对的,从维基百科抄袭过来:“要求非键属性依赖于“整个键”可以确保一个表是2NF;进一步要求非键属性依赖于“只有键”可以确保该表是3NF。”