概要
早就听说三范式了,记得第一次做机房收费系统的时候,只是为了简单的完成数据的增删改查,并没有去想数据库如何设计,现在不同了,第二遍设计数据库,要求提高了嘛,我们需要的是根据需求来更加合理的设计数据库,要遵循数据库的基本原则三范式,三范式刚开始听起来觉得懵懂,后来通过学习渐渐的明朗起来,首先介绍一下三范式的大致内容:
三范式的目的
为了建立合理结构的数据库,减少数据冗余,设计数据库必须要遵循一定的规则,在关系型数据库中这种规则叫做范式,想设计一个结构合理的关系型数据库,必须要满足一定的范式,我们把一个项目中用到的数据库分别建立多个表并建立表中间的关系,可以消除很多错误或者垃圾数据并减少我们的工作量、减少数据的不完整性,是数据库设计的更加规范。
详细剖析
范式达到五个,但是对于我们来说,三个范式已经很高了,(后期再逐渐的深入学习)
第一范式(1NF):就是能分就分,分到不能分为止(所有字段值都是不可分解的原子值)
第一范式(1NF),(一个字段不能包含多个列,即每个列和记录包含一个仅包含一个值的表)在任何一个关系数据库中,第一范式(1NF)是对关系模式的基本要求,不满足第一范式(1NF)的数据库就不是关系数据库。
所谓第一范式(1NF)是指数据库表的每一列都是不可分割的基本数据项,同一列中不能有多个值,即实体中的某个属性不能有多个值或者不能有重复的属性。如果出现重复的属性,就可能需要定义一个新的实体,新的实体由重复的属性构成,新实体与原实体之间为一对多关系。第一范式的合理遵循需要根据系统的实际需求来定
例如:实例1
不满足第一范式,学院、年级、班都是还可以再往下分的
改进后:
第二范式(2NF):要求实体的属性完全依赖于主关键字(函数不能部分依赖)。
第二范式在第一范式的基础上,要保证数据库表中的每一列都和主键相关,完全依赖主键,所谓完全依赖是指不能存在仅依赖主关键字一部分的属性,如果存在,那么这个属性和主关键字的这一部分应该分离出来形成一个新的实体,新实体与原实体之间是一对多的关系。为实现区分通常需要为表加上一个列,以存储各个实例的唯一标识。简而言之,第二范式就是非主属性非部分依赖于主关键字(一种表只能保存一种数据,不可以把多种数据保存在同一张数据库表中)
对于自己第一遍的机房收费系统数据库学生信息表,当时就是为了表减少,调用方便现在现在看起来很是冗余。例如下图:
根据第二范式的要求修改后为信息基本信息表和卡信息表
学生基本信息表:
卡信息表:
每个表创建了数据自己表的主键,其他字段完全依赖于主键而存在,在这两个表之间我们建立了外键的约束关系。显得很是清晰:
3.第三范式3NF:(确保每列都和主键列直接相关,而不是间接相关)
第三范式需要确保数据表中的每一列数据都和主键直接相关,而不能间接相关,消除字段冗余。
一个UserID依赖于CardID和StudentID,而一个Role依赖于CardID,这就是传递依赖间接相关,第三范式就是要消除这种依赖,我们可以改进为下图:
和
凡是都有利弊,贵在把握的粒度,由于范式的设计使后期我们的查询遇到了很大的麻烦,操作困难,例如上下机记录:学号、卡号、学生姓名等字段需要从多个数据表中来读取得需要从多个表调出数据,而且范式越高灵活性能就会越差,到达三个范式就可以了,有利于数据的管理
总结:
数据库的设计范式是数据库设计所需要满足的规范,满足这些规范的数据库是简洁的、结构明晰的,同时,不会发生插入(insert)、删除(delete)和更新(update)操作异常。反之则是乱七八糟,不仅给数据库的编程人员制造麻烦,而且面目可憎,可能存储了大量不需要的冗余信息。
分享到:
相关推荐
数据库的设计范式是数据库设计所需要满足的规范,满足这些规范的数据库是简洁的、结构明晰的,同时,不会发生插入、删除和更新操作异常。第一范式:数据库表中的字段都是单一属性的,不可再分。这个单一属性由基本...
介绍数据库设计基本的三大范式,简练透彻的立即数据库设计的范式。
### 数据库设计三大范式应用实例剖析 #### 引言 数据库的设计范式是指一系列用于指导数据库设计的规范化准则,其目的是确保数据的完整性、减少数据冗余,并提高数据库的操作效率。遵循这些范式可以避免在数据库...
数据库设计三大范式的应用实例剖析,数据库设计范式是数据库设计所需要满足的规范,满足这些规范的数据库是简洁的、结构明晰的,同时,不会发生插入(insert)、删除(delete)和更新(update)操作异常。...
数据库设计是信息系统开发的核心环节,其中的三范式(First Normal Form, Second Normal Form, Third Normal Form,简称1NF、2NF和3NF)是规范化理论的基础,它们为确保数据的逻辑独立性、减少数据冗余和提高数据...
"数据库设计三大范式应用实例剖析" 数据库设计是数据库系统的核心部分,直接影响着数据库的性能、安全性和可维护性。数据库设计的目的是为了使数据库系统满足某些标准,使得数据库系统更加简洁、明晰、易于维护和...
如需深入了解数据库设计的第三范式,你可以参考提供的文件《数据库设计三大范式应用实例剖析.docx》和《数据库范式.pdf》。这些文档应该会提供更详细的理论解释和实例分析,帮助你更好地掌握3NF在实际项目中的应用。
"第二章 数据库系统设计及范式分析--班级管理系统需求说明书"涵盖了数据库设计的关键阶段和理论,让我们一起深入探讨其中的知识点。 首先,数据库需求分析是整个过程的起点。在这个阶段,我们需要明确班级管理系统...
【计算机等考三级数据库基础:数据库设计三大范式应用实例剖析】 数据库设计是构建高效、稳定、易维护的信息系统的基础,而三大范式——第一范式(1NF)、第二范式(2NF)和第三范式(3NF)是确保数据库设计规范的...
【数据库设计三大范式】是数据库设计的基本原则,它们确保了数据库的结构合理、数据一致性和减少冗余。这三个范式分别是第一范式(1NF)、第二范式(2NF)和第三范式(3NF)。 **第一范式(1NF)**要求数据库表中的...
本文将对数据库设计三大范式和五大约束进行详细的介绍和分析。 第一范式:确保每列保持原子性 第一范式是数据库设计的基础,它要求每列保持原子性,即每个字段都不能再被分割为更小的部分。例如,在一个员工信息表...
下述十四个技巧,是许多人在大量的数据库分析与设计实践中,逐步总结出来的。对于这些经验的运用,读者不能生帮硬套,死记硬背,而要消化理解,实事求是,灵活掌握。并逐步做到:在应用中发展,在发展中应用。
### 数据库设计三大范式应用实例剖析 #### 引言 数据库设计的规范性对于确保数据的完整性和一致性至关重要。数据库设计范式是一系列规则,它们帮助开发者创建出既高效又易于维护的数据模型。遵循这些规范能有效...
本资源摘要信息将围绕 SQL 第三范式规范化设计数据库范例进行详细的解释和分析,从标题、描述、标签和部分内容中提炼出相关的知识点。 标题和描述解释 本资源的标题和描述都是“SQL 第三范式 规范化设计数据库范例...
数据库设计的三范式包括第一范式(1NF)、第二范式(2NF)和第三范式(3NF)。它们是确保数据库逻辑结构合理、减少数据冗余和异常的关键原则。 11. **事务处理** 事务是一系列数据库操作的集合,具有原子性、一致...