数据库范式小结 1NF 2NF BCNF 3NF 4NF DB normal form

1. 1NF指关系中的每个变量不可再分

2. 2NF指消除了非主属性对码(candidate key)的部分依赖的1NF

比如(S#,C#)-> SN ,(S#,C#)-> SD 。S#->SD那么SD部分依赖与候选键,不是2NF,仅仅能是1NF;分解为SC(S#, C#, G)和S_SD(S#,SN,SD,DEAN)就是2NF

3. BCNF指消除了主属性对码(candidate key)的部分依赖的2NF

比如 (S#,C#)->T#, T#->C#不是BCNF。由于candidate 是 (S#,T#),(S#,C#),主属性C#部分依赖于(S#,T#),所以不是BCNF。能够分解为:

(S#,T#),(T#,C#)两张表

4. 3NF指消除了传递依赖的BCNF

比如 S#->SD, SD->DEAN不是3NF,由于DEAN传递依赖于S#,能够分解为STUDENT(S#,SN,SD)和DEPT(SD,DEAN)

4. 4NF指消除了多值依赖的3NF

比如:

他的原来的主键为(C#,T#,B#),分解为(C#,T#)和(C#,B#)

Comments: SN = Student Name, SD = Student Department, T# = the # of teacher

时间: 2024-12-17 06:19:02

数据库范式小结 1NF 2NF BCNF 3NF 4NF DB normal form的相关文章

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

数据库的设计范式是数据库设计所需要满足的规范,满足这些规范的数据库是简洁的.结构明晰的,同时,不会发生插入(insert).删除(delete)和更新(update)操作异常.反之则是乱七八糟,不仅给数据库的编程人员制造麻烦,而且面目可憎,可能存储了大量不需要的冗余信息. 范式说明 1.1 第一范式(1NF)无重复的列 所谓第一范式(1NF)是指数据库表的每一列都是不可分割的基本数据项,同一列中不能有多个值,即实体中的某个属性不能有多个值或者不能有重复的属性.如果出现重复的属性,就可能需要定义一

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

第一范式(1NF)无重复的列 例如,如下的数据库表是符合第一范式的: 字段1 字段2 字段3 字段4 而这样的数据库表是不符合第一范式的: 字段1 字段2 字段3 字段4 字段3.1 字段3.2           第二范式(2NF) 第二范式(2NF)就是非主属性完全依赖于主关键字. 所谓完全依赖是指不能存在仅依赖主关键字一部分的属性,消除部分依赖 假定选课关系表为SelectCourse(学号, 姓名, 年龄, 课程名称, 成绩, 学分),关键字为组合关键字(学号, 课程名称),因为存在如下

数据库范式(1NF,2NF,3NF)解析

目前有迹可寻的共有8种范式,依次是:1NF,2NF,3NF,BCNF,4NF,5NF,DKNF,6NF.通常所用到的只是前三个范式,即:第一范式(1NF),第二范式(2NF),第三范式(3NF).下面就简单介绍下这三个范式. ◆ 第一范式(1NF):强调的是列的原子性,即列不能够再分成其他几列. 考虑这样一个表:[联系人](姓名,性别,电话) 如果在实际场景中,一个联系人有家庭电话和公司电话,那么这种表结构设计就没有达到 1NF.要符合 1NF 我们只需把列(电话)拆分,即:[联系人](姓名,性

数据库范式到底是怎么个回事

写在前面的话:我认为数据库范式是非常充满哲学意味的一种理论,学院派们说:“数据库设计一定要遵循某某范式啊”,实践派说:“一看你就没有实际经验”.使用范式还是不使用范式,这是一个问题.一看到“范式”这个词,就充满了厌恶之感,“干嘛一定要学习范式,不使用范式,照样建的一手好表.”随着学习的深入,才发现有些表的建立,感性中不知不觉的就达到了某一个范式,有的时候也会出现一些问题,修改修改就解决了.可是这种凭感觉的行为,总是感觉虚无缥缈,认为还是应该好好学习学习范式的理论,在理论的指导下,至少对于自己的行

一看就懂的数据库范式介绍(1NF,2NF,3NF,BC NF,4NF,5NF)

原文:http://josh-persistence.iteye.com/blog/2200644 一.基本介绍 设计关系数据库时,遵从不同的规范要求,设计出合理的关系型数据库,这些不同的规范要求被称为不同的范式,各种范式呈递次规范,越高的范式数据库冗余越小. 目前关系数据库有六种范式:第一范式(1NF).第二范式(2NF).第三范式(3NF).巴斯-科德范式(BCNF).第四范式(4NF)和第五范式(5NF,又称完美范式).满足最低要求的范式是第一范式(1NF).在第一范式的基础上进一步满足更

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

[转] 数据库范式1NF 2NF 3NF BCNF(实例)通俗易懂的讲解     本文对大多数初学数据库原理的同学绝对是个大福利,哈哈,完完整整的看完此篇博文一定能够清晰地理解数据库的四大范式.    不懂者留言相互讨论.     设计范式(范式,数据库设计范式,数据库的设计范式)是符合某一种级别的关系模式的集合.构造数据库必须遵循一定的规则.在关系数据库中,这种规则就是范式.关系数据库中的关系必须满足一定的要求,即满足不同的范式.目前关系数据库有六种范式:第一范式(1NF).第二范式(2NF)

数据库范式1NF 2NF 3NF BCNF

(转自:http://www.itisedu.com/phrase/200604241410105.html) 设计范式(范式,数据库设计范式,数据库的设计范式)是符合某一种级别的关系模式的集合.构造数据库必须遵循一定的规则.在关系数据库中,这种规则就是范式.关系数据库中的关系必须满足一定的要求,即满足不同的范式.目前关系数据库有六种范式:第一范式(1NF).第二范式(2NF).第三范式(3NF).第四范式(4NF).第五范式(5NF)和第六范式(6NF).满足最低要求的范式是第一范式(1NF)

转!!数据库 第一范式(1NF) 第二范式(2NF) 第三范式(3NF)的 联系和区别

范式:英文名称是 Normal Form,它是英国人 E.F.Codd(关系数据库的老祖宗)在上个世纪70年代提出关系数据库模型后总结出来的,范式是关系数据库理论的基础,也是我们在设计数据库结构过程中所要遵循的规则和指导方法.目前有迹可寻的共有8种范式,依次是:1NF,2NF,3NF,BCNF,4NF,5NF,DKNF,6NF.通常所用到的只是前三个范式,即:第一范式(1NF),第二范式(2NF),第三范式(3NF).下面就简单介绍下这三个范式. ◆ 第一范式(1NF):强调的是列的原子性,即列

关系型数据库知识小结

一.基础术语 DML(data manipulation language): 如SELECT.UPDATE.INSERT.DELETE,主要用来对数据库里的数据进行操作的语言 DDL(data definition language): 主要的命令有CREATE.ALTER.DROP等,DDL主要是用在定义或改变表(TABLE)的结构,数据类型,表之间的链接和约束等初始化工作上,大多在建立表时使用. DCL(Data Control Language):数据库控制功能.是用来设置或更改数据库用