11- 数据建模-建模方法一:3NF范式建模

 范式建模法其实是我们在构建数据模型常用的一个方法
 该方法主要由 Inmon 所提倡,从企业高度设计的一个3NF模型,用实体关系ER模型来描述企业业务,基本满足3NF理论。为数据分析决策服务,但不能直接用于分析决策
 主要解决关系型数据库的数据存储,利用的一种技术层面上的方法。在关系型数据库中的建模方法,大部分采用的是三范式建模法
 典型代表:Teradata金融行业的FS-LDM(Finacial Services Logical Data Model),10大主题

Inmon提出的集线器的自上而下(EDW-DM)的数据仓库架构:
  数据源:操作型或事务型系统的数据源,
  通过ETL抽取转换和加载到 数据仓库的ODS层,
  然后通过ODS的数据建设原子数据的数据仓库EDW,EDW不是多维格式的,不方便上层应用做数据分析,所以需要通过汇总建设成多维格式的数据集市层。
  优势:易于维护,高度集成;
  劣势:结构死板,部署周期较长

  在复合式的数据仓库架构中,操作型或事务型系统的数据源,通过ETL抽取转换和加载到数据仓库的ODS层,然后通过ODS的数据,利用范式建模方法,建设原子数据的数据仓库EDW,然后基于EDW,利用维度建模方法建设数据集市

  Inmon最初的建模理论是通过构建一个符合三范式的集中式的数据中心DW层,此层次的表一般不对BI和应用开放,而是基于DW的数据构建数据集市DM层来对外服务。DM层的数据一般也采用范式建模,不过随后融入了维度建模的思想,把DM层建设成星型模型。但是并未提出使用一致性维度

  范式建模采用的是3范式,大多数线上业务数据库遵循着3范式的规范,范式建模是推荐贴源(ODS)的,简单的业务情况不需要中间层,直接使用ODS层
(中间层含义:把范式建模利用在ODS和DW层之间的中间层数据模型)

  范式是数据库逻辑模型设计的基本理论,一个关系模型可以从第一范式到第五范式进行无损分解,
这个过程也可称为规范化。在数据仓库的模型设计中目前一般采用第三范式,它有着严格的数学
定义。从其表达的含义来看,一个符合第三范式的关系必须具有以下三个条件:
(参见:https://blog.csdn.net/yaoyelinger0912/article/details/95500053)

  根据 Inmon 的观点,数据仓库模型的建设方法和业务系统的企业数据模型类似。在业务系统中,企业数据模型决定了数据的来源,而企业数据模型也分为两个层次,即主题域模 型和逻辑模型。同样,主题域模型可以看成是业务模型的概念模型,而逻辑模型则是域模型在关系型数据库上的实例化

  从业务数据模型转向数据仓库模型时,同样也需要有数据仓库的域模型,即概念模型,同时也存在域模型的逻辑模型

  业务模型中的数据模型和数据仓库的模型稍微有一些不同。主要区别在于:
    1.数据仓库的域模型应该包含企业数据模型得域模型之间的关系,以及各主题域定义。
    数据仓库的域模型的概念应该比业务系统的主题域模型范围更加广
    2.在数据仓库的逻辑模型需要从业务系统的数据模型中的逻辑模型中抽象实体,实体的属性,实体的子类,以及实体的关系等

  如下情况建议通过范式建模来重新组织数据:
    1.业务数据库的表没有遵循3范式
    2.有复杂的字段(如json字段)需要解析
    3.业务维度比较复杂,很难直接关联取出所需的数据,如业务X营销体系=n

  范式建模的作用:
    1.保证数据的一致性(因为采用完全不冗余的方式,避免了数据的不一致,比如出现 广东 厦门的这样不一致的记录)
    2.解耦方便维护,提高运行效率
    3.针对复杂字段的解析和复杂业务的分解,有利于DW层的直接使用

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
阿⾥巴巴⼤数据之路-⼤数据领域建模综述 阿⾥巴巴⼤数据之道-⼤数据领域建模综述 为什么要数据建模? Linux 的创始⼈ Torvalds 有⼀段关于"什么才是优秀程序员"的话:"烂程序员关⼼的是代码,好程序员关⼼的 是数据 结构和它们之间的关系。" 数据建模的好处 性能 :良好的数据模型能帮助我们快速查询所需要的数据,减少 数据的 110 吞吐。 成本 : 良好的数据模型能极⼤地减少不必要的数据冗余,也能实 现计算结果复⽤,极⼤地降低⼤数据系统中的存储和计算成本。 效率 :良好的数据模型能极⼤地改善⽤户使⽤数据的体验,提⾼ 使⽤数据的效率。 质量 : 良好的数据模型能改善数据统计⼝径的不⼀致性,减少数 据计算错误的可能性。 OLTP 和 OLAP 建模区别 OLTP 主要数据操作是随机读写 主要采⽤满⾜ 3NF 的实体关系模型存储数据 在事务处理中解决数据的冗余和⼀ 致性问题 OLAP 主要数据操作是批量读写 事务处理中 的⼀致性不是 OLAP 所关注的 关注数据的整合,以及在⼀次性 的复杂⼤数据查询和处理中的性能 建模⽅法论 ER模型 简述 数据仓库之⽗ Bill lnmon 提出的建模⽅法是从全企业的⾼度设计⼀ 个 3NF 模型,⽤实体关系( Entity Relationship, ER)模型 描述企业业 务,在范式理论上符合 3NF数据仓库中的 3NF 与 OLTP 系统中的 3NF 的区别在于,它是站在企业⾓度⾯向主题 的抽象,⽽不是针对某个具体 业务流程的实体对象关系的抽象。 特点 需要全⾯了解企业业务和数据。 实施周期⾮常长。 对建模⼈员的能⼒要求⾮常⾼。 建模步骤 ⾼层模型 ⼀个⾼度抽象的模型,描述主要的主题以及主题间的 关系,⽤于描述企业的业务总体概况。 中层模型 在⾼层模型的基础上,细化主题的数据项。 物理模型(也叫底层模型) 在中层模型的基础上,考虑物理存 储,同时基于性能和平台特点进⾏物理属性的设计,也可能做⼀ 些表的合并、分区的设计 等。 维度模型 简述 维度模型是数据仓库领域的 Ralph Kimball ⼤师所倡导的,他的 The Data 阳rehouse 岛olkit-The Complete Guide to Dimensional Modeling 是 数据仓库⼯程领域最流⾏的数据仓库建模的经典。 特点 从分析决策的需求出发构建模型,为分析需求服务 具有较好的⼤规模复 杂查询的响应性能 其典型的代表是星形模型,以及在⼀些特殊场景下 使⽤的雪花模型 模型分类 雪花模型 星型模型 星座模型 建模步骤 选择需要进⾏分析决策的业务过程 业务过程可以是单个业务事 件,⽐如交易的⽀付、退款等;也可以是某个事件的状态,⽐如 当前的账户余额等;还可以是⼀ 系列相关业务事件组成的业务流 程,具体需要看我们分析的是某些事件发⽣情况,还是当前状态, 或是事件流转效率。 选择粒度 在事件分析中,我们要预判所有分析需要细分的程度,从⽽决定选择的粒度。粒度是维度的⼀个组合。 识别维表 选择好粒度之后,就需要基于此粒度设计维表,包括 维度属性,⽤于分析时进⾏分组和筛选。 选择事实 确定分析需要衡量的指标。 Data Vault 模型 简述 Data Vault 是 Dan Linstedt 发起创建的⼀种模型,它是 ER 模型的衍 ⽣,其设计的出发点也是为了实现数据的整合,但不能直 接⽤于数据分 析决策。 特点 可审计的基础数据层 数据的历史 性、可追溯性和原⼦ ⽽不要求对数据进⾏过度的⼀致性处理和整合 基于主题概念将企业数据进⾏结构化组织 组成部分 Hub 是企业的核⼼业务实体,由实体 key、数据仓库序列代理 键、装载时间、数据来源组成。 Link 代表 Hub 之间的关系。这⾥与 ER 模型最⼤的区别是将关 系作为⼀个独⽴的单元抽象,可以提升模型的扩展性。它可以直 接描述 1 : 1 、 l :n 和 n:n 的关系,⽽不需要做任何变更。它由 Hub 的代理键、装载时间、数据来源组成。 Satellite 是 Hub 的详细描述内容, ⼀个 Hub 可以有多个 Satellite。 它由 Hub 的代理键、装载时间、来源类型、详细的 Hub 描述 信 息组成。 模型实例 Anchor 模型 简介 Anchor 对 Data Vault 模型做了进⼀步规范化处理, Lars. Ri:innback 的初衷是设计⼀个⾼度可扩展的模型,其核⼼思想是所有 的扩展只是添 加⽽不是修改,因此将模型规范到 6NF,基本变成了 k-v 结构化模型。 组成部分 Anchors 类似于 Data Vault 的 Hub ,代表业务实体,且只有主键。 Attributes 功能类似于 Data Vault 的 Satellite
基于⼤数据的数据仓库-数据仓库建模基本理论 (内容整理⾃⽹络学习视频) ⼀、数仓建模的⽬标 访问性能:能够快速查询所需的数据,减少数据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、冗余:雪花模型符合业务逻辑设计,采⽤
⼤数据实践之数据建模 随着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是数据仓 库⼯
要使用python-ansys进行建模,首先需要安装并配置相应的软件和包。根据提供的引用和引用,可以看出在安装python-ansys之前,需要确保已安装ANSYS 2021及以上版本和Python 3.6-3.8版本,并建议使用PyCharm作为解释器。 接下来,根据提供的引用,可以按照以下步骤安装pymapdl包: 1. 打开命令行或终端窗口。 2. 使用以下命令通过清华镜像安装pymapdl包: ``` pip install ansys-mapdl-core -i https://pypi.tuna.tsinghua.edu.cn/simple pip install ansys-mapdl-reader -i https://pypi.tuna.tsinghua.edu.cn/simple pip install ansys.api.mapdl.v0 -i https://pypi.tuna.tsinghua.edu.cn/simple pip install protobuf -i https://pypi.tuna.tsinghua.edu.cn/simple pip install grpcio -i https://pypi.tuna.tsinghua.edu.cn/simple pip install grpcio-tools -i https://pypi.tuna.tsinghua.edu.cn/simple pip install pyaedt -i https://pypi.tuna.tsinghua.edu.cn/simple pip install ansys-dpf-core -i https://pypi.tuna.tsinghua.edu.cn/simple pip install ansys-dpf-post -i https://pypi.tuna.tsinghua.edu.cn/simple ``` 这些命令将通过清华镜像安装所需的软件包,并确保可以下载到最新的pymapdl-corba模块。 安装完成后,您可以按照pyansys项目文档(引用)中的指南使用python-ansys进行建模。具体的建模方法和示例可以在文档中找到。 总结起来,使用python-ansys进行建模的步骤如下: 1. 确保已安装ANSYS 2021及以上版本和Python 3.6-3.8版本,并配置PyCharm作为解释器。 2. 安装pymapdl包,可以使用提供的命令行安装脚本。 3. 查阅pyansys项目文档,了解如何使用python-ansys进行建模,并根据需要编写自己的建模代码。 希望以上信息对您有所帮助!

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值