美文网首页
【MySQL】范式与反范式

【MySQL】范式与反范式

作者: Catke | 来源:发表于2018-01-16 17:18 被阅读0次
    一、数据库范式
    1、第一范式(1NF):

    无重复列,即表中每一列都是不可分割的,不满足第一范式的数据库不是关系型数据库
    例子:联系人表(用户名,用户信息)

    2、第二范式(2NF):

    不存在仅依赖于关键一部分的属性(不能存在部分依赖于主键)
    例子:选课关系(学号,课程名称,成绩,学分),学号与课程名称是主键,其不满足2NF,因为课程名称->学分

    3、第三范式(3NF):

    属性不传递依赖于其他非主属性,非主键必须直接依赖于主键而不能传递依赖
    例子:学生表(学号,姓名,学院编号,学院名称),学号是主键,姓名、学院编号、学院名称都完全依赖于学号,满足2NF,但不满足3NF,因为学院名称直接依赖的是学院编号 ,它是通过传递才依赖于主键.

    4、巴斯-科德范式(BCNF)
    5、第四范式 (4NF)
    6、第五范式(5NF)
    7、zabbix流量监控图

    在数据库的操作中DQL的比例要远远大于DML的比例

    二、反范式

    没有冗余的数据库未必是最好的数据库,有时为了提高运行效率,就必须降低范式标准,适当保留冗余数据。具体做法是: 在概念数据模型设计时遵守第三范式,降低范式标准的工作放到物理数据模型设计时考虑。降低范式就是增加字段,减少了查询时的关联,提高查询效率。

    DDL(Database Defination Language):create、alter等
    DML(Database Manipulation Language):insert、update、delete等
    DCL(Database Control Language):grant、revoke等
    DQL(Database Query Language):select

    相关文章

      网友评论

          本文标题:【MySQL】范式与反范式

          本文链接:https://www.haomeiwen.com/subject/nmfeoxtx.html