数据库中1NF,2NF,3NF的判别
参照:https://blog.csdn.net/qq_28888837/article/details/98733448
1NF:每一个都是最原子化。
2NF:找到主键后,每一个非主键对主键都是完全依赖。
“想要看是否为2NF,首先要找表的主键,之后看所有的非主键要对关键码是完全依赖,也就是不存在部分依赖,如果有部分依赖则不满足2NF,否则满足2NF,比如一个关系的关键码为(x,y),非主属性为z首先因为(x,y)是关键码,所以一定能得到z,如果存在x->z或者y->z则说明z是部分依赖,则不满足2NF,否则满足2NF。”
3NF:满足2NF下,非主键没有依赖关系。
“要想达到3NF,首先要判断是否为2NF,然后看里面是否有传递依赖,其实就是看其他的非主键之间有没有依赖,如果有主键x,还有非主键y z w,如果有其他的非主键之间的依赖比如y->z 则不满足3NF,因为有主键肯定能推出非主键即,x->y,而又有y-z,所以存在传递依赖,则不满足3NF,否则满足3NF”
BC范式:满足3NF下,每个主键里的元素,对于不包含这个元素的主键都是完全依赖。
“首先满足3NF,然后主要是看主键了,所有的主键对于每一个不包含他的其他主键也要是完全依赖,比如主键(x,y,z)
,那么z对(x,y)
要是完全依赖。”
数据库中1NF,2NF,3NF的判别的更多相关文章
- 数据库范式1NF 2NF 3NF BCNF(实例)通俗易懂的讲解
[转] 数据库范式1NF 2NF 3NF BCNF(实例)通俗易懂的讲解 本文对大多数初学数据库原理的同学绝对是个大福利,哈哈,完完整整的看完此篇博文一定能够清晰地理解数据库的四大范式. ...
- 数据库范式1NF 2NF 3NF详细阐述
范式:关系数据库中的关系是要满足一定要求的,满足不同程度要求的不同范式.满足最低要求的叫第一范式,简称1NF ,在第一范式中满足进一步要求的为第二范式,其余以此类推.通俗来说是满足数据库关系表中的一套 ...
- 数据库三大范式(1NF,2NF,3NF)及ER图
数据库三大范式(1NF,2NF,3NF)及ER图 百度官方解释: 设计关系数据库时,遵从不同的规范要求,设计出合理的关系型数据库,这些不同的规范要求被称为不同的范式,各种范式呈递次规范,越高的范式数据 ...
- 数据库范式(1NF/2NF/3NF)
本文转载自数据库范式(1NF/2NF/3NF) 概述 范式:英文名称是 Normal Form,它是英国人 E.F.Codd(关系数据库的老祖宗)在上个世纪70年代提出关系数据库模型后总结出来的,范式 ...
- 1NF | 2NF | 3NF的区分以及什么是函数依赖、部分函数依赖、值传递依赖(最详细的讲解1NF、2NF、3NF的关系)
1NF | 2NF | 3NF的区分以及什么是函数依赖.部分函数依赖.值传递依赖 符合3NF一定符合2NF.一定符合1IF 简单区分.2NF不存在部分函数依赖,3NF不存在传递函数依赖 第一范式1NF ...
- [MySQL] 关系型数据库的设计范式 1NF 2NF 3NF BCNF
一.缘由: 要做好DBA,就要更好地理解数据库设计范式.数据库范式总结概览: 为了更好地理解数据库的设计范式,这里借用一下知乎刘慰老师的解释,很通俗易懂.非常感谢! 二.具体说明: 首先要明白”范 ...
- 【转】数据库范式(1NF 2NF 3NF BCNF)详解一
以下内容转自:http://jacki6.iteye.com/blog/774866 --------------------------------------------分割线---------- ...
- 数据库范式(1NF 2NF 3NF BCNF)详解一
数据结构设计模式编程制造 数据库的设计范式是数据库设计所需要满足的规范,满足这些规范的数据库是简洁的.结构明晰的,同时,不会发生插入(insert).删除(delete)和更新(update)操作异常 ...
- 数据库范式(1NF 2NF 3NF BCNF)
http://blog.csdn.net/xuxurui007/article/details/7738330 http://www.cnblogs.com/laodao1/archive/2009/ ...
- 数据库范式(1NF 2NF 3NF BCNF)详解
数据库的设计范式是数据库设计所需要满足的规范,满足这些规范的数据库是简洁的.结构明晰的,同时,不会发生插入(insert).删除(delete)和更新(update)操作异常.反之则是乱七八糟,不仅给 ...
随机推荐
- HTTP相关知识学习
五层网络模型 应用层 包括HTTP,FTP... HTTP支持客户/服务器模式 简单快速有getpost方法 灵活,可以传输任意类型 无连接,每次连接只处理一个请求,收到应答就关闭 无状态,对于事物处 ...
- MFC工程调用cJSON.c出现C1853错误的解决办法(老版本C文件加入新的C++项目)
环境 Visual Studio 2017 现象 头文件cJSON.h与源文件cJSON.c添加入工程后,编译出现如下C1853错误. cjson.c : fatal error C1853: &qu ...
- backward函数中gradient参数的一些理解
当标量对向量求导时不需要该参数,但当向量对向量求导时,若不加上该参数则会报错,显示"grad can be implicitly created only for scalar output ...
- 一种典型的不知循环次数的c语言循环问题
问题如图 代码如下 1 #define _CRT_SECURE_NO_WARNINGS 1 2 #include<stdio.h> 3 int main() 4 { 5 puts(&quo ...
- LeetCode 刷题感想之动态规划
在 LeetCode/剑指Offer 上刷了500题左右了,应该写一篇文章总结一下自己的感想.因为我自己是测试,所以从测试角度来写感受吧. 先说动态规划. 什么是动态规划?是经典算法思想之一,是自底向 ...
- Oracle “ORA-12154: TNS: 无法解析指定的连接标识符”错误------网络摘录
相信使用过Oracle数据库的人一定碰到过"ORA-12154: TNS: 无法解析指定的连接标识符"错误,我在此做一个小小的总结. 在程序中连接Oracle数据库的方式与其他常用 ...
- Visual Studio快速清除程序中的空行 删除空行
Ctrl+H; 正则替换 ^(?([^\r\n])\s)*\r?$\r?\n 快速删除多个空行
- Mongodb可参考的查询
条件AND 1 db.csr_log_info.find({$and:[{enterTime :{$regex:/2021-08-31 18:01/}},{enterTime :{$ne:" ...
- STL练习-看病要排队
题目http://acm.hdu.edu.cn/showproblem.php?pid=1873 看病要排队这个是地球人都知道的常识. 不过经过细心的0068的观察,他发现了医院里排队还是有讲究的 ...
- react 收集表单数据 react-hook-form
import React from 'react' import ReactDOM from 'react-dom' import { useForm } from 'react-hook-form' ...