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