1 / 5
文档名称:

规范化-数据库设计原则.docx

格式:docx   大小:17KB   页数:5页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

规范化-数据库设计原则.docx

上传人:suijiazhuang2 2020/11/25 文件大小:17 KB

下载得到文件列表

规范化-数据库设计原则.docx

相关文档

文档介绍

文档介绍:规范化-数据库设计原则
序言
本文的目的就是通过详细的实例来阐述规范化的数据库设计原则。在 DB2中,简洁、结构明晰的表结构对数据库的设计是相当重要的。
规范化的表结构设计,在以后的数据维护中,不会发生插入( insert )、删除(delete )和更新(update )时的异常。反之,数据库表
结构设计不合理,不仅会给数据库的使用和维护带来各种各样的问题,而且可能存储了大量不需要的冗余信息,浪费系统资源。
要设计规范化的数据库,就要求我们根据数据库设计范式 一一也就是数据库设计的规范原则来做。但是一些相关材料上提到的范式设计,
往往是给出一大堆的公式,这给设计者的理解和运用造成了一定的困难。因此,本文将结合具体形象的例子,尽可能通俗化地描述三个 范式,以及如何在实际工程中加以优化应用。
规范化
在设计和操作维护数据库时,关键的步骤就是要确保数据正确地分布到数据库的表中。使用正确的数据结构,不仅便于对数据库进行相
应的存取操作,而且可以极大地简化应用程序的其他内容(查询、窗体、报表、代码等)。正确进行表设计的正式名称就是 “数据库规范
化“。后面我们将通过实例来说明具体的规范化的工程。关于什么是范式的定义,请参考附录文章 1.
数据冗余
数据应该尽可能少地冗余,这意味着重复数据应该减少到最少。比如说,一个部门雇员的电话不应该被存储在不同的表中, 因为这里的
电话号码是雇员的一个属性。如果存在过多的冗余数据,这就意味着要占用了更多的物理空间,同时也对数据的维护和一致性检查带来 了问题,当这个员工的电话号码变化时,冗余数据会导致对多个表的更新动作,如果有一个表不幸被忽略了,那么就可能导致数据的不 一致性。
规范化实例
为了说明方便,我们在本文中将使用一个 SAMPLE数据表,来一步一步分析规范化的过程。
首先,我们先来生成一个的最初始的表。
CREATE TABLE "SAMPLE"(
"PRJNUM" INTEGER NOT NULL,
"PRJNAME" VARCHAR(200),
"EMYNUM" INTEGER NOT NULL,
"EMYNAME" VARCHAR(200),
"SALCATEGORY" CHAR(1), "SALPACKAGE" INTEGER) IN "USERSPACE1";
ALTER TABLE "SAMPLE"
ADD PRIMARY KEY
("PRJNUM", "EMYNUM");
In sert into SAMPLE(PRJNUM, PRJNAME, EMYNUM, EMYNAME, SALCATEGORY, SALPACKAGE)
values(100001, 'TPMS', 200001, 'Johnson', 'A', 2000), (100001, 'TPMS', 200002,
'Christi ne', 'B', 3000), (100001, 'TPMS', 200003, 'Kevi n', C, 4000), (100002,
'TCT', 200001, 'Joh nson', 'A', 2000), (100002, 'TCT', 200004, 'Apple', 'B',
3000);
表1-1
Project
N