热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

关于数据建模之思考(二)

关于数据仓库重要的是两个方面一个是主题,一个是集成,这里的主题和DAMA中是一脉相承的,。集成是实现面向主题的一个关键途径,而集成的手段主要来自维度建模思想,所以有必要

前文讲了数据架构、数据建模、主题域、概念模型和逻辑模型,到底数据仓库(含数据中台和大数据平台)中应该如何建模呢?

先引申开来回到《DAMA数据管理知识体系指南中文版》中,关于数据模型在该书数据开发一章也有所涉及,数据开发是指分析、设计、实施、部署及维护数据解决方案,以使企业的数据资源价值最大化,数据开发是系统开发生命周期项目活动的子集,其专注于数据需求的定义、数据解决方案组件的设计和实施。数据开发里提到的数据建模方式主要包括信息工程、IDEF1X、ORM、UML。

数据建模是一种分析和设计方法,用于定义和分析数据需求,设计满足需求的数据结构,数据模型是反映数据需求和设计的数据说明书和相关模型图的集合,一般情况下,概念数据建模和逻辑数据建模是需求分析活动,物理数据建模是设计工作。

概念数据模型是业务重点相关的主题域内可视的、高阶的视角,不仅包括给定的领域和职能中基础和关键的业务实体,同时也给出实体和实体之间的关系的描述;并且应该包含一个词汇表用于定义其中的每一个对象,定义包括有业务术语、关系术语、实体同义词和安全分类。客户主题域可能包括以下实体:账户所有者、子账户、首选联系方式和联系信息。

逻辑数据模型是数据需求和控制数据质量的业务规则的详细描述,通常用于支持特定用法的上下文环境,不依赖于任何技术以及具体实施中的技术限制。逻辑数据模型从概念数据模型拓展开始,将数据属性添加到每个实体,逻辑数据模型通过范式化和抽象化转换概念数据模型结构。逻辑数据模型采用范式化设计,将业务的复杂性转化为稳定的数据结构。即传统的第一范式、第二范式、第三范式。

物理数据模型是根据技术约束、应用方法、性能需求和建模标准等优化详细的数据需求和业务规则的实施工作。

可以看出数据架构和数据开发是满足通用领域的,关于主题域、概念数据模型、逻辑数据模型、物理数据模型不仅适用于联机在线业务系统,同样也适用于数据仓库系统。

暂时再回到DAMA第九章数据仓库和商务智能管理,数据仓库由两个部分构成:首先是一个整合的决策支持数据库,其次是用于收集、清洗、转换、存储来自于各种操作型数据源和外部数据源数据的相关软件程序。两者结合以支持历史的额、分析的和商务智能的需求。一个数据仓库可能包括若干数据集市。企业数据仓库是服务于整个组织商务智能需要的集中式数据仓库。企业数据仓库遵循企业数据模型,使得整个企业范围内的决策支持活动可以保持一致。--来自《DAMA数据管理知识体系指南中文版》的定义。

这个定义和我们传统理解的数据仓库的概念不太一致,大概是DAMA要保持术语上的中立,传统数据仓库的理解一般是来自Bill Inmon。

数据仓库是一个面向主题的、集成的、相对稳定的、反映历史变化的数据集合,用于支持管理决策。--来自Bill Inmon的定义。

1、数据仓库是面向主题的;操作型数据库的数据组织面向事务处理任务,而数据仓库中的数据是按照一定的主题域进行组织。主题是指用户使用数据仓库进行决策时所关心的重点方面,一个主题通常与多个操作型信息系统相关。

2、数据仓库是集成的,数据仓库的数据有来自于分散的操作型数据,将所需数据从原来的数据中抽取出来,进行加工与集成,统一与综合之后才能进入数据仓库;数据仓库中的数据是在对原有分散的数据库数据抽取、清理的基础上经过系统加工、汇总和整理得到的,必须消除源数据中的不一致性,以保证数据仓库内的信息是关于整个企业的一致的全局信息。数据仓库的数据主要供企业决策分析之用,所涉及的数据操作主要是数据查询,一旦某个数据进入数据仓库以后,一般情况下将被长期保留,也就是数据仓库中一般有大量的查询操作,但修改和删除操作很少,通常只需要定期的加载、刷新。数据仓库中的数据通常包含历史信息,系统记录了企业从过去某一时点(如开始应用数据仓库的时点)到当前的各个阶段的信息,通过这些信息,可以对企业的发展历程和未来趋势做出定量分析和预测。

3、数据仓库是不可更新的,数据仓库主要是为决策分析提供数据,所涉及的操作主要是数据的查询;

4、数据仓库是随时间而变化的,传统的关系数据库系统比较适合处理格式化的数据,能够较好的满足商业商务处理的需求。稳定的数据以只读格式保存,且不随时间改变。

 

关于数据仓库重要的是两个方面一个是主题,一个是集成,这里的主题和DAMA中是一脉相承的,但Inmon提到的操作型数据库的数据组织面向事务处理任务也不尽然全对,操作型数据库也是服务于主题的,但组织方式是面向事务的。主题就是在较高层次上对分析对象数据的一个完整并且一致的描述,能刻画各个分析对象所涉及的企业各项数据,以及数据之间的联系。集成是实现面向主题的一个关键途径,而集成的手段主要来自维度建模思想,所以有必要先理解一下维度建模。

维度建模的思想来自于Kimball,维度建模是数据仓库建设中的一种数据建模方法,将数据结构化的逻辑设计方法,它将客观世界划分为度量和上下文。维度建模将信息组织到结构中,这些结构通常对应于分析者希望对数据仓库数据使用的查询方法。其最简单的描述就是,按照事实表,维度表来构建数据仓库,数据集市。维度建模法的一个重要优点是,维度建模非常直观,紧紧围绕着业务模型,可以直观的反映出业务模型中的业务问题。不需要经过特别的抽象处理,即可以完成维度建模。

维度建模有两个常用的建模方法-星型模型和雪花模型,其中最常用的还是星型模型。

星型模式之所以广泛被使用,在于针对各个维作了大量的预处理,如按照维进行预先的统计、分类、排序等。通过这些预处理,能够极大的提升数据仓库的处理能力。特别是针对 3NF 的建模方法,星型模式在性能上占据明显的优势。

星型模式是多维的数据关系,它由事实表(Fact Table)和维表(Dimension Table)组成。每个维表中都会有一个维作为主键,所有这些维的主键结合成事实表的主键。事实表的非主键属性称为事实,它们一般都是数值或其他可以进行计算的数据。

事实表数据仓库架构中的中央表,它包含联系事实与维度表的数字度量值和键。事实数据表包含描述业务(如银行事务或产品销售)内特定事件的数据。每个数据仓库都包含一个或者多个事实数据表。事实数据表可能包含业务销售数据,如销售商品所产生的数据。

维度表包含创建维度所基于的数据,其条目描述事实数据表中的数据。

维度在数据仓库中主要对事实指标进行过滤和重新组织提供指导。可以将用户对事实的查询结果按照维度指标进行筛选,只允许与维度指标相关的数据返回给用户。维度一般具有如下特性:可以形成一个维度体系,具备访问和过滤事实的能力,能够提供相关的非标准实体,包括一个完整的维度体系编码、关键词以及相关的表示,可以映射到用户所需要信息的列。在物理数据仓库中是较小的表,可以对前台用户的应用程序进行数据填充,或引用红花的数据仓库分析。维度主要用来说明数据,维度是指可指定不同值的对象的描述性属性或特征。例如,地理位置的维度可以包括“纬度”、“经度”或“城市名称”。“城市名称”维度的值可以为“旧金山”、“柏林”或“新加坡”。

指标:衡量数据,指标是指可以按总数或比值衡量的具体维度元素。例如,维度“城市”可以关联指标“人口”,其值为具体城市的居民总数。

维度和指标的关系:虽然维度和指标可以独立使用,但常见的还是相互结合使用。维度和指标的值以及这些值之间的关系,使您的数据具有了意义。为了挖掘尽可能多的深层次信息,维度通常与一个或多个指标关联在一起。

再举个实际的例子。银行对存款记账,A表中存放实际数据,包括账号、所属机构号、存款金额等,B表存放机构号和机构名称的对应关系。则A是事实表,B是维表。A事实表中的存款金额是指标,账号、机构号则是维度。

从传统的在线交易系统转换为基于主题的数据仓库系统,就涉及到从传统的第三范式设计到星型模型构建的过程,以及数据的抽取、转换、加载的过程,这个过程就是数据仓库的分层设计架构。这个放到后文再讲。

了解更多精彩内容

长按,识别二维码,关注我们吧!

追梦IT人

微信号:bao_qiang_wang



推荐阅读
  • 智慧博物馆信息系统建设方案
    3.信息化系统建设3.1博物馆RFID藏品管理系统3.1.1系统概述博物馆藏品保管是一项十分复杂又繁琐的工作。从事保管工作除了经常、及时地进行藏品的登记、分类、编目、保养和修 ... [详细]
  • 说出来你可能不信,我用三天做了一个完整的项目
    Java在人工智能中能起到什么作用?作为编程语言中的扛把子,Java20多年稳定不倒,就在于它的稳定性,维护成本极低。这使得 ... [详细]
  • Android中高级面试必知必会,积累总结
    本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
  • 本文介绍了PhysioNet网站提供的生理信号处理工具箱WFDB Toolbox for Matlab的安装和使用方法。通过下载并添加到Matlab路径中或直接在Matlab中输入相关内容,即可完成安装。该工具箱提供了一系列函数,可以方便地处理生理信号数据。详细的安装和使用方法可以参考本文内容。 ... [详细]
  • 基于事件驱动的并发编程及其消息通信机制的同步与异步、阻塞与非阻塞、IO模型的分类
    本文介绍了基于事件驱动的并发编程中的消息通信机制,包括同步和异步的概念及其区别,阻塞和非阻塞的状态,以及IO模型的分类。同步阻塞IO、同步非阻塞IO、异步阻塞IO和异步非阻塞IO等不同的IO模型被详细解释。这些概念和模型对于理解并发编程中的消息通信和IO操作具有重要意义。 ... [详细]
  • Tomcat/Jetty为何选择扩展线程池而不是使用JDK原生线程池?
    本文探讨了Tomcat和Jetty选择扩展线程池而不是使用JDK原生线程池的原因。通过比较IO密集型任务和CPU密集型任务的特点,解释了为何Tomcat和Jetty需要扩展线程池来提高并发度和任务处理速度。同时,介绍了JDK原生线程池的工作流程。 ... [详细]
  • flowable工作流 流程变量_信也科技工作流平台的技术实践
    1背景随着公司业务发展及内部业务流程诉求的增长,目前信息化系统不能够很好满足期望,主要体现如下:目前OA流程引擎无法满足企业特定业务流程需求,且移动端体 ... [详细]
  • CentOS 7部署KVM虚拟化环境之一架构介绍
    本文介绍了CentOS 7部署KVM虚拟化环境的架构,详细解释了虚拟化技术的概念和原理,包括全虚拟化和半虚拟化。同时介绍了虚拟机的概念和虚拟化软件的作用。 ... [详细]
  • 数字账号安全与数据资产问题的研究及解决方案
    本文研究了数字账号安全与数据资产问题,并提出了解决方案。近期,大量QQ账号被盗事件引起了广泛关注。欺诈者对数字账号的价值认识超过了账号主人,因此他们不断攻击和盗用账号。然而,平台和账号主人对账号安全问题的态度不正确,只有用户自身意识到问题的严重性并采取行动,才能推动平台优先解决这些问题。本文旨在提醒用户关注账号安全,并呼吁平台承担起更多的责任。令牌云团队对此进行了长期深入的研究,并提出了相应的解决方案。 ... [详细]
  • 我一直都有记录信息的习惯,不知是从什么时候开始,大约是在工作后不久。如今还真有点庆幸从那时开始记了点东西,当然是电子版的,写 ... [详细]
  • Unit4博客&课程总结Unit4作业的架构设计本单元作业的设计我分为了三个模块处理:模型构建+预处理+任务函数,前两部分即为整个图的完整构建,第三部分即为实现题目要求的查询方法。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 本文介绍了Android 7的学习笔记总结,包括最新的移动架构视频、大厂安卓面试真题和项目实战源码讲义。同时还分享了开源的完整内容,并提醒读者在使用FileProvider适配时要注意不同模块的AndroidManfiest.xml中配置的xml文件名必须不同,否则会出现问题。 ... [详细]
  • GAMETECH腾讯云游戏行业技术沙龙成都站圆满落幕
    11月13日,由腾讯云主办、游戏茶馆协办的2020年首场GAME-TECH腾讯云游戏行业技术沙龙在成都圆满落幕。本次沙龙邀请了腾讯云游戏行业解决方案总监宋永周、腾讯云游戏行业高级解决方案架构师曾梓恩、腾讯云游戏行业高级产品架构师郑晓曦、腾讯云游戏行业高级解决方案架构师温球良和天美L1(王者荣耀)服务器技术副总监杨光,为参会同行们带来了干货满满的技术建议。本文介绍了腾讯云游戏云的优势和为不同游戏研运场景提供的服务。腾讯云在中国游戏云服务市场领跑,成为众多游戏开发者的合作伙伴。 ... [详细]
  • 开发笔记:里氏替换原则
    本文由编程笔记#小编为大家整理,主要介绍了里氏替换原则相关的知识,希望对你有一定的参考价值。1.定义:如果对每一个类型为T1的对象o1,都有类型为T2的对象o2, ... [详细]
author-avatar
顏颖季珮琦
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有