第一范式(1NF)

每个属性都是不可分的基本数据项.(必须有主键,列不可分)

eg:非第一范式的表:(列可再分)

学院名称 高级职称人数
教授 副教授
信电学院 3 34
管理学院 5 23
外语学院 3 12

满足第一范式的表

学院名称 教授 副教授
信电学院 3 34
管理学院 5 23
外语学院 3 12


第二范式(2NF)

1NF基础上消除部分函数依赖,  消除数据冗余和增、删、改异常。

每个非主属性都完全函数依赖于主键

2NF关系举例:

不满足2NF的关系:

(学号, 课程名称) → (姓名, 年龄, 成绩, 学分)

满足2NF的关系:

(学号,课程名称) → (成绩)
(课程名称) → (学分)
(学号) → (姓名, 年龄)
ps:

完全函数依赖:在关系模式R(u)中,X,Y是U的子集,Y函数依赖于X 并且 Y非函数依赖于X的子集,则称Y完全函数依赖于X。X  f >Y)

部分函数依赖:在关系模式R(u)中,X,Y是U的子集,Y函数依赖于X 并且 Y函数依赖于X的子集)

函数依赖:某个属性集决定另一个属性集时,例如学生学号属性集Sno决定学生姓名属性集Sname,称Sname函数依赖于Sname )

平凡函数依赖:Y函数依赖于X,并且Y包含于X,例如(Sno)->(Sno)、(Sno、Sname)->(Sno))

非平凡函数依赖:Y函数依赖于X,并且Y不包含于X,例如(Sno,Sname)->(Ssex))


第三范式(3NF) 

2NF基础上消除传递函数依赖,属性集直接依赖于主键。

非第三范式表(Sno->BounsLevel,BounsLevel->BounsMoney)

Sno Sname Sage BounsLevel BounsMoney
1 Carrie 21 A 2000
2 Cherry 20 B 1500

第三范式表:(消除传递函数依赖)

Sno Sname Sage Bno
1 Carrie 21 1
2 Cherry 20 2
Bno BounsLevel BounsMoney
1 A 2000
2 B 1500

传递函数依赖:Y函数依赖于X,Z函数依赖于Y,且X不包含Y,X非函数依赖于Y,则称Z传递函数依赖于X。X  t  >Z)


鲍依斯-科得(巴斯)范式(BCNF)

3NF基础上消除主属性依赖,即不存在关键字段决定关键字段的情况。

(非主属性 :不包含在主码中的属性称为非主属性。)

反例:(SID->GID,GID->SID存在关键字决定关键字的情况)

SID(仓库ID)

GoodsID(商品ID)

MID(管理员ID)

GoodsNum(商品数量)

001

20170510

1

200

符合BCNF

StoreHouseID(仓库ID)

GoodsID(商品ID)

GoodsNum(商品数量)

001

20130104

200

StoreHouseID(仓库ID)

ManagerID(管理员ID)

001

1

 

sql 范式:1NF、2NF、3NF、BCNF(函数依赖)的更多相关文章

  1. 数据库范式1NF 2NF 3NF BCNF(实例)通俗易懂的讲解

    [转] 数据库范式1NF 2NF 3NF BCNF(实例)通俗易懂的讲解     本文对大多数初学数据库原理的同学绝对是个大福利,哈哈,完完整整的看完此篇博文一定能够清晰地理解数据库的四大范式.    ...

  2. [MySQL] 关系型数据库的设计范式 1NF 2NF 3NF BCNF

    一.缘由: 要做好DBA,就要更好地理解数据库设计范式.数据库范式总结概览: 为了更好地理解数据库的设计范式,这里借用一下知乎刘慰老师的解释,很通俗易懂.非常感谢!   二.具体说明: 首先要明白”范 ...

  3. 数据库范式1NF 2NF 3NF详细阐述

    范式:关系数据库中的关系是要满足一定要求的,满足不同程度要求的不同范式.满足最低要求的叫第一范式,简称1NF ,在第一范式中满足进一步要求的为第二范式,其余以此类推.通俗来说是满足数据库关系表中的一套 ...

  4. 【转】数据库范式(1NF 2NF 3NF BCNF)详解一

    以下内容转自:http://jacki6.iteye.com/blog/774866 --------------------------------------------分割线---------- ...

  5. 数据库范式(1NF 2NF 3NF BCNF)详解一

    数据结构设计模式编程制造 数据库的设计范式是数据库设计所需要满足的规范,满足这些规范的数据库是简洁的.结构明晰的,同时,不会发生插入(insert).删除(delete)和更新(update)操作异常 ...

  6. 数据库范式(1NF 2NF 3NF BCNF)

    http://blog.csdn.net/xuxurui007/article/details/7738330 http://www.cnblogs.com/laodao1/archive/2009/ ...

  7. 数据库范式(1NF 2NF 3NF BCNF)详解

    数据库的设计范式是数据库设计所需要满足的规范,满足这些规范的数据库是简洁的.结构明晰的,同时,不会发生插入(insert).删除(delete)和更新(update)操作异常.反之则是乱七八糟,不仅给 ...

  8. 转:数据库范式(1NF 2NF 3NF BCNF)

    数据库的设计范式是数据库设计所需要满足的规范,满足这些规范的数据库是简洁的.结构明晰的,同时,不会发生插入(insert).删除(delete)和更新(update)操作异常.反之则是乱七八糟,不仅给 ...

  9. 【转】数据库范式(1NF 2NF 3NF BCNF)

    范式判断流程图 1. 四种范式之间关系 2.第二范式.第三范式.BCNF区别: 2NF:非主键列和主键列之间,是完全依赖于主键,还是依赖于主键的一部分(只依赖某个主键): 3NF:非主键列之间,不存在 ...

  10. 【转】数据库范式(1NF 2NF 3NF BCNF)详解二

    以下内容转自:http://jacki6.iteye.com/blog/774889 -------------------------分割线----------------------------- ...

随机推荐

  1. 开源文件服务器file-service介绍

    file-service 一个基于ASP.NET Core的可伸缩.通用的文件服务器. 通常后端项目可能会有头像.图片.音频.视频等上传/下载需求,这些需求都可以抽象为文件服务. 功能特点 支持Lin ...

  2. Apache与php快速部署web服务

    [本文出自天外归云的博客园] 在一台服务器上临时起个web服务,读取服务器上的cfs文件内容并显示在页面上,做一个简单的web请求处理. 首先找到apache,在conf文件夹下vi httpd.co ...

  3. [爬虫]采用Go语言爬取天猫商品页面

    最近工作中有一个需求,需要爬取天猫商品的信息,整个需求的过程如下: 修改后端广告交易平台的代码,从阿里上传的素材中解析url,该url格式如下: https://handycam.alicdn.com ...

  4. 不同语言的水仙花性能比较【Test1W】

    看了大佬@鱼丸粗面一碗的文章:<这段代码,c 1秒,java 9秒,c# 14秒,而python...>,基于水仙花数的各种语言1W次性能比较,觉得很有意思.于是开启cv大法,把我有环境的 ...

  5. [微信小程序] 认识微信小程序及开发环境搭建

    微信公众平台首页 https://mp.weixin.qq.com 微信公众平台测试帐号系统 https://open.weixin.qq.com/connect/qrconnect?appid=wx ...

  6. 6 个开源的家庭自己主动化工具 | Linux 中国

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/F8qG7f9YD02Pe/article/details/79466841 wx_fmt=jpeg& ...

  7. Android的TextView设置加粗对汉字无效

    //not work textView.setTypeface(Typeface.defaultFromStyle(Typeface.BOLD)); //work! static public voi ...

  8. 必问的Java集合框架面试题

    Arraylist 与 LinkedList 异同 是否保证线程安全: ArrayList 和 LinkedList 都是不同步的,也就是不保证线程安全: 底层数据结构: Arraylist 底层使用 ...

  9. cc攻击和ddos攻击

    DoS攻击.CC攻击的攻击方式和防御方法 DDoS介绍 DDoS是英文Distributed Denial of Service的缩写,意即“分布式拒绝服务”,那么什么又是拒绝服务(Denial of ...

  10. [Golang] kafka集群搭建和golang版生产者和消费者

    一.kafka集群搭建 至于kafka是什么我都不多做介绍了,网上写的已经非常详尽了. 1. 下载zookeeper  https://zookeeper.apache.org/releases.ht ...