`

数据库设计中的四个范式

阅读更多

  在创建一个数据库的过程中,必须依照一定的准则,这些准则被称为范式,从第一到第六共六个范式,一般数据库设计只要遵循第一范式,第二范式,和第三范式就足够了。满足这些规范的数据库是简洁的、结构明晰的,同时,不会发生插入(insert)、删除(delete)和更新(update)操作异常。反之则是乱七八糟,不仅给数据库的编程人员制造麻烦,而且面目可憎,可能存储了大量不需要的冗余信息。

I、关系数据库设计范式介绍

1.1 第一范式(1NF)无重复的列

 
      所谓第一范式(1NF)是指数据库表的每一列都是不可分割的基本数据项,同一列中不能有多个值,即实体中的某个属性不能有多个值或者不能有重复的属性。如果出现重复的属性,就可能需要定义一个新的实体,新的实体由重复的属性构成,新实体与原实体之间为一对多关系。在第一范式(1NF)中表的每一行只包含一个实例的信息。简而言之,第一范式就是无重复的列。

说明:在任何一个关系数据库中,第一范式(1NF)是对关系模式的基本要求,不满足第一范式(1NF)的数据库就不是关系数据库。 

笔者曰:就是在一个不需要设立主键就能表中保证每一行都具有唯一性。不设立主键就能保证行唯一性的表就是第一范式。

1.2 第二范式(2NF)属性完全依赖于主键

 
      第二范式(2NF)是在第一范式(1NF)的基础上建立起来的,即满足第二范式(2NF)必须先满足第一范式(1NF)。第二范式(2NF)要求数据库表中的每个实例或行必须可以被惟一地区分。为实现区分通常需要为表加上一个列,以存储各个实例的惟一标识。例如员工信息表中加上了员工编号(emp_id)列,因为每个员工的员工编号是惟一的,因此每个员工可以被惟一区分。这个惟一属性列被称为主关键字或主键、主码。 
        第二范式(2NF)要求实体的属性完全依赖于主关键字。所谓完全依赖是指不能存在仅依赖主关键字一部分的属性,如果存在,那么这个属性和主关键字的这一部分应该分离出来形成一个新的实体,新实体与原实体之间是一对多的关系。为实现区分通常需要为表加上一个列,以存储各个实例的惟一标识。简而言之,第二范式就是属性完全依赖于主键。 

者曰:就是在一个有唯一主键在表中保证每一行都具有唯一性。存在一个列被定义为唯一主键的表就是第二范式。

1.3 第三范式(3NF)属性不依赖于其它非主属性


            满足第三范式(3NF)必须先满足第二范式(2NF)。简而言之,第三范式(3NF)要求一个数据库表中不包含已在其它表中已包含的非主关键字信息。例如,存在一个部门信息表,其中每个部门有部门编号(dept_id)、部门名称、部门简介等信息。那么在的员工信息表中列出部门编号后就不能再将部门名称、部门简介等与部门有关的信息再加入员工信息表中。如果不存在部门信息表,则根据第三范式(3NF)也应该构建它,否则就会有大量的数据冗余。简而言之,第三范式就是属性不依赖于其它非主属性。 
 
者曰:就是主副(父子)两张表,在子表中在外键是父表中的主键,子表中的外键值必须是父表中的主键值。存在主外关系的两张              表就是第三范式。

1.4 第四范式(4NF)禁止主键列和非主键列一对多关系不受约束

第四范式用于处理由复杂的复合主键所导致的问题。如果将两个相互独立的属性与第三个属性一起组合为一个主键,并且如果没有第三个属性,仅靠这两个属性不能在实体中真正地起到唯一标识的作用,那么它就违反了第四范式;第四范式用来识别那些需要划分为多个不同的实体。通常,只有当很大的复合主键将过多的对象放到单个实体中的时候才会出现这样的问题。 
 
者曰:就是在一个没有单独列被定义为唯一主键的表中用多个列组合一起被定义为唯一主键(即:复合主键)。用复合列做主键的              表就是第四范式。
分享到:
评论

相关推荐

    数据库设计需要遵守的范式规则

    【数据库设计中的范式规则详解】 数据库设计是构建高效、稳定、可靠的信息系统的基础,而范式规则则是数据库设计中的核心理论。范式是衡量数据库结构合理性和优化程度的重要标准,通常包括第一范式(1NF)、第二...

    数据库设计范式最好的讲解

    第一范式是数据库设计的基本要求,要求数据库表中的每一列都是不可分割的基本数据项,同一列中不能有多个值,即实体中的某个属性不能有多个值或者不能有重复的属性。如果出现重复的属性,就可能需要定义一个新的实体...

    数据库设计三范式

    关系数据库设计之时是要遵守一定的规则的。尤其是数据库设计范式 现简单介绍1NF(第一范式),2NF(第二范式),3NF(第三范式)和BCNF,另有第四... 在你设计数据库之时,若能符合这几个范式,你就是数据库设计的高手

    数据库设计教程系列 数据库范式.docx

    第四范式(4NF)是指独立的重复组不应该被组合在一个关系中。简单而言,就是不要设计多值属性。在实际设计中,我们会使用字典表或桥表来解决这种问题。 在实际设计中,我们会违反这些范式,以提高查询效率或方便...

    关系型数据库设计范式

    4. BCNF(巴斯-科德范式):这是比3NF更严格的一个范式,它要求所有属性(包括主键和非主键)都不传递依赖于任何候选键。在WPE配件管理关系模式中,(WNO,PNO)是候选键,但(WNO,PNO)-> ENO是传递依赖,因为ENO-...

    数据库设计模式范式简介

    首先,第一范式(1NF)是最基本的要求,它规定数据库表中的每一列都必须是不可分割的基本数据项,不允许一个列中包含多个值。这意味着每一行记录只能包含一个实体的单一信息,避免了数据的复合。例如,如果一个表中...

    关系数据库设计范式培训

    关系数据库设计范式是数据库设计中的核心概念,用于确保数据的规范化和高效存储。以下是关于关系数据库设计范式的详细介绍: 1. 第一范式(1NF):这是最基本的要求,规定数据库表中的每一列(属性)都必须是不可再...

    什么是数据库范式?什么是设计范式?

    数据库范式是关系型数据库设计中的核心理论,它是一组规则,用来指导如何构建和组织数据库,以确保数据的一致性、减少冗余并避免数据异常。这些规则以不同的级别存在,即第一范式(1NF)、第二范式(2NF)、第三范式...

    数据库设计三大范式.pdf

    事务的四个ACID属性——原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性(Durability)是保证数据库操作可靠性的基石。原子性确保事务中的所有步骤要么全部完成,要么全部不完成;一致性...

    数据库设计三大范式应用实例剖析.doc

    鲍依斯-科得范式(BCNF)是数据库设计的第四阶段,要求数据库表中不存在任何字段对任一候选关键字段的传递函数依赖。这个原则可以消除数据冗余、更新异常、插入异常和删除异常。 在实际工程中,数据库设计三大范式...

    数据库设计 第4章 范式(2).ppt

    本章主要探讨了数据库设计中的第一范式(1NF)、第二范式(2NF)、第三范式(3NF)以及BCNF(Boyce-Codd范式),并涉及第四范式(4NF)和第五范式(5NF)的基础概念。 首先,第一范式(1NF)规定了关系模式中的所有...

    数据库范式(123BCNF范式)详解.docx

    第四范式(4NF)要求一个数据库表中不包含多值依赖,例如多对多关系。 第五范式(5NF) 第五范式(5NF)是在第四范式(4NF)的基础上建立起来的,即满足第五范式(5NF)必须先满足第四范式(4NF)。第五范式(5NF...

    Oracle 数据库设计范式 PowerDesigner

    在关系型数据库中,范式主要包括第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、巴斯-科德范式(BCNF)和第四范式(4NF)。每种范式都有其特定的要求,例如1NF要求每个字段不可再分,2NF则进一步要求非主键...

    Java面试中数据库三范式详解

    在实际应用中,第一范式是最基本的要求,因为大多数关系数据库管理系统(DBMS)都不允许在一个字段中存储多个值。因此,在设计数据库时,需要确保每个字段都是单一的不可分割的项。 二、第二范式(2NF) 第二范式...

    数据库中的范式理论的详解

    范式理论是数据库设计中的一个重要概念,主要用于指导数据库的设计与优化,确保数据的一致性和减少数据冗余。该理论最早由被称为“关系数据库之父”的E.F.Codd博士在1970年的论文《大型共享数据银行的关系模型》中...

    数据库设计范式简单入门

    本文将详细介绍数据库设计中的三种基本范式:第一范式(1NF)、第二范式(2NF)和第三范式(3NF),并结合实际案例进行解析。 #### 二、第一范式(1NF) ##### 定义 第一范式(1NF)是最基础的范式,所有关系数据库...

    数据库设计原则总结

    在数据库设计中,为了更好地应用三个范式,就必须通俗地理解三个范式(通俗地理解是够用的理解,并不是最科学最准确的理解):第一范式是对属性的原子性约束,要求属性具有原子性,不可再分解;第二范式是对记录的...

    数据库设计 — 范式1

    数据库设计的三个范式——1NF、2NF和3NF,是逐步消除数据冗余、提高数据一致性的重要规则。1NF确保了数据的原子性,2NF保证了每个非主属性对整个主键的完全依赖,而3NF则避免了非键属性之间的传递依赖。遵循这些范式...

    数据库设计范式.doc

    关系数据库的范式分为六个级别:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、第四范式(4NF)、第五范式(5NF)和第六范式(6NF)。以下是对这三个基本范式的详细解释: 1. **第一范式(1NF)**:1NF 是最...

Global site tag (gtag.js) - Google Analytics