SQL 之 范式

设计数据库的一些规范化的标准:通常满足第三范式已经足够规范了。


第一范式:消除重复数据。要求不允许多值属性。如果一个数据单元格中存在多个值,通过给定值来检索会带来问题。这一范式的核心就是:不允许有重复的列。比如在TestFormat列存在“Multiple choice, essay”这样的值是不允许的,应该使用TestFormat1和TestFormat2的两个不同的列,而不是使用TestFormat一个单独的列。总之,无论是单个列多个值,还是多个列处理相似数据,都不希望有重复的数据。


第二范式:消除部分依赖。这种情况是:表中的主键是复合主键,也就是主键由多个列组成,这一范式表明没有列能够之和主键的一部分相关。比如Grades表的主键由Student列和Test列组成的复合主键,问题出在TotalPoint列,TotalPoint列事实上只和考试相关,和学生无关。这一范式规定,表中所有非主键的列指向的是整个键,而不是键的一部分。


第三范式:消除过度依赖。这一范式所指的情况是,表中的列指向的不是主键,而是指向同一表中的另一个非键的列,比如,Assistant实际上是Teacher的一个属性,Assistant与老师相关而和主键(考试或者学生)无关,这表明该信息不属于这个表。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值