IBM软件部信息技术专家:本文行业的不同业务特点及应用

周日保(zhousb@cn.ibm.com)IBM软件部信息技术专家.

简介:本文的主要内容不是介绍现有的比较流行的主要行业的一些数据模型,而是将笔者在数据库房建设项目中的一些经验,在这儿分享给你们。希望帮助你们在数据库房项目建设中总结出一套才能合乎目前业界规范的,满足大部份行业数据库房建设标准的一种技巧。

所谓水无定势,兵无常法。不同的行业,有不同行业的特性,因而,从业务角度看,其相应的数据模型是千差万别的。目前业界较为主流的是数据库房厂商主要是IBM和NCR,这两家公司的不仅还能提供较为强悍的数据库房平台之外,也有各自的针对某个行业的数据模型。

比如,在银行业,IBM有自己的BDWM(Bankingdatawarehousemodel),而NCR有自己的FS-LDM模型。在联通业,IBM有TDWM(TelecomDatawarehousemodel),而NCR有自己的TS-LDM模型。为此,我们看见,不同的公司有自己针对某个行业的理解,因而会有不同的公司针对某个行业的模型。而对于不同的行业,同一个公司也会有不同的模型,这主要取决于不同行业的不同业务特性。

举例来说,IBM的TDWM的模型总共包含了以下9个概念,如右图:

图1.IBM的TDWM概念模型

图片[1]-IBM软件部信息技术专家:本文行业的不同业务特点及应用-唐朝资源网

可能好多人要问,为何大家的模型是9个概念而不是10个,11个呢?大家的数据库房模型的根据又是哪些?虽然这是我们在给顾客介绍我们的数据模型时,时常被问到的一个问题,我希望读者在读完本文时,才能找到自己的答案。

尽管每位行业有自己的模型,并且,我们发觉,不同行业的数据模型,在数据建模的方式上,却都有着共通的基本特性。

本文的主要目的之一,就是希望读者还能通过对本文的阅读,同时,结合自己对数据库房建设的经验,在建设数据库房的时侯才能总结出一套适宜自己的建模方式,才能更好的帮助顾客去发挥数据库房的作用。

本文主要的主线就是回答下边三个问题:

最后,我们在本文的结尾给你们介绍了一个具体的数据库房建模的样例,帮助你们来了解整个数据建模的过程。

一、什么是数据模型

数据模型是具象描述现实世界的一种工具和方式,是通过具象的实体及实体之间联系的方式,来表示现实世界中事务的互相关系的一种映射。在这儿,数据模型表现的具象的是实体和实体之间的关系,通过对实体和实体之间关系的定义和描述,来抒发实际的业务中具体的业务关系。

数据库房模型是数据模型中针对特定的数据库房应用系统的一种特定的数据模型,通常的来说,我们数据库房模型分为几下几个层次,如图2所示。

图2.数据库房模型

图片[2]-IBM软件部信息技术专家:本文行业的不同业务特点及应用-唐朝资源网

图片[3]-IBM软件部信息技术专家:本文行业的不同业务特点及应用-唐朝资源网

通过前面的图形,我们就能很容易的看出在整个数据库房得建模过程中,我们须要经历通常四个过程:

为此,在整个数据库房的模型的设计和构架中,既涉及到业务知识,也涉及到了具体的技术,我们既须要了解丰富的行业经验,同时,也须要一定的信息技术来帮助我们实现我们的数据模型,最重要的是,我们还须要一个特别适用的方式论,来指导我们自己针对我们的业务进行具象,处理,生成各个阶段的模型。

二、为什么须要数据模型

在数据库房的建设中,我们一再指出须要数据模型,这么数据模型到底为何如此重要呢?首先我们须要了解整个数据库房的建设的发展史。

数据库房的发展大致经历了这样的三个过程:

通过数据库房建设的发展阶段数据建模基础教程,我们就能看出,数据库房的建设和数据集市的建设的重要区别就在于数据模型的支持。为此,数据模型的建设,对于我们数据库房的建设,有着决定性的意义。

通常来说,数据模型的建设主要才能帮助我们解决以下的一些问题:

三、如何建设数据模型

建设数据模型既然是整个数据库房建设中一个十分重要的关键部份,这么,如何建设我们的数据库房模型就是我们须要解决的一个问题。这儿我们即将详尽介绍怎样创建适宜自己的数据模型。

1)数据库房数据模型构架

数据库房的数据模型的构架和数据库房的整体构架是紧密关联在一起的,我们首先来了解一下整个数据库房的数据模型应当包含的几个部份。从右图我们可以很清楚地看见,整个数据模型的构架分成5大部份,每位部份虽然都有其独到的功能。

图3.数据库房数据模型构架

图片[4]-IBM软件部信息技术专家:本文行业的不同业务特点及应用-唐朝资源网

从上图我们可以看出,整个数据库房的数据模型可以分为大约5大部份:

通过对整个数据库房模型的数据区域的界定,我们可以了解到,一个好的数据模型,不仅仅是对业务进行具象界定,并且对实现技术也进行具体的指导,它应当囊括了从业务到实现技术的各个部份。

2)数据库房建模阶段界定

我们上面介绍了数据库房模型的几个层次,下边我们讲一下,针对这几个层次的不同阶段的数据建模的工作的主要内容:

图4.数据库房建模阶段界定

图片[5]-IBM软件部信息技术专家:本文行业的不同业务特点及应用-唐朝资源网

从上图我们可以清楚地看出,数据库房的数据建模大致分为四个阶段:

1.业务建模,这部份建模工作,主要包含以下几个部份:

2.领域概念建模,这部份得建模工作,主要包含以下几个部份:

3.逻辑建模,这部份的建模工作,主要包含以下几个部份:

4.化学建模,这部份得建模工作,主要包含以下几个部份:

从我们前面对数据库房的数据建模阶段的各个阶段的界定,我们才能了解到整个数据库房建模的主要工作和工作量,希望还能对我们在实际的项目建设才能有所帮助。

3)数据库房建模方式

大千世界,表面看七彩斑斓,实质上,万物都遵守其自有的法则。数据库房的建模方式同样也有好多种,每一种建模方式虽然代表了哲学上的一个观点,代表了一种归纳,概括世界的一种方式。目前业界较为流行的数据库房的建模方式十分多,这儿主要介绍范式建模法,维度建模法,实体建模法等几种方式,每种方式虽然从本质上讲就是从不同的角度看我们业务中的问题,不管从技术层面还是业务层面,虽然代表的是哲学上的一种世界观。我们下边给你们详尽介绍一下这种建模技巧。

1.范式建模法(ThirdNormalForm,3NF)

范式建模法虽然是我们在建立数据模型常用的一个方式,该方式的主要由Inmon所倡导,主要解决关系型数据库得数据储存,借助的一种技术层面上的技巧。目前,我们在关系型数据库中的建模方式,大部份采用的是三范式建模法。

范式是数据库逻辑模型设计的基本理论,一个关系模型可以从第一范式到第五范式进行无损分解,这个过程也可称为规范化。在数据库房的模型设计中目前通常采用第三范式,它有着严格的物理定义。从其抒发的涵义来看,一个符合第三范式的关系必须具有以下三个条件:

因为范式是基于整个关系型数据库的理论基础之上发展而至的,为此,本人在这儿不多做介绍,有兴趣的读者可以通过阅读相应的材料来获得这方面的知识。

按照Inmon的观点,数据库房模型得建设方式和业务系统的企业数据模型类似。在业务系统中,企业数据模型决定了数据的来源,而企业数据模型也分为两个层次,即主题域模型和逻辑模型。同样,主题域模型可以看成是业务模型的概念模型,而逻辑模型则是域模型在关系型数据库上的实例。

图片[6]-IBM软件部信息技术专家:本文行业的不同业务特点及应用-唐朝资源网

图5.范式建模法

图片[7]-IBM软件部信息技术专家:本文行业的不同业务特点及应用-唐朝资源网

从业务数据模型转向数据库房模型时,同样也须要有数据库房的域模型,即概念模型,同时也存在域模型的逻辑模型。这儿,业务模型中的数据模型和数据库房的模型稍为有一些不同。主要区别在于:

以笔者的观点来看,Inmon的范式建模法的最大优点就是从关系型数据库的角度出发,结合了业务系统的数据模型,才能比较便捷的实现数据库房的建模。但其缺点也是显著的,因为建模方式限定在关系型数据库之上,在个别时侯反倒限制了整个数据库房模型的灵活性,性能等,非常是考虑到数据库房的底层数据向数据集市的数据进行汇总时,须要进行一定的变通能够满足相应的需求。因而,笔者建议读者们在实际的使用中,参考使用这一建模方法。

2.维度建模法

维度建模法,Kimball最先提出这一概念。其最简单的描述就是,根据事实表,维表来建立数据库房,数据集市。这些技巧的最被人广泛知晓的名子就是星型模式(Star-schema)。

图6.维度建模法

图片[8]-IBM软件部信息技术专家:本文行业的不同业务特点及应用-唐朝资源网

上图的这个构架中是典型的星型构架。星型模式之所以广泛被使用,在于针对各个维作了大量的预处理,如根据维进行预先的统计、分类、排序等。通过这种预处理,才能极大的提高数据库房的处理能力。非常是针对3NF的建模方式,星型模式在性能上抢占显著的优势。

同时,维度建模法的另外一个优点是,维度建模十分直观,紧紧围绕着业务模型,可以直观的反映出业务模型中的业务问题。不须要经过非常的具象处理,即可以完成维度建模。这一点也是维度建模的优势。

然而,维度建模法的缺点也是十分显著的,因为在建立星型模式之前须要进行大量的数据预处理,因而会造成大量的数据处理工作。并且,当业务发生变化,须要重新进行维度的定义时,常常须要重新进行维度数据的预处理。而在那些与处理过程中,常常会造成大量的数据冗余。

另外一个维度建模法的缺点就是,假如只是借助单纯的维度建模,不能保证数据来源的一致性和确切性,但是在数据库房的底层,不是非常适用于维度建模的方式。

因而以笔者的观点看,维度建模的领域主要适用与数据集市层,它的最大的作用虽然是为了解决数据库房建模中的性能问题。维度建模很难才能提供一个完整地描述真实业务实体之间的复杂关系的具象方式。

3.实体建模法

实体建模法并不是数据库房建模中常见的一个方式,它来始于哲学的一个流派。从哲学的意义上说,客观世界应当是可以细分的,客观世界应当可以分成由一个个实体,以及实体与实体之间的关系组成。这么我们在数据库房的建模过程中完全可以引入这个具象的方式,将整个业务也可以划分成一个个的实体,而每位实体之间的关系,以及针对这种关系的说明就是我们数据建模须要做的工作。

尽管实体法粗看上去似乎有一些具象,虽然理解上去很容易。即我们可以将任何一个业务过程界定成3个部份,实体,风波和说明,如右图所示:

图7.实体建模法

图片[9]-IBM软件部信息技术专家:本文行业的不同业务特点及应用-唐朝资源网

上图叙述的是一个具象的含意,假如我们描述一个简单的事实:“小明驾车去中学念书”。以这个业务事实为例,我们可以把“小明”,“学校”看成是一个实体,“上学”描述的是一个业务过程,我们在这儿可以具象为一个具体“事件”,而“开车去”则可以看成是风波“上学”的一个说明。

从前面的举例我们可以了解,我们使用的具象归纳方式虽然很简单,任何业务可以看成3个部份:

因为实体建模法,才能很轻松的实现业务模型的界定,因而,在业务建模阶段和领域概念建模阶段,实体建模法有着广泛的应用。从笔者的经验来看,再没有现成的行业模型的情况下,我们可以采用实体建模的方式,和顾客一起理清整个业务的模型,进行领域概念模型的界定,具象开具体的业务概念,结合顾客的使用特性,完全可以创建出一个符合自己须要的数据库房模型来。

然而,实体建模法也有着自己先天的缺陷,因为实体说明法只是一种具象客观世界的方式,为此,注定了该建模方式只能局限在业务建模和领域概念建模阶段。为此,到了逻辑建模阶段和数学建模阶段,则是范式建模和维度建模发挥长处的阶段。

为此,笔者建议读者在创建自己的数据库房模型的时侯,可以参考使用上述的三种数据库房得建模方式,在各个不同阶段采用不同的方式,进而才能保证整个数据库房建模的质量。

四、数据库房建模样例

里面介绍得是一些具象得建模方式和理论,可能理解上去相对有些难度,为此,笔者在这儿举一个反例,读者可以跟随我们的这个样例,来初步了解整个数据库房建模的大约过程。

熟悉医保行业的读者可以晓得,目前我们国家的公积金主要分为养老,待业,工伤,生育,医疗保险和劳动力市场这6大块主要业务领域。在这6大业务领域中,目前的状况养老和事业的系统早已基本建立,早已有一部份数据开始联网检查。而,对于工伤,生育,医疗和劳动力市场这一块业务,有些地方发展的比较成熟,而有些地方还不够成熟。

1.业务建模阶段

基于以上的背景介绍,我们在业务建模阶段,就很容易来界定相应的业务。为此,在业务建模阶段,我们基本上确定我们本次数据库房建设的目标,建设的方式,以及长远规划等。如右图:

图8.业务建模阶段

在这儿,我们将整个

图片[10]-IBM软件部信息技术专家:本文行业的不同业务特点及应用-唐朝资源网

业务很清楚地界定成了几个大的业务主线,比如:养老,待业,工伤,生育,医疗,劳动力等着几个大的部份,之后我们可以按照这种大的模块,在每位业务主线内,考虑具体的业务主线内需要剖析的业务主题。

图片[11]-IBM软件部信息技术专家:本文行业的不同业务特点及应用-唐朝资源网

因而,业务建模阶段虽然是一次和业务人员梳理业务的过程,在这个过程中,除了能帮助我们技术人员更好的理解业务,另一方面,也才能发觉业务流程中的一些不合理的环节,加以改善和改进。

同时,业务建模阶段的另一个重要工作就是确定我们数据建模的范围,比如:在个别数据打算不够充分的业务模块内,我们可以考虑先不建设相应的数据模型。等到条件充分成熟的情况下,我们可以再来考虑数据建模的问题。

2.领域概念建模阶段

领域概念建模阶段是数据库房数据建模的一个重要阶段,因为我们在业务建模阶段早已完全理清相应的业务范围和流程,因而,我们在这个领域概念建模阶段的最主要的工作就是进行概念的具象,整个领域概念建模的工作层次如右图所示:

图9.领域概念建模阶段

图片[12]-IBM软件部信息技术专家:本文行业的不同业务特点及应用-唐朝资源网

从上图我们可以清楚地看见,领域概念建模就是运用了实体建模法,从错综的业务假象背后通过实体建模法,具象出实体,风波,说明等具象的实体,因而找出业务假象后具象实体间的互相的关联性,保证了我们数据库房数据根据数据模型所能达到的一致性和关联性。

从图上看,我们可以把整个具象过程分为四个层次,分别为:

通过领域概念建模,数据库房的模型早已被具象成一个个的实体,模型的框架早已搭建完毕,下边的工作就是给那些框架注入有效的肌体。

3.逻辑建模阶段

通过领域概念建模以后,尽管模型的框架早已完成,并且还有好多细致的工作须要完成。通常在这个阶段,我们还须要做特别多的工作,主要包括:

总而言之,在逻辑建模阶段,我们主要考虑得是具象实体的一些细致的属性。通过逻辑建模阶段,我们才才能将整个概念模型完整串联成一个有机的实体,才才能完整的抒发出业务之间的关联性。

在这个阶段,笔者建议你们可以参考3NF的建模方式,抒发出实体的属性,以及实体与实体之间的联系。诸如:在这个阶段,我们可以通过采用ERWIN等建模工具等做出符合3NF的关系型数据模型来。

4.数学建模阶段

数学建模阶段是整个数据建模的最后一个过程数据建模基础教程,这个过程似乎是将上面的逻辑数据模型落地的一个过程。考虑到数据库房平台的不同,为此,数据模型得数学建模过程可能会稍为有一些不同,在这个阶段我们主要的工作是:

经过化学建模阶段,整个数据库房的模型早已全部完成,我们可以根据自己的设计来针对当前的行业创建满足自己须要的数据模型来。

这儿,笔者通过一个数据建模的样例,希望才能给读者一个关于数据库房建模的感性的认识。希望读者在借助那些数据库房得建模方式创建自己的数据模型的时侯,可以依据业务实际的须要和自己对具象能力的掌握来创建适宜自己的数据模型。

© 版权声明
THE END
喜欢就支持一下吧
点赞88 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片