归一化与否定化
关系数据库由关系(相关表)组成。表由列组成。如果表是两个大(即一个表中的太多列),则可能发生数据库异常。如果表格为两个小(即数据库由许多较小的表组成),则查询效率低下。归一化和否定化是两个过程,用于优化数据库的性能。归一化可以最大程度地减少数据表中存在的冗余。非正式化(归一化反向)增加了冗余数据或组数据。
什么是归一化?
归一化是一个过程,以最大程度地减少关系数据库中数据中存在的冗余。此过程将主要将大表格分为较少的冗余(称为“正常形式”)。这些较小的表将通过定义明确的关系相互关联。在正常化的数据库中,数据中的任何更改或修改都需要修改单个表。Edgar F. Codd介绍了第一种正常形式(1NF),第二个正常形式(2NF)和第三个正常形式(3NF)。Codd和Raymond F. Boyce于1974年引入Boyce-Codd正常形式(BCNF)。已经定义了较高的正常形式(4NF,5NF和6NF),但很少使用它们。
一张符合1NF的表确保其实际代表关系(即它不包含重复的任何记录),并且不包含任何关系值的属性(即所有属性都应具有原子值)。为了使表符合2NF,应遵守1NF,并且任何不是任何候选密钥(即非PRIME属性)的属性应完全取决于表中的任何候选键。According to the Codd’s definition, a table is said to be in 3NF, if and only if, that table is in the second normal form (2NF) and every attribute in the table that do not belong to a candidate key should directly depend on every candidate key of that table. BCNF (also known as 3.5NF) captures some the anomalies that are not addressed by the 3NF.
什么是译出的?
否定化是归一化过程的反向过程。否定化可以通过添加冗余数据或分组数据来优化性能来起作用。即使添加冗余数据听起来适得其反,有时会构规化是克服关系数据库软件中某些缺点的非常重要的过程,该过程可能会因标准化数据库而受到严重的性能惩罚(甚至调整为更高的性能)。这是因为加入多个关系(这是标准化的结果)以产生结果,有时会根据数据库系统的实际物理实现而缓慢。
归一化和否定化之间有什么区别? - 归一化和否定化是两个完全相反的过程。 - 归一化是将较大表分为较小的表的过程,以减少冗余数据,而不是添加冗余数据以优化性能的过程。 - 进行归一化以防止数据库异常。 - 通常进行译本以提高数据库的读取性能,但是由于用于构成规范化的其他约束,写入(即插入,更新和删除操作)可能会变得更慢。因此,比标准化数据库的书面数据库可以提供更差的写作性能。 - 通常建议您“正常化,直到疼痛,直到起作用为止”。 |
Safari Jean Sauveur说
感谢您提供有关数据库中正常化和分歧的信息。