zoukankan      html  css  js  c++  java
  • 数据仓库建模指南系列教程学习笔记

    高质量数据建模的基本流程

    概念模型确定系统边界,确定哪些做哪些不做

    基本概念:实体、属性、域、关系、键、约束

    ---------实体-----------

    六合分析法:5W1H

    Who通常指与企业业务紧密联系的人员和组织

    What通常指企业业务相关的“事”等

    When更多的时候是以属性的模式出现的,而作为实体更多是以时间表的形式存在

    Where指企业业务相关的地点,这个可以指具体的地点比如实体店,也可以指虚拟的网上商店

    Why通常是指交易或者事件本身, 比如:销售、采购、订单等等

    How通常是指你们通过什么形式去管理的,最常见的就是交易类的文档信息,去表示以及记录企业是如何完成交易的。比如:合同,协议,发票等等

    IBM的Industry Model

    安排,Arrangement-how

    业务指导, business direction-how

    相关方,Involved Party-who

    产品(Product)-what

    事件,Event-why

    资源,Resource Item-what

    位置,Location-where

    分类,Classfication

    按Pattern分

    主实体(基本实体)

    子类型实体

    属性类实体

    关联实体

    ---------属性、域----------- 

    ID用于标识实体唯一性的属性,一般都是主键

    描述、引用、分类、限制、数量、时间相关、人物相关、地点相关、状态、审计、派生

    域:自定义数据类型

      可以提高数据质量(通过域的定义,去建立用于检验数据合法性的规则,避免非法数据的插入)

      使数据模型容易理解,方便沟通

      使数据字段管理标准化

    ---------关系----------- 

    要根据需求来定模型的关系

    介绍了一些PowerDesigner的使用

    ---------键----------- 

    候选键、主键、可选键、单键、复合键、代理键、自然键、外键

    主键的特点:唯一不可重复、强制性不可为空、永久性不可改变、最小集合不可掺杂多余的属性

    自然键:有商业含义

    代理键:没有商业含义

    在更新时,用代理键对于修改原有自然键更灵活多了

    总体来说还是代理键性能更好一点

    CHECKSUM CODE

    纬度表、事实表?

    在维度表中,存在代理键也必须存在1:1的自然键

    ---------约束(constrain)----------- 

    RI有几个选项:NONE、Resetrict、CASCADE、SETNULL、SETDEFAULT

    ****---------NULL----------- 

    NULL是需要谨慎使用的,因为它可能会带来一些数据质量的问题,以及会有一些不太容易被发现的程序的BUG

    假如数据类型是整型或者浮点型,那么NULL不代表0, 0实际上还是有含义的,比如我考试缺考,那么成绩是NULL;我考试得了0分,他们的含义是不同的

    假如数据类型是字符型,那么它也不是长度为0的字符串

    NULL既不代表0,也不代表空字符串,而是未知或不适用

    数据库在计算的时候会先检查是不是有null,如果有就直接得出结果就是null(数学计算中所有NULL参与的计算,最后的结果都是NULL)

    NUll小总结:(一共有五种特点比较突出的隐患)

    1. 数学运算:任何数字与NULL做数学运算均为NULL

    2. Where子句:搞清NULL的含义,小心”<>”以及 “全选”

    3. Join:NULL与NULLJoin没有结果

    4. 聚合函数:若NULL设为0, AVG,MIN,MAX,COUNT均受影响

    5. 子查询:当存在NULL时,使用not in时需要特别注意

    数据仓库层面会分为三层:贴源层、按照第三范式创建的数据仓库层、为了实现分析需求的星型模式构建的数据集市层。 

    Null的场景处理:主数据表、参照数据表、Xref表、事务表

    OLTP联机事务处理OLAP联机分析处理 的主要区别:

    1)OLTP是面向顾客的,用于办事员、客户和信息技术专业人员的事务和查询处理;OLAP是面向市场的,用于主管、经理、分析人员的数据分析

    2)OLTP管理当前数据;OLAP管理历史数据,提供汇总和聚集机制,并在不同的粒度层上存储和管理信息

    3)OLTP采用实体-联系(ER)数据模型和面向应用的数据库设计;OLAP采用星形或雪花形模型和面向主题的数据库设计

    4)OLTP主要关注一个企业或部门内部的当前数据;OLAP常跨数据库,并出来来自不同单位的信息,以及由多个数据库集成的信息

    5)OLTP由短的原子事务组成,需要并发控制和恢复机制;OLAP大多是只读操作

    参考https://edu.hellobi.com/course/54

    同一个字段,在不同表中的定义长度还有不同,这就带来了很多隐患,比如某些长度定义不够,字符串被截断这类问题

    在设计之初,要考虑未来有哪些环境上的变化

  • 相关阅读:
    Html-浅谈如何正确给table加边框
    如何在移动设备上调试html5开发的网页
    swiper嵌套小demo(移动端触摸滑动插件)
    移动端如何用swiper实现导航栏效果
    background-color:transparent
    点击按钮 发送短信验证码后60秒倒计时
    placeholder的样式设置
    linux 定时任务crontab
    laravel学习一
    centos 7安装jdk
  • 原文地址:https://www.cnblogs.com/sxbjdl/p/5736165.html
Copyright © 2011-2022 走看看