维度数据库采用什么来描述数据或关系

维度数据库采用什么来描述数据或关系,第1张

纬度数据库所描述的关系模式就是关系的描写关系模式,首先描绘与关系对应的两个维度的表结构,这些关系中都包含着一些属性,这些属性都来自于固定的领域,以及与域之间的映象关系。 

关系是n个域的笛卡儿积的子集,组成关系的元组必须是笛卡儿积中使n目谓词为真的元组,所有有可能的关系必须满足非常完整并且基础的约束条件,而关系模式也要把这个约束条件描述出来。

在这其中关系模式和关系的区别就在于关系模式,主要就是描述一些数据结构的语句意思,而关系是一个数据的集合,是关系的值,是关系模式的一个关系实例。

数据库维度的基本概念:

1、多维数据集。多维数据集是联机分析处理(OLAP)中的主要对象,是一项可对数据仓库中的数据进行快速访问的技术。多维数据集是一个数据集合,通常从数据仓库的子集构造,并组织和汇总成一个由一组维度和度量值定义的多维结构。

2、xx(dimension)是多维数据集的结构性特性。它们是事实数据表中用来描述数据的分类的有组织层次结构(级别)。这些分类和级别描述了一些相似的成员集合,用户将基于这些成员集合进行分析。

3、度量值。在多维数据集中,度量值是一组值,这些值基于多维数据集的事实数据表中的一列,而且通常为数字。此外,度量值是所分析的多维数据集的中心值。

即,度量值是最终用户浏览多维数据集时重点查看的数字数据。您所选择的度量值取决于最终用户所请求的信息类型。一些常见的度量值有sales、cost、expenditures和productioncount等。

4、元数据。不同OLAP组件中的数据和应用程序的结构模型。元数据描述OLTP数据库中的表、数据仓库和数据集市中的多维数据集这类对象,还记录哪些应用程序引用不同的记录块。

5、级别。级别是维度层次结构的一个元素。级别描述了数据的层次结构,从数据的最高(汇总程度最大)级别直到最低(最详细)级别。

6、数据挖掘。数据挖掘使您得以定义包含分组和预测规则的模型,以便应用于关系数据库或多维OLAP数据集中的数据。之后,这些预测模型便可用于自动执行复杂的数据分析,以找出帮助识别新机会并选择有获胜把握的机会的趋势。

7、多维OLAP(MOLAP)。MOLAP存储模式使得分区的聚合和其源数据的复本以多维结构存储在分析服务器计算机上。根据分区聚合的百分比和设计,MOLAP存储模式为达到最快查询响应时间提供了潜在可能性。总而言之,MOLAP更加适合于频繁使用的多维数据集中的分区和对快速查询响应的需要。

8、关系OLAP(ROLAP)。ROLAP存储模式使得分区的聚合存储在关系数据库的表(在分区数据源中指定)中。但是,可为分区数据使用ROLAP存储模式,而不在关系数据库中创建聚合。

9、数据钻取。最终用户从常规多维数据集、虚拟多维数据集或连接多维数据集中选择单个单元,并从该单元的源数据中检索结果集以获得更详细的信息,这个 *** 作过程就是数据钻取。

10、数据挖掘模型。数据挖掘使您得以定义包含分组和预测规则的模型,以便应用于关系数据库或多维OLAP数据集中的数据。之后,这些预测模型便可用于自动执行复杂的数据分析,以找出帮助识别新机会并选择有获胜把握的机会的趋势。

简而言之,数据库是面向事务的设计,数据仓库是面向主题设计的。

数据库一般存储在线交易数据,数据仓库存储的一般是历史数据。

数据库设计是尽量避免冗余,一般采用符合范式的规则来设计,数据仓库在设计是有意引入冗余,采用反范式的方式来设计。

数据库是为捕获数据而设计,数据仓库是为分析数据而设计,它的两个基本的元素是维表和事实表。维是看问题的角度,比如时间,部门,维表放的就是这些东西的定义,事实表里放着要查询的数据,同时有维的ID。

单从概念上讲,有些晦涩。任何技术都是为应用服务的,结合应用可以很容易地理解。以银行业务为例。数据库是事务系统的数据平台,客户在银行做的每笔交易都会写入数据库,被记录下来,这里,可以简单地理解为用数据库记帐。数据仓库是分析系统的数据平台,它从事务系统获取数据,并做汇总、加工,为决策者提供决策的依据。比如,某银行某分行一个月发生多少交易,该分行当前存款余额是多少。如果存款又多,消费交易又多,那么该地区就有必要设立ATM了。

显然,银行的交易量是巨大的,通常以百万甚至千万次来计算。事务系统是实时的,这就要求时效性,客户存一笔钱需要几十秒是无法忍受的,这就要求数据库只能存储很短一段时间的数据。而分析系统是事后的,它要提供关注时间段内所有的有效数据。这些数据是海量的,汇总计算起来也要慢一些,但是,只要能够提供有效的分析数据就达到目的了。

数据仓库,是在数据库已经大量存在的情况下,为了进一步挖掘数据资源、为了决策需要而产生的,它决不是所谓的“大型数据库”。那么,数据仓库与传统数据库比较,有哪些不同呢?让我们先看看W.H.Inmon关于数据仓库的定义:面向主题的、集成的、与时间相关且不可修改的数据集合。

“面向主题的”:传统数据库主要是为应用程序进行数据处理,未必按照同一主题存储数据数据仓库侧重于数据分析工作,是按照主题存储的。这一点,类似于传统农贸市场与超市的区别—市场里面,白菜、萝卜、香菜会在一个摊位上,如果它们是一个小贩卖的而超市里,白菜、萝卜、香菜则各自一块。也就是说,市场里的菜(数据)是按照小贩(应用程序)归堆(存储)的,超市里面则是按照菜的类型(同主题)归堆的。

“与时间相关”:数据库保存信息的时候,并不强调一定有时间信息。数据仓库则不同,出于决策的需要,数据仓库中的数据都要标明时间属性。决策中,时间属性很重要。同样都是累计购买过九车产品的顾客,一位是最近三个月购买九车,一位是最近一年从未买过,这对于决策者意义是不同的。

“不可修改”:数据仓库中的数据并不是最新的,而是来源于其它数据源。数据仓库反映的是历史信息,并不是很多数据库处理的那种日常事务数据(有的数据库例如电信计费数据库甚至处理实时信息)。因此,数据仓库中的数据是极少或根本不修改的当然,向数据仓库添加数据是允许的。

数据仓库的出现,并不是要取代数据库。目前,大部分数据仓库还是用关系数据库管理系统来管理的。可以说,数据库、数据仓库相辅相成、各有千秋。

补充一下,数据仓库的方案建设的目的,是为前端查询和分析作为基础,由于有较大的冗余,所以需要的存储也较大。为了更好地为前端应用服务,数据仓库必须有如下几点优点,否则是失败的数据仓库方案。

1.效率足够高。客户要求的分析数据一般分为日、周、月、季、年等,可以看出,日为周期的数据要求的效率最高,要求24小时甚至12小时内,客户能看到昨天的数据分析。由于有的企业每日的数据量很大,设计不好的数据仓库经常会出问题,延迟1-3日才能给出数据,显然不行的。

2.数据质量。客户要看各种信息,肯定要准确的数据,但由于数据仓库流程至少分为3步,2次ETL,复杂的架构会更多层次,那么由于数据源有脏数据或者代码不严谨,都可以导致数据失真,客户看到错误的信息就可能导致分析出错误的决策,造成损失,而不是效益。

3.扩展性。之所以有的大型数据仓库系统架构设计复杂,是因为考虑到了未来3-5年的扩展性,这样的话,客户不用太快花钱去重建数据仓库系统,就能很稳定运行。主要体现在数据建模的合理性,数据仓库方案中多出一些中间层,使海量数据流有足够的缓冲,不至于数据量大很多,就运行不起来了。

经过几年的积累,大部分中大型的企事业单位已经建立了比较完善的CRM、ERP、OA等基础信息化系统。这些系统的统一特点都是:通过业务人员或者用户的 *** 作,最终对数据库进行增加、修改、删除等 *** 作。上述系统可统一称为OLTP(Online Transaction Process,在线事务处理),指的就是系统运行了一段时间以后,必然帮助企事业单位收集大量的历史数据。但是,在数据库中分散、独立存在的大量数据对于业务人员来说,只是一些无法看懂的天书。业务人员所需要的是信息,是他们能够看懂、理解并从中受益的抽象信息。此时,如何把数据转化为信息,使得业务人员(包括管理者)能够充分掌握、利用这些信息,并且辅助决策,就是商业智能主要解决的问题。

如何把数据库中存在的数据转变为业务人员需要的信息?大部分的答案是报表系统。简单说,报表系统已经可以称作是BI了,它是BI的低端实现。

国外的企业,大部分已经进入了中端BI,叫做数据分析。有一些企业已经开始进入高端BI,叫做数据挖掘。而中国的企业,大部分还停留在报表阶段。

数据报表不可取代

传统的报表系统技术上已经相当成熟,大家熟悉的Excel、水晶报表、FineReport、Reporting Service等都已经被广泛使用。但是,随着数据的增多,需求的提高,传统报表系统面临的挑战也越来越多。

1. 数据太多,信息太少

密密麻麻的表格堆砌了大量数据,到底有多少业务人员仔细看每一个数据?到底这些数据代表了什么信息、什么趋势?级别越高的领导,越需要简明的信息。如果我是董事长,我可能只需要一句话:我们的情况是好、中还是差

2. 难以交互分析、了解各种组合

定制好的报表过于死板。例如,我们可以在一张表中列出不同地区、不同产品的销量,另一张表中列出不同地区、不同年龄段顾客的销量。但是,这两张表无法回答诸如“华北地区中青年顾客购买数码相机类型产品的情况”等问题。业务问题经常需要多个角度的交互分析。

3. 难以挖掘出潜在的规则

报表系统列出的往往是表面上的数据信息,但是海量数据深处潜在含有哪些规则呢?什么客户对我们价值最大,产品之间相互关联的程度如何?越是深层的规则,对于决策支持的价值越大,但是,也越难挖掘出来。

4. 难以追溯历史,数据形成孤岛

业务系统很多,数据存在于不同地方。太旧的数据(例如以前的数据)往往被业务系统备份出去,导致宏观分析、长期历史分析难度很大。

因此,随着时代的发展,传统报表系统已经不能满足日益增长的业务需求了,企业期待着新的技术。数据分析和数据挖掘的时代正在来临。值得注意的是,数据分析和数据挖掘系统的目的是带给我们更多的决策支持价值,并不是取代数据报表。报表系统依然有其不可取代的优势,并且将会长期与数据分析、挖掘系统一起并存下去。

八维以上的数据分析

如果说OLTP侧重于对数据库进行增加、修改、删除等日常事务 *** 作,OLAP(Online Analytics Process,在线分析系统)则侧重于针对宏观问题,全面分析数据,获得有价值的信息。

为了达到OLAP的目的,传统的关系型数据库已经不够了,需要一种新的技术叫做多维数据库。

多维数据库的概念并不复杂。举一个例子,我们想描述2003年4月份可乐在北部地区销售额10万元时,牵扯到几个角度:时间、产品、地区。这些叫做维度。至于销售额,叫做度量值。当然,还有成本、利润等。

除了时间、产品和地区,我们还可以有很多维度,例如客户的性别、职业、销售部门、促销方式等等。实际上,使用中的多维数据库可能是一个8维或者15维的立方体。

虽然结构上15维的立方体很复杂,但是概念上非常简单。

数据分析系统的总体架构分为四个部分:源系统、数据仓库、多维数据库、客户端。

·源系统:包括现有的所有OLTP系统,搭建BI系统并不需要更改现有系统。

·数据仓库:数据大集中,通过数据抽取,把数据从源系统源源不断地抽取出来,可能每天一次,或者每3个小时一次,当然是自动的。数据仓库依然建立在关系型数据库上,往往符合叫做“星型结构”的模型。

·多维数据库:数据仓库的数据经过多维建模,形成了立方体结构。每一个立方体描述了一个业务主题,例如销售、库存或者财务。

·客户端:好的客户端软件可以把多维立方体中的信息丰富多彩地展现给用户。

数据分析案例:

在实际的案例中,我们利用Oracle 9i搭建了数据仓库,Microsoft Analysis Service 2000搭建了多维数据库,ProClarity 6.0 作为客户端分析软件。

分解树好像一个组织图。分解树在回答以下问题时很有效:

·在指定的产品组内,哪种产品有最高的销售额

·在特定的产品种类内,各种产品间的销售额分布如何

·哪个销售人员完成了最高百分比的销售额

数据挖掘看穿你的需求

广义上说,任何从数据库中挖掘信息的过程都叫做数据挖掘。从这点看来,数据挖掘就是BI。但从技术术语上说,数据挖掘(Data Mining)特指的是:源数据经过清洗和转换等成为适合于挖掘的数据集。数据挖掘在这种具有固定形式的数据集上完成知识的提炼,最后以合适的知识模式用于进一步分析决策工作。从这种狭义的观点上,我们可以定义:数据挖掘是从特定形式的数据集中提炼知识的过程。数据挖掘往往针对特定的数据、特定的问题,选择一种或者多种挖掘算法,找到数据下面隐藏的规律,这些规律往往被用来预测、支持决策。

关联销售案例:

美国的超市有这样的系统:当你采购了一车商品结账时,售货员小姐扫描完了你的产品后,计算机上会显示出一些信息,然后售货员会友好地问你:我们有一种一次性纸杯正在促销,位于F6货架上,您要购买吗

这句话决不是一般的促销。因为计算机系统早就算好了,如果你的购物车中有餐巾纸、大瓶可乐和沙拉,则86%的可能性你要买一次性纸杯。结果是,你说,啊,谢谢你,我刚才一直没找到纸杯。

这不是什么神奇的科学算命,而是利用数据挖掘中的关联规则算法实现的系统。

每天,新的销售数据会进入挖掘模型,与过去N天的历史数据一起,被挖掘模型处理,得到当前最有价值的关联规则。同样的算法,分析网上书店的销售业绩,计算机可以发现产品之间的关联以及关联的强弱。

数据报表、数据分析、数据挖掘是BI的三个层面。我们相信未来几年的趋势是:越来越多的企业在数据报表的基础上,会进入数据分析与数据挖掘的领域。商业智能所带来的决策支持功能,会给我们带来越来越明显的效益。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/10828830.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-11
下一篇2023-05-11

发表评论

登录后才能评论

评论列表(0条)

    保存