数据库---三大设计范式
第一范式
数据表中的所有字段都是不可分割的。
例如:我们创建一个地址表,我们插入地址信息:中国陕西省西安市长安区。
这种信息就可以进行拆分,我们称其不满足第一范式。所以我们可以将其进行划分。
例如:我们可以将地址细分为:国家,省份,市区,
例如上述的字段已经不能再进行拆分,所以我们称其为第一范式。
第二范式
在满足第一范式前提下,除主键外每一列都完全依赖主键。如果要出现不完全依赖,只能发生在联合主键下。
例如:
黄色标识的为主键:我们发现产品名称只依赖于产品ID这个主键,客户名称只依赖于客户ID这个主键,所以我们发现其不满足第二范式。
解决方法:表进行拆分。我们可以将该表分为两个,一个是产品表,一个是客户表。
第三范式
必选满足第二范式的前提下,除开主键的其他列不能有传递依赖的关系。
例如:我们在一张表里面有多个字段之间有传递关系,这样不满足第三范式。
上述表中就有传递依赖:我们可以通过电话找到学生姓名,我们也可以通过宿舍号找到学生姓名,所以我们需要对上述表进行拆分。
注意:范式的设计不是越详细越好,因为有的范式,我们设计出来发现基本不使用,所以范式的设计需要结合实际。
数据库---三大设计范式相关推荐
- 【转】关系型数据库的设计范式 1NF 2NF 3NF BCNF
本文转载自:https://www.cnblogs.com/langdashu/p/5924082.html 一.缘由: 要做好DBA,就要更好地理解数据库设计范式.数据库范式总结概览: 为了更好地理 ...
- MySQL - 数据库表设计 - 范式
目录 一.数据库设计的重要性 二.范式 - 简介: 1.什么是范式? 第一范式 - 单一列 第二范式 - 中间表 - 一对多 第三范式 - 不产生中间表 - 一对一.多对一 三.数据库表设计的注意要点 ...
- Java学习日志Day29_数据库的约束_备份和还原_三大设计范式_多表查询
-- 数据库的约束 -- 就是约束用户操作表的行为 -- 针对一些字段设置用户的限制!-- 默认约束 :default(当用户没有插入指定的这个字段,启用默认约束--->默认值)-- 创建一个张 ...
- 12、数据库的设计范式
设计的数据表一般都是根据实际业务实体模型进行创建,为了提高存储的效率,设计数据表时一般按着几个标准进行设计 第一范式 每个字段的数据具有原子性,使用字段的数据时不用再解析,可直接使用 第二范式 表的每 ...
- 数据库设计范式实例解析
设计范式(范式,数据库设计范式,数据库的设计范式)是符合某一种级别的关系模式的集合.构造数据库必须遵循一定的规则.在关系数据库中,这种规则就是范式.关系数据库中的关系必须满足一定的要求,即满足不同的范 ...
- 数据库三大范式(重要)
转自微信 上周四下午的VIP试听课是由芒果给大家介绍的MySQL的一些基础知识,在这里芒果给大家分享其中的一部分内容--对数据库三大范式做个小介绍: 范式(数据库的设计范式)是符合某一种级别的关系模式 ...
- SQL Server 进阶 01 数据库的设计
SQL Server 进阶 01 数据库的设计 本篇目录 课程内容回顾及介绍 为什么需要规范的数据库设计 设计数据库的步骤 绘制E-R(实体-关系)图 实体-关系模型 如何将E-R图转换为表 数据规范 ...
- (三) 数据库的设计
2.为什么需要规范的数据库设计 您也许会问,在第一阶段,根据业务需求,我们直接建库.建表,插入测试数据,然后再查询数据,为什么现在需要强调先设计再建库.建表呢? 原因非常简单,正如我们修造建筑物一样, ...
- Java学习笔记:数据库中的范式和反范式
范式是关系数据库理论的基础,也是我们在设计数据库结构过程中所要遵循的规则和指导方法.数据库的设计范式是数据库设计所需要满足的规范.只有理解数据库的设计范式,才能设计出率.优雅的数据库,否则可能会设计出 ...
最新文章
- 【Harvest源码分析】NuttallWindow
- Python入门100题 | 第068题
- 不满俄欧“北溪-2”项目 美驻德大使威胁制裁德国企业
- c# 操作oracle数据库,C#连接oracle数据库增删改查实例
- java中函数_java中的函数
- vsftpd增加用户 linux,Ubuntu Linux中vsFTP添加用户
- 雷军恭喜苏炳添全运会夺冠:你是小米精神的最好代言
- Js中动态追加代码后,之前定义的Js不再起作用
- SQLServer 2000中,存储过程和用户自定义函数具体的区别??
- 接口报params province error_Python接口测试实践之用例封装及测试报告生成
- controller层要写什么_别再写满屏的try-catch了,真丑,全局异常处理不会吗?
- java 23中设计模式
- Spring中的@Autowired,@Qualifier和@Primary注解
- 人人都说风口的二次元还是门好生意吗?——动漫市场分析
- ubuntu安装teamview
- IOS 混合开发 手势返回控制
- 网站原创文章被盗用怎么办?
- 计算机在化学中论文3000字,计算机在化学中的应用
- 认识Python(python起源、设计、特点及编译型语言、解释型语言)
- 【ML】关于什么是概率图模型?
热门文章
- 力扣算法题—076最小覆盖子串
- Vue源码解析:虚拟dom比较原理
- (十七)Java springcloud B2B2C o2o多用户商城 springcloud架构-消息驱动 Spring Cloud Stream...
- cocos2dx[3.2](11)——新回调函数std::bind
- windows下用php开发类似百度文库应用需要的工具和问题
- Mathematica实现微分算子功能
- SQL SERVER 数据库导入,导出之Bcp命令示例
- 【转】HTML5杂谈 概念与现行游戏 割绳子 宝石迷阵
- 7、监控和管理Linux进程
- 11、doCreateBean中的initializeBean