规范化的目的28 Aug 2024 | 5 分钟阅读 规范化 是指对数据之间的关系进行结构化和处理的过程,以最小化关系表中的冗余并避免数据库中不必要的异常属性,如插入、更新和删除异常。它有助于将大型数据库表分割成更小的表,并在它们之间建立关系。它可以消除冗余数据,并简化表的添加、操作或删除字段的操作。 规范化定义了关系表的规则,以判断其是否满足范式。范式 是一个评估每个关系是否满足定义标准并从关系中移除多值、连接、函数和平凡依赖的过程。如果数据被更新、删除或插入,它不会导致数据库表出现任何问题,并有助于提高关系表的完整性和效率。 规范化的目标
异常的类型以下是导致表不一致、完整性丢失和数据冗余的异常类型。 1. 数据冗余 在关系数据库中,当两个或多个行或列具有相同的值或重复的值时,就会发生数据冗余,导致不必要的内存利用。 Student 表
上表中,有两位学生,“詹姆斯”和“里奇·里奇”,他们的记录在输入新的课程ID时是重复的。因此,它会重复 studRegistration、StudName 和 address 属性。 2. 插入异常: 当需要插入某些属性或数据项而其他属性不存在时,关系数据库中就会发生插入异常。例如,在学生表中,如果我们想插入一个新的课程ID,我们就必须等到学生报名参加课程。这样,就很难在表中插入新记录。因此,它被称为插入异常。 3. 更新异常: 当重复数据仅在一个地方更新而未在所有实例中更新时,就会发生异常。因此,它使我们的数据或表处于不一致的状态。例如,假设有一个学生“詹姆斯”属于学生表。如果我们想更新学生表中的课程,我们就必须在课程表中更新相同的课程;否则,数据可能**不一致**。它会反映表中更新值的变化,其中一些值不会。 4. 删除异常: 当由于删除其他记录而从数据库表中丢失或删除某些记录时,数据库表中就会发生异常。例如,如果我们想从学生表中删除特伦特·博尔特,它也会从学生表中删除他的地址、课程和其他详细信息。因此,我们可以说删除某些属性可以删除数据库表中的其他属性。 因此,我们需要避免表中的这些类型的异常,并维护数据库表的完整性和准确性。因此,我们在数据库管理系统中使用规范化概念。 规范化的类型
第一范式 (1NF): 如果表中的所有属性只包含原子值,则该表处于第一范式 (1NF)。我们也可以说,如果一个表在属性中包含多值数据项或复合值,则该关系就不能处于第一范式。因此,我们需要通过使表中的条目原子化来将其变为第一范式。 第二范式 (2NF): 如果关系满足以下条件,则该关系处于 2NF。
第三范式 (3NF): 如果表满足以下条件,则该表处于第三范式 (3NF)。
注意:如果所有函数依赖 (FD) 的左侧 (LHS) 必须是候选键 (CK) / 超键,或者右侧是主属性,则表应为 3 NF。BCNF: 它代表Boyce-Codd 范式,是 3NF 的下一个版本。有时,它也被称为3.5 NF。如果范式满足以下条件,则该范式称为 BCNF。
注意:对于 BCNF 的每个函数依赖,左侧应有一个候选/超键。第四范式 (4 NF):如果关系满足以下条件,则该关系称为第四范式 (4NF)。
例如,如果对于 A 的单个值,存在多个 B 的值,则依赖 A -> B。则该关系称为多值依赖。 多值依赖的条件如下
第五范式 (5 NF): 如果关系满足以下条件,则该关系称为 5NF。
它也称为投影连接范式 (PJNF)。 连接依赖: 如果关系 (R) 的模式可以划分为较小的表集 R1、R2...Rn,这些表可以通过连接多个表来重新设计为原始表 (R),则称关系 (R) 为连接依赖。 |
我们请求您订阅我们的新闻通讯以获取最新更新。