当前位置: 首页 > article >正文

数据库设计之三范式

第一范式(1NF)

列具有原子性,设计列要做到列不再拆分。

idcontry
1中国上海
2美国纽约

以上的表设计就不满足第一范式,因为contry对应的值可以拆分

so,满足第一范式的设计如下:

idcontrycity
1中国上海
2美国纽约

第二范式(2NF)

在满足第一范式的基础上、满足一张表只能描述一件事情下面这张表既包含了学生信息又包含了课程信息所以不满足第二范式,正确的是把学生和课程拆开用分别用学生和课程表存储对应的信息。

idnamesexcoursesource
1tommaleJava100
2lucyfemalePython800

第三范式(3NF)

在满足第二范式的基础上,满足消除传递依赖(表中的数据如果能被推导出来,就不要设计一个字段单独存储)

idnamenumberpricetotalprice
1牙膏20501000
2袜子30601800

三范式就是一个空间最省原则。

反三范式

通过增加冗余或者重复数据 来提高数据库的读性能
浪费存储空间,节省查询时间
冗余字段:某一个字段属于一张表,但是它又在另外一张表中

总结

1.尽量根据三范式规则去设计数据库
2.可以合理的加入冗余字段减少join操作让数据库执行的更快。


http://www.kler.cn/a/155797.html

相关文章:

  • 深入理解接口测试:实用指南与最佳实践5.0(一)
  • jenkins提交gitee后自动部署
  • 【Qt】在 Qt Creator 中使用图片资源方法(含素材网站推荐)
  • C# 集合与泛型
  • WPF 应用程序中使用 Prism 框架时,有多种方式可以注册服务和依赖项
  • go T 泛型
  • 【计算机视觉】基于OpenCV计算机视觉的摄像头测距技术设计与实现
  • vue中keep-alive的使用
  • 【华为OD题库-049】评论转换输出-java
  • Android 13.0 Camera2 静音时拍照去掉快门声音
  • 条款2:不要滥用宏
  • 【Linux服务器Java环境搭建】05 Node JS安装及环境变量配置
  • 【数据库】基于封锁的数据库调度器,以及等待锁处理的优先级策略
  • 电磁兼容EMC理论基础汇总
  • ubuntu 下载编译 opencv4.2.0并检验
  • 详细学习Pyqt5的10种容器(Containers)
  • STM32 SCF文件
  • 有什么值得推荐的node. js练手项目吗?
  • Redis 数据结构详解
  • 共享智能指针shared_ptr
  • windows 映射 webdav 为本地磁盘
  • ChatGPT 的 18 种玩法,你还不会用吗?
  • 31-WEB漏洞-文件操作之文件包含漏洞全解
  • 前端下拉框select标签的插件——select2.js
  • Python与GPU编程快速入门(二)
  • springboot centos集成 OpenOffice 实现 在线预览 doc excel docx 成pdf的 并且包含中文包和英文包和安装