系统架构设计师教程(第四版)笔记整理——数据库系统(五)

 

3.7 数据仓库

   传统的操作型数据库主要是面向业务的,所执行的操作基本上也是联机事务处理,

但随着企业规模的增长,历史累积的数据越来越多,如何利用历史数据来为未来决策服务,就显得越来越重要了,而数据仓库就是其中的一种技术。

3.7.1 数据仓库的概念

  著名数据仓库专家 W.H.Inmon 在《Building the Data Warehouse》一书中将数据仓库定义为:

  数据仓库(Data Warehouse) 是一个面向主题的、集成的、相对稳定的、且随时间变化的数据集合,用于支持管理决策。

  1.面向主题的 操作型数据库的数据组织面向事务处理任务(面向应用),

  各个业务系统之间各自分离,而数据仓库中的额数据是按照一定的主题域进行组织的。

  主题是一个抽象的概念,是指用户使用仓库进行决策时所关心的重点方面,

  一个主题通常与多个操作型信息系统相关。

  例如,一个保险公司所进行的事务处理(应用问题)可能包括汽车保险、人寿保险、健康保险和意外保险等,而公司的主要主题范围可能是顾客、保险单、保险费和索赔等。

  2.集成(是数据仓库特性中,最重要的)

  面向事务处理的操作型数据库通常与某些特定的应用相关,数据库之间相互独立,并且往往是异构的。

  而数据仓库中的数据是对原有分散的数据库数据抽取、清理的基础上经过系统加工、汇总和整理得到的,必须消除源数据中的不一致性,以保证数据仓库内的信息是关于整个企业的一致的全局信息。

  3.相对稳定的操作型数据库中的数据通常实时更新,数据根据需要及时发生变化。

  数据仓库的数据主要供企业决策分析之用,

  所涉及的数据操作主要是:数据查询,一旦某个数据进入数据仓库以后,一般情况下将被长期保留,也就是数据仓库中一般有大量的查询操作,但修改和删除操作很少,

通常只需要定期地加载、刷新。

  4.随时间变化的操作型数据库主要关心当前某一个时间段内的数据,

而数据仓库中的数据通常包含历史信息,系统记录了企业从过去某一时点(如开始应用数据仓库的时点)到目前的各个阶段的信息,

通过这些信息,可以对企业的发展历程和未来趋势做出定量分析和预测。

  数据仓库反映历史变化的属性主要表现在:

  (1)数据仓库中的数据时间期限要远远长于传统操作型数据系统中的数据时间期限,

传统操作型数据系统中的数据时间期限可能为数十天或数个月,

数据仓库中的数据时间期限往往为数年甚至几十年;

  (2)传统操作型数据系统中的数据含有“当前值”的数据,这些数据在访问时是有效的,当然数据的当前值也能被更新,

但数据仓库中的数据仅仅是一系列某一时刻(可能是传统操作型数据系统)生成的复杂的快照;

  (3)传统操作型数据系统中可能包含也可能不包含时间元素,如年、月、日、时、分、秒等,而数据仓库中一定会包含时间元素。

  数据仓库虽然是从传统数据库系统发展来,但两者存在诸多差异,

  

数据存储内容:数据库只存放当前值;数据仓库则存放历史值;

数据目标:数据库数据是面向业务操作人员,为业务处理人员提供数据处理的支持,

     数据仓库是面向中高层管理人员,为其提供决策支持等。

3.7.2数据仓库的结构

   从数据仓库的概念结构看,一般来说,数据仓库系统要包含数据源数据准备区

 数据仓库数据库数据集市/知识挖掘库各种管理工具应用工具

 

  数据仓库建立之后,

首先要从数据源中抽取相关的数据到数据准备区,

在数据准备区中经过净化处理后再加载到数据仓库数据库,

最后根据用户的需求将数据导入数据集市和知识挖掘库中。

 当用户使用数据仓库时,可以利用包括OLAP(On-Line Analysis Processing,联机分析处理)在内的多种数据仓库应用工具向数据集市/知识挖掘库或数据仓库进行决策查询分析或知识挖掘。

  数据仓库的创建、应用可以利用各种数据仓库管理工具辅助完成。

  1.数据仓库的参考框架

    数据仓库的参考框架由数据仓库基本功能层、数据仓库管理层和数据仓库环境支持层组成。

    

(1)数据仓库基本功能层。

  数据仓库的基本功能层部分包含数据源、数据准备区、数据仓库结构、数据集市或知识挖掘库,以及存取和使用部分。

  本层的功能是从数据源抽取数据,对所抽取的数据进行筛选、清理,将处理过的数据导入或者说加载到数据仓库中,根据用户的需求设立数据集市,完成数据仓库的复杂查询、决策分析和知识的挖掘等。

(2)数据仓库管理层。

  数据仓库的正常运行除了需要数据仓库功能层提供的基本功能外,还需要对这些基本功能进行管理与支持的结构框架。

  数据仓库管理层由数据仓库的数据管理数据仓库的元数据管理组成。

  数据仓库的数据管理层包含

    数据抽取、新数据需求与查询管理

    数据加载、存储、刷新和更新系统

    安全性与用户授权管理系统

    及数据归档、恢复及净化系统等四部分。

   (3)数据仓库的环境支持层。

    数据仓库的环境支持层由数据仓库数据传输层数据仓库基础层组成。

    数据仓库中不同结构之间的数据传输需要数据仓库的传输层来完成。

    数据仓库的传输层包含数据传输传送网络客户/服务器代理中间件复制系统数据传输层的安全保障系统。

  2.数据仓库的架构    大众观点的数据仓库的架构

  

 (1)数据源。

  是数据仓库系统的基础,是整个系统的数据源泉。

  通常包括企业内部信息和外部信息。

  内部信息包括存放于RDBMS(关系型DBMS)中的各种业务处理数据和各类文档数据。  

  外部信息包括各类法律法规、市场信息和竞争对手的信息等。

  (2)数据的存储与管理。

  是整个数据仓库系统的核心。

  数据仓库的真正关键是数据的存储和管理。

  数据仓库的组织管理方式决定了它有别于传统数据库,同时也决定了其对外部数据的表现形式。

  要决定采用什么产品和技术来建立数据仓库的核心,则需要从数据仓库的技术特点着手分析。

  针对现有各业务系统的数据,进行抽取、清理,并有效集成,按照主题进行组织。

  数据仓库按照数据的覆盖范围可以分为企业级数据仓库部门级数据仓库(通常称为数据集市)。

  (3)OLAP服务器。

  对分析需要的数据进行有效集成,按多维模型予以组织,以便进行多角度、多层次的分析,并发现趋势。

  其具体实现可以分为:ROLAP、MOLAP和HOLAP。

  ROLAP 基本数据和聚合数据均存放在RDBMS之中;

  MOLAP基本数据和聚合数据均存放于多维数据库中;

  HOLAP基本数据存放于RDBMS之中,聚合数据存放于多维数据库中。

  (4)前端工具。

   主要包括各种报表工具、查询工具、数据分析工具、数据挖掘工具及各种基于数据仓库或数据集市的应用开发工具。

  其中数据分析工具主要针对OLAP服务器,

  报表工具、数据挖掘工具主要针对数据仓库。

3.7.3 数据仓库的实现方法

  数据仓库的特性决定了数据仓库的设计不同于传统的数据库设计方法。

  数据仓库系统的原始需求通常不是很明确,并且需求仍在不断变化、增加,所以,数据仓库的建立是一个过程,从建立简单的基本框架着手,不断丰富和完善整个系统。

  这一过程将由以下几部分构成:

  需求分析概念模型设计逻辑模型设计物理模型设计数据仓库生成

  从整体的角度来看,数据仓库的实现方法主要有自顶向下法自底向上法联合方法

  1.自顶向下法

  在该方法中,首先应找出数据仓库解决方案所要满足的商业需求,把商业需求视为实现数据仓库的首要任务。

  数据仓库是一种功能而不是一种特征,数据仓库保存信息,并以外部工具易于显示和操作的方式组织这些信息。

  因此,如果不借助于可以利用这种功能的外部工具,最终用户就无法将这种功能嵌入数据仓库中。这样,就很难定出该功能的范围,除非用广义上的商业术语,如“数据仓库将包含有关客户、供应商、市场、产品的信息”。

  自顶向下方法的优缺点:

  

  规划和实现数据仓库的自顶向下方法一般用于以下情况:

  (1)实现单位比较熟悉技术,并具有根据商业需求采用自顶向下方法开发应用程序的丰富经验。

  (2)决策层(总经理、决策层、投资者)完全清楚数据仓库的预测目标。

  (3)决策层(总经理、决策者、投资者)完全清楚数据仓库用作哪些机构的决策支持工具。

  (4)决策层(总经理、决策者、投资者)完全清楚数据仓库已经是商业过程中的一个子过程。

    如果技术是成熟的和众所周知的,或者必须解决的商业问题是显而易见的,那么自顶向下方法是很有用的。采用自顶向下方法可以将技术和商业目标有机地结合起来。

  2.自底向上法 

  一般从实验和基于技术的原形入手,先选择一个特定的、众所周知的商业问题的子集,再为该子集制定方案。

  实现自底向上一般是比较快的。

  自底向上可以是一个单位在发展时用尽可能少的经费和时间,就可以在做出有效的投入之前评估技术的收益情况

  在数据仓库领域,自底向上方法是快速实现数据集市、部门级数据仓库的有效手段

  

  (1)企业还没有确实掌握数据仓库技术,希望进行技术评估来决定运行该技术的方式、地点和时间。

  (2)企业希望了解实现和运行数据仓库所需要的各种费用情况。

  (3)企业在对数据仓库进行投资选择。

    自底向上方法对于希望从数据仓库投资中快速得到回报的用户时非常有效的。该方法可以使企业充分利用各种技术,无需冒很大风险。

  3.联合方法

  在以上两种方法的联合方法中,企业在保持自底向上的快速实现和机遇应用的同时,还可以利用自顶向下方法的规划和决策性质。这种方法依赖于以下两个因素:

  (1)自顶向下的结构、标准和设计小组,可以从一个项目向另外一个项目传递知识,也可以把战术决策变为战略决策。

  (2)自底向上方法的项目小组,它直接负责在短期内实现一个集中的、部门级的商务解决方案。

  联合方法具有以上两种方法的优点,但是难以作为一个项目来管理。该方法一般用于:

  (1)实现企业拥有经验丰富的设计师,有能力建立、证明、应用和维护数据结构、技术结构及企业模型,可以很容易地从具体(运作系统中的元数据)转移到抽象。

  (2)企业拥有固定的项目小组,完全清楚数据仓库技术应用的场所。他们可以清楚地看到当前的商务需求。

  联合方法适合数据仓库技术的快速试运行,并且保留了建立长远到的决策方案的机会

  

3.8 数据挖掘

  随着数据库技术的迅速发展及数据库管理系统的广泛应用,人们积累的数据越来越多。

  激增的数据背后隐藏着许多重要的信息,人们希望能够对其进行更高层次的分析,以便更好地利用这些数据。

  目前的数据库系统可以高效地实现数据的录入、查询、统计等功能,但无法发现数据中存在的关系和规则,无法根据现有的数据预测未来的发展趋势。

  缺乏挖掘数据背后隐藏的知识的手段,导致了“数据爆炸但知识贫乏”的现象。

 3.8.1 数据挖掘的概念

   数据挖掘(Data Mining) 技术是人们长期对数据库技术进行研究和开发的结果。

  起初各种商业数据是存储在计算机的数据库中的,然后发展到可对数据库进行查询和访问,进而发展到对数据库的即时遍历。

  数据挖掘使数据库技术进入了一个更高级的阶段,它不仅能对过去的数据进行查询和遍历,并且能够找出过去数据之间的潜在联系,从而促进信息的传递。

  支持数据挖掘技术的基础技术:海量数据搜集强大的多处理器计算机数据挖掘算法已发展成熟。

  从技术角度来看,数据挖掘就是从大量的、不完全的、有噪声的、模糊的、随机的实际应用数据中,提取隐含在其中的、人们事先不知道的、但又是潜在有用的信息和知识的过程。

  从数据库中发现知识、数据分析、数据融合(Data Fusion)、决策支持等。

   发现的知识,可以被用于信息管理,查询优化,决策支持和过程控制等,还可以用于数据自身的维护。

  数据挖掘是一门交叉学科,它把人们对数据的应用从低层次的简单查询,提升到从数据中挖掘知识,提供决策支持。在这种需求牵引下,汇聚了不同领域的研究者,尤其是数据库技术、人工智能技术、数理统计、可视化技术、并行计算等方面的学者和工程技术人员,投身到数据挖掘这一新兴的研究领域,形成新的技术热点。

  数据挖掘与传统的数据分析(如查询、报表、联机应用分析)的本质区别是:

  数据挖掘使在没有明确假设的前提下去挖掘信息、发现知识。

  数据挖掘所得到的信息应具有先知有效可实用三个特征。

  

  

在商业应用中最典型的例子就是一家连锁店通过数据挖掘发现了小孩纸尿布和啤酒
之间有着惊人的联系.https://www.jianshu.com/p/a8349052a2a0

  数据挖掘技术从一开始就是面向应用的。它不仅是面向特定数据库的简单检索查询调用,而且要对这些数据进行微观、中观、乃至宏观的统计、分析、综合和推理,以指导实际问题的求解,企图发现事件间的相互关联,甚至利用已有的数据对未来的活动进行预测。

  例如,加拿大 BC省电话公司要求加拿大Simno  Fraser  大学知识发现研究组,根据其拥有十多年的客户数据,总结、分析并提出新的电话收费和管理办法,制定既有利于公司又有利于客户的优惠政策。

  这样一来,把人们对数据的应用,从低层次的末端查询操作,提高到为各级经营决策者提供决策支持。这种需求驱动力比数据库查询更为强大。

  3.8.2 数据挖掘的功能

  数据挖掘通过预测未来趋势及行为,做出前摄的、基于知识的决策。数据挖掘的目标是从数据库发现隐含的、有意义的知识,主要有以下五类功能。

  1、自动预测趋势行为数据挖掘自动在大型数据库中寻找预测性信息,以往需要进行大量手工分析的问题如今可以迅速直接由数据本身得出结论。

  一个典型的例子是  市场预测问题,数据挖掘使用过去有关促销的数据来寻找未来投资中回报最大的用户,其他可预测的问题包括预报破产及认定对指定事件最可能做出反应的群体。

  2、关联分析  数据关联是数据库中存在的一类重要的可被发现的知识。

    若两个或多个变量的取值之间存在某种规律性,就称为关联。

    关联可分为简单关联时序关联因果关联

    关联分析的目的是找出数据库中隐藏的关联网。

    有时并不知道数据库中数据的关联函数,即使知道也是不确定的,因此关联分析师生成的规则带有可信度。

  3.聚类数据库中的记录可被划分为一系列有意义的子集,即聚类。

    聚类增强了人们对客观现实的认知,是概念描述和偏差分析的先决条件。

    聚类技术主要包括传统的模式识别方法数据分类学

    20世纪80年代初,Mchalski 提出了概念聚类技术及其要点,即在划分对象时不仅要考虑对象之间的距离,还要求划分出的类具有某种内涵描述,从而避免了传统技术的某些片面性。

  4.概念描述就是对某类对象的内涵进行描述,并概括这类对象的有关特征。

    概念描述分为特征性描述区别性描述

    特征性描述:某类对象的共同特征,

    区别性描述:不同类对象之间的区别。

  生成一个类的特征性描述只涉及该类对象中所有对象的共性。

  生成区别性描述的方法有很多,如:决策树方法遗传算法等。

  5.偏差检测数据库中的数据常有一些异常记录,从数据库中检测这些偏差很有意义。

    偏差包括很多潜在的知识,如分类中的反常实例、不满足规则的特例、观测结果与模型预测值的偏差、量值随时间的变化等。

  偏差检测的基本方法是,寻找观测结果参照值之间有意义的差别。

  3.8.3 数据挖掘常用技术    

  常用的数据挖掘技术包括关联分析序列分析分类预测聚类分析时间序列分析等。

  1.关联分析

   关联分析主要用于发现不同事件之间的关联性,即一个事件发生的同时,另一个事件也经常发生。

  关联分析的重点在于快速发现那些有实用价值的关联发生的事件。

  其主要依据是事件发生的概率和条件概率应该符合一定的统计意义

  对于结构化的数据,以客户的购买习惯数据为例,利用关联分析,可以发现客户的关联购买需要。

  例如,一个开设储蓄账户的客户很可能同时进行债券交易和股票交易,购买纸尿裤的男顾客经常同时购买啤酒等。

  利用这种知识可以采取积极的营销策略,扩展客户购买的产品范围,吸引更多的客户。

  通过调整商品的布局便于顾客买到经常同时购买的商品,或者通过降低一种商品的价格来促进另一种商品的销售等。

  对于非结构化的数据,以空间数据为例,利用关联分析,可以发现地理位置的关联性。例如,85%的靠近高速公路的大城镇与水相邻,或者发现通常与高尔夫球场相邻的对象等。

  2.序列分析

  序列分析技术主要用于发现一定时间间隔内接连发生的事件。这些事件构成一个序列,发现的序列应该具有普遍意义,其依据除了统计上的概率之外,还要加上时间的约束。

  3.分类分析

  分类分析通过分析具有类别的样本的特点,得到决定样本属于各种类别的规则或方法。利用这些规则和方法对未知类别的样本分类时应该具有一定的准确度。

  其主要方法有基于统计学的贝叶斯方法神经网络方法决策树方法支持向量机(support  vector machines)等。

  利用分类技术,可以根据顾客的消费水平和基本特征对顾客进行分类,找出对商家有较大利益贡献的重要客户的特征,通过对其进行个性化服务,提高他们的忠诚度。

  利用分类技术,

  可以将大量的半结构化的文本数据,如WEB页面、电子邮件等进行分类。

  可以将图片进行分类,例如,根据已有图片的特点和类别,可以判定一幅图片属于何种类型的规则。

  对于空间数据,也可以进行分类分析,例如,可以根据房屋的地理位置决定房屋的档次。

  4.聚类分析

    聚类分析是根据物以类聚的原理,将本身没有类别的样本聚集成不同的组并且对每一个这样的组进行描述的过程

  其主要依据是聚到同一个组中的样本应该彼此相似,而属于不同组的样本应该足够不相似。

  以客户关系管理为例,利用聚类技术,根据客户的个人特征及消费数据,可以将客户群体进行细分。

  例如,可以得到这样一个消费群体:女性占91%,全部无子女、年龄在31岁到40岁占70%,高消费级别的占64%,买过针织品的占91%,买过厨房用品的占89%,买过园艺用品的占79%。针对不同的客户群,可以实施不同的营销和服务方式,从而提高客户的满意度。

  对于空间数据,根据地理位置及障碍物的存在情况可以自动进行区域划分

   例如,根据分布在不同地理位置的ATM机的情况将居民进行区域划分,根据这一信息,可以有效地进行ATM机的设置规划,避免浪费,同时也避免失掉每一个商机。

  对于文本数据,利用聚类技术可以根据文档的内容自动划分类别,从而便于文本的检索。

  5.预测

  预测与分类类似,但预测是根据样本的已知特征估算某个连续类型的变量的取值的过程

  而分类则只是用于判别样本所属的离散类别而已。

  预测常用的技术是回归分析

  6.时间序列

    时间序列分析的是随时间而变化的事件序列,目的是预测未来发展趋势,或者寻找相似发展模式或者是发现周期性发展规律。

  3.8.4 数据挖掘的流程

   数据挖掘是指一个完整的过程,该过程从大型数据库中挖掘先前未知的,有效的,可实用的信息,并使用这些信息做出决策或丰富知识。

   数据挖掘环境示意图

    

  

  

原文地址:https://www.cnblogs.com/liyanli-mu640065/p/10160088.html