1第4章数据仓库的设计与开发(一)4.1数据仓库分析与设计4.2数据仓库开发4.3数据仓库技术与开发的困难24.1数据仓库分析与设计4.1.1需求分析4.1.2概念模型设计4.1.3逻辑模型设计4.1.4物理模型设计4.1.5数据仓库的索引技术34.1.1需求分析1.确定主题域2.支持决策的数据来源3.数据仓库的成功标准和关键性能指标4.数据量与更新频率41.确定主题域(1)明确对于决策分析最有价值的主题领域有哪些?如一个商业企业确定客户和商品为主题。而商品对商场更为重要。(2)每个主题域的商业维度是哪些?每个维度的粒度层次有哪些?(3)制定决策的商业分区是什么?(4)不同地区需要哪些信息来制定决策?(5)对哪个区域提供特定的商品和服务?52.支持决策的数据来源(1)哪些源数据(操作型)与商品主题有关?(2)在已有报表和在线查询中得到什么样的信息?(3)提供决策支持的细节程度是怎样的?63.数据仓库的成功标准和关键性能指标(1)衡量数据仓库成功的标准是什么?(2)哪些关键的性能指标?如何监控?(3)对数据仓库的期望是什么?(4)对数据仓库的预期用途有哪些?(5)对计划中的数据仓库的考虑要点是什么?74.数据量与更新频率(1)数据仓库的总数据量有多少?(2)决策支持所需的数据更新频率是多少?时间间隔是多长?(3)每种决策分析与不同时间的标准对比如何?(4)数据仓库中的信息需求的时间界限是什么?8通过需求分析,需要的数据包括:1.数据源(1)可用的数据源(2)数据源的数据结构(3)数据源的位置(4)数据源的计算机环境(5)数据抽取过程(6)可用的历史数据92.数据转换数据仓库中的数据是为决策分析服务,而源系统的数据为业务处理服务。需要决定如何正确地将这些源数据转换成适合数据仓库存储的数据。103.数据存储数据仓库所需要的数据的详细程度,包括足够的关于存储需求的信息,估计数据仓库需要多少历史和存档数据。114.决策分析(1)向下层钻取分析(2)向上层钻取分析(3)横向钻取分析(4)切片分析(5)特别查询报表124.1.2概念模型设计把用户需求抽象为信息结构,就是概念模型。概念模型常用的表示方法是实体-关系法,即E-R图134.1.2概念模型设计概念模型的特点是:(1)能真实反映现实世界,能满足用户对数据的分析,达到决策支持的要求,它是现实世界的一个真实模型。(2)易于理解,便利和用户交换意见,在用户的参与下,能有效地完成对数据仓库的成功设计。(3)易于更改,当用户需求发生变化时,容易对概念模型修改和扩充。(4)易于向数据仓库的数据模型(星型模型)转换。14例子有两个主题:商品和客户,主题也是实体。商品有如下属性组:商品的固有信息(商品号、商品名、类别、价格等);商品库存信息(商品号、库房号、库存量、日期等);商品销售信息(商品号、客户号、销售量等);客户有如下属性组:客户固有信息(客户号、客户名、住址、电话等);客户购物信息(客户号、商品号、售价、购买量等)。商品的销售信息与用户的购物信息是一致的,它们是两个主题之间的联系。15商品商品固有信息商品号商品库存信息销售信息购物信息客户客户固有信息客户号=164.1.3逻辑模型设计主要工作为:(1)主题域进行概念模型(E—R图)到逻辑模型(星型模型)的转换(2)粒度层次划分(3)关系模式定义(4)定义记录系统171、主题域进行概念模型到逻辑模型的转换。星型模型的设计步骤如下:(1)确定决策分析需求决策需求是建立多维数据模型的依据。(2)从需求中识别出事实选择或设计反映决策主题业务的表,如在“商品”主题中,以“销售业务”作为事实表。(3)确定维确定影响事实的各种因素,对销售业务的维包括商店,地区,部门,城市,时间,商品等,如图4.2所示。18销售数据和维销售数据商品促销时间部门城市地区商店图4.2销售业务的多维数据(4)确定数据汇总水平数据仓库中对数据不同粒度的集成和综合,形成了多层次、多种知识的数据结构。例如,对于时间维,可以以“年”、“月”或者“日”等不同水平进行汇总。(5)设计事实表和维表设计事实表和维表的具体属性。在事实表中应该记录哪些属性是由维表的数量决定的。一般来说,与事实表相关的维表的数量应该适中,太少的维表会影响查询的质量,用户得不到需要的数据,太多的维表又会影响查询的速度。(6)按使用的DBMS和分析用户工具,证实设计方案的有效性根据系统使用的DBMS,确定事实表和维表的具体实现。由于不同的DBMS对数据存储有不同的要求,因此设计方案是否有效还要放在DBMS中进行检验(7)随着需求变化修改设计方案随着应用需求的变化,整个数据仓库的数据模式也可能会发生变化。因此在设计之初,充分考虑数据模型的可修改性可以节省系统维护的代价。21从的E—R图转换成星型模型实例说明(1)业务数据的E-R图销售销售日期商店号商品号销售数量销售单位商品商品号商品名商品类号存货星期商店号商品号数量1m1m商店商店号商店名地址城市省邮编地区号1mm11商品类商品类号商品类名部门号m1m地区地区号地区名22(2)E-R图向多维表的转换该问题的多维表模型中,商品维包括部门、商品和商品大类,地点维包括地区和商店,忽略存货,而只注意销售事实。在E-R图中不出现的时间,在多维模型中增加时间维。在多维模型中,实体与维之间建立映射关系,联系多个实体的实体就成为事实,此处销售实体作为事实,其他实体作为维。然后用维关键字将它转换为星型模型,如图4.5所示。23商品维地区维时间维部门地区年商品大类商店月商品周日销售事实图4.4E-R图向多维模型的转换时间时间键时间说明日期星期月年级别号销售事实时间键地理位置键商品键销售数量销售单位地区地理位置键地理位置名地区号商店号级别号商品商品键商品名部门号商品类号级别号图4.5利用维关键字制定的星型模型25在各维中,只有部门,商品类,地区,商店的编号没有具体的说明。为了打印报表将增加这些编号的名称说明,即部门名、商店名等,在维表中增加这些说明,即修改该星型模型如图4.6所示。时间时间键时间说明日期星期月年级别号销售事实时间键地理位置键商品键销售数量销售单位地区地理位置键地理位置名地区号地区名商店号商店名级别号商品商品键商品名部门号部门名商品类号商品类名级别号图4.6修改后的星型模型272、粒度层次划分所谓粒度是指数据仓库中数据单元的详细程度和级别。数据越详细,粒度越小,层次级别就越低;数据综合度越高,粒度越大,层次级别就越高。进行粒度划分,首先要确定所有在数据仓库中建立的表,然后估计每个表的大约行数。283、关系模式定义在概念模型设计时,我们就确定了数据仓库的基本主题,并对每个主题的公共码键、基本内容等做了描述。在这一步里,我们将要对选定的当前实施的主题进行模式划分,形成多个表,并确定各个表的关系模式。29“商品”主题公共码键:商品号。商品固有信息:商品表(商品号、商品名、类型、颜色)——细节级商品销售信息:销售表1(商品号、客户号、销售量、…)——细节级销售表2(商品号、时间段1、销售量、…)——综合级……销售表n(商品号、时间段n、销售量、…)——综合级304、定义记录系统定义记录系统是建立数据仓库中的数据以源系统中的数据的对照记录。记录系统的定义要记入数据仓库的元数据。商品主题的记录系统在元数据中可描述如表4.2所示。31主题名属性名数据源系统源表名源属性名商品商品商品商品商品商品商品商品商品商品号商品名类别客户号销售日期售价销售量库存量库存号库存子系统库存子系统库存子系统销售子系统销售子系统销售子系统销售子系统库存子系统库存子系统商品商品商品客户销售销售销售库存仓库商品号商品名类别客户号日期单价数量库存量仓库号表4.2记录系统的定义324.1.4物理模型设计确定一个最适合应用要求的物理结构(包括存储结构和存取方法)。(1)估计存储容量(2)确定数据的存储计划(3)确定索引策略(4)确定数据存放位置(5)确定存储分配331.估计存储容量(1)对每一个数据库表确定数据量(2)对所有的表确定索引(3)估计临时存储342.确定数据的存储计划(1)建立聚集(汇总)计划(2)确定数据分区方案(3)建立聚类选项353.确定索引策略在数据仓库中由于数据量很大,需要对数据的存取路径进行仔细设计和选择,建立专用的复杂的索引,以获得最高的存取效率。采用B—Tree索引,它是一个高效的索引,见图4.7所示。B树是一个平衡(balance)树,即每个叶结点到根节点的路径长度相同。B树索引是一个多级索引。364.确定数据存放位置在物理设计时,我们常常要按数据的重要程度、使用频率以及对响应时间的要求进行分类,并将不同类的数据分别存储在不同的存储设备中。重要程度高、经常存取并对响应时间要求高的数据就存放在高速存储设备上,如硬盘;存取频率低或对存取响应时间要求低的数据则可以放在低速存储设备上,如磁盘或磁带。375.确定存储分配物理存储中以文件、块和记录来实现。一个文件包括很多块,每个块包括若干条记录。文件中的块是数据库的数据和内存之间I/O传输的基本单位,在那里对数据进行操作。用一个简例来说明逻辑模型和物理模型的内容,见下图所示。名称类型长度注释产品维表包括公司所有产品的信息Product-Keyinteger10主键Product-Namechar25产品名称Product-SKuchar20库存单位销售员维表包括不同地区的所有销售员信息Salpers-Keyinteger15主键Salpers-Namechar30销售员姓名Territorychar20销售员所在区域Regionchar20所在地区订单事实表包括公司收到的所有订单Order-Keyinteger10订单键Order-Namechar20订单名称Product-refinteger10参考产品主键Salpers-refinteger15参考销售员主键Order-AmountNum8,2销售额Order-CostNum8,2订单成本逻辑模型产品维表产品键产品名库存单位品牌订单事实表订单键订单名产品键销售员键销售额订单成本销售员维表销售员键姓名地域地区394.1.5数据仓库的索引技术1.位索引技术2.标识技术3.广义索引401.位索引技术(1)Bit-Wise索引技术(2)B-Tree技术与Bit-Wise索引技术对比41对于每一个记录的字段满足查询条件的真假值用“1”或“0”的方式表示,或者用该字段中不同取值(即多位二进制)来表示。例如,检索“美国加州有多少男性未申请保险?”利用Bit—Wise技术得到有两个记录满足条件。性别保险州1MYMA2MNCA3FYIL4MNCA=2男未保险加州10011100011143(2)B-Tree技术与Bit-Wise索引技术对比Bit-Wise索引技术比B-Tree技术能提高相应速度10—100倍。对于检索“美国加州有多少男性未申请保险?”为例,假设数据库有10M记录,每个记录长800个字节,每一页16K字节。按传统的关系数据库的检索:需要经过50万次I/O操作。按Bit—Wise检索:对于10M个记录建立三列的Bit—Wise索引。存取这些索引只要进行235次I/O操作。442.标识技术姓名籍贯职称年龄陈文东江西教授56何玉辉河北讲师32李宝湖南副教授37施东江苏讲师28曹文湖南副教授36赵玉吉林讲师32黄小斌江苏讲师28赛英花山东副教授32彭宏江西讲师25廖宇宙湖南教授42样本记录:45数据库中的每个实体创建一个标识。“江西”在籍贯中是01标识。“28”在年龄中是02标识。“讲师”在职称名中有一个03标识。上面的数据库可以被减化为一系列标识,如下面所示:46姓名籍贯职称年龄陈文东01江西01教授012501何玉辉02河北02副教授022802李宝03湖南03讲