【转】据仓库设计的三级数据模型

  所谓数据模型,就是对现实世界进行抽象的工具,抽象的程度不同,也就形成了不同抽象级别层次上的数据模型。数据仓库的数据模型与操作型数据库的三级数据模型又有一定的区别,主要表现在:
       (1) 数据仓库的数据模型中不包含纯操作型的数据。
       (2) 数据仓库的数据模型扩充了码结构,增加了时间属性作为码的一部分。
       (3) 数据仓库的数据模型中增加了一些导出数据。
       可以看出,上述三点差别也就是操作型环境中的数据与数据仓库中的数据之间的差别,同样是数据仓库为面向数据分析处理所要求的。虽然存在这样的差别,在数据仓库设计中,仍然存在着三级数据模型,即概念模型,逻辑模型和物理模型。

1.1 概念模型

       概念模型是主观与客观之间的桥梁,它是用于我们为一定的谬表设计系统,收集信息而服务的一个概念性的工具。具体到计算机系统来说,概念模型是客观世界到机器世界的一个中间层次。人们首先将现实世界抽象为信息世界,然后将信息世界转化为机器世界,信息世界中的这一信息结构,即是我们所说的概念模型。
   概念模型最常用的表示方法是E-R法(实体-联系法),这种方法用E-R图作为它的描述工具。E-R图描述的是实体以及实体之间的联系,在E-R图中,长方形表示实体,在数据仓库中就表示主题,在框内写上主题名;椭圆形表示主题的属性,并用无向边把主题与其属性连接起来;用菱形表示主题之间的联系,菱形框内写上联系的名字。用无向边把菱形分别与有关的主题连接,在无向边旁标上联系的类型。若主题之间的联系也具有属性,则把属性和菱形也用无向边连接上。
       由于E-R图具有良好的可操作性,形式简单,易于理解,便于与用户交流,对客观世界的描述能力也较强,在数据库设计方面更得到了广泛的应用。因为目前的数据仓库一般建立在关系数据库的基础之上,为了和原有数据库的概念模型相一致,采用E-R图作为数据仓库的概念模型仍然是较为适合的。用来表示某一商场的概念模型的E-R图见本章的5.1节。

1.2 逻辑模型

       在前面我们已经介绍过,目前数据仓库一般建立在关系数据库基础之上。因此,在数据仓库的设计中采用的逻辑模型就是关系模型无论是主题还是主题之间的联系,都用关系来表示。我们认为,关系模型概念简单,清晰,用户易懂,易用,有严格的数学基础和在此基础上发展的关系数据理论;关系模型简化了程序员的工作和数据仓库设计开发的工作,当前比较成熟的商品化数据库产品都是基于关系模型的。因此采用关系模型作为数据仓库的逻辑模型是合适的。下面简单介绍关系模型的基本概念。
       关系:一个二维表;
       元组:表中的一行称为一个元组;
       属性:表中的一列称为属性,给每一列起一个名称即属性名;
       主码:表中的某个属性组,它们的值唯一地标识一个元组;
       域:属性的取值范围;
       分量:元组中的一个属性组;
       关系模式:对关系的描述,用关系名(属性名1,属性名2,.......,属性名n)表示。
       数据仓库的逻辑模型描述了数据仓库的主题的逻辑实现,即每个主题所对应的关系表的关系模式的定义。

1.3 物理模型

       所谓数据仓库的物理模型就是逻辑模型在数据仓库中的实现,如物理存取方式,数据存储结构,数据存放位置以及存储分配等等。物理模型是在逻辑模型的基础之上实现的,在进行物理模型设计实现时,所考虑的主要因素有:I/O存取时间,空间利用率和维护代价;在进行数据仓库的物理模型设计时,考虑到数据仓库的数据量大但是操作单一的特点,可采取其他的一些提高数据仓库性能的技术,如:合并表,建立数据序列,引入冗余,进一步细分数据,生成导出数据,建立广义索引等等,其具体内容见提高数据仓库的性能一节。

1.4 高级模型,中级模型和低级模型

       W.H Inmon在《Building the Data Warehouse》[1]中提出了数据仓库三级数据模型的另一种提法:高级模型,中级模型,低级模型。
       高级模型,即E-R图(Entity-Relationship Diagram)。高级模型对数据抽象程度最大,使用的主要表达工具也是E-R图。首先确定E-R图所要集成的范围,并由各方用户提供自己眼中的分E-R图,最后将各个分E-R图集成为整个单位的总E-R图。低级模型,即物理数据模型。高级模型和低级模型与上几节所讲的是相同的,这里不再重复。下面简单介绍中级模型——dis。
       第二层中级模型称为数据项(dis-data item set)。dis是E-R图的细分,可以大致认为E-R图中的每一个实体都与一个dis相对应(如图)。每个dis中的数据项分为四个组别:基本数据组,二级数据组,联接数据组以及类型数据组(见图)。
       在这些数据中,联接数据组主要用于本主题域与其他主题域之间的联系,体现E-R图中实体之间的“关系”。一般情况下,联接数据组往往是一个主题的公共码键,如图所示,在帐户主题域中,联接属性组“顾客号”是顾客主题的公共码键,同时在顾客主题中,联接属性组“帐户号”则是帐户主题的公共码键。这样,就建立了两个主题之间的相互联系。
       其余三种数据组划分的标准可以认为是基于不同程度的数据 稳定性。其稳定性顺序是基本数据组>二级数据组>类型数据组。在这个“顾客”主题中,对于每一位具体的顾客而言,如顾客号,顾客名,性别等等,有关顾客的固定描述信息的数据项是基本不变的,所以它们可列入基本数据组。可以想见,主题的主码总是应包含在基本数据组中的。每个主题只存在一个基本数据组。顾客的住址,文化程度,电话等项虽然也是基本稳定,但它存在改变的可能,因而可列入二级数据组;而顾客的购物记录则是变动频繁的数据项,所以列入类型数据组。这种划分的好处是结构清晰,具有属性的数据被组织在一起;减少了冗余,如果将低频繁数据混杂在高频繁数据中一起存储,将产生大量冗余。



 

猜你喜欢

转载自jianchen.iteye.com/blog/1148128