2. MySQl范式设计

应用数据库范式可以带来许多好处:

  1. 减少数据冗余(主要好处)
  2. 消除异常(插入异常,更新异常,删除异常)
  3. 数据组织的更加和谐

        数据库范式不是越高越好,范式越高,意味着表越多,多表联合查询的几率越大,sql的效率就变低。表多带来问题:1.查询时需要连接多个表,增加了sql查询的复杂度 2.查询时需要连接多个表降低数据库查询性能

第一范式(1NF)

        要求数据库中的每个属性都不可再分,即属性的原子性每一列保持原子特性,每一列都是基本数据项,不能够再进行分割,数据库中每个属性都不可再分,不符合第一范式就不能称之为关系型数据库。

        比如说表中设置地址字段,但是地址可以再 细分为省,市,区等不可再分割(即原子特性)的字段

第二范式(2NF)

        每一列都与主键相关,必须是完全依赖

        要求数据库中的每个非主属性都必须完全依赖于主键,非主属性完全依赖于主键关键字(联合主键 )如果不是完全依赖主键,应该拆分成新的实体,设计成一对多的实体关系。

主要针对联合主键,比如说现在有一个选课关系表,SelectCourse(学号, 姓名, 年龄, 课程名称, 成绩, 学分),我们将其中(学号和课程名称)设为联合主键,但学分只和课程名称有关,和学号无关,相当于只依赖联合主键的其中一个字段,不符合 第二范式。

第三范式(3NF)

        (确保每列都和主键列直接相关,而不是间接相关)

        要求一个数据库中的每一个非主属性都不依赖于其他非主属性,即消除非主属性对其他非主属性的传递依赖。

学生关系表为Student(学号, 姓名, 年龄, 所在学院, 学院地点, 学院电话),学号是主 键,但是学院电话只依赖于所在学院,并不依赖于主键学号

巴斯-科德范式(BCNF)

        任何属性都不依赖于其他属性,完全依赖于候选键在这里也不允许了。

第四范式(4NF)

        消除多值依赖,避免数据重复和数据冗余的问题 。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值