数据建模方法论及实施步骤

了解数据建模之前首先要知道的是什么是数据模型。数据模型(Data Model)是数据特征的抽象,它从抽象层次上描述了系统的静态特征、动态行为和约束条件,为数据库系统的信息表示与操作提供一个抽象的框架。

一、概要:数据建模简介

数据基本用于两种目的:1、操作型记录的保存2、分析型决策的制定。简单地说就是操作型系统保存数据,分析型系统使用数据;前者反映数据的最新状态,后者反映数据一段时间的状态变化。操作型系统简称为OLTP(On-Line Transaction Processing)联机事务处理,分析型系统简称为OLAP(On-Line Analytical Processing)联机分析处理。在OLTP场景中,常用的是使用实体关系模型(ER)来存储,从而在事务处理中解决数据的冗余和一致性问题。在OLAP场景中,有多种建模方式有:ER模型、星型模型和多维模型。

数据建模是一种用于定义和分析数据的要求和其需要的相应支持的信息系统的过程。从需求到实际的数据库,有三种不同的类型。用于信息系统的数据模型作为一个概念数据模型,本质上是一组记录数据要求的最初的规范技术。数据首先用于讨论适合企业的最初要求,然后被转变为一个逻辑数据模型,该模型可以在数据库中的数据结构概念模型中实现。一个概念数据模型的实现可能需要多个逻辑数据模型。数据建模中的最后一步是确定逻辑数据模型到物理数据模型中到对数据访问性能和存储的具体要求。数据建模定义的不只是数据元素,也包括它们的结构和它们之间的关系。

1) 概念数据模型(Conceptual Data Model)

简称概念模型 ,主要用来描述世界的概念化结构。概念数据模型是最终用户对数据存储的看法,反映了最终用户综合性的信息需求,它以数据类的方式描述企业级的数据需求,数据类代表了在业务环境中自然聚集成的几个主要类别数据。概念数据模型的目标是统一业务概念,作为业务人员和技术人员之间沟通的桥梁,确定不同实体之间的最高层次的关系。

2) 逻辑数据模型(Logical Data Model)

简称数据模型,这是用户从数据库所看到的模型,是具体的DBMS所支持的数据模型,如网状数据模型(Network Data Model)、 层次数据模型 (Hierarchical Data Model)等等。 此模型既要面向用户,又要面向系统 ,主要用于 数据库管理系统 (DBMS)的实现。逻辑数据模型的内容包括所有的实体和关系,确定每个实体的属性,定义每个实体的主键,指定实体的外键,需要进行范式化处理。逻辑数据模型的目标是尽可能详细的描述数据,但并不考虑数据在物理上如何来实现。逻辑数据建模不仅会影响数据库设计的方向,还间接影响最终数据库的性能和管理。

3) 物理数据模型(Physical Data Model)

简称物理模型 ,是面向计算机物理表示的模型,描述了数据在储存介质上的组织结构,它不但与具体的DBMS 有关,而且还与操作系统和硬件有关。每一种逻辑数据模型在实现时都有起对应的物理数据模型。DBMS为了保证其独立性与可移植性,大部分物理数据模型的实 现工作又系统自动完成,而设计者只设计索引、聚集等特殊结构。物理结构图显示物理数据模型是在逻辑数据模型的基础上,考虑各种具体的技术实现因素,进行数据库体系结构设计,真正实现数据在数据库中的存放。

二、方法:数据建模常用模型

1)D-R模型

D-R模型(Entity-relationship model)实体关系模型,E-R模型的构成成分是实体集、属性和联系集。其表示方法如下:(1) 实体集用矩形框表示,矩形框内写上实体名。(2) 实体的属性用椭圆框表示,框内写上属性名,并用无向边与其实体集相连。(3) 实体间的联系用菱形框表示,联系以适当的含义命名,名字写在菱形框中,用无向连线将参加联系的实体矩形框分别与菱形框相连,并在连线上标明联系的类型,即1—1、1—N或M—N。如图1-1所示。

2)多维模型

它是维度模型的另一种实现。当数据被加载到OLAP多维数据库时,对这些数据的存储的索引,采用了为维度数据涉及的格式和技术。性能聚集或预计算汇总表通常由多维数据库引擎建立并管理。由于采用预计算、索引策略和其他优化方法,多维数据库可实现高性能查询。这种模型可以以星型模式,雪花模式,或事实星座模式的形式存在。

3)星型模型

它是维度模型在关系型数据库上的一种实现。它是多维的数据关系,它由事实表(Fact Table)和维表(Dimension Table)组成。每个维表中都会有一个维作为主键,所有这些维的主键结合成事实表的主键。事实表的非主键属性称为事实,它们一般都是数值或其他可以进行计算的数据。该模型表示每个业务过程包含事实表,事实表存储事件的数值化度量,围绕事实表的多个维度表,维度表包含事件发生时实际存在的文本环境。这种类似于星状的结构通常称为'星型连接'。其重点关注用户如何更快速地完成需求分析,同时具有较好的大规模复杂查询的响应性能。如图1-2所示。

4)雪花模型

它是当有一个或多个维表没有直接连接到事实表上,而是通过其他维表连接到事实表上时,其图解就像多个雪花连接在一起,故称雪花模型。雪花模型是对星型模型的扩展。如图1-3所示。

三、方案:数据建模六步骤

数据建模,通俗地说,就是通过建立数据科学模型的手段解决现实问题的过程。数据建模也可以称为数据科学项目的过程,并且这个过程是周期性循环的。具体可分为六大步骤,如图2-1所示。

1) 收集业务需求与数据实现:在开始维度建模工作之前,需要理解业务需求,以及作为底层源数据的实际情况。通过与业务方沟通交流、查看现有报表等来发现需求,用于理解他们的基于关键性能指标、竞争性商业问题、决策制定过程、支持分析需求的目标。同时,数据实际情况可通过与数据库系统专家交流,了解访问数据可行性等。

2) 选择业务过程:业务过程是组织完成的操作型活动。业务过程时间建立或获取性能度量,并转换为事实表中的事实。多数事实表关注某一业务过程的结果。过程的选择非常重要的,因为过程定义了特定的设计目标以及对粒度、维度、事实的定义。

3) 声明粒度:声明粒度是维度设计的重要步骤。粒度用于确定某一事实表中的行表示什么。在选择维度或事实前必须声明粒度,因为每个候选维度或事实必须与定义的粒度保持一致。在从给定的业务过程获取数据时,原子粒度是最低级别的粒度。强烈建议从关注原子级别粒度数据开始设计,因为原子粒度数据能够承受无法预期的用户查询。

4) 确认维度:维度提供围绕某一业务过程事件所涉及的'谁、什么、何处、何时、为什么、如何'等背景。维度表包含分析应用所需要的用于过滤及分类事实的描述性属性。牢牢掌握事实表的粒度,就能够将所有可能存在的维度区分开来。

5) 确认事实:事实,涉及来自业务过程事件的度量,基本上都是以数据值表示。一个事实表行与按照事实表粒度描述的度量事件之间存在一对一关系,因此事实表对应一个物理可观察的事件。在事实表内,所有事实只允许与声明的粒度保持一致。

6) 部署方式:选择一种维度模型的落地方式。既可以选择星型模型,部署在关系数据库上,通过事实表及通过主外键关联的维度表;也可以选择多维模型,落地于多维数据库中。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
⼤数据实践之数据建模 随着DT时代互联⽹、智能设备及其他信息技术的发展,数据爆发式增长,如何将这些数据进⾏有序、有结构地分类组织和存储是我们⾯临的⼀个挑战。 为什么需要数据建模 如果把数据看作图书馆⾥的书,我们希望看到它们在书架上分门别类地放置;如果把数据看作城市的建筑,我们希望城市规划布局合理;如果把数据看作电脑⽂ 件和⽂件夹,我们希望按照⾃⼰的习惯有很好的⽂件夹组织⽅式,⽽不是糟糕混乱的桌⾯,经常为找⼀个⽂件⽽不知所措。 数据模型就是数据组织和存储⽅法,它强调从业务、数据存取和使⽤⾓度合理存储数据。Linux的创始⼈Torvalds有⼀段关于"什么才是优秀程序员"的 话:"烂程序员关⼼的是代码,好程序员关⼼的是数据结构和它们之间的关系",其阐述了数据模型的重要性。有了适合业务和基础数据存储环境的模型,那么 ⼤数据就能获得以下好处。 性能:良好的数据模型能帮助我们快速查询所需要的数据,减少数据的I/O吞吐。 成本:良好的数据模型能极⼤地减少不必要的数据冗余,也能实现计算结果复⽤,极⼤地降低⼤数据系统中的存储和计算成本。 效率:良好的数据模型能极⼤地改善⽤户使⽤数据的体验,提⾼使⽤数据的效率。 质量:良好的数据模型能改善数据统计⼝径的不⼀致性,减少数据计算错误的可能性。 因此,⽏庸置疑,⼤数据系统需要数据模型⽅法来帮助更好地组织和存储数据,以便在性能、成本、效率和质量之间取得最佳平衡。 关系数据库系统和数据仓库 E .F .Codd是关系数据库的⿐祖,他⾸次提出了数据库系统的关系模型,开创了数据库关系⽅法和关系数据理论的研究。随着⼀⼤批⼤型关系数据库商业软件 (如Oracle、Informix、DB2等)的兴起,现代企业信息系统⼏乎都使⽤关系数据库来存储、加⼯和处理数据。数据仓库系统也不例外,⼤量的数据仓库系统 依托强⼤的关系数据库能⼒存储和处理数据,其采⽤的数据模型⽅法也是基于关系数据库理论的。虽然近年来⼤数据的存储和计算基础设施在分布式⽅⾯有了飞 速的发展,NoSQL技术也曾流⾏⼀时,但是不管是Hadoop、Spark还是阿⾥巴巴集团的MaxCompute系统,仍然在⼤规模使⽤SQL进⾏数据的加⼯和处理, 仍然在⽤Table存储数据,仍然在使⽤关系理论描述数据之间的关系,只是在⼤数据领域,基于其数据存取的特点在关系数据模型的范式上有了不同的选择⽽ 已。关于范式的详细说明和定义,以及其他⼀些关系数据库的理论是⼤数据领域建模的基础,有兴趣的读者可以参考相关的经典数据库理论书籍,如《数据库系 统概念》。 从OLTP和OLAP系统的区别看模型⽅法论的选择 OLTP系统通常⾯向的主要数据操作是随机读写,主要采⽤满⾜3NF的实体关系模型存储数据,从⽽在事务处理中解决数据的冗余和⼀致性问题;⽽OLAP系统 ⾯向的主要数据操作是批量读写,事务处理中的⼀致性不是OLAP所关注的,其主要关注数据的整合,以及在⼀次性的复杂⼤数据查询和处理中的性能,因此它 需要采⽤⼀些不同的数据建模⽅法。 典型的数据仓库建模⽅法论 ER模型 数据仓库之⽗Bill Inmon提出的建模⽅法是从全企业的⾼度设计⼀个3NF模型,⽤实体关系(Entity Relationship,ER)模型描述企业业务,在范式理论上符 合3NF。数据仓库中的3NF与OLTP系统中的3NF的区别在于,它是站在企业⾓度⾯向主题的抽象,⽽不是针对某个具体业务流程的实体对象关系的抽象。其具 有以下⼏个特点: 需要全⾯了解企业业务和数据。 实施周期⾮常长。 对建模⼈员的能⼒要求⾮常⾼。 采⽤ER模型建设数据仓库模型的出发点是整合数据,将各个系统中的数据以整个企业⾓度按主题进⾏相似性组合和合并,并进⾏⼀致性处理,为数据分析决策 服务,但是并不能直接⽤于分析决策。 其建模步骤分为三个阶段。 ⾼层模型:⼀个⾼度抽象的模型,描述主要的主题以及主题间的关系,⽤于描述企业的业务总体概况。 中层模型:在⾼层模型的基础上,细化主题的数据项。 物理模型(也叫底层模型):在中层模型的基础上,考虑物理存储,同时基于性能和平台特点进⾏物理属性的设计,也可能做⼀些表的合并、分区的设计等。 ER模型在实践中最典型的代表是Teradata公司基于⾦融业务发布的FS-LDM(Financial Services Logical Data Model),它通过对⾦融业务的⾼度抽象和 总结,将⾦融业务划分为10⼤主题,并以设计⾯向⾦融仓库模型的核⼼为基础,企业基于此模型做适当调整和扩展就能快速落地实施。 维度模型 维度模型是数据仓库领域的Ralph Kimball⼤师所倡导的,他的The Data Warehouse Toolkit-The Complete Guide to Dimensional Modeling是数据仓 库⼯
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

梁凤财

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值