MySQL基础(七)-数据库设计三范式

一、什么是数据库设计范式?

数据库表的设计依据。即怎么进行数据库表的设计。

二、数据库设计范式的分类

总共有三种范式。

第一范式:

        要求任何一张表必须有主键,每一个字段原子性不可再分。

第二范式:

        建立在第一范式的基础之上。要求所有非主键字段完全依赖主键,不要产生部份依赖。

第三范式:

        建立在第二范式的基础之上。要求所有非主键字段完全依赖主键,不要产生传递依赖。

设计数据库表的时候,按照以上的范式进行,可以避免表中数据的冗余,空间的浪费。

三、第一范式

最核心、最重要的范式,所有表的设计都需要满足。

必须有主键,并且每一个字段都是原子性不可再分。

四、第二范式

建立在第一范式的基础之上。

要求所有非主键字段必须完全依赖主键,不要产生部分依赖。

产生部份依赖的缺点:数据冗余了,造成了空间的浪费。

为了让以上的表满足第二范式,需要使用三张表来表示多对多的关系:

        学生表

        学生编号(pk)        学生名字

        --------------------------------------------------

        1001                     张三

        1002                     李四

        1003                      王五

        教师表

        教师编号(pk)        教师姓名

        -------------------------------------------------

        001                        王老师

        002                        赵老师

        学生教师关系表

        id(pk)        学生编号(fk)        教师编号(fk)

        -------------------------------------------------------------

        1                1001                        001

        2                1002                        002

        3                1003                        001

        4                1001                        002

口诀】多对多,三张表,关系表两个外键

五、第三范式

        第三范式建立在第二范式的基础之上。要求所有非主键字段必须直接依赖主键,不要产生传递依赖。

第一范式:

        满足,有主键

第二范式:

        满足,因为主键不是复合主键,没有产生部份依赖。主键是单一主键。

第三范式:

        不满足。一年一班依赖01,01依赖1001,产生了传递依赖。不符合第三范式的要求,产生了数据的冗余。

解决如上一对多的方式:

 【口诀】一对多,两张表,多的表加外键。

六、总结:

一对多:

        一对多,两张表,多的表加外键。

多对多:

        多对多,三张表,关系表两个外键

一对一:

        【口诀】一对一,外键唯一

        在实际的开发中,可能存在一张表字段太多,太庞大,这时候需要对表进行拆分。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值