范式的关系数据库中的几种设计范式

作者&投稿:郯彦 (若有异议请与网页底部的电邮联系)
创建关系型数据库有几种范式?并详述各个范式之间的递进关系~

第一范式(1NF):每一个属性都是原子项,不可分割

INF中所述的不可分割,是指在可分割的情况下必须分割,这是在应用环境中来判断的,当属性是文档时,虽然文档有段落标记,但还是不应该分割。


第二范式:每个非主属性要完全函数依赖于候选键,或者是主键。

关键词是“完全依赖”,与“部分依赖”或“局部依赖”相对,如果候选键或主键由两个属性组成,非主属性不能只依赖与其中一个或部分属性。
比如:股票日行情表由股票代码、股票名称、日期、收盘价四个属性组成,这就违反了2NF,因为“股票名称”部分依赖于“股票代码”。


第三范式:所有非主属性对任何候选关键字都不存在传递依赖
关键词是“传递依赖”,如果非主属性通过另一个非主属性依赖主键,则是传递依赖。
比如:股票基本信息表由股票代码、股票名称、企业名称、所在地区、所在省份组成,其中“所在省份”依赖于所在地区,存在传递依赖。
-----------------------------------
几个相关术语:

超键(super key):在关系中能唯一标识元组的属性集称为关系模式的超键
候选键(candidate key):不含有多余属性的超键称为候选键
主键(primary key):用户选作元组标识的一个候选键称为主键
主属性(Prime Attribute):候选键中的属性称为主属性
非主属性(Non-Key Attribute):不包含在任何候选键中的属性称为非主属性。

1,是数据的原子性
2,是确保每列都和主键相关,意思是:只做一件事
3,确保每列都和主键直接相关,而不是间接相关,意思是不能存在传递依赖

1 第一范式(1NF)
在任何一个关系数据库中,第一范式(1NF)是对关系模式的基本要求,不满足第一范式(1NF)的数据库就不是关系数据库。
所谓第一范式(1NF)是指数据库表的每一列都是不可分割的基本数据项,同一列中不能有多个值,即实体中的某个属性不能有多个值或者不能有重复的属性。如果出现重复的属性,就可能需要定义一个新的实体,新的实体由重复的属性构成,新实体与原实体之间为一对多关系。在第一范式(1NF)中表的每一行只包含一个实例的信息。
简而言之,第一范式就是无重复的列。
2 第二范式(2NF)
第二范式(2NF)是在第一范式(1NF)的基础上建立起来的,即满足第二范式(2NF)必须先满足第一范式(1NF)。第二范式(2NF)要求数据库表中的每个实例或行必须可以被唯一地区分。为实现区分通常需要为表加上一个列,以存储各个实例的唯一标识。这个唯一属性列被称为主关键字或主键、主码。
第二范式(2NF)要求实体的属性完全依赖于主关键字。所谓完全依赖是指不能存在仅依赖主关键字一部分的属性。如果存在,那么这个属性和主关键字的这一部分应该分离出来形成一个新的实体,新实体与原实体之间是一对多的关系。为实现区分通常需要为表加上一个列,以存储各个实例的唯一标识。
简而言之,第二范式就是非主属性非部分依赖于主关键字。
3 第三范式(3NF)
满足第三范式(3NF)必须先满足第二范式(2NF)。简而言之,第三范式(3NF)要求一个数据库表中不包含已在其它表中已包含的非主关键字信息。
例如,存在一个部门信息表,其中每个部门有部门编号(dept_id)、部门名称、部门简介等信息。那么在图3-2的员工信息表中列出部门编号后就不能再将部门名称、部门简介等与部门有关的信息再加入员工信息表中。如果不存在部门信息表,则根据第三范式(3NF)也应该构建它,否则就会有大量的数据冗余。
简而言之,第三范式就是属性不依赖于其它非主属性。
4 BCNF(BC范式)
5 第四范式(4NF)
6第五范式(5NF)
是最终范式,消除了4NF中的连接依赖。
软道语录
软道范式
软道范式是对数据库进行优化的原则 。
(欢迎广大读者补充更正以上信息)
数据库设计三大范式应用实例剖析
数据库的设计范式是数据库设计所需要满足的规范,满足这些规范的数据库是简洁的、结构明晰的;同时,不会发生插入(insert)、删除(delete)和更新(update)操作异常。反之则是乱七八糟,不仅给数据库的编程人员制造麻烦,而且面目可憎,可能存储了大量不需要的冗余信息。
设计范式是不是很难懂呢?非也,大学教材上给我们一堆数学公式我们当然看不懂,也记不住。所以我们很多人就根本不按照范式来设计数据库。
实质上,设计范式用很形象、很简洁的话语就能说清楚道明白。本文将对范式进行通俗地说明,并以笔者曾经设计的一个简单论坛的数据库为例来讲解怎样将这些范式应用于实际工程。



范式的关系数据库中的几种设计范式
答:1 第一范式(1NF)在任何一个关系数据库中,第一范式(1NF)是对关系模式的基本要求,不满足第一范式(1NF)的数据库就不是关系数据库。所谓第一范式(1NF)是指数据库表的每一列都是不可分割的基本数据项,同一列中不能有多个值,即实体中的某个属性不能有多个值或者不能有重复的属性。如果出现...

如何理解关系型数据库的常见设计范式?
答:1NF(第一范式)是基础,它要求每个属性是不可再分的,这是关系型数据库管理系统的基础要求。然而,即使在1NF设计中,数据冗余和异常问题依然存在,因此需要提升到2NF或更高水平以消除这些问题。2NF(第二范式)在1NF的基础上,消除了非主属性对码的部分函数依赖。例如,考虑选课表,学号作为码,如果学...

数据库有几种范式,其判定依据是什么?
答:目前关系数据库有六种范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、第四范式(4NF)、第五范式(5NF)和第六范式(6NF)。满足最低要求的范式是第一范式(1NF)。在第一范式的基础上进一步满足更多要求的称为第二范式(2NF),其余范式以次类推。一般说来,数据库只需满足第三范式(3NF)就行了。下面我们...

范式理论的关系数据库
答:尤其是数据库设计范式 现简单介绍1NF(第一范式),2NF(第二范式),3NF(第三范式)和BCNF,另有第四范式和第五范式留到以后再介绍。 在你设计数据库之时,若能符合这几个范式,你就是数据库设计的高手。第一范式(1NF):在关系模式R中的每一个具体关系r中,如果每个属性值 都是不可再分的最小数据单位,则称R是第...

关系型数据库设计三大范式
答:在关系型数据库设计的世界里,三大范式——第一范式(1NF)、第二范式(2NF)和第三范式(3NF)是设计基石。它们像金科玉律,引导我们构建高效、整洁的数据结构。首先,让我们理解什么是范式。在设计数据库时,我们遵循的规范性要求,如同建筑图纸的规则,确保数据结构的合理性。1NF要求属性不可分割,比如...

数据库的三大范式?
答:说明:在任何一个关系数据库中,第一范式(1NF)是对关系模式的设计基本要求,一般设计中都必须满足第一范式(1NF)。不过有些关系模型中突破了1NF的限制,这种称为非1NF的关系模型。换句话说,是否必须满足1NF的最低要求,主要依赖于所使用的关系模型。2、第二范式(2NF)在1NF的基础上,非码属性必须...

数据库(mysql)关键知识
答:关系数据库范式 来自英文Normal form,简称NF。要想设计—个好的关系,必须使关系满足一定的约束条件,满足这些规范的数据库是简洁的、结构明晰的,同时,不会发生插入(insert)、删除(delete)和更新(update)操作异常。总共有六种范式:第一范式(1NF)、第二范式(2NF)、 第三范式 (3NF)、巴斯-科德...

关于数据库三大设计范式浅析
答:数据库范式也分为1NF,2NF,3NF,BCNF,4NF,5NF。一般在我们设计关系型数据库的时候,最多考虑到BCNF就够。符合高一级范式的设计,必定符合低一级范式,例如符合2NF的关系模式,必定符合1NF。在实际开发中最为常见的设计范式有三个:首先是第一范式(1NF)。符合1NF的关系(你可以理解为数据表。“...

数据库设计范式
答:反范式设计:权衡性能与一致性虽然高范式设计有助于减少冗余和提高数据一致性,但在处理大量关联查询时,反范式设计(如用户-角色-权限设计)有时会牺牲部分一致性,以换取更快的查询速度。这在性能与数据完整性之间寻找平衡,是实际应用中的智慧选择。总的来说,数据库设计并非追求绝对的完美,而是根据...

关系数据库中的范式是指什么
答:关系数据库中的范式是指一种规范化的方法,用于设计和管理数据库中的数据结构。它通过将数据分解为多个表,并遵循一定的规则,以提高数据的完整性和一致性,同时减少数据冗余和更新异常。在关系数据库中,范式有多种,其中最常见的有第一范式(1NF)、第二范式(2NF)、第三范式(3NF)和多值依赖下的...