当前位置:网站首页>数据库三范式
数据库三范式
2022-08-02 14:22:00 【半度纳】
·范式:Normal Form,可缩写为NF
·在设计关系数据库时,遵从不同的规范要求,设计出合理的关系型数据库,这些不同的规范要求被称为不同的范式,各种范式呈递次规范(例如第1,第2第3),越高的范式数据库冗余越小.
·早期提倡的有三大范式,目前已经发展到6个范式,但一般只讨论最初的三大范式即可
数据库三范式:
-1NF:在关系模型中,对于添加一个规范要求,所有的域都应该是原子性的,即数据库表的 每一列都是不可分割的原子数据项,而不是集合,数组,记录等非原子数据项,简单来说就 是:列不可再分.
-2NF:在1NF的基础上,非码属性必须完全依赖于候选码,简单来说就是:非主属性不能依赖主键的一部分.
-3NF:在2NF基础上,任何非主属性不依赖于其它非主属性,简单来说就是:每列数据都与主键直接相关.
数据库范式的核心思想包括”消除冗余”,冗余的缺点在于:
-占用较多的存储空间
-不便于管理维护
-但是,适当冗余可提高查询性能
-数据库范式不是必须严格遵守的
实际使用原则:
·基本按照数据库范围来设计各数据表,但不完全遵循,并且:
-查询频率高且修改频率低的较短长度的数据允许冗余,特别是关联查询
-如果varchar类型的字段的值的长度相对可控,推荐使用char替代,因为char的效率 更高一些
-尽管varchar类型的理论长度可达65535,但如果可能超过5000(部分企业可能约定
为其它值),建议将其设计到另一张表中去,并与当前表关联一可能建议将字段类型改 为text
-可能会在当前表把长字符串值进行截取,便于获取简要信息
- 如果可行,建议使用更小的单位存储更大的数值,避免使用浮点类型,造成运算时
的误差,例如价值为“18.52元”的商品,存储为“1852分”
边栏推荐
猜你喜欢
随机推荐
Scala的模式匹配与样例类
makefile——rule概览
(三)文件操作之一——文件IO
页面返回顶部和固定导航栏js基础案例
时频分析之Wigner-Ville分布
The DOM event type
2022-07-20 第六小组 瞒春 学习笔记
对象和类总结
makefile——pattern rule
The difference and connection between dist, pdist and pdist2 in MATLAB
VsCode更新后,怎么使用使用快捷键同时生成多个元素
2022-7-15 第五组 瞒春 学习笔记
golang中使用泛型
数据库性能优化的误区!
2021 Huawei Cup Mathematical Modeling Contest E question - Ultra-Wideband (UWB) precise positioning problem under signal interference
test3
2022-07-27 第六小组 瞒春 学习笔记
移除元素 - 双指针
事件对象,事件流(事件冒泡和事件捕获)、事件委托、L0和L2注册等相关概念及用法
职工管理系统(SSM整合)








