数据仓库-物理模型设计

数据仓库的物理模型就是数据仓库逻辑模型在物理系统中的实现模式。其中包括了逻辑模型中各种实体表的具体化,例如表的数据结构类型、索引策略、数据存放位置和数据存储分配等。在进行物理模型的设计实现时,所考虑的因素有:I/O存取时间、空间利用率及维护的代价。
为确定数据仓库的物理模型,设计人员必须做这样几方面工作:首先要全面了解所选用的数据库管理系统,特别是存储结构和存取方法;其次了解数据环境、数据的使用频率、使用方式、数据规模及响应时间要求等,这些都是对时间和空间效率进行平衡和优化的重要依据;最后还需要了解外部存储设备的特征。只有这样才能在数据的存储需求与外部存储设备条件两者之间获得平衡。1.设计存储结构 在物理设计时,常常要按数据的重要性、使用频率及对反应时间的要求进行分类,并将不同类型的数据分别存储在不同的存储设备中。重要性高、经常存取并对反应时间要求高的数据存放在高速存储设备上;存取频率低或对存取响应时间要求低的数据则可以存放在低速存储设备上。另外,在设计时还要考虑数据在特定存储介质上的布局。在设计数据的布局时要注意遵循以下原则。 (1)不要把经常需要连接的几张表放在同一存储设备上,这样可以利用存储设备的并行操作功能加快数据查询的速度。 (2)如果几台服务器之间的连接会造成严重的网络业务量的问题,则要考虑服务器复制表格,因为不同服务器之间的数据连接会给网络带来沉重的数据传输负担。 (3)考虑把整个企业共享的细节数据放在主机或其他集中式服务器上,提高这些共享数据的使用速度。 (4)不要把表格和它们的索引放在同一设备上。一般可以将索引存放在高速存储设备上,而表格则存放在一般存储设备上,以加快数据的查询速度。在对服务器进行处理时往往要进行大量的等待磁盘数据的工作,此时,可以在系统中使用RAID(Redundant Array of Inexpensive Disk,廉价冗余磁盘阵列)。2. 设计索引策略 数据仓库的数据量很大,因而需要对数据的存取路径进行仔细地设计和选择。由于数据仓库的数据一般很少更新,所以可以设计索引结构来提高数据存取效率。在数据仓库中,设计人员可以考虑对各个数据存储建立专用的索引和复杂的索引,以获取较高的存取效率,虽然建立它们需要付出一定的代价,但建立后一般不需要过多的维护。数据仓库中的表通常要比联机事务处理系统(OLTP)中的表建立更多的索引,表中应用的最大索引数应与表格的规模成正比。数据仓库是个只读的环境,建立索引可以取得灵活性,对性能极为有利。但是表若有很多索引,那么数据加载时间就会延长,因此索引的建立需要进行综合的考虑。在建立索引时,可以按照索引使用的频率由高到低逐步添加,直到某一索引加入后,使数据加载或重组表的时间过长时,就结束索引的添加。 最初,一般都是按主关键字和大多数外部关键字建立索引,通常不要添加很多的其他索引。在表建立大量的索引后,对表进行分析等具体使用时,可能需要许多索引,这会导致表的维护时间也随之增加。如果从主关键字和外部关键字着手建立索引,并按照需要添加其他索引,就会避免首先建立大量的索引带来的后果。如果表格过大,而且需要另外增加索引,那么可以将表进行分割处理。如果一个表中所有用到的列都在索引文件中,就不必访问事实表,只要访问索引就可以达到访问数据的目的,以此来减少I/O操作。如果表太大,并且经常要对它进行长时间的扫描,那么就要考虑添加一张概括表以减少数据的扫描任务。3.设计存储策略 确定数据的存储结构和表的索引结构后,需要进一步确定数据的存储位置和存储策略,以提高系统的I/O效率。下面介绍几种常见的存储优化方法。(1)表的归并 当几个表的记录分散存放在几个物理块中时,多个表的存取和连接操作的代价会很大。这时可以将需要同时访问的表在物理上顺序存放,或者直接通过公共关键字将相互关联的记录放在一起。在图1中商品表和商品存储关系表是2个经常需要同时访问的表,在对存储关系表进行查询后,需要通过商品ID到商品表中获取商品的其他基本属性,以比较直观的方式显示给最终用户。图1 表归并的表现形式 对于这种情况,我们可以将2个表的记录通过公共关键字将相互关联的记录放在一起。如图3-57所示。设计时可以先存放商品ID为1的商品在商品表中的记录,然后将仓储关系表中同商品1相关的2条记录放在其后。这样,在进行数据访问时,就可以提高I/O的效率。 表的归并只有在访问序列经常出现或者表之间具有很强的访问相关性时才有较好的效果,对于很少出现的访问序列和没有强相关性的表,使用表的归并没有效果。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
第1章 决策支持系统的发展 1 1.1 演化 1 1.2 直接存取存储设备的产生 2 1.3 个人计算机/第四代编程语言技术 3 1.4 进入抽取程序 3 1.5 蜘蛛网 4 1.6 自然演化体系结构的问题 5 1.6.1 数据缺乏可信性 5 1.6.2 生产率问题 8 1.6.3 从数据到信息 10 1.6.4 方法的变迁 11 1.7 体系结构设计环境 12 1.7.1 体系结构设计环境的层次 13 1.7.2 集成 14 1.8 用户是谁 15 1.9 开发生命周期 15 1.10 硬件利用模式 16 1.11 建立重建工程的舞台 16 1.12 监控数据仓库环境 17 1.13 小结 19 第2章 数据仓库环境 20 2.1 数据仓库的结构 22 2.2 面向主题 23 2.3 第1天到第n天的现象 26 2.4 粒度 28 2.4.1 粒度的一个例子 29 2.4.2 粒度的双重级别 31 2.5 分割问题 34 2.6 样本数据库 34 2.7 数据分割 35 2.8 数据仓库中的数据组织 37 2.9 数据仓库—标准手册 41 2.10 审计和数据仓库 41 2.11 成本合理性 41 2.12 清理仓库数据 42 2.13 报表和体系结构设计环境 42 2.14 机遇性的操作型窗口 43 2.15 小结 44 第3章 设计数据仓库 45 3.1 从操作型数据开始 45 3.2 数据/过程模型和体系结构设计环境 49 3.3 数据仓库和数据模型 50 3.3.1 数据模型 52 3.3.2 中间层数据模型 54 3.3.3 物理数据模型 58 3.4 数据模型和反复开发 59 3.5 规范化/反规范化 60 3.6 数据仓库中的快照 65 3.7 元数据 66 3.8 数据仓库中的管理参照表 66 3.9 数据周期 67 3.10 转换和集成的复杂性 70 3.11 触发数据仓库记录 71 3.11.1 事件 72 3.11.2 快照的构成 72 3.11.3 一些例子 72 3.12 简要记录 73 3.13 管理大量数据 74 3.14 创建多个简要记录 75 3.15 从数据仓库环境到操作型环境 75 3.16 正常处理 75 3.17 数据仓库数据的直接访问 76 3.18 数据仓库数据的间接访问 76 3.18.1 航空公司的佣金计算系统 76 3.18.2 零售个性化系统 78 3.18.3 信用审核 80 3.19 数据仓库数据的间接利用 82 3.20 星型连接 83 3.21 小结 86 第4章 数据仓库中的粒度 87 4.1 粗略估算 87 4.2 粒度划分过程的输入 88 4.3 双重或单一的粒度? 88 4.4 确定粒度的级别 89 4.5 一些反馈循环技巧 90 4.6 粒度的级别—以银行环境为例 90 4.7 小结 95 第5章 数据仓库和技术 96 5.1 管理大量数据 96 5.2 管理多介质 97 5.3 索引/监视数据 97 5.4 多种技术的接口 97 5.5 程序员/设计者对数据存放位置的控制 98 5.6 数据的并行存储/管理 99 5.7 元数据管理 99 5.8 语言接口 99 5.9 数据的高效装入 99 5.10 高效索引的利用 100 5.11 数据压缩 101 5.12 复合键码 101 5.13 变长数据 101 5.14 加锁管理 102 5.15 单独索引处理 102 5.16 快速恢复 102 5.17 其他的技术特征 102 5.18 DBMS类型和数据仓库 102 5.19 改变DBMS技术 104 5.20 多维DBMS和数据仓库 104 5.21 双重粒度级 109 5.22 数据仓库环境中的元数据 109 5.23 上下文和内容 111 5.24 上下文信息的三种类型 111 5.25 捕获和管理上下文信息 113 5.26 刷新数据仓库 113 5.27 小结 114 第6章 分布式数据仓库 116 6.1 引言 116 6.2 局部数据仓库 118 6.3 全局数据仓库 119 6.4 互斥数据 121 6.5 冗余 123 6.6 全局数据存取 124 6.7 分布式环境下其他考虑因素 126 6.8 管理多个开发项目 127 6.9 开发项目的性质 127 6.10 分布式数据仓库 130 6.10.1 在分布的地理位置间协调开发 131 6.10.2 企业数据分布式模型 132 6.10.3 分布式数据仓库中的元数据 134 6.11 在多种层次上建造数据仓库 134 6.12 多个小组建立当前细节级 136 6.12.1 不同层不同需求 138 6.12.2 其他类型的细节数据 140 6.12.3 元数据 142 6.13 公用细节数据采用多种平台 142 6.14 小结 143 第7章 高级管理人员信息系统 和数据仓库 144 7.1 一个简单例子 144 7.2 向下探察分析 146 7.3 支持向下探察处理 147 7.4 作为EIS基础的数据仓库 149 7.5 到哪里取数据 149 7.6 事件映射 152 7.7 细节数据和EIS 153 7.8 在EIS中只保存汇总数据 154 7.9 小结 154 第8章 外部数据/非结构化数据与 数据仓库 155 8.1 数据仓库中的外部数据/非结构化数据 157 8.2 元数据和外部数据 158 8.3 存储外部数据/非结构化数据 159 8.4 外部数据/非结构化数据的不同 组成部分 160 8.5 建模与外部数据/非结构化数据 160 8.6 间接报告 161 8.7 外部数据归档 161 8.8 内部数据与外部数据的比较 161 8.9 小结 162 第9章 迁移到体系结构设计环境 163 9.1 一种迁移方案 163 9.2 反馈循环 167 9.3 策略方面的考虑 168 9.4 方法和迁移 171 9.5 一种数据驱动的开发方法 171 9.6 数据驱动的方法 172 9.7 系统开发生命周期 172 9.8 一个哲学上的考虑 172 9.9 操作型开发/DSS开发 173 9.10 小结 173 第10章 数据仓库设计复查要目 174 10.1 进行设计复查所涉及的问题 175 10.1.1 谁负责设计复查 175 10.1.2 有哪些议事日程 175 10.1.3 结果 175 10.1.4 复查管理 175 10.1.5 典型的数据仓库设计复查 176 10.2 小结 185
基于⼤数据的数据仓库-数据仓库建模基本理论 (内容整理⾃⽹络学习视频) ⼀、数仓建模的⽬标 访问性能:能够快速查询所需的数据,减少数据I/O。 数据成本:减少不必要的数据冗余,实现计算结果数据复⽤,降低⼤数据系统中的存储成本和计算成本。 使⽤效率:改善⽤户应⽤体验,提⾼使⽤数据的效率。 数据质量:改善数据统计⼝径的不⼀致性,减少数据计算错误的可能性,提供⾼质量的、⼀致的数据访问平台。 所以,⼤数据的数仓建模需要通过建模的⽅法更好的组织、存储数据,以便在性能、成本、效率和数据质量之间找到最佳平衡点。 ⼆、关系模式范式 关系型数据库设计时,遵照⼀定的规范要求,⽬的在于降低数据的冗余性和数据的⼀致性,⽬前业界范式有: 第⼀范式(1NF) 第⼆范式(2NF) 第三范式(3NF) 巴斯-科德范式(BCNF) 第四范式(4NF) 第五范式(5NF) 第⼀范式(1NF): 域都是原⼦性的,即数据库表的每⼀列都是不可分割的原⼦数据项。 例如下⾯这张表: ID ID 商品 商品 商家ID 商家ID ⽤户ID ⽤户ID 1 4件⽑⾐ B0001 U00001 "商品"字段就不是原⼦性的,可以分割成"4件"和"⽑⾐"。 第⼆范式(2NF): 在1NF的基础上,实体的属性完全依赖于主关键字,不能存在仅依赖主关键字⼀部分的属性,也就是不存在局部依赖。 例如下⾯这张表: 学⽣ID 学⽣ID 所属系 所属系 系主任 系主任 所修课程 所修课程 分数 分数 S001 物理系 张三 C001 90 S001 物理系 张三 C002 100 主键ID为"学⽣ID,所修课程",但是字段"所属系"只依赖于"学⽣ID",不符合2NF。 第三范式(3NF): 在2NF的基础上,任何⾮主属性不依赖于其它⾮主属性,也就是不存在传递依赖。 例如下⾯这张表: 订单ID 订单ID 商品ID 商品ID 商品颜⾊ 商品颜⾊ 商家ID 商家ID ⽤户ID ⽤户ID O00001 G0001 ⽩⾊ B0001 U00001 主键为"订单ID",但是字段"商品颜⾊"依赖于"商品ID",不符合3NF。 三、四种建模⽅法 1、ER实体模型 在信息系统中,将事务抽象为"实体"(Entity)、"属性"(Property)、"关系"(Relationship)来表⽰数据关联和事物描述,这种 对数据的抽象建模通常被称为ER实体关系模型。 实体:通常为参与到过程中的主体,客观存在的,⽐如商品、仓库、货位、汽车,此实体⾮数据库表的实体表。 属性:对主体的描述、修饰即为属性,⽐如商品的属性有商品名称、颜⾊、尺⼨、重量、产地等。 关系:现实的物理事件是依附于实体的,⽐如商品⼊库事件,依附实体商品、货位,就会有"库存"的属性产⽣;⽤户购买商品,依附实体 ⽤户、商品,就会有"购买数量"、"⾦额"的属性产品。 实体之间建⽴关系时,存在对照关系: 1:1:即1对1的关系 1:n:即1对多的关系 n:m:即多对多的关系 在⽇常建模中,"实体"⽤矩形表⽰,"关系"⽤菱形,"属性"⽤椭圆形。ER实体关系模型也称为E-R关系图。 应⽤场景: 1、ER模型是数据库设计的理论基础,当前⼏乎所有的OLTP系统设计都采⽤ER模型建模的⽅式。 2、Bill Inom提出的数仓理论,推荐采⽤ER关系模型进⾏建模。 3、BI架构提出分层架构,数仓底层ods、dwd也多采⽤ER关系模型进⾏设计。 2、维度建模 维度建模源⾃数据集市,主要⾯向分析场景。Ralph Kimball推崇数据集市的集合为数据仓库,同时也提出了对数据集市的维度建模,将数 据仓库中的表划分为事实表、维度表两种类型。 事实表: 在ER模型中抽象出了有实体、关系、属性三种类别,在现实世界中,每⼀个操作型事件,基本都是发⽣在实体之间的,伴随着这种操作事 件的发⽣,会产⽣可度量的值,⽽这个过程就产⽣了⼀个事实表,存储了每⼀个可度量的事件。 维度表: 维度,顾名思义,看待事物的⾓度。⽐如从颜⾊、尺⼨的⾓度来⽐较⼿机的外观,从cpu、内存等⾓度⽐较⼿机性能。 维度表⼀般为单⼀主键,在ER模型中,实体为客观存在的事务,会带有⾃⼰的描述性属性,属性⼀般为⽂本性、描述性的,这些描述被称 为维度。 ⽐如商品,单⼀主键:商品ID,属性包括产地、颜⾊、材质、尺⼨、单价等,但并⾮属性⼀定是⽂本,⽐如单价、尺⼨,均为数值型描述性 的,⽇常主要的维度抽象包括:时间维度表、地理区域维度表等。 维度建模通常⼜分为星型模型和雪花模型。 星型模型: 雪花模型: 星型模型和雪花模型的主要区别在于对维度表的拆分,对于雪花模型,维度表的设计更加规范,⼀般符合3NF;⽽星型模型,⼀般采⽤降维 的操作,利⽤冗余来避免模型过于复杂,提⾼易⽤性和分析效率。 雪花、星型模型对⽐: 1、冗余:雪花模型符合业务逻辑设计,采⽤

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值