数据库设计基础----关系与3NF

一、关系

  表与表之间的关系,有三种:

  一对一:A表的一条记录只能与B表的一条记录相对应,反之亦然。

  一对多(多对一):A表的一条记录能与B表的多条记录相对应,B表的一条记录只能与A表的一条记录相对应。

  多对多:A表的一条记录能与B表的多条记录相对应,B表的一条记录也能与A表的多条记录相对应。

二、范式 Normal Format

  范式有6层(1NF, 2NF, ...6NF),第一层都比上一层更严格,若要满足下一层,必须要先满足上一层,它的目的是为了减少数据的冗余,不考虑效率。

  但是数据库设计不只要考虑节省空间,还要考虑效率问题,所以一般设计数据库时,最多只用到3NF。

  1NF: 要求字段的数据具有原子性(不可再分解, 拿出来就可以使用);

  2NF: 当表中存在复合主键时,所有数据不能出现部分依赖,即需要依赖整个复合主键,而不能只依赖复合主键的其中一部分。

  3NF: 要求所有字段不能出现传递依赖(不直接依赖主键,而是间接依赖,如A依赖B,B依赖主键)。

时间: 2024-10-01 06:09:08

数据库设计基础----关系与3NF的相关文章

数据库范式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)

NorthWind 数据库整体关系

http://blog.csdn.net/bergn/article/details/1502150 今天看到一张非常有用的图,说明有关Northwind数据库整体关系的图,以前一直在用,但是没有一个直观的认识. 所以截图下来和大家共享!

如何用Visio画数据库实体关系图

在百度经验中浏览:http://jingyan.baidu.com/article/e4511cf3374a862b855eaf58.html 在设计数据库表结构时,通常都是先画数据库实体关系图,这样在讨论设计的是否合理时,可以很容易看懂数据表之间的关系. 打开Microsoft Office Visio 2007,左侧的模板类别中选择"软件和数据库",双击右侧的"数据库模型图". 调整显示比例 添加实体:鼠标指针移动到实体上,按下鼠标左键不要松开,移动鼠标到右侧的

数据库原理--1nf 2nf 3nf

数据库设计的第三范式 关系数据库中的关系必须满足一定的要求.满足不同程度要求的为不同范式.数据库的设计范式是数据库设计所需要满足的规范.只有理解数据库的设计范式,才能设计出高效率.优雅的数据库,否则可能会设计出错误的数据库. 目前,主要有六种范式:第一范式.第二范式.第三范式.BC范式.第四范式和第五范式.满足最低要求的叫第一范式,简称1NF.在第一范式基础上进一步满足一些要求的为第二范式,简称2NF.其余依此类推. 范式可以避免数据冗余,减少数据库的空间,减轻维护数据完整性的麻烦,但是操作困难

关系型数据库:关系模式设计原则

1.范式与数据冗余度从0NF到1NF.2NF.3NF.BCNF.4NF.5NF?数据库设计的过程是个拆分表的过程,拆分的目的是降低数据的冗余度. 数据的冗余度越低,事务持续时间就越短(它不需要额外的操作去维持数据一致性和完整性).与此同时,拆得越细,查询的代价越高(需要更多耗时的连接运算). 2.关系模式的设计原则 如果表(集)主要用于数据更新(Online),表的分解就应该尽可能接近3NF, BCNF从前面的例子看没有必要,至于4NF.5NF更多属于理论研究领域,在实际应 用中无此必要. 如果

数据库设计关系规范化的标准—范式

预备知识:属性:实体所具有的某一特性称为属性 码:唯一标识实体的属性集称为码,如果一个实体有多于一个候选码,则选定其中一个为主码 包含在任何一个候选码中的属性称为主属性,不包含在任何码中的属性叫做非主属性. 多值依赖:设于关系模式R(U),U 是属性全集,X,Y和Z是U的子集,且Z=U-Z-Y,如果对于R的任一关系r,对于X的一个确定值,存在Y的一组值与之对应,且Y的这组值仅仅决定于X的至而与Z值无关,此时称Y多值依赖与X.在多值依赖中,若Z不是空集,则称非平凡的多值依赖,否则是平凡的多值依赖.

数据库 之 关系模式范式

主要有6种范式:第一范式(1NF),第二范式(2NF),第三范式(3NF),巴德斯科范式(BCNF),第四范式(4NF),第五范式(5NF),按从左至右的顺序一种比一种要求更严格.要符合某一种范式必须也满足它前边的所有范式.一般项目的数据库设计达到3NF就可以了,而且可根据具体情况适当增加冗余,不必教条地遵守所谓规范. 从范式所允许的函数依赖方面进行比较,四种范式之间的关联如下图所示. 1.第一范式(1NF)无重复的列 所谓第一范式(1NF)是指数据库表的每一列都是不可分割的基本数据项,同一列中

数据库模型设计——关系的实现,主键的设计

一.关系的实现 在实体关系模型中,我们知道有三种关系:一对一.一对多.多对多.这只是概念上的关系,但是在真实的关系数据库中,我们只有外键,并没有这三种关系,那么我们就来说一说在关系数据库管理系统中,怎么实现这三种关系. 一对多 这里先讲解一对多,因为这个关系最简单.一对多和多对一是一回事,所以就不再提多对一这个词.一对多的概念是一个对象A会对应多个对象B,而从B的角度看,一个对象B只会对于一个对象A.比如说班级和学生就是一对多关系.一个班级对应多个学生,一个学生只会对于一个班级. 一对多的关系之