关系型数据库设计的规范化

关系型数据库设计的规范化

ID:9793883

大小:81.50 KB

页数:10页

时间:2018-05-09

关系型数据库设计的规范化_第1页
关系型数据库设计的规范化_第2页
关系型数据库设计的规范化_第3页
关系型数据库设计的规范化_第4页
关系型数据库设计的规范化_第5页
资源描述:

《关系型数据库设计的规范化》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、关系型数据库是当前广泛应用的数据库类型,关系数据库设计是对数据进行组织化和结构化的过程,核心问题是关系模型的设计。对于数据库规模较小的情况,我们可以比较轻松的处理数据库中的表结构。然而,随着项目规模的不断增长,相应的数据库也变得更加复杂,关系模型表结构更为庞杂,这时我们往往会发现我们写出来的SQL语句的是很笨拙并且效率低下的。更糟糕的是,由于表结构定义的不合理,会导致在更新数据时造成数据的不完整。因此,就有必要学习和掌握数据库的规范化流程,以指导我们更好的设计数据库的表结构,减少冗余的数据,借此可以提高数据库的存储效率,数据完整性和可扩展性。本文将结合具体的实例,介绍数据库规范化的流程。规

2、范化在设计和操作维护数据库时,关键的步骤就是要确保数据正确地分布到数据库的表中。使用正确的数据结构,不仅便于对数据库进行相应的存取操作,而且可以极大地简化应用程序的其他内容(查询、窗体、报表、代码等)。正确进行表设计的正式名称就是"数据库规范化"。后面我们将通过实例来说明具体的规范化的工程。关于什么是范式的定义,请参考附录文章1.数据冗余数据应该尽可能少地冗余,这意味着重复数据应该减少到最少。比如说,一个部门雇员的电话不应该被存储在不同的表中,因为这里的电话号码是雇员的一个属性。如果存在过多的冗余数据,这就意味着要占用了更多的物理空间,同时也对数据的维护和一致性检查带来了问题,当这个员工的

3、电话号码变化时,冗余数据会导致对多个表的更新动作,如果有一个表不幸被忽略了,那么就可能导致数据的不一致性。规范化实例为了说明方便,我们在本文中将使用一个SAMPLE数据表,来一步一步分析规范化的过程。首先,我们先来生成一个的最初始的表。CREATETABLE"SAMPLE"("PRJNUM"INTEGERNOTNULL,"PRJNAME"VARCHAR(200),"EMYNUM"INTEGERNOTNULL,"EMYNAME"VARCHAR(200),"SALCATEGORY"CHAR(1),"SALPACKAGE"INTEGER)IN"USERSPACE1";ALTERTABLE"SAM

4、PLE"ADDPRIMARYKEY("PRJNUM","EMYNUM");InsertintoSAMPLE(PRJNUM,PRJNAME,EMYNUM,EMYNAME,SALCATEGORY,SALPACKAGE)values(100001,'TPMS',200001,'Johnson','A',2000),(100001,'TPMS',200002,'Christine','B',3000),(100001,'TPMS',200003,'Kevin','C',4000),(100002,'TCT',200001,'Johnson','A',2000),(100002,'TCT',2000

5、04,'Apple','B',3000);表1-1考察表1-1,我们可以看到,这张表一共有六个字段,分析每个字段都有重复的值出现,也就是说,存在数据冗余问题。这将潜在地造成数据操作(比如删除、更新等操作)时的异常情况,因此,需要进行规范化。第一范式参照范式的定义,考察上表,我们发现,这张表已经满足了第一范式的要求。1、因为这张表中字段都是单一属性的,不可再分;2、而且每一行的记录都是没有重复的;3、存在主属性,而且所有的属性都是依赖于主属性;4、所有的主属性都已经定义事实上在当前所有的关系数据库管理系统(DBMS)中,都已经在建表的时候强制满足第一范式。因此,这张SAMPLE表已经是一张满

6、足第一范式要求的表。考察表1-1,我们首先要找出主键。可以看到,属性对是主键,其他所有的属性都依赖于该主键。从一范式转化到二范式根据第二范式的定义,转化为二范式就是消除部分依赖。考察表1-1,我们可以发现,非主属性部分依赖于主键中的;非主属性都部分依赖于主键中的;表1-1的形式,存在着以下潜在问题:1.数据冗余:每一个字段都有值重复;2.更新异常:比如

7、字段的值,比如对值"TPMS"了修改,那么就要一次更新该字段的多个值;3.插入异常:如果新建了一个Project,名字为TPT,但是还没有Employee加入,那么将会空缺,而该字段是主键的一部分,因此将无法插入记录;InsertintoSAMPLE(PRJNUM,PRJNAME,EMYNUM,EMYNAME,SALCATEGORY,SALPACKAGE)valu

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。