数据仓库——数据建模

  • 数据建模指的是对现实世界各类数据的抽象组织,确定数据库需管辖的范围、数据的组织形式等直至转化成现实的数据库。
  • 将经过系统分析后抽象出来的概念模型转化为物理模型
    • 性能:良好的模型能帮我们快速查询需要的数据,减少数据的IO吞吐
    • 成本:减少数据冗余、计算结果复用、从而降低存储和计算成本
    • 效率:改善用户使用数据的体验,提高使用数据的效率
    • 改善统计口径的不一致性,减少数据计算错误的可能性

ER建模

  • 数据仓库之父Bill Inmon推崇ER建模
  • Bill Inmon希望达到的“single version of the truth”。
  • 从全企业的高度设计一个3NF模型的方法,用实体加关系描述的数据模型描述企业业务架构,站在企业角度面向主题的抽象,而不是针对某个具体业务流程的实体对象关系抽象。
  • 简而言之,第一范式就是无重复的列。
  • 简而言之,第二范式就是非主属性完全依赖于主关键字。
  • 简而言之,第三范式就是属性不依赖于其它非主属性。
  • 优缺点
    • 优点:规范性较好,冗余小,数据集成和数据一致性方面得到重视
    • 缺点:需要全面了解企业业务、数据和关系;实施周期非常长,成本昂贵;对建模人员的能力要求也非常高,容易烂尾。

维度建模

  • 数据仓库大师Ralph Kimball 倡导维度建模
  • 《The DataWarehouse Toolkit-The Complete Guide to Dimensona Modeling》,中文名《数据仓库工具箱》
  • 维度建模以分析决策的需求构建模型,因此它重点解决用户如何更快速完成分析需求,同时还有较好的大规模复杂查询的响应性能,更直接面向业务。
  • 维度建模中有一些比较重要的概念:
    • 事实表

      • 发生在现实世界中的操作型事件,其所产生的可度量数值,存储在事实表中。从最低的粒度级别来看,事实表行对应一个度量事件,反之亦然。
    • 维度表
      • 每个维度表都包含单一的主键列。维度表的主键可以作为与之关联的任何事实表的外键,当然,维度表行的描述环境应与事实表行完全对应。维度表通常比较宽,是扁平型非规范表,包含大量的低粒度的文本属性。
    • 度量值
      • 度量值是对一次行为的度量
    • 优缺点
      • 优点:技术要求不高,快速上手,敏捷迭代,快速交付;更快速完成分析需求,较好的大规模复杂查询的响应性能
      • 缺点:维度表的冗余会较多,视野狭窄

对比分析

  • ER建模是面向应用,遵循第三范式,以消除数据冗余为目标的设计技术。
  • 维度建模是面向分析,为了提高查询性能可以增加数据冗余,反规范化的设计技术。
属性 维度模型 关系模型
数据总量
可读性 容易
表个数
查询速度
冗余度
对实时表的情况 增加宽度 字段比较少,冗余低
扩展性
实施难度 低,周期短 高,周期长
适用场景 快速变化行业、战术性投入、直接面向客户 成熟行业、战略性投入、不直接面向客户

数据仓库——数据建模相关推荐

  1. 浅谈数据仓库建设中的数据建模方法

    http://www.ibm.com/developerworks/cn/data/library/techarticles/dm-0803zhousb/ 所谓水无定势,兵无常法.不同的行业,有不同行 ...

  2. 数据仓库建设中的数据建模方法(转)

    简介: 本文的主要内容不是介绍现有的比较流行的主要行业的一些数据模型,而是将笔者在数据仓库建设项目中的一些经验,在这里分享给大家.希望帮助大家在数据仓库项目建设中总结出一套能够合乎目前业界规范的,满足 ...

  3. 数据建模_浅谈数据仓库建设中的数据建模方法

    所谓水无定势,兵无常法.不同的行业,有不同行业的特点,因此,从业务角度看,其相应的数据模型是千差万别的.目前业界较为主流的是数据仓库厂商主要是 IBM 和 NCR,这两家公司的除了能够提供较为强大的数 ...

  4. 数据仓库构建方法论(六):数据建模方法论

    根据boss想法整理一般通用的数据仓库模型构建思路,这里参考了公众号内文章,觉得写得很好,既有理论指导又有实践案例,能够详细地说明: 目录 什么是数据模型? 为什么需要数据模型? 如何建设数据模型? ...

  5. 数据仓库系列1-高质量数据建模

    一.前言: 虽然做数据工作5年了,从传统行业到互联网行业,感觉啥都懂点,但是没有一样可以拿出手的,干活时没问题,但是讲东西却存在问题,最近想系统的学习一下数据仓库只是,顺便记录下,也算是对学习的一个总 ...

  6. [转]对数据仓库进行数据建模

    OLTP 与数据仓库--有何差异? 在日常生活中,我们要使用大量的应用程序来生成新的数据.变更数据.删除数据,当然在大多数的情况下我们还要查阅和分析数据.就来想象一个 收发 email 的简单应用程序 ...

  7. 对数据仓库进行数据建模_确定是否可以对您的数据进行建模

    对数据仓库进行数据建模 Some data sets are just not meant to have the geospatial representation that can be clus ...

  8. 数据建模_漫谈数据仓库之维度建模

    点击上方蓝色字体,选择"设为星标" 回复"资源"获取更多惊喜 大数据技术与架构点击右侧关注,大数据开发领域最强公众号! 大数据真好玩点击右侧关注,大数据真好玩! ...

  9. 数据仓库建设---数据建模

    首先我们先查看三个问题:①什么是数据模型:②为什么需要数据模型:③如何创建数据模型: 一.什么是数据模型 数据模型是抽象描述现实世界的一种工具和方法,是通过抽象的实体及实体之间联系的形式,来表示现实世 ...

最新文章

  1. session outline for different culture
  2. 斯坦福大学 计算机视觉方面课程资料
  3. 24.JSP 客户端请求
  4. C#实现图片文件到数据流再到图片文件的转换
  5. 相机标定方法机理总结与公式推导(Camera calibration)
  6. linux getopt源码,linux getopt()
  7. php二叉排序树,二叉排序树(建树)
  8. 【深度学习】全连接层or卷积层
  9. MATLAB GUI新手备忘录
  10. 【算法】基于AOE网的关键路径算法
  11. python 批量打印PDF
  12. 【计几】二维计算几何基础
  13. 产品读书《长尾理论》
  14. 区块链行业人才市场大盘点(附求职指南)
  15. 不积小流,无以成江海;不积跬步,无以至千里
  16. 高德LBS江湖召集令!妹子开发的公众号地图工具
  17. WiFi无线干扰器(无需知道无线密码)
  18. 【集合详解】ArrayList源码解读之动态扩容
  19. SAP供应商原因导致的委外加工收货无法反冲原材料
  20. DHCP协议理论解析与抓包实践

热门文章

  1. 2020年焊工(高级)试题及答案及焊工(高级)模拟考试系统
  2. 多功能平均电流型 LED 恒流驱动器Hi7010
  3. 玩转正则表达式,就是这么简单
  4. Makefile出错 make: *** No rule to make target ‘*.c‘,needed by ‘*.o’.Stop
  5. js禁止原生手机返回键(物理返回键)
  6. firefox 添加 表单_将搜索表单添加到Firefox搜索栏
  7. 汉字转语音 android 软件,文字转语音工具软件
  8. 创客工具机床 桌面式数控机床
  9. 软件测试是吃青春饭的吗?30岁后软件测试该何去何从?
  10. Django-SMTP-QQ邮箱SMTPAuthenticationError: (535