数据库设计第一范式(1NF)
定义
第一范式要求关系数据库中一个实体的每一个属性都为不可再分解的基本数据单位。第一范式表达的核心思想的属性的原子性,是关系模式规范化的最低要求,否则,将有很多基本操作在这样的关系模式中实现不了。
1NF遵循以下4条规则:
- 数据表中的列是原子不可再拆分的
- 存储在列中的值属于同一个域
- 表中的所有列都有唯一的名称
- 数据行的存储顺序无关
示例
我们先看一个建立个人信息表的反面示例,如下表中所示。在这个示例中,我们并没有考虑1NF。
编号 | 个人信息 |
---|---|
001 | 张三,男,13912345678 |
002 | 李小四,女,13987654321 |
这个表把姓名性别放在同一列中,这样就会导致一个结果,即数据更新、查询、修改和使用都会比较麻烦。比如,在进行数据更新时,想把张三的手机号码更新,那就需要整个个人信息列的内容进行操作,需要先把"张三,男,13912345678”
拆分成三个字符串,然后再对手机段进行更新,最后重新组合后写回数据库。这样的操作不仅麻烦,而且有时候还会出错。
基于以上的问题,我们对这个表重新设计,将姓名性别拆分,新表结构如下所示。
编号 | 姓名 | 性别 | 手机 |
---|---|---|---|
1001 | 张三 | 男 | 13912345678 |
1002 | 李小四 | 女 | 13987654321 |
在这个新的结构中,我们把姓名、性别和手机号。这样,再进行数据管理就方便多了。比如,同样是手机号更新,我们只需要对手机
这列进行更新即可。
经过个性,此表已经基本满足1NF了,在大多数的场合都是可以正常工作的,但是如果严格按1NF的原则来说,仍然不是完全原子性,因为姓和名其实也是可以拆开的。在很多场景吵,可能需要对姓名进行区分,那么这个表就不满足需求。如果想要区别,只要简单的拆分即可,最终的表如下所示。
编号 | 姓 | 名 | 性别 | 手机 |
---|---|---|---|---|
1001 | 张 | 三 | 男 | 13912345678 |
1002 | 李 | 小四 | 女 | 13987654321 |
总结
第一范式的要求非常明确,即尽可能的拆分数据元素,使每个字段都是独立的个体,从而在数据关联时,可以方便地进行关联和修改。
数据库设计第一范式(1NF)相关推荐
- 数据库设计三大范式之第一范式不可违反
首先关于数据库三大范式是什么,我们不再多说,网上很多博客写的都很好,例如以下链接: https://blog.csdn.net/qq_26878363/article/details/81533273 ...
- mysql 企业数据库设计_MySQL数据库设计
MYSQL数据库设计规范 1.数据库命名规范 采用26个英文字母(区分大小写)和0-9的自然数(经常不需要)加上下划线'_'组成; 命名简洁明确(长度不能超过30个字符); 例如:user, stat ...
- 数据库设计原则和需要考虑的因素
MYSQL数据库设计规范1.数据库命名规范采用26个英文字母(区分大小写)和0-9的自然数(经常不需要)加上下划线'_'组成;命名简洁明确(长度不能超过30个字符);例如:user, stat, lo ...
- 数据库设计(五)第一范式(1NF)?
In our last tutorial we learned and understood how data redundancy or repetition can lead to several ...
- MySQL 学习笔记(14)— 数据库设计流程、实体关系图、第一范式、第二范式、第三范式、外键使用
本文参考:https://gitbook.cn/gitchat/column/undefined/topic/5db92c12a9c3a53bc3800f0c 1. 数据库设计流程 数据库设计是对数据 ...
- 【转】关系型数据库的设计范式 1NF 2NF 3NF BCNF
本文转载自:https://www.cnblogs.com/langdashu/p/5924082.html 一.缘由: 要做好DBA,就要更好地理解数据库设计范式.数据库范式总结概览: 为了更好地理 ...
- 数据库第一范式1NF,第二范式2NF,第三范式3NF详解
文章目录 一,超码.主码.候选码之间的定义与联系 二,函数依赖. 三,三大范式 第一范式(1NF): 第二范式(2NF): 第三范式(3NF): BCNF 一,超码.主码.候选码之间的定义与联系 码是 ...
- 从第一范式到第二范式所做的操作是_数据库设计三大范式
为了建立冗余较小.结构合理的数据库,设计数据库时必须遵循一定的规则.在关系型数据库中这种规则就称为范式.范式是符合某一种设计要求的总结.要想设计一个结构合理的关系型数据库,必须满足一定的范式. 在实际 ...
- 详解数据库设计准则: 第一范式,第二范式,第三范式
为了建立冗余较小.结构合理的数据库,设计数据库时必须遵循一定的规则.在关系型数据库中这种规则就称为范式.范式是符合某一种设计要求的总结.要想设计一个结构合理的关系型数据库,必须满足一定的范式. 在实际 ...
最新文章
- Log信息获取调用类和调用方法名的实现原理
- Altium Designer旋转PCB、PCB中绕某点旋转
- 新网站如何推广 新建设的网站如何宣传
- 20145202马超《信息安全系统设计基础》实验二总结
- 前端js判空处理,js字符串判空,js数组判空
- python用法查询笔记_Python爬虫学习笔记(三)
- 阿里云root密码修改
- sql cast()函数
- centos中多台主机免密登录_centos免密码使用密钥登录
- Oracle listener静态注册和动态注册(zt)
- 基于redis和R语言构建并行计算平台(yiyou)
- python标准库 —— os模块
- QT绘图底层是如何适配各种操作系统的
- 计算机视觉 – Computer Vision | CV
- GC算法很通俗的讲解hot
- Grand Theft Auto V 图形研究(2)
- 汇总2022年12月托福toefl考试/解析答案为你助力
- python 游戏按键精灵 PyDirectInput介绍
- Windows 10 使用命令行格式化磁盘/U盘
- python爬虫浏览器伪装