跟小博老师一起学习数据库 ——数据库范式
来源:互联网 发布:iphone音乐软件排行 编辑:程序博客网 时间:2024/05/21 14:01
为保证数据库存储数据的性能,方便编程人员对数据的操作,势必要有一些科学、合理的设计数据库结构规则,这在关系型数据库中称它为范式。
每一列的属性都是不可再分保证其原子性,属性相近或类似的合并成一列,尽量减小数据的冗余。
以下student表“地址”属性包含了国家与城市信息,不满足第一范式。
第二范式是指一行记录只表述一件事,有重复的数据应把表拆开来。
student表经第一范式调整后,“国家”、“城市”属性会有大量重复数据,造成数据冗余。要把student拆分成一张表述学生信息表和一张地址信息表,再用外键约束把它们关联起来。
在满足第一、二范式基础上,表内每个属性都是与主键是直接联系而不是间接关系。
比如student增加一列“班主任”,那么“班主任“信息应单独建个表,否则会导致很多麻烦。如”黄药师“班主任是新入职的,手上还没有学生如放在student表是不合适的;”杨康“班主任走了,学生信息与班主任信息在同一张表时,删除杨康的同时把学生信息一并删除是错误的。
小结
范式是设计数据库的基本概念,使用它可建立尽可能科学、合理的数据库结构。但在一些场合,出于特殊考虑牺牲结构换取性能也是可以理解的。不要一味的追求范式,应采用需求->性能 ->结构的理念来设计数据库。
0 0
- 跟小博老师一起学习数据库 ——数据库范式
- 跟小博老师一起学习数据库 ——表
- 跟小博老师一起学习数据库 ——delete
- 跟小博老师一起学习数据库 ——约束
- 跟小博老师一起学习数据库 ——索引
- 跟小博老师一起学习数据库 ——函数
- 跟小博老师一起学习数据库 ——NoSql
- 跟小博老师一起学习数据库 ——H2内存数据库
- 跟小博老师一起学习数据库 ——H2内存数据库
- 跟小博老师一起学习数据库 ——MySql安装
- 跟小博老师一起学习数据库 ——SQL语言
- 跟小博老师一起学习数据库 ——WHERE子句
- 跟小博老师一起学习数据库 ——order by
- 跟小博老师一起学习数据库 ——GROUP BY
- 跟小博老师一起学习数据库 ——多表查询
- 跟小博老师一起学习数据库 ——连接查询
- 跟小博老师一起学习数据库 ——外连接
- 跟小博老师一起学习数据库 ——约束(中篇)
- 滤波器设计分析工具FDATOOL
- java--17--Map及其实现类与子接口
- Python--排序--快速排序
- TCP Socket编程(非阻塞模式)(C++)
- 第三十九将项目四 n=a!+b!+c!
- 跟小博老师一起学习数据库 ——数据库范式
- Django中使用Markdown
- 在阿里云ECS上部署 Django+MySQL+uWSGI+Nginx 项目的基本流程
- ftp与tftp的区别
- 有名管道
- C++文件流状态的判别与定位
- java语言基础(40)——面向对象(类与类、类与接口及接口与接口的关系)
- 2017年4月23日 448. Find All Numbers Disappeared in an Array[easy]
- 用JSONP实现跨域请求