2007-01-24

精华:数据库正规化设计的基本原理

来源: 本站收集整理 作者:佚名 评论 0 条
 

在数据库的设计阶段,数据库正规化过程中的一系列步骤指引我们分析和设计数据间的关系。本文向我们解释了为什么第三范式在某些时候并不是十分可行的,以及更倾向于一种混合的方法来实现数据库正规化的操作。

数据库组织过程将数据库正规化称之为指引我们分析和设计数据关系的一系列步骤,正规化的目的就是为了减少冗余数据,降低数据不一致相关性。

Dr. E. F. Codd最早提出了正规化的一系列准则。他提出的准则就是我们熟知的“范式”。这些范式表格是按序逐一建立的,从顶层的全局数据组织开始,然后考虑更细小的准则。

为了阐述这些表格的作用,让我们来看一个实例。某个电子表格中的数据字段是用来跟踪汽车销售情况的。我们将要分析表格中的数据并对数据表进行正规化操作。下表就是一个在分析中要使用的实例表结构。

TransactionNumber

 

VIN1

 

CarType1

 

VIN2

 

CarType2

 

VIN3

 

CarType3

 

OwnerName

 

OwnerState

 

CarPrice1

 

CarPrice2

 

CarPrice3

 

TransationDate

第一范式表格:

下面将是操作过程的第一步。这一步的目标就是消除数据表格中的非原子型字段。使得在表格中的每个字段都是不可再分,并且表格具有唯一的主要害字,再另外为其它的相关数据创建一个表格。根据“非原子型”标准,我们查找哪些数据字段包含多个值,例如全名等。

通过观察数据表格,我们可以更改以下几处。首先,OwerName是一个字段,事实上我们可以将之拆分为owner first name 和last name 两个字段。其次,该数据表没有指定主要害字。TransactionNumber字段在数据表中是唯一的,因此我们可以指定TransactionNumber作为主要害字。结果如下:

TransactionNumber

 

VIN1

 

CarType1

 

VIN2

 

CarType2

 

VIN3

 

CarType3

 

OwnerFirstName

 

OwnerLastname

 

CarPrice1

 

CarPrice2

 

CarPrice3

 

TransationDate1

 

TransationDate2

 

TransationDate3

第二个范式表格:

我将创建单独的表格来保存那些不断重复出现的数据。一旦创建这些表格,就可以使用外部键约束来反映表格间的关系。同时,表格中的每一个非主要害字字段就可以看作是描述主要害字的属性。在执行这条规则之前,表格必须已经严格按照第一个范式进行了处理,如下图:

在第一次范式表格上再进行第二次范式操作,操作的结果是我们得到了两个表。其中AutoSales表包含的是关于销售交易和顾客的信息,而AutoSales表包含的是交易中销售车辆的信息。就像你看到了那样,通过这样的操作,我们就不需要在第一种范式表格中某些字段的重复数据。

第三范式:

这是我对样例表格作的最后一次标准化操作。通过这次操作要达到的目的是消除表格中那些不完全函数依靠主要害字的字段。我们必须确保表格中的字段都是完全依靠于主要害字的。如下图:
共2页: 上一页 1 [2] 下一页

(本文仅表明作者个人观点,不代表本站及其管理员立场.) 推荐 收藏 投稿 打印 返回 关闭
上一篇:2台服务器数据库如何同步?  
下一篇:五步设计高效可靠的数据库详细介绍
    评论加载中…
 推荐文章
     

网站首页  -  网站地图 -   站长论坛  -  网站投稿  -    -  网站管理
Copyright © 2008 芜湖站长站 All Rights Reserved 皖ICP备07500611号