数据库三大范式

三大范式

数据库设计原则也就是指数据库的三大范式.

作用:是用来指导数据库设计人员的一种设计思想,保证数据库的设计是具备可拓展性,无数据的冗余,结构清晰简单明了.

  • 1NF:原子性,也就是说表中任何一个列都是唯一的,不可再拆分的
    R(id,name,age),此关系中name可以分为first_name和last_name,
    所以,此设计不符合1NF,应该重新设计为:
    R(id,first_name,last_name,age)

  • 2NF:在1NF的基础上,不存在非关键列部分依赖于关键列,也就是说所有的非关键列都必须完全依赖于关键列.
    R(sno,sname,cno,cname,score)
    由于以上不管是以哪一列作为关键列,都存在其他非关键列部分依赖
    于关键列,所以此设计不符合2NF,应该重新设计为:
    R1(sno,sname),存放学生信息的表
    R2(cno,cname),存放课程信息的表
    R3(sno,cno,score),存放学生与课程考试成绩的中间表

  • 3NF:在2NF的基础上,不存在非关键列传递函数依赖于关键列,也就是说,所有的非关键列都必须直接依赖于关键列
    如果A依赖于B,B依赖于C,我们就说A传递函数依赖于C
    学生考入某所大学的信息表:
    R(sno,sname,uno,uname,phone,address)
    如果以sno作为关键列,sanme,uno是直接依赖于sno,但是uname,phone,
    address这三列都是直接依赖于uno,间接依赖于sno,所以此设计不符合
    3NF,应该重新设计为:
    R1(sno,sname,uno),存放学生信息的表

    R2(uno,uname,phone,address);//存放学校的表

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值