关系型数据库是当前广泛应用的数据库类型,关系数据库设计是对数据进行组织化和结构化的过程,核心问题是关系模型的设计
对于数据库规模较小的情况,我们可以比较轻松的处理数据库中的表结构
然而,随着项目规模的不断增长,相应的数据库也变得更加复杂,关系模型表结构更为庞杂,这时我们往往会发现我们写出来的 SQL 语句的是很笨拙并且效率低下的
更糟糕的是,由于表结构定义的不合理,会导致在更新数据时造成数据的不完整
因此,就有必要学习和掌握数据库的法律规范化流程,以指导我们更好的设计数据库的表结构,减少冗余的数据,借此可以提高数据库的存储效率,数据完整性和可扩展性
本文将结合具体的实例,介绍数据库法律规范化的流程
法律规范化在设计和操作维护数据库时,关键的步骤就是要确保数据正确地分布到数据库的表中
使用正确的数据结构,不仅便于对数据库进行相应的存取操作,而且可以极大地简化应用程序的其他内容(查询、窗体、报表、代码等)
正确进行表设计的正式名称就是"数据库法律规范化"
后面我们将通过实例来说明具体的法律规范化的工程
关于什么是范式的定义,请参考附录文章 1
数据冗余数据应该尽可能少地冗余,这意味着重复数据应该减少到最少
比如说,一个部门雇员的电话不应该被存储在不同的表中, 因为这里的电话号码是雇员的一个属性
假如存在过多的冗余数据,这就意味着要占用了更多的物理空间,同时也对数据的维护和一致性检查带来了问题,当这个员工的电话号码变化时,冗余数据会导致对多个表的更新动作,假如有一个表不幸被忽略了,那么就可能导致数据的不一致性
法律规范化实例为了说明方便,我们在本文中将使用一个 SAMPLE 数据表,来一步一步分析法律规范化的过程
首先,我们先来生成一个的最初始的表
CREATE TABLE "SAMPLE" ( "PRJNUM" INTEGER NOT NULL, "PRJNAME" VARCH