扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者:Builder.com.cn 2007年2月8日
关键字: SQL Server
在数据库的设计阶段,数据库正规化过程中的一系列步骤指引我们分析和设计数据间的关系。本文向我们解释了为什么第三范式在某些时候并不是十分可行的,以及更倾向于一种混合的方法来实现数据库正规化的操作。
数据库组织过程将数据库正规化称之为指引我们分析和设计数据关系的一系列步骤,正规化的目的就是为了减少冗余数据,降低数据不一致相关性。
Dr. E. F. Codd最早提出了正规化的一系列准则。他提出的准则就是我们熟知的“范式”。这些范式表格是按序逐一建立的,从顶层的全局数据组织开始,然后考虑更细小的准则。
为了阐述这些表格的作用,让我们来看一个实例。某个电子表格中的数据字段是用来跟踪汽车销售情况的。我们将要分析表格中的数据并对数据表进行正规化操作。表1就是一个在分析中要使用的实例表结构。
|
第一范式表格:
下面将是操作过程的第一步。这一步的目标就是消除数据表格中的非原子型字段。使得在表格中的每个字段都是不可再分,并且表格具有唯一的主关键字,再另外为其它的相关数据创建一个表格。根据“非原子型”标准,我们查找哪些数据字段包含多个值,例如全名等。
通过观察数据表格,我们可以更改以下几处。首先,OwerName是一个字段,事实上我们可以将之拆分为owner first name 和last name 两个字段。其次,该数据表没有指定主关键字。TransactionNumber字段在数据表中是唯一的,因此我们可以指定TransactionNumber作为主关键字。结果如图2:
|
第二个范式表格:
我将创建单独的表格来保存那些不断重复出现的数据。一旦创建这些表格,就可以使用外部键约束来反映表格间的关系。同时,表格中的每一个非主关键字字段就可以看作是描述主关键字的属性。在执行这条规则之前,表格必须已经严格按照第一个范式进行了处理,如图3:
|
|
| |||||||||||
|
在第一次范式表格上再进行第二次范式操作,操作的结果是我们得到了两个表。其中AutoSales表包含的是关于销售交易和顾客的信息,而AutoSales表包含的是交易中销售车辆的信息。就像你看到了那样,通过这样的操作,我们就不需要在第一种范式表格中某些字段的重复数据。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者