博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MySQL数据库 范式
阅读量:6700 次
发布时间:2019-06-25

本文共 586 字,大约阅读时间需要 1 分钟。

hot3.png

在中为保证数据库存储数据的性能,方便编程人员对数据的操作,势必要有一些科学、合理的设计数据库结构规则,这在关系型数据库中称它为范式。

每一列的属性都是不可再分保证其原子性,属性相近或类似的合并成一列,尽量减小数据的冗余。

  以下student表“地址”属性包含了国家与城市信息,不满足第一范式。

第二范式是指一行记录只表述一件事,有重复的数据应把表拆开来。

  student表经第一范式调整后,“国家”、“城市”属性会有大量重复数据,造成数据冗余。要把student拆分成一张表述学生信息表和一张地址信息表,再用外键约束把它们关联起来。

在满足第一、二范式基础上,表内每个属性都是与主键是直接联系而不是间接关系。

   比如student增加一列“班主任”,那么“班主任“信息应单独建个表,否则会导致很多麻烦。如”黄药师“班主任是新入职的,手上还没有学生如放在student表是不合适的;”杨康“班主任走了,学生信息与班主任信息在同一张表时,删除杨康的同时把学生信息一并删除是错误的。

  

小结

       是设计数据库的基本概念,使用它可建立尽可能科学、合理的数据库结构。但在一些场合,出于特殊考虑牺牲结构换取性能也是可以理解的。不要一味的追求范式,应采用需求->性能 ->结构的理念来设计数据库。

转载于:https://my.oschina.net/u/2971691/blog/900097

你可能感兴趣的文章
总链接
查看>>
解决 "Script Error" 的另类思路
查看>>
如何打造高效的多任务、高并发的网络服务器系统?
查看>>
nginx+php+mysql+haproxy+keepalived+NFS,搭建wordpress
查看>>
整合营销推广该如何做?
查看>>
go语言渐入佳境[6]-operator运算符
查看>>
vmware workstation17环境安装centos7
查看>>
Linux(RadHat)基础学习—FTP服务
查看>>
safari的一些问题
查看>>
面试官问我:平常如何对你的 Java 程序进行调优?
查看>>
Django中使用Pagination的分页范例源码
查看>>
运营商市场经营方向及趋势
查看>>
Java中对象和引用的理解
查看>>
BGP
查看>>
调整路由的AD值
查看>>
如何有效抓取SQL Server的BLOCKING信息
查看>>
我的友情链接
查看>>
创建虚拟机所需的Bridge网络
查看>>
bash中(),{},(()),[],[[]]的区别
查看>>
002 exercises
查看>>