首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >3NF数据库表

3NF数据库表
EN

Stack Overflow用户
提问于 2017-03-21 08:28:47
回答 1查看 612关注 0票数 0

我对3NF (第三范式)的事情有点困惑。我有一个项目,我需要做,它需要在3NF。我创建了一些表来描述计算机的不同部分。

例如,我有一个名为CPU的表和一个名为COMPUTERSYSTEM的表。CPU得到了列NAMEPRICESOCKETTYPECLOCKSPEEDCOMPUTERSYSTEM表是不同组件的组合,它们位于CPU表或其他组件表(如GPU )中。

所以我的问题是,这是3NF吗?表是CPU 3NF吗?我理解3NF,因为每一行都需要依赖于primary key,而我的primary key是所有表中的名称,价格和时钟速度等不是依赖于名称吗?

EN

回答 1

Stack Overflow用户

发布于 2017-03-21 12:35:24

3NF (第三范式)是指按照5条标准化规则中的前3条规则组织的表格:

  • 1NF =无重复组(Phone1、Phone2等)
  • 2NF = 1NF +所有与PK直接相关的非键属性
  • 3NF = 2NF +与PK直接相关的所有属性(包括FK到2NF表)

套接字SocketTypeId SocektTypeDescription

CPU CpuId制造商SocketTypeId (FK到套接字) ClockSpeed价格

计算机ComputerSystemId ComputerSystemName CpuId (FK to CPU)等。

套接字是2NF,因为它没有重复组,它只有非键列(SocketTypeDescription)与其主键(SocketTypeId)直接相关。

CPU是3NF,因为它没有重复组,它的所有非键列都与其主键直接相关,它对外部表的引用也与其主键直接相关。

出于同样的原因,计算机也是3NF。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42921783

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档