(一)面向主题
数据仓库的数据是面向主题的。面向主题数据的组织方式是根据企业主题线索进行组织,典型的主题包括:客户主题、产品主题、供货商主题。
每一个企业都具有特定的需要考虑的问题。如,商场为了分析客户的购物心理,就要对客户进行考察,也就是在分析时,必须包含顾客的许多数据;学校为了分析学生的成绩、科技活动能力,要求系统能够提供学生的相关数据。通过对主题数据的分析,可以帮助企业决策者制定管理措施,从而做出正确的决策。因此,数据仓库要满足数据分析的特定需求,必须将数据按照主题进行组织,从而提高分析效率。目前的许多应用系统往往都是针对单位的某个特定应用而设计的,如学校的日常处理就包括:教学管理、图书管理、学籍管理、人事管理、财务管理等系统。
为了理解面向主题和面向应用的区别,可以比较一下主题和应用之间的区别。每一个具体应用都包含一些与每一个主题相关的数据。如学生主题的数据就包含在教学管理、图书管理、学籍管理和财务管理等具体应用系统中。同样,各个应用系统中同样也包含教师主题的数据。
将应用系统中的数据映像到每一个主题领域,意味着在创建数据仓库时必须遵循一定的数据重构和分配准则。数据是按照应用系统的格式读取的,写入数据仓库却必须遵循面向主题的格式。只有数据在物理上以面向主题的形式构造,才认为数据到达数据仓库环境。
(二)集成性
数据仓库数据是集成的,因为数据仓库的数据是面向主题方式组织的,而这些面向主题的数据是从各个应用系统中提取出来的,对于同样的主题数据,不同的系统也许有不同的表示方式,如,命名习惯、度量单位以及关键字的数据类型不相同等等。因此,要将各个应用系统中的各个主题包含的数据转移到数据仓库中,必须采用统一的形式,也就是在进行转换时要将各个应用系统的主题数据采取统一的形式进行转换。
集成数据表示在数据从应用系统进入数据仓库时,要对数据进行转换。具体应用系统由于各种原因,对代表同样主题的数据都有各自的表现形式,但是,当数据要进入数据仓库时,应用系统中不同形式的数据必须变成一个单独的形式以后放在数据仓库中,这也意味着数据仓库中必须只有一个单独的关键字结构和数据结构,尽管一些相同的数据在各个应用系统中具有不同的形式。在学校系统中,应该只有一个单独的学生数据结构和教师数据结构。举例来说明为什么要进行集成。例如,要在各个应用系统中收集教师主题数据,在教学管理系统中教师性别采用男/女方式表示,在学籍管理系统中采用0/1表示性别,而在人事管理系统中则采用M/F表示性别,财务管理系统采用“X”和“Y”来表示性别。这就需要了解数据仓库中教师性别的表示方式采用什么形式,是“l”和“0”,还是“M”和“F”。无论采取哪种形式,数据仓库中的性别只能采用一种形式。一旦表现形式确定以后,各个应用系统中的数据就要按照这种形式转换,也就是数据集成。
下面再说明一个进行数据集成的例子。假设不同的应用系统采用不同的度量单位记录某件产品的大小。应用系统A采用厘米,而应用系统B采用分米,应用系统C采用米,应用系统D采用英寸。数据仓库中数据库的度量单位采用厘米,因此,在进行数据转移的时候,必须将度量单位统一,也就是将各个应用系统的数据转换成厘米度量的大小,见图2-14所示。
图2-14 数据集成图
(三)非易失性和随时间改变(www.xing528.com)
数据仓库数据具有非易失性,是指数据在进入数据仓库以后不能更新,这也是数据仓库和目前数据库应用系统的差别。数据仓库数据的这种性质又叫稳定性。日常应用系统主要是对数据进行频繁的查询、更新、插入、删除。因此,事务系统的数据经常改变。而数据仓库是为了帮助决策支持的,存储的数据不能够频繁改变,必须相对稳定才能进行数据分析。为了分析数据趋势,数据仓库的数据应该具有时间属性。这就意味着数据仓库中的每一条记录都是数据在某一时刻的快照。如果数据仓库环境中的数据需要改变,那么,就应重新对该项数据作相对较后的快照。结果是数据仓库保存了数据的快照的历史记录。因此,数据仓库一旦创建,数据是不能改变的。
数据仓库中随时间变化的记录是在某一段时间的某个时刻创建的记录,数据仓库的每一个记录都具有时间字段。为什么数据仓库中的记录要附加时间字段呢?因为数据仓库是为了决策支持系统而设计的,是企业领导为了分析企业某个主题的发展趋势的数据源。因此,记录必须包含时间因素,这样才能预测发展趋势。
表2-4 原始数据与导出数据的区别
这里将随时间变化的记录同标准数据库的记录相比较。考虑标准的数据库记录,随着应用系统外部信息的变化,数据库中记录的值也将随着改变,数据库中的记录将进行频繁的更新、删除和插入。因此,应用系统中的数据属于操作型的数据,又称为原始数据、事务数据。相反,考虑数据仓库中的记录,数据被装入数据仓库就成为数据仓库的记录。数据装入数据仓库的时刻也是数据仓库记录的一部分。数据在数据仓库中被访问。但是,同标准的数据库系统不同,数据仓库中的数据一旦进入,就不能再改变。数据仓库中的数据称为分析数据或者导出数据。原始数据和导出数据具有许多不同的特性,表2-4给出了两者之间的差异。
(四)数据粒度
数据粒度是指数据仓库保存数据的细化或者综合程度的级别。数据的细化程度越高,粒度就越小;细化程度越低,粒度就越大。在操作型环境中,应用程序可以访问原子级别的数据,因此,数据的粒度很小;而在数据仓库环境中,一些访问是相对概括的、而某些时候又需要访问细节的数据;另外,数据的粒度与数据仓库的存储容量也有关系,粒度越小,数据存储量就大;粒度越大,数据存储量相对较小。因此,在设计数据仓库的时候,应该在存储容量以及访问效率和数据粒度之间权衡。
粒度设计是数据仓库设计需要考虑的主要问题。数据仓库数据如果具有很小的粒度,就可以回答详细的问题,如:学校数据仓库的教师数据可以回答每一节课程的教学情况问题,如某位老师在某天一节课的教学情况;银行ATM系统产生的数据是事务级别的记录,可以回答某些针对某个账户的自动取款行为;销售级别的零售数据可以回答某个商品的销售情况;在交通运输系统中,小粒度数据可以记录某段旅程的相关消息。
总之,在数据仓库中保存小粒度的数据,可以回答终端用户的各种概括程度的问题,而且对细化程度较高的数据,用户可以对数据进行各种改造和组合,从而满足不同的查询级别。数据仓库究竟采用小粒度还是大粒度?根据前面介绍的粒度知识来看,在数据仓库体系中既要满足各种查询,又要考虑系统效率以及存储容量,因此,大多数企业都采取“多重粒度方式”。也就是粒度最小的、事务系统产生的数据存储在数据仓库层,在这一层可以进行5%或者更少的DSS处理,因为对这种数据进行访问具有:耗费时间、查询复杂、查询费用高等特点;而对于95%或者更多的DSS处理,可以在称为“轻度综合”的层次进行。因此,将数据仓库的数据粒度设计成高度综合、轻度综合以及详细数据三层,设计者可以满足不同的查询需要,在详细数据层,存储所有来自操作型环境的细节数据,这一层包含大量的数据,由于数据量很大,这些数据一般都放在磁带等存储介质上。
大部分DSS处理都是针对经过压缩的、存取效率较高的轻度综合级数据,如果需要分析更加细节的数据,可以到数据的详细数据层。虽然在详细数据层上访问数据比较复杂,但如果问题的解决必须进入细节级数据才能做出正确回答,系统设计者也不得不如此。对于部门级别的查询,可以在高度综合级别数据层进行。
因此,从费用、访问效率、访问便利和能够回答问题的详细程度等各方面考虑,数据的多重粒度级设计是大多数机构构造数据仓库数据层次的最佳选择,只有当一个企业的数据仓库环境只有很少的数据时,才采用单一级别的数据粒度。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。