数据库设计之三大范式
来源:互联网 发布:java notify notifyall 编辑:程序博客网 时间:2024/05/16 09:03
背景
表设计后,很可能结构不合理,出现数据重复保存,简称数据的冗余,这对数据的增删改查带来很多后患,所以我们需要审核是否合理,如何审核呢?需要一些有关数据库设计的理论指导规则,这些规则业界简称数据库的范式。
两个重要概念
1、部分函数依赖
1> 存在数据冗余
2>添加数据会有异常
3>更新数据会有异常
4>删除会有异常
2、传递函数依赖
1> 存在数据冗余
2>添加数据会有异常
3>更新数据会有异常
4>删除会有异常
三大范式
1、第一范式
1-1、第一范式的目标是确保每列的原子性
1-2、如果每列都是不可再分的最小数据单元(也称为最小的原子单元),则满足第一范式
2、第二范式
2-1、如果一个关系满足1NF,并且除了主键以外的其他列,都依赖与该主键,则满足第二范式
2-2、第二范式要求每个表只描述一件事情
3、第三范式
3-1、如果一个关系满足第二范式,并且除了主键以外的其他列都不传递依赖于主键列,则满足第三范式
总结:
良好的数据库设计
1、节省数据的存储空间
2、能够保证数据的完整性
3、方便进行数据库应用系统的开发
糟糕的数据库设计
1、数据冗余、存储空间浪费
2、内存空间浪费
3、数据更新和插入的异常
阅读全文
0 0
- 数据库设计之三大范式
- 数据库设计原则之三大范式
- 数据库设计之三大范式
- 数据库设计之三大范式
- 数据库设计--三大范式
- 数据库设计三大范式
- 数据库设计三大范式
- 数据库设计三大范式
- 数据库设计三大范式
- 数据库设计三大范式
- 数据库设计三大范式
- 数据库设计三大范式
- 数据库设计三大范式
- 数据库设计三大范式
- 数据库设计三大范式
- 数据库设计三大范式
- 数据库设计三大范式
- 数据库设计三大范式
- 求一个数二进制中1的个数
- 操作系统
- select、poll、epoll优缺点总结
- 一般算术表达式转换成后缀式
- jsp编译、执行过程
- 数据库设计之三大范式
- Android 进程与线程总结
- Windows源码编译Hadoop 2.8.0
- Python中pandas.read_csv的参数整理
- 倍增LCA(bzoj 3732: Network)
- JDK与JRE/Client or Server模式JVM
- Android6.0 智能指针分析
- 《数据库SQL实战》获取所有员工当前的manager
- 2.1.5—线性表—Median of Two Sorted Arrays