数据仓库模型的设计.doc
数据仓库多维数据模型的设计

1、数据仓库基本概念1.1、主题(Subject)主题就是指我们所要分析的具体方面。
例如:某年某月某地区某机型某款App的安装情况。
主题有两个元素:一是各个分析角度(维度),如时间位置;二是要分析的具体量度,该量度一般通过数值体现,如App安装量。
1.2、维(Dimension)维是用于从不同角度描述事物特征的,一般维都会有多层(Level:级别),每个Level 都会包含一些共有的或特有的属性(Attribute),可以用下图来展示下维的结构和组成:以时间维为例,时间维一般会包含年、季、月、日这几个Level,每个Level一般都会有ID、NAME、DESCRIPTION这几个公共属性,这几个公共属性不仅适用于时间维,也同样表现在其它各种不同类型的维。
1.3、分层(Hierarchy)OLAP需要基于有层级的自上而下的钻取,或者自下而上地聚合。
所以我们一般会在维的基础上再次进行分层,维、分层、层级的关系如下图:每一级之间可能是附属关系(如市属于省、省属于国家),也可能是顺序关系(如天周年),如下图所示:1.4、量度量度就是我们要分析的具体的技术指标,诸如年销售额之类。
它们一般为数值型数据。
我们或者将该数据汇总,或者将该数据取次数、独立次数或取最大最小值等,这样的数据称为量度。
1.5、粒度数据的细分层度,例如按天分按小时分。
1.6、事实表和维表事实表是用来记录分析的内容的全量信息的,包含了每个事件的具体要素,以及具体发生的事情。
事实表中存储数字型ID以及度量信息。
维表则是对事实表中事件的要素的描述信息,就是你观察该事务的角度,是从哪个角度去观察这个内容的。
事实表和维表通过ID相关联,如图所示:1.7、星形/雪花形/事实星座这三者就是数据仓库多维数据模型建模的模式上图所示就是一个标准的星形模型。
雪花形就是在维度下面又细分出维度,这样切分是为了使表结构更加规范化。
雪花模式可以减少冗余,但是减少的那点空间和事实表的容量相比实在是微不足道,而且多个表联结操作会降低性能,所以一般不用雪花模式设计数据仓库。
数据仓库中的多维数据模型设计与实现教程

数据仓库中的多维数据模型设计与实现教程在数据仓库中,多维数据模型设计与实现是一项关键任务。
它不仅可以帮助企业组织和分析庞大的数据量,还能提供决策支持和洞察力。
本文将介绍数据仓库中多维数据模型的概念、设计原则以及实现方法,帮助读者全面了解和掌握这一重要主题。
一、多维数据模型的概念多维数据模型是基于数据的特征和关联性来组织数据的一种模型。
它通过将数据按照不同的业务维度进行分组和分类,将数据以多维方式呈现,从而提供了更加直观和灵活的数据分析能力。
多维数据模型主要由维度、度量和层次结构组成。
1. 维度:维度是描述业务问题的属性,它可以是时间、地理位置、产品、客户等。
维度用来描述数据的特征,例如销售额可以按照时间、地理位置和产品维度进行分析。
2. 度量:度量是可以进行数值计算和分析的数据,例如销售额、利润、数量等。
度量用来描述数据的量度,便于进行各种统计分析。
3. 层次结构:层次结构是维度之间的关系,它描述了维度之间的层次结构和上下级关系。
例如时间维度可以由年、月、日等层次结构组成。
二、多维数据模型的设计原则在设计多维数据模型时,需要遵循一些原则,以确保模型的合理性和有效性。
1. 简单性:多维数据模型应该尽可能简单,避免过于复杂的维度和层次结构。
简单的模型易于理解和维护,提高数据分析效率。
2. 一致性:多维数据模型中的维度和度量应该保持一致性,避免冗余和重复。
一致的模型有助于提高查询效率和数据一致性。
3. 可扩展性:多维数据模型应该具有良好的扩展性,能够容纳未来的需求变化和数据增长。
设计时需要考虑到未来可能发生的维度扩展和度量变化。
4. 性能优化:多维数据模型的设计也要考虑到查询性能的优化。
根据实际需求和查询模式,合理设计维度的层次结构、聚集表和索引等,以提高查询效率。
三、多维数据模型的实现方法在实现多维数据模型时,需要选择合适的工具和技术来支持模型的构建和数据的加载。
1. 数据抽取和转换:多维数据模型的实现通常需要进行数据抽取和转换,将源系统的数据转化为可用于多维模型的格式。
数据仓库的设计与构建研究

数据仓库的设计与构建研究随着互联网技术的发展,数据量的快速积累和每天不断增长的数据趋势,数据管理变成了日益复杂的任务。
数据仓库便应运而生,成为了企业管理和数据分析的必然选择。
在企业的决策和战略制定中,数据仓库所扮演的角色越来越重要,也越来越值得重视。
一、数据仓库的概念数据仓库是指将企业各种分散的数据源汇集起来,进行预处理、汇总、加工、再分析处理等操作后进行存储的一个系统。
其目的是为了利用大数据环境下的企业数据,将其变成决策支持的信息,从而为企业决策提供可靠的数据支撑。
数据仓库结构主要包含以下几个重要组成部分:1. 数据源数据源是数据仓库的来源,包括操作性数据库、文件系统、网络、接口等等。
通过提取不同来源的数据,并将其汇总到仓库中进行统一存储、管理和维护,实现数据的集成化管理。
2. 数据加工处理数据加工处理是数据仓库中最为复杂的一部分,包括数据清洗、数据挖掘、数据转换、数据整合等等。
这一过程要求数据仓库管理员具有一定的数据处理能力,并且需要考虑多种因素的影响,例如数据量、类型、格式、质量等等。
3. 元数据元数据是指描述数据仓库的数据,包括数据类型、数据来源、数据转换规则、质量检验规则等等。
元数据的作用是对数据进行管理、维护、分发和使用,为数据共享和商业决策提供支持。
4. 多维分析多维分析是指对数据仓库中的数据进行分析、整理和处理,以便更好地展现数据的特征和规律。
多维分析可通过OLAP(联机分析处理)的方式对数据进行分析,再根据分析结果制定企业针对性的业务决策。
二、数据仓库的设计思路数据仓库的设计与构建需要全面考虑企业的业务需求和数据特点,通过规范化、标准化的方式来进行设计,使其能够满足企业需求,并为企业的决策提供支持。
1. 初步分析通过初步分析了解企业的业务场景和数据来源,以及研究需求和决策支持信息的种类、格式等,以便进一步确定数据仓库的设计。
2. 数据建模数据建模是数据仓库的核心,它需要根据不同的业务需求和对数据的认识,对数据进行分类、构建数据模型,以便完成数据转化的目标。
数据仓库的设计和实现

数据仓库的设计和实现一、数据仓库的定义数据仓库(Data Warehouse)是指从不同数据源种搜集的信息,经过多维分析后形成的一个集中式且具备分析能力的数据存储库。
二、数据仓库设计的基本原则1. 集成性:数据仓库应该整合多个数据源的数据,具有全局性视角。
2. 时效性:数据应该是最新的,而非历史的,数据之间应该有时间关系。
3. 一致性:数据应该是唯一的、标准化的,并应该尽可能的与同一机构的不同业务应用和不同数据源适配。
4. 可访问性:数据应该是用户友好的,对多种数据操作的查询方式都要满足。
5. 稳定性:为避免影响公司核心业务,数据仓库必须保障数据的一致性,同时也保障数据的灵活性,以适应业务发展的方向。
三、数据仓库的设计流程数据仓库的设计流程可以大致分为以下几个步骤:1. 确定数据仓库的业务目标,指出数据仓库用于集成的数据源和数据仓库必须包含的内容。
2. 设计维度模型,理解主题业务流程,建立数据源和数据仓库之间的映射。
3. 设计度量模型,设定可计算的指标和各类跟踪指标。
这些指标是基于业务主题的分析,包括财务、物流和顾客等。
4. 设计 ETL 流程,其包括抽取阶段、转换阶段和装载阶段。
5. 设计物理架构,建立数据仓库到数据仓库工作台(作为交互的接口)的架构。
四、数据仓库的实现1. ETL 流程的实现,包括实现数据抽取、数据清洗、数据变换和数据装载为一体的各工作点,以完成 ETL 的流程。
2. 数据模型的实现,包括维度模型的物理模型和星型模型的物理模型。
物理模型也会设计纵向分区的间隔,同时也会考虑使用分区以便支撑大表的运行。
3. 明星和雪花分型的实现,考虑到性大数据、性能提升和系统的可维护性,将设计数据仓库的分层体系结构。
4. 单点登录、按权限进行数据授权,数据科技化越来越深,数据授权也会随之上升,因此数据仓库的权限设计也变得越来越重要。
5. 多维查询分析,利用数据挖掘、多维分析等技术把数据信息分析出来,是数据仓库的理解和利用它的关键。
数据仓库模型的设计

数据仓库模型的设计数据仓库模型的设计大体上可以分为以下三个层面的设计151:.概念模型设计;.逻辑模型设计;.物理模型设计;下面就从这三个层面分别介绍数据仓库模型的设计。
2.5.1概念模型设计进行概念模型设计所要完成的工作是:<1>界定系统边界<2>确定主要的主题域及其内容概念模型设计的成果是,在原有的数据库的基础上建立了一个较为稳固的概念模型。
因为数据仓库是对原有数据库系统中的数据进行集成和重组而形成的数据集合,所以数据仓库的概念模型设计,首先要对原有数据库系统加以分析理解,看在原有的数据库系统中“有什么”、“怎样组织的”和“如何分布的”等,然后再来考虑应当如何建立数据仓库系统的概念模型。
一方面,通过原有的数据库的设计文档以及在数据字典中的数据库关系模式,可以对企业现有的数据库中的内容有一个完整而清晰的认识;另一方面,数据仓库的概念模型是面向企业全局建立的,它为集成来自各个面向应用的数据库的数据提供了统一的概念视图。
概念模型的设计是在较高的抽象层次上的设计,因此建立概念模型时不用考虑具体技术条件的限制。
1.界定系统的边界数据仓库是面向决策分析的数据库,我们无法在数据仓库设计的最初就得到详细而明确的需求,但是一些基本的方向性的需求还是摆在了设计人员的面前:. 要做的决策类型有哪些?. 决策者感兴趣的是什么问题?. 这些问题需要什么样的信息?. 要得到这些信息需要包含原有数据库系统的哪些部分的数据?这样,我们可以划定一个当前的大致的系统边界,集中精力进行最需要的部分的开发。
因而,从某种意义上讲,界定系统边界的工作也可以看作是数据仓库系统设计的需求分析,因为它将决策者的数据分析的需求用系统边界的定义形式反映出来。
2,确定主要的主题域在这一步中,要确定系统所包含的主题域,然后对每个主题域的内容进行较明确数据仓库建模技术在电信行业中的应用的描述,描述的内容包括:. 主题域的公共码键;. 主题域之间的联系:. 充分代表主题的属性组。
数据仓库的设计和构建

数据仓库的设计和构建数据仓库(Data Warehouse)是指将组织机构内部各种分散的、异构的数据整合起来,形成一个共享的、一致的、易于查询和分析的数据环境。
数据仓库的设计和构建是数据管理和分析的重要环节。
本文将结合实践经验,介绍数据仓库的设计与构建过程。
一、需求分析数据仓库的设计与构建首先需要进行需求分析。
在需求分析阶段,我们需要明确以下几个问题:1. 数据来源:确定数据仓库所需要的数据来源,包括内部系统和外部数据源。
2. 数据维度:确定数据仓库中需要关注的维度,如时间、地理位置、产品等。
3. 数据粒度:确定数据仓库中的数据粒度,即需要对数据进行何种程度的聚合。
4. 数据可用性:确定数据仓库中数据的更新频率和可用性要求。
5. 分析需求:明确数据仓库所需满足的分析需求,如报表查询、数据挖掘等。
二、数据模型设计在数据仓库设计过程中,数据模型的设计尤为重要。
常用的数据模型包括维度建模和星型模型。
维度建模是基于事实表和维度表构建的,通过定义事实和维度之间的关系,建立多维数据结构。
星型模型则将事实表和各个维度表之间的关系表示为星型结构,有助于提高查询效率。
根据具体需求和数据特点,选择合适的数据模型进行设计。
三、数据抽取与转换数据仓库的构建过程中,需要从各个数据源中抽取数据,并进行清洗和转换。
数据抽取常用的方法包括全量抽取和增量抽取。
全量抽取是指将数据源中的全部数据抽取到数据仓库中,适用于数据量较小或变动频率较低的情况。
增量抽取则是在全量抽取的基础上,只抽取发生变动的数据,提高了数据抽取的效率。
数据在抽取到数据仓库之前还需要进行清洗和转换。
清洗的目标是去除数据中的错误、冗余和不一致之处,保证数据的准确性和完整性。
转换的目标是将数据格式进行统一,并进行必要的计算和整合,以满足数据仓库的需求。
四、数据加载与存储数据加载是指将抽取、清洗和转换后的数据加载到数据仓库中的过程。
数据加载的方式可以分为批量加载和实时加载。
数据仓库的设计与开发

02
在物理设计时,我们常常要按数据的重要程度、使用频率以及对响应时间的要求进行分类,并将不同类的数据分别存储在不同的存储设备中。
01
重要程度高、经常存取并对响应时间要求高的数据就存放在高速存储设备上,如硬盘;
02
存取频率低或对存取响应时间要求低的数据则可以放在低速存储设备上,如磁盘或磁带。
03
10
主键
Product-Name
char
25
产品名称
Product-SKu
char
20库存单位ຫໍສະໝຸດ 销售员维表包括不同地区的所有销售员信息
Salpers-Key
integer
15
主键
Salpers-Name
char
30
销售员姓名
Territory
char
20
销售员所在区域
Region
char
20
所在地区
订单事实表
销售数据和维
销售数据
商品
促销
时间
部门
城市
地区
商店
图4.2 销售业务的多维数据
(4)确定数据汇总水平
(5)设计事实表和维表
按使用的DBMS和分析用户工具,证实设计方案的有效性 根据系统使用的DBMS,确定事实表和维表的具体实现。由于不同的DBMS对数据存储有不同的要求,因此设计方案是否有效还要放在DBMS中进行检验
包括公司收到的所有订单
Order-Key
integer
10
订单键
Order-Name
char
20
订单名称
Product-ref
integer
10
参考产品主键
数仓设计文档模版

数仓设计文档模版数仓设计文档模版1. 引言:数仓设计文档旨在提供一个全面、一致、可靠的指导,用于规划、设计和实施一个高效的数据仓库解决方案。
本文档将详细阐述数据仓库的结构、组件和运作方式,并提供一系列最佳实践和建议,以帮助项目团队成功地建立和管理数据仓库。
2. 背景:本章节介绍项目的背景和目标,阐述为什么需要建立一个数据仓库,以及数据仓库所期望达到的业务和技术目标。
3. 数据需求分析:在本章节中,对业务需求进行详细的分析和梳理。
首先,列出项目中所涉及的所有业务部门和相关业务过程。
然后,对每个业务过程进行进一步的分解,识别需要收集和分析的数据。
4. 数据模型设计:在本章节中,描述数据仓库的逻辑和物理结构。
首先,设计维度模型,识别业务事实和维度,构造星型或雪花模型。
然后,定义事实表和维度表之间的关联关系和层级结构。
5. 数据抽取和转换设计:本章节详细描述数据仓库的数据抽取、清洗和转换过程。
首先,定义数据抽取的来源和频率,选择适当的数据抽取工具和技术。
然后,设计数据清洗和转换规则,确保数据的一致性和完整性。
6. 数据加载和管理:在本章节中,描述数据从数据源到数据仓库的加载和管理过程。
包括数据加载的时间频率、增量加载和全量加载的策略。
还需要定义数据质量的标准和度量,并实施数据监控和校验机制。
7. 数据访问和报表设计:本章节介绍数据仓库的数据访问和报表设计。
首先,定义用户需求和访问权限。
然后,设计适当的报表和分析工具,满足用户需求。
8. 项目计划和风险管理:本章节详细描述项目的计划和风险管理。
包括项目的时间安排、资源分配和沟通策略。
还需要评估项目的风险,并提供相应的风险处理计划。
9. 总结和建议:本章节对整个设计文档进行总结,并提供进一步的建议和指导。
需要强调数据仓库的重要性和潜在的业务价值,并提供后续维护和优化的建议。
总结:本文档提供了一个全面、一致、可靠的指导,用于规划、设计和实施数据仓库解决方案。
通过遵循本文档中的最佳实践和建议,项目团队可以成功地建立和管理一个高效的数据仓库,为业务决策提供有力支持。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2.5数据仓库模型的设计数据仓库模型的设计大体上可以分为以下三个层面的设计151:.概念模型设计;.逻辑模型设计;.物理模型设计;下面就从这三个层面分别介绍数据仓库模型的设计。
2.5.1概念模型设计进行概念模型设计所要完成的工作是:<1>界定系统边界<2>确定主要的主题域及其内容概念模型设计的成果是,在原有的数据库的基础上建立了一个较为稳固的概念模型。
因为数据仓库是对原有数据库系统中的数据进行集成和重组而形成的数据集合,所以数据仓库的概念模型设计,首先要对原有数据库系统加以分析理解,看在原有的数据库系统中“有什么”、“怎样组织的”和“如何分布的”等,然后再来考虑应当如何建立数据仓库系统的概念模型。
一方面,通过原有的数据库的设计文档以及在数据字典中的数据库关系模式,可以对企业现有的数据库中的内容有一个完整而清晰的认识;另一方面,数据仓库的概念模型是面向企业全局建立的,它为集成来自各个面向应用的数据库的数据提供了统一的概念视图。
概念模型的设计是在较高的抽象层次上的设计,因此建立概念模型时不用考虑具体技术条件的限制。
1.界定系统的边界数据仓库是面向决策分析的数据库,我们无法在数据仓库设计的最初就得到详细而明确的需求,但是一些基本的方向性的需求还是摆在了设计人员的面前:. 要做的决策类型有哪些?. 决策者感兴趣的是什么问题?. 这些问题需要什么样的信息?. 要得到这些信息需要包含原有数据库系统的哪些部分的数据?这样,我们可以划定一个当前的大致的系统边界,集中精力进行最需要的部分的开发。
因而,从某种意义上讲,界定系统边界的工作也可以看作是数据仓库系统设计的需求分析,因为它将决策者的数据分析的需求用系统边界的定义形式反映出来。
2,确定主要的主题域在这一步中,要确定系统所包含的主题域,然后对每个主题域的内容进行较明确数据仓库建模技术在电信行业中的应用的描述,描述的内容包括:. 主题域的公共码键;. 主题域之间的联系:. 充分代表主题的属性组。
2.5.2逻辑模型设计逻辑建模是数据仓库实施中的重要一环,因为它能直接反映出业务部门的需求,同时对系统的物理实施有着重要的指导作用。
在这一步里进行的工作主要有:. 分析主题域,确定当前要装载的主题;. 确定粒度层次划分;. 确定数据分割策略;. 关系模式定义;. 记录系统定义逻辑模型设计的成果是,对每个当前要装载的主题的逻辑实现进行定义,并将相关内容记录在数据仓库的元数据中,包括:. 适当的粒度划分;. 合理的数据分割策略;. 适当的表划分;. 定义合适的数据来源等。
I.分析主题域在概念模型设计中,我们确定了几个基本的主题域,但是,数据仓库的设计方法是一个逐步求精的过程,在进行设计时,一般是一次一个主题或一次若干个主题地逐步完成的。
所以,我们必须对概念模型设计步骤中确定的几个基本主题域进行分析,一并选择首先要实施的主题域。
选择第一个主题域所要考虑的是它要足够大,以便使得该主题域能建设成为一个可应用的系统;它还要足够小,以便于开发和较快地实施。
如果所选择的主题域很大并且很复杂,我们甚至可以针对它的一个有意义的子集来进行开发。
在每一次的反馈过程中,都要进行主题域的分析。
z.粒度层次划分数据仓库逻辑设计中要解决的一个重要问题是决定数据仓库的粒度划分层次,粒度层次划分适当与否直接影响到数据仓库中的数据量和所适合的查询类型。
确定数据仓库的粒度划分,可以使用在粒度划分一节中介绍的方法,通过估算数据行数和所需的DASD数,来确定是采用单一粒度还是多重粒度,以及粒度划分的层次。
3.确定数据分割策略在这一步里,要选择适当的数据分割的标准,一般要考虑以下几方面因素:数据量〔而非记录行数)、数据分析处理的实际情况、简单易行以及粒度划分策略等。
数据量的大小是决定是否进行数据分割和如何分割的主要因素;数据分析处理的要求是选择数据分割标准的一个主要依据,因为数据分割是跟数据分析处理的对象紧密联系的;我们还要考虑到所选择的数据分割标准应是自然的、易于实施的:同时也要考虑数据分割的标准与粒度划分层次是适应的。
4.关系模式定义数据仓库的每个主题都是由多个表来实现的,这些表之间依靠主题的公共码键联系在一起,形成一个完整的主题。
在概念模型设计时,我们就确定了数据仓库的基本主题,并对每个主题的公共码键、基本内容等做了描述在这一步里,我们将要对选定_的当前实施的主题进行模式划分,形成多个表,并确定各个表的关系模式。
用关系型数据库来实现数据仓库信息模型时,目前较常用的两种建模方法是所谓的第三范式(3NF,即Third Normal Form)和星型模式Star-Schem司,我们将重点讨论两种方法的特点和它们在数据仓库系统中的适用场合。
4.1什么是第三范式范式是数据库逻辑模型设计的基本理论,一个关系模型可以从第一范式到第五范式进行无损分解,这个过程也称为规范化(Normalize)。
在数据仓库的模型设计中目前一般采用第三范式,它有非常严格的数学定义。
如果从其表达的含义来看,一个符合第三范式的关系必须具有以下三个条件:1.每个属性的值唯一,不具有多义性;2.每个非主属性必须完全依赖于整个主键,而非主键的一部分;3.每个非主属性不能依赖于其他关系中的属性,团为这样的话,这种属性应该归到其他关系中去。
我们可以看到,第三范式的定义基本上是围绕主键与非主属性之间的关系而作出的。
如果只满足第一个条件,则称为第一范式;如果满足前面两个条件,则称为第二范式,依此类推。
因此,各级范式是向下兼容的。
4.2什么是星型模式星型模式是一种多维的数据关系,它由一个事实表(Fact Table)和一组维表(Dimension Table)组成。
每个维表都有一个维作为主键,所有这些维则组合成事实表的主键,换言之,事实表主键的每个元素都是维表的外键。
事实表的非主属性称为事实(Fact),它们一般都是数值或其他可以进行计算的数据;而维大都是文字、时间等类型的数据。
与星型模式类似还有一种业界提的比较多的设计方式是雪花模式,它也是一种在关系数据库中实现多维数据关系的方式,与星型模式相区别的是它的维表结构与星型模式不同。
星型模式中同一维度的不同层次位于一张维表中,维表由唯一主键和事实表关连;雪花模式中同一维度中的不同层次位于不同的层次表中,最低层次表与事实表关连,各个层次再分别和比自己高一级的层次表关连。
因为星型模式查询效率要比雪花模式高的多,所以比较多的是采用星型模式设计多维数据关系。
4. 3第三范式和星型模式在数据仓库中的应用大多数人在设计中央数据仓库的逻辑模型时,都按照第三范式来设计;而在进行物理实施时,则由于数据库引擎的限制,不得不对逻辑模型进行不规范处理(De-Normalize),以提高系统的响应速度,这当然是以增加系统的复杂度、维护工作量、磁盘使用比率(指原始数据与磁盘大小的比率)并降低系统执行动态查询能力为代价的。
根据数据仓库的测试标准TPC-D规范,在数据仓库系统中,对数据库引擎最大的挑战主要是这样几种操作:多表连接、表的累计、数据排序、大量数据的扫描。
下面列出了一些DBMS在实际系统中针对这些困难所采用的折衷处理办法:1、如何避免多表连接:在设计模型时对表进行合并,即所谓的预连接(Pre-Join)。
当数据规模小时,也可以采用星型模式,这样能提高系统速度,但增加了数据冗余量。
2、如何避免表的累计:在模型中增加有关小计数据(Summarized Data)的项。
这样也增加了数据冗余,而且如果某项问题不在预建的累计项内,需临时调整。
3、如何避免数据排序:对数据事先排序。
但随着数据仓库系统的运行,不断有新的数据加入,数据库管理员的工作将大大增加。
大量的时间将用于对系统的整理,系统的可用性随之降低。
4、如何避免大表扫描:通过使用大量的索引,可以避免对大量数据进行扫描。
但这也将增加系统的复杂程度,降低系统进行动态查询的能力。
这些措施大都属于不规范处理。
根据上面的讨论,当把规范的系统逻辑模型进行物理实施时,由于数据库引擎的限制,常常需要进行不规范处理。
举例来说,当系统数据量很小,比如只有几个GB时,进行多表连接之类复杂查询的响应时间是可以忍受的。
但是设想一下加果数据量扩展到很大,到几百GB,甚至上TB,一个表中的记录往往有几百万、几千万,甚至更多,这时进行多表连接这样的复杂查询,响应时间长得不可忍受。
这时就有必要把几个表合并,尽量减少表的连接操作。
当然,不规范处理的程度取决于数据库引擎的并行处理能力。
数据仓库建设者在选择数据库引擎时,除了参考一些相关的基准测试结果外,最好是能根据自己的实际情况设计测试方案,从几个数据库系统中选择最适合自己企业决策要求的一种。
不规范化处理虽然是提高系统性能的一种有效手段,但是由于中央数据仓库的数据模型反映了整个企业的业务运行规律,在这里进行不规范处理容易影响整个系统,不利于今后的扩展。
而且不规范处理产生的数据冗余将使整个系统的数据量迅速增加,这将增加DBA的工作量和系统投资。
因此,当系统性能下降而进行不规范处理时,比较好的办法是选择问题较集中的部门数据集市实施这种措施。
这样既能有效地改善系统性能汉不至于影响整个系统。
在国外一些成功的大型企业级数据仓库案例中,基本上都是采用这种方法。
那么,在中央数据仓库中是否可以采用星型模式来进行模型设计呢?我们知道,星型模式中有一个事实表和一组维表,我们可以把事实看成是各个维交叉点上的值。
例如,一个汽车厂在研究其销售情况时可以考察汽车的型号、颜色、代理商等多种因素,这些因素就是维,而销售量就是事实。
这种多维模型能迅速给出基于各个维的报表,这些维必须事先确定。
星型模式之所以速度快,在于针对各个维作了大量的预处理,如按照维进行预先的统计、分类、排序等。
在上面的例子中,就是按照汽车的型号、颜色、代理商进行预先的销售量统计。
因此,在星型模式设计的数据仓库中,作报表的速度虽然很快,但由于存在大量的预处理,其建模过程相对来说就比较慢。
当业务问题发生变化,原来的维不能满足要求时,需要增加新的维。
由于事实表的主键由所有维表的主键组成,这种维的变动将是非常复杂、非常耗时的。
星型模式另一个显著的缺点是数据的冗余量很大。
综合这些讨论,不难得出结论,星型模式比较适合于预先定义好的问题加需要产生大量报表的场合;而不适合于动态查询多、系统可扩展能力要求高或者数据量很大的场合。
因此,星型模式在一些要求大量报表的部门数据集市中有较多的应用。
4. 4两种模式的比较上面讨论了数据仓库逻辑模型设计中常用的两种方法.在数据仓库的应用环境中,主要有两种负载:一种是回答重复性的问题;另一种是回答交互性的问题。
动态查询具有较明显的交互性特征,即在一个问题答案的基础上进行进一步的探索,这种交互过程常称为数据挖掘(Data Mining)或者知识探索(Knowledge Discovery)。