数据库三大范式通俗理解
官方的解释就不放了,想看的可以去百度!
通俗的理解:
第一范式就是属性不可分割,每个字段都应该是不可再拆分的。
比如一个字段是姓名(NAME),在国内的话通常理解都是姓名是一个不可再拆分的单位,这时候就符合第一范式;
但是在国外的话还要分为FIRST NAME
和LAST NAME
,这时候姓名这个字段就是还可以拆分为更小的单位的字段,就不符合第一范式了。
第二范式就是要求表中要有主键,表中其他其他字段都依赖于主键,因此第二范式只要记住主键约束就好了。
比如说有一个表是学生表,学生表中有一个值唯一的字段学号,那么学生表中的其他所有字段都可以根据这个学号字段去获取,依赖主键的意思也就是相关的意思,因为学号的值是唯一的,因此就不会造成存储的信息对不上的问题,即学生001的姓名不会存到学生002那里去。
第三范式就是要求表中不能有其他表中存在的、存储相同信息的字段,通常实现是在通过外键去建立关联,因此第三范式只要记住外键约束就好了。
比如说有一个表是学生表,学生表中有学号,姓名等字段,那如果要把他的系编号,系主任,系主任也存到这个学生表中,那就会造成数据大量的冗余,一是这些信息在系信息表中已存在,二是系中有1000个学生的话这些信息就要存1000遍。因此第三范式的做法是在学生表中增加一个系编号的字段(外键),与系信息表做关联。
一般地,在进行数据库设计时,应遵循上面的三大原则,也就是我们通常说的三大范式。
第一范式要求确保表中每列的原子性,也就是不可拆分(表里面的每个属性都是具有独立性即独立的,不能再分为!);
第二范式要求确保表中每列与主键相关,而不能只与主键的某部分相关(主要针对联合主键),主键列与非主键列遵循完全函数依赖关系,也就是完全依赖;
如果一个表中存在(在满足第一范式的情况下)一个主键对应多个其他属性的情况,即一对多的存在,那么我们就应该把主键和属性分离出来成多个表,分离出来的两个表是一对多的关系;
第三范式确保主键列之间没有传递函数依赖关系,也就是消除传递依赖。简而言之就是把表忘你认为最合适的最细化去分,三大范式只是一般设计数据库的基本理念,可以建立冗余较小、结构合理的数据库。
如果有特殊情况,当然要特殊对待,数据库设计最重要的是看需求跟性能,需求>性能>表结构
。所以不能一味的去追求范式建立数据库
数据库三大范式通俗理解相关推荐
- 数据库逻辑设计之三大范式通俗理解
一.第一范式 1NF是对属性的原子性,要求属性具有原子性,不可再分解: 表:字段1. 字段2(字段2.1.字段2.2).字段3 ...... 如学生(学号,姓名,性别,出生年月日),如果认为最后一列还 ...
- 数据库三大范式通俗解析
三大范式 一.三大范式通俗解释: 二.详解 一.三大范式通俗解释: (1)简单归纳: 第一范式(1NF):字段不可分: 第二范式(2NF):有主键,非主键字段依赖主键: 第三范式(3NF):非主键字段 ...
- 浅谈数据库三大范式的理解
首先声明一下,我的这个回答是个人工作总结,不适合考试答题昂. 欢迎关注我的博客. 前言:数据库设计其实不仅仅限制于三个范式,往下其实还有很多种,但对于大多数人来说,你又不搞科研,不造飞机大炮,掌握三大 ...
- 数据库三大范式的理解
一: 引言 作为一个数据库的学习者,搞懂关系数据库的三大范式是很有用的.然而教科书上有关数据库范式的介绍都是采用学术性的定义,语法羞涩,让人难懂,故写下自己对数据库范式的理解,给初学者提供帮助,也备日 ...
- 数据库三范式通俗理解 -数据库三范式官方定义
数据库三范式 官方定义 第一范式(1NF):数据库表中的字段都是单一属性的,不可再分. 第二范式(2NF):数据库表中不存在非关键字段对任一候选关键字段的部分函数依赖 第三范式(3NF):在第二范式的 ...
- mysql三大范式 答案_数据库逻辑设计之三大范式通俗理解,一看就懂,书上说的太晦涩...
一.第一范式 1NF是对属性的原子性,要求属性具有原子性,不可再分解:表:字段1. 字段2(字段2.1.字段2.2).字段3 ...... 如学生(学号,姓名,性别,出生年月日),如果认为最后一列还可 ...
- 数据库三大范式的理解(大白话篇)
第一范式:列的原子性,即每一列(每一个属性,字段)都不可分割. 举例:销售成本=成本的单价*销售的数量,所以这里就不可以以销售成作为字段. 第二范式:非主属性必须完全依赖于主属性,不能存在只依赖于主属 ...
- mysql三大范式 答案_数据库三大范式定义与理解
数据库三大范式定义与理解 发布时间:2018-06-04 10:24, 浏览次数:291 一.第一范式(1NF) 要求: 要求:每一个分量必须是不可分的数据项. 特点: 1)有主键,且主键不能为空. ...
- 数据库设计的三大范式通俗解释
一.三大范式通俗解释: (1)简单归纳: 第一范式(1NF):字段不可分: 第二范式(2NF):有主键,非主键字段依赖主键: 第三范式(3NF):非主键字段不能相互依赖. (2)解释: 1NF:原子性 ...
最新文章
- libuv 高性能 事件驱动 跨平台 i/o库 简介
- UVA11729突击战(汇报和执行任务)
- mysql5.5源码包安装_mysql的源码包方式安装(mysql5.5)
- python perl 日本的应用_将perl-soap应用程序移植到python
- Spring Boot中使用Ribbon软负载
- labview linux 内核 不匹配,Linux CentOS7(或Ubuntu)中安装NI-VISA后一打开范例Simple Serial.vi就闪退,LabVIEW就崩溃。...
- 河外动态:疑似UFO的编队在太阳附近徘徊
- win10 python 3.7 pip install tensorflow
- 解决:An HTTP error occurred when trying to retrieve this URL.
- 高仿精仿快播应用android源码下载
- i印通校园自助打印系统
- 制作bt种子(非pt站私有种)
- 电脑W ndoWs未能启动怎么办,电脑出现windows未能启动怎么办
- 投稿流程以及审稿状态
- PHPCMS模块分析之广告模块详解----北冥神功破解法(二)
- 闲置台式机+文件服务器,闲置电脑打造NAS:安装群晖NAS系统
- fiddler——插件下载——js文件格式、图片等
- 内行看门道:看似“佛系”的《QQ炫舞手游》,背后的音频技术一点都不简单
- 【数据篇01】什么是PowerPivot?和PowerBI什么关系?
- EMC isilon 磁盘更换手册
热门文章
- centos php 启动命令
- 已解决java.util.concurrent.ExecutionException异常的正确解决方法,亲测有效!!!
- Idea解决SVN的代码冲突
- Python 函数用法之(eval函数)
- php微信地理位置,php,微信公众号,获取用户地理位置 定位 经纬度
- 品牌床垫的数字与服务之路
- AndroidStudio简单计算器的实现
- 苹果6访问限制密码4位_Mac笔记本简单4步查看已经连接的Wi-Fi密码!
- [翻译]辉煌帝传说 第一章 太阳和黑水晶(3)
- 线程处理任务超时处理