第一范式,第二范式,第三范式
第一范式
存在非主属性对码的部分依赖关系 R(A,B,C) AB是码 C是非主属性 B-->C B决定C C部分依赖于B
第一范式
定义:如果关系R 中所有属性的值域都是单纯域,那么关系模式R是第一范式的
那么符合第一模式的特点就有
1)有主关键字
2)主键不能为空,
3)主键不能重复,
4)字段不可以再分
例如:
StudyNo | Name | Sex | Contact
20040901 john Male Email:kkkk@ee.net,phone:222456
20040901 mary famale email:kkk@fff.net phone:123455
以上的表就不符合,第一范式:主键重复(实际中数据库不允许重复的),而且Contact字段可以再分
所以变更为正确的是
StudyNo | Name | Sex | Email | Phone
20040901 john Malekkkk@ee.net 222456
20040902 mary famalekkk@fff.net 123455
第二范式
存在非主属性对码的传递性依赖 R(A,B,C) A是码 A -->B ,B-->C
定义:如果关系模式R是第一范式的,而且关系中每一个非主属性不部分依赖于主键,称R是第二范式的。
所以第二范式的主要任务就是
满足第一范式的前提下,消除部分函数依赖。
StudyNo | Name | Sex | Email | Phone | ClassNo | ClassAddress
01 john Malekkkk@ee.net 222456 200401 A楼2
01 mary famalekkk@fff.net 123455 200402 A楼3
这个表完全满足于第一范式,
主键由StudyNo和ClassNo组成,这样才能定位到指定行
但是,ClassAddress部分依赖于关键字(ClassNo-〉ClassAddress),
所以要变为两个表
表一
StudyNo | Name | Sex | Email | Phone | ClassNo
01 john Malekkkk@ee.net 222456 200401
01 mary famalekkk@fff.net 123455 200402
表二
ClassNo | ClassAddress
200401 A楼2
200402 A楼3
第三范式
不存在非主属性对码的传递性依赖以及部分性依赖 ,
StudyNo | Name | Sex | Email | bounsLevel | bouns
20040901 john Malekkkk@ee.net 优秀 $1000
20040902 mary famalekkk@fff.net 良 $600
这个完全满足了第二范式,但是bounsLevel和bouns存在传递依赖
更改为:
StudyNo | Name | Sex | Email | bouunsNo
20040901 john Malekkkk@ee.net 1
20040902 mary famalekkk@fff.net 2
bounsNo | bounsLevel | bouns
1 优秀 $1000
2 良 $600
这里我比较喜欢用bounsNo作为主键,
基于两个原因
1)不要用字符作为主键。可能有人说:如果我的等级一开始就用数值就代替呢?
2)但是如果等级名称更改了,不叫 1,2 ,3或优、良,这样就可以方便更改,所以我一般优先使用与业务无关的字段作为关键字。
一般满足前三个范式就可以避免数据冗余。
第一范式,第二范式,第三范式相关推荐
- MySQL (4) 第一范式 第二范式 第三范式 BC范式
第一范式 第一范式:所有属性都是不可分割的原子值. 也就是每个属性都是不可再分的. 例如下图就不符合第一范式的要求 实际上,1NF是所有关系型数据库的最基本要求,你在关系型数据库管理系统(RDBMS) ...
- 第一范式第二范式第三范式学习笔记
三楚白云生佛手,九江寒月照禅心. --李日华<佛手岩> 文章目录 前言 一.第一范式(1NF) 二.第二范式(2NF) 三.第三范式(3NF) 四.参考学习视频 五.名词解释&知识 ...
- 第一范式 第二范式 第三范式 BC范式
第一范式 第一范式:所有属性都是不可分割的原子值. 也就是每个属性都是不可再分的. 例如下图就不符合第一范式的要求 实际上,1NF是所有关系型数据库的最基本要求,你在关系型数据库管理系统(RD ...
- 第一范式 第二范式 第三范式理解
数据库中设计一个好的标准化范式能大大减少数据冗余,增强数据的易操作性. 范式的演变: 第一范式:表中没有重复数据组 属性不可以再分,具有一个主键(主键组) 例如: 出现从重复的数据组,把它转换为第一范 ...
- java的第一范式,数据库第一范式第二第三范式关系详解
一.范式的定义 程序员在做数据库设计时不是心血来潮胡乱设计的,而是需要遵循一定的规范而为之,这些规范就是为了设计出合理而实用的数据库而总结的的,专门适用于任何关系型数据库. 数据库设计在很大程度上取决 ...
- 第一范式、第二范式、第三范式、巴斯-科德范式、第四范式、主码、候选码、码详解
目录 数据库逻辑设计 主码.候选码.码 第一范式 第二范式 第三范式 巴斯-科德范式 第四范式 数据库逻辑设计 前面我们讲了第二范式,我们知道还有第三范式,那么第三范式的特点到底是什么呢?下面我们来一 ...
- MySQL - 高效的设计MySQL库表
文章目录 生猛干货 范式与反范式 范式 第一范式 第二范式 第三范式 第二范式 VS 第三范式 设计符合 2NF 的表 范式优缺点 反范式 范式 VS 反范式 MySQL 使用原则和设计规范 基本设置 ...
- 面试不知道如何回答这六大知识点,你还敢说熟悉MySQL?
文章目录 一.事务 什么是事务 事务的四大特性 事务的并发问题 ① 事务并发问题什么时候发生? ② 事务的并发问题有哪些? ③ 如何避免事务的并发问题? 二.索引 什么是索引 索引的优缺点 索引的设计 ...
- MySQL(三)数据库的六种约束、表的关系、三大范式
文章目录 数据库约束 NOT NULL(非空约束) UNIQUE(唯一约束) DEFAULT(缺省约束) PRIMARY KEY(主键约束) AUTO_INCREMENT 自增 FOREIGN KEY ...
- 《MySQL——数据表设计三大范式》
目录 数据表设计范式 第一范式 第二范式 第三范式 数据表设计范式 第一范式 数据表中的所有字段都是不可分割的原子值. 字段值还可以继续拆分的,就不满足第一范式,如下: 下面这个,更加贴合第一范式: ...
最新文章
- Ello讲述Haar人脸检测:易懂、很详细、值得 ...
- JSP+JavaBean+Servlet技术(MVC模型)
- iOS之深入解析分类Category的底层原理
- Kalman Filter 学习笔记
- 类文件到虚拟机(类加载机制)
- Java学习笔记_数组
- 52次课(mysql用户管理、常用sql语句、 mysql数据库备份恢复)
- 彻底理解js中的和||
- php parse url 中文,php parse_url()函数解析URL用法总结
- DB破解(暗黑破坏神辅助)使用方法
- 51单片机项目设计:WiFi视频小车制作教程、正点原子wifi摄像头模块应用、手机wifi控制
- 常用软件静默安装参数
- 国际化地区语言码对照表(i18n)
- calib matlab,使用Matlab Toolbox_calib进行摄像机标定
- 校验社会统一信用代码JAVA
- 玩家访问网站自动弹窗加QQ群方法以及详细代码
- JMS Message消息头、消息体、消息属性
- 推荐一款特别厉害的在线工具,程序员的百宝箱
- “龙芯杯”——全国大学生计算机系统能力培养大赛
- CUDA----.cpp文件和.cu文件应用区别
热门文章
- Python与开源GIS:在OGR中使用SQL语句进行查询
- 你是码农还是Geek?
- 简单脚本之显示系统当前的一些信息
- 我为什么免费给ipad做了一个大广告?
- go语言的安装、环境变量配置及简单使用
- Troubleshooting OpenStack 瘫痪 - 每天5分钟玩转 OpenStack(160)
- opencart配置United States Postal Service快递
- struts2启动报错com/opensymphony/xwork2/spring/SpringObjectFactory.java:220:-1
- CVSNT Manual
- 求$N^N$的首位数字