zoukankan      html  css  js  c++  java
  • 数据建模

    1.1 什么是建模

      在设计数据库时,对现实世界进行分析、抽象、并从中找出内在联系,进而确定数据库的结构。

    1.2 建模在系统中的作用

      数据采集、业务处理、数据分析、数据挖掘、数据展现、数据应用、信息管理 

    1.3 模型技能要求

      经验、架构、工具、理论、应用场景 

    2  业务系统建模

      2.1 什么是业务系统 -- OLTP

      ERP、网站、物流、淘宝交易、银行柜台

      On-Line Transaction Processing 在线处理过程

      也成为面向交易的处理过程,基本特征是前台接收用户数据可以立即传送到计算中心进行处理,并在很短的时间内给出处理结构,是对用户操作快速响应的方式之一。

      2.2  原始数据

        2.2.1 一范式建模 

       列的原子性:即列不能够再分成其他几列。

      

       2.2.2  二范式建模

      行记录唯一性:首先是1NF,一是表必须有一个主键,二是没有包含在主键中的列必须完全依赖于主键,而不能只依赖主键的一部分

      

      联合主键:多个列组成的主键,例员工ID和部门ID作为联合主键,部门描述依赖联合主键。

      2.2.3  三范式建模

      主键唯一依赖,首先时2NF,另外非主键列必须直接依赖于主键,不能存在传递依赖

      对上面的表进行拆分,查询时利用部门ID进行关联

      员工表:

      

      部门表:

      

      一是加快数据查询速度,二是减少数据查询复杂度,三是降低数据冗余。

      2.2.4  三范式案例 

      

      2.2.5  OLTP特点  

       用于支持业务过程的执行

       用来协助企业对响应事件或事务的日常商务活动进行处理。

       事件驱动、面向应用的,通常是对一个或一组记录的增、删、改以及简单查询等

       应用程序和数据是紧紧围绕着所管理的事件来构造的

       数据库要求能支持日常事务中的大量事务,用户对数据的存取操作频率高而每次操 作处理的时间短

      2.2.6  接口开发方式

      数据库直连

      API

      FTP文件

      2.2.7  大数据量查询优化

       按月建表 

       T-1天数据汇总 + T日实时查询数据

       三范式 --> 二范

    3  数据仓库维度建模

       星型模型

       事实表 & 维度表

          事实表:度量 & 键值

          维度表:维度 & 属性

       星型模型 vs 三范式建模

       星型模型的优势

       星型模型的应用-OLAP分析系统

       雪花模型

       雪花模型 vs 星型模型

       3.1  星型模型

      

      3.2 优势劣势 

        优势:查询方便、性能提高

        劣势:空间换时间、数据移动、非实时

      3.3 星型模型的应用

        数据仓库、OLAP分析查询系统数据模型

      3.4  雪花模型

      

      3.5  星型模型 VS 雪花模型

      

    4  数据仓库体系架构

      4.1  数据仓库概念

        对数据仓库所下的定义:数据仓库是面向主题的、集成的、稳定的、反应历史变化 的数据集合,用以支持管理决策。 

         面向主题:销售、财务、人力资源、物流

         集成的:用友、金蝶、excel、EAI…

         稳定的:不会实时改变,定期批量更新,查询为主

         反映历史变化的:有时间戳,变化内容有记录

         支持决策:销售分析、业绩排序等

      4.2  数据仓库体系架构

      

      4.3  Staging, ODS, DW, Data Mart4

       Staging:数据直抽,与源系隔离

       ODS:(Operational Data Storage)

         数据清洗、整合

         近期明细数据查询

       DW:统一、集成、稳定、反应历史变化,支持决策

        明细数据

        Mini Batch

        T-1天数据+实时数据

        分布式系统架构 

       Data Mart:个性化数据应用

      4.4  数据仓库应用相关概念

        4.4.1  ETL 

        Extract, Transformation, Load,包括:数据抽取(Data extract)、数据转换 (Data Transformation)、数据清洗(Data cleaning)和数据装载(Data Load)

        1 Extract数据抽取:

            数据仓库按照主题组织数据,只抽取系统分析需要的数据(多个数据源、按照系统抽取、添加 源系统标志、抽取时间)

          1.抽取特定的数据、不影响业务系统的性能(方式、时机、频率)
          2.增量抽取、全量抽取
          3.oracle、xml、txt、csv、dbf、excel

        2 Transform数据转换

          1. 不同字段类型、格式等需要统一
          2. 数据计算、汇总、内容转换
          3. 添加新的属性数据等

        3 Cleansing数据清洗:

          将错误的、不一致的数据在进入数据仓库之前予以更正或删除,以免影 响系统决策的正确性。

        4 数据加载:

         负责将数据按照物理数据模型定义的表结构装入数据仓库。 

           增量加载(交易记录)

           全量覆盖(员工权限表)

           更新追加(客户收益信息)

        5 维度  

           多维数据集的结构性特性。

           它们是事实数据表中用来描述数据的分类的有组织层次结构(级别)。这些分类和级别描述了一 些相似的成员集合,用户将基于这些成员集合进行分析。

        6 粒度

           级别

           是维度层次结构的一个元素。级别描述了数据的层次结构,从数据的最高(汇总程度 最大)级别直到最低(最详细)级别

        7 事实表

           通过外键与维度表进行关联

           很多时候没有单一主键,而是使用外键组合作为事实表的联合主键

           外键上通常需要建索引,加快查询速度

           包含大量的行

           主要特点是包含度量,且这些度量可以汇总

           理论上讲事实表不应该包含描述性信息,也不应该包含除数字度量字段及使事实与纬度表中对 应项的相关索引字段之外的任何数据

        8 指标、度量

           在多维数据集中,度量值是一组值,这些值基于多维数据集的事实数据表中的一列,而且通常 为数字。

           度量值是所分析的多维数据集的中心值。即,度量值是最终用户浏览多维数据集时重点查看的 数字数据。您所选择的度量值取决于最终用户所请求的信息类型。常见度量值有 sales、cost、 expenditures 

           事实表当中的度量大多数情况下都不会超过十个  同一个粒度的数据不一定就会放在同一张表当中(实时交易价格 / 最终收盘价格)

      5 OLAP的特点

        用于管理人员的决策分析,例如DSS、 EIS和多维分析等。

        它帮助决策者分析数据以察看趋向、判断问题。

        分析型处理经常要访问大量的历史数据,支持复杂的查询。

        在分析型处理中,并不是对从事务型处理环境中得到的细节数据进行分析。细节数据量太大, 会严重影响分析的效率,而且太多的细节数据不利于分析人员将注意力集中于有用的信息。

        分析型处理过程中经常用到外部数据,这部分数据不是由事务型处理系统产生的,而是来自于 其他外部数据源。

      6  OLAP VS OLTP 

        

     7  数据仓库建模代理健

      7.1 代理健

        定义::当资料表中的候选键都不适合当主键时,(例如资料太长,或是意义层面太多,就会用 一个attribute来当代理主键)来代替可辨识唯一值的主键。 

        -OLTP流水号

        -DW 一般是指维度中使用顺序分配的整数值作为主键

      7.2 代理键的作用与好处

        -对OLTP系统当中相同业务含义,对不同表示方法的数据进行整合。

        -提升性能 

        1.整型数字通常比业务主键小,提升IO读取效率 

        2.事实表与维度表关联效率提高 

        -用于处理缓慢变化维 

        -可以将一个模型套用在多个类似的项目当中

      7.3  代理健的缺点

        -增加数据加载的复杂度 

        -无法通过事实表看到相关维度的业务含义

      7.4 代理健的实现方法

        -oracle序列

        -ETL工具当中的序列 

        -配一张代理键表,记录下一个代理键的值,然后结合开发程序使用 

        1.代替序列记录没一张表的最大代理键的值,使用时,通过查询此值后 使用变量为每一个 新增记录分配连续的不断增大的代理键。 

        2.好处:数据库迁移或更换ETL工具时无需担心seq出问题的情况 

        3.坏处:难度提高,使用复杂

    8  缓慢变化维的概念及产生原因

      8.1  缓慢变化维 Slowly Changing Dimensions SCD 

      8.2  产生原因: 维度的属性并不是静态的,它会随着时间的流失发生缓慢的变化 

      8.3  缓慢变化维—Type1直接覆盖

        -优点:实现容易 

        -缺点:无法分析历史变化 

        -处理方法:根据维度表的业务主键直接更新 

        -使用场景:无需保留历史信息,只需要保存当前信息时使用 

        

      8.4 缓慢变化维—Type2 产生维度变化时添加新记录

        -特点:需要代理键的支持

        -处理方法:当维度属性发生变化时生成一条新的维度记录 

        

      8.5  缓慢变化维—Type3

        -Type 3:通过添加属性记录最新的维度属性以及之前一条的维度属性

          1.特点:对需要分析的历史信息添加属性

          2.优点:同时分析单签及上一次变化的属性值

          3.缺点:只保留了最后一次变化信息

        

      8.6  缓慢变化维—Type6

        -结合了Type1的更新 

        -结合了Type2的新插入数据 

        -结合了Type3的保留上一次记录 

        -衍生出保留全部历史记录

        

         

  • 相关阅读:
    EntityFramework 启用迁移 EnableMigrations 报异常 "No context type was found in the assembly"
    JAVA 访问FTP服务器示例(2)
    NuGet Package Manager 更新错误解决办法
    JAVA 访问FTP服务器示例(1)
    RemoteAttribute 的使用问题
    诡异的 javascript 变量
    javascript apply用法
    Babun 中文乱码
    GSM呼叫过程
    转站博客园
  • 原文地址:https://www.cnblogs.com/wangzihong/p/9932113.html
Copyright © 2011-2022 走看看