范式例子

第二范式

第二范式要求每个非键列完全依赖于整个主键,而不仅仅依赖于主键的一部分。当主键由多个列组成时,就适用此规则。例如,假定有包含以下列的表,其中“订单 ID”和“产品 ID”构成主键:

  • 订单 ID(主键)
  • 产品 ID(主键)
  • 产品名称

此设计违反了第二范式,因为“产品名称”依赖于“产品 ID”,但并不依赖于“订单 ID”,因此并不依赖于整个主键。必须将“产品名称”从表中删除。它属于不同的表,即属于“产品”表。

第三范式

第三范式要求不仅每个非键列依赖于整个主键,且非键列要互相独立。

另一种说法就是,每个非键列必须且只能依赖于主键。例如,假定有包含以下列的表:

  • 产品 ID(主键)
  • 名称
  • SRP
  • 折扣

假定“折扣”依赖于建议零售价 (SRP)。此表就违反了第三范式,因为非键列“折扣”依赖于另一个非键列 SRP。列独立性表示应该可以在不影响任何其他列的情况下更改任何非键列。如果更改了 SRP 字段中的值,“折扣”将相应地发生改变,这样就违反了该规则。在本例中,“折扣”应该移到另一个以 SRP 为主键的表中。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值