zoukankan      html  css  js  c++  java
  • 数据仓库设计基础--关系模型和多维模型

    专业数据仓库面临的一个问题是数据仓库中数据库设计的基本模型选取问题。广泛采用的数据库设计模型有两种,关系型和多维型。

    下面介绍两种模型,及其两种方法的区别和在数据仓库中的应用,两种方法的优缺点。在建立数据仓库过程中,对于数据库设计而言,建立关系型数据库是最佳的长期的方法,并且这种情况需要真正的企业方法。多维模型有利于短期数据仓库,但这种方法使用的数据仓库的范围有限。

    一、关系模型

    二、多维模型

    三、两种模型的区别

    一、关系模型

    关系型数据库设计首先要创建一张数据表,表中每一行包含不同的列。关系表可以包含不同的属性,每一数据列表示不同的物理特征。不同的列可以索引并作为标识符。部分列在执行过程中可以为空。所有列都是根据数据定义语言(DDL)标准定义的。关系型数据以一种称为“标准化”的形式存在。数据标准化是指数据库设计会使数据分解成非常低的粒度级。标准化的数据以一种孤立模式存在,这种情况下对数据表里的数据关系要求很严格。当进行标准化的时候,表中的数据只能与这张表里的其他数据关联。

    通过关系模型产生的数据仓库的设计是很灵活的。基于设计的数据库起初可以是一种方式,当根据关系模型设计后又形成另一种形式。数据元可以以多种方式重新赋值。灵活性是关系模型最大的优势,其次是功能性。因为细节数据需要被收集到一起并且能够结合,因此给予关系模型的数据仓库的设计可以支持数据的多种视图。

    二、多维模型

    星形连接:

    多维模型方法也叫星形连接。

    数据库设计多维模型方法的中心是星形连接,之所以称为星形连接,是因为它的表示方法是以一颗“星”为中心,周围围绕着其他数据结构。即星形连接的中心是一张事实表。事实表是包含大量数据值的一种结构。事实表的周围是维表,用来描述事实表的某个重要方面。

    雪花结构:

    通常,星形连接只包含一张事实表。但是在数据库设计中要创建一种雪花结构的复合结构需要多张事实表结合。在雪花结构中,不同的事实表通过共享一个或多个公共维表连接起来。雪花结构隐含的另外一个想法是将事实表和维表结合起来,形成一个类似于雪花结构的形式。

    多维模型设计的最大优点在于访问的高效性。当设计适当时,通过星形连接将数据传递给最终用户是非常高效的。为了提高传递信息的效率,必须收集并吸收最终用户的请求。最终用户使用数据的过程是要定义什么样的多维结构的核心。一旦清楚了最终用户的请求,这些请求就可以用来最终确定星形连接,形成最理想的结构。

    三、两种模型的区别

    最重要的区别:灵活性和性能。

    灵活性和性能:

    关系模型粒度低,具有高灵活性,但是对用户来说在性能方面却不是理想的。

    多维模型在满足用户需求方面是非常高效的,但灵活性不好。

    设计的范围不同:

    多维设计通过用户需求建立模型,只能在有限范围内进行,适合于小范围数据(如一个部门甚至子部门),仅服务于一组用户的需求;

    关系型设计以最低粒度进行存储,那么就可以无限制的添加新数据。很显然,添加数据到关系模型永远也不会停止。所以关系模型适合于大范围数据(如一个企业模型),能满足多个企业的信息需求

    关系模型对数据仓库的直接访问是最佳的,而多维模型用于服务数据仓库的直接用户的需求时最理想的。

    四、独立数据集市和从属数据集市

    数据集市:是用来表示服务一组特定群体的分析需求的数据结构。

    独立数据集市:是指直接通过历史应用创建的数据集市。独立数据集市可以由单一的部门创建,而不考虑其他部门或组织。建立独立数据集市也不需要有“全局思想”考虑。独立数据集市表示企业全部DSS请求的一个子集,建立独立数据集市的费用不高,并且允许企业掌控子集的信息。

    从属数据集市:与独立数据集市对应。从属数据集市是利用来自数据仓库的数据建立的。它的数据源不依赖于历史数据或操作型数据,只依赖于数据仓库。从属数据集市要求预先计划和投资,并需要“全局考虑”。此外,从属数据集市要求多个用户共享他们创建数据仓库时的信息需求。总之,从属数据集市要求有预先的计划、长期的观察、全局的分析和企业各不同部门对需求分析的合作与协调。

     多维模型的另一特点是在数据集市中进行分析时,能够直接访问历史和操作型数据。数据集市分为两类:独立数据集市和从属数据集市。

    独立数据集市存在很多问题,而这些问题只有当建立起一定数目的独立数据集市后才会变得明显。

    独立数据集市存在以下问题:

    不提供数据重用平台;

    不提供数据一致性的基础;

    不提供单一历史接口程序基础;

    需要每一个独立数据集市创建自己的细节数据集,其他的独立数据集市会建立大量的冗余数据。

    从属数据集市可以从数据仓库提起数据,而不存在独立数据集市存在的体系结构的问题。

  • 相关阅读:
    介绍Collection框架的结构;Collection 和 Collections的区别
    Mybites和hibernate的优缺点和区别2
    Mybites和hibernate的优缺点和区别
    AJAX如何获取从前台传递过来的数据然后在通过servle传递给后台
    list map set 集合的区别
    乐观锁和悲观锁的区别
    python生产消费Kafka
    python类型转换
    python实现远程方法调用
    Scala常用数据结构
  • 原文地址:https://www.cnblogs.com/pangblog/p/3400348.html
Copyright © 2011-2022 走看看