前端学数据库之数据库设计

本文介绍了数据库设计的三大范式:第一范式、第二范式和第三范式,通过实例解析了各范式的概念和要求,并展示了如何遵循这些原则优化数据库设计,以创建更合理、高效的数据库结构。
摘要由CSDN通过智能技术生成

数据库设计共有三大范式:

  第一范式:无重复的列

  第二范式:属性完全依赖于主键

  第三范式:属性不能依赖于主属性

  下面将分别对这三个范式进行详细介绍

第一范式

  数据库表中的每一列都是不可分割的基本数据项,同一列中不能有多个值。具体而言,有以下两条要求

  1、每一列属性都是不可再分的,确保每一列的原子性

  2、两列的属性相近或相似或一样,尽量合并属性一样的列, 确保不产生冗余数据

  以考勤表设计为例,考勤表用来记录每天学生的考勤情况

  最简单的情况是,每一天都建立一张表。字段是每个学生的姓名,列值表示是否签到。这样,可以很方便的存储当天的考勤情况。但是,这也导致了每天都需要在数据库里新建一张考勤表。而且,这种做法违反了第一范式,这张考勤表的字段的属性含义都是一样的,都是记录学员的考勤情况。因此,这些字段是需要合并的

design1design1

  更优化的设计是,第一字段是学生姓名,第二字段是0101表示`1月1日,第三字段是0102表示1月2日,以此类推。这种做法,不再需要设计那么多表,将学生的姓名列合并成了一个姓名列。但是,同样它没有遵循第一范式,1年365天, 代码除了学生姓名列外,还需要设置365个字段。而且,这些列的含义都是一样的,记录当天的考勤。因此,这些字段也是需要合并的

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值