我对3NF (第三范式)的事情有点困惑。我有一个项目,我需要做,它需要在3NF。我创建了一些表来描述计算机的不同部分。
例如,我有一个名为CPU的表和一个名为COMPUTERSYSTEM的表。CPU得到了列NAME、PRICE、SOCKETTYPE和CLOCKSPEED。COMPUTERSYSTEM表是不同组件的组合,它们位于CPU表或其他组件表(如GPU )中。
所以我的问题是,这是3NF吗?表是CPU 3NF吗?我理解3NF,因为每一行都需要依赖于primary key,而我的primary key是所有表中的名称,价格和时钟速度等不是依赖于名称吗?
发布于 2017-03-21 12:35:24
3NF (第三范式)是指按照5条标准化规则中的前3条规则组织的表格:
套接字SocketTypeId SocektTypeDescription
CPU CpuId制造商SocketTypeId (FK到套接字) ClockSpeed价格
计算机ComputerSystemId ComputerSystemName CpuId (FK to CPU)等。
套接字是2NF,因为它没有重复组,它只有非键列(SocketTypeDescription)与其主键(SocketTypeId)直接相关。
CPU是3NF,因为它没有重复组,它的所有非键列都与其主键直接相关,它对外部表的引用也与其主键直接相关。
出于同样的原因,计算机也是3NF。
https://stackoverflow.com/questions/42921783
复制相似问题