zoukankan      html  css  js  c++  java
  • 数据仓库的基本理论

    1.数仓建模的目标

    访问性能:能够快速查询所需的数据,减少数据I/O
    数据成本:减少不必要的数据冗余,实现计算结果数据复用,降低大数据系统中的存储成本和计算成本
    使用效率:改善用户应用体验,提高使用数据的效率
    数据质量:改善数据统计口径的不一致性,减少数据计算错误的可能性,提供高质量的、一致的数据访问平台

    So,大数据的数仓建模需要通过建模的方法更好的组织、存储数据,以便在性能、成本、效率和数据质量之间找到最佳平衡点

    2.关系模式范式

    关系型数据库设计时,遵照一定的规范要求,目的在于降低数据的冗余性和数据的一致性,目前业界范式有:

    第一范式(1NF)
    第二范式(2NF)
    第三范式(3NF)
    巴斯-科德范式(BCNF)
    第四范式(4NF)
    第五范式(5NF)

    第一范式(1NF)
    域都应该是原子性的,即数据库表的每一列都是不可分割的原子数据项

    第二范式(2NF)
    在1NF的基础上,实体的属性完全依赖于主关键字,不能存在仅依赖主关键字一部分的属性

    第三范式(3NF)
    在2NF的基础上,任何非主属性不依赖于其它非主属性

     3.数据仓库建模基本理论

    ER实体模型
    维度建模
    dataVault模型
    Anchor


    ER实体模型
    在信息系统中,将事物抽象为“实体”、“属性”、“关系”来表示数据关联和事物描述;实体:Entity,关系:Relationship,这种对数据的抽象 建模通常被称为ER实体关系模型
    实体:通常为参与到过程中的主体,客观存在的,比如商品、仓库、货位、汽车, 此实体非数据库的实体表
    属性:对主体的描述、修饰即为属性,比如商品的属性有商品名称、颜色、尺寸、重量、产地等

    关系:现实的物理事件是依附于实体的,比如商品入库事件,依附实体商品、货位,就会有“库存”的属性产生;用户购买商品,依附实体用户、商品,就会有“购买数量”、“金额”的属性产品。

    实体之间建立关系时,存在对照关系:
    1:1 ,即1对1的关系,比如实体人、身份证,一个人有且仅有一个身份证号
    1:n,即1对多的关系,比如实体学生、班级,对于某1个学生,仅属于1个班级,而在1个班级中,可以有多个学生
    n:m,即多对多的关系,比如实体学生、课程,每个学生可以选修多门课程, 同样每个课程也可以被多门学生选修


    在日常建模过程中
    “实体”用矩形表示:
    “关系”用菱形表示:
    “属性”用椭圆形表示:
    所以ER实体关系模型也称作E-R关系图

    针对商品入库,ER图构建
    1.抽象出实体
    2.梳理实体间的关系
    3.梳理实体属性、关系属性构建ER图
    4.商品、货位
    5.一个货位能存储多个商品,一个商品仅能放置在一个货位
    6.商品:ID、名称、颜色、品类。。。货位:位置、容量、存储条件。。。入库关系:库存

    ?案例
    场景:课程管理系统
    该系统主要用来管理某校教师、学生、课程,其中包括课程选修、考试、教师授课、学生班级管理功能,现需要完成数据库逻辑模型设计
    1,抽象出主体
    2,梳理主体之间的关系
    3,梳理主体的属性
    4,画出E-R关系图
    应用场景
    ER模型是数据库设计的理论基础,当前几乎所有的OLTP系统设计都采用ER模型建模的方式
    Bill Inom提出的数仓理论,推荐采用ER关系模型进行建模
    BI架构提出分层架构,数仓底层ods、dwd也多采用ER关系模型就行设计


    维度模型
    Ralph Kimball推崇数据集市的集合为数据仓库,同时也提出了对数据集市的维度建模,将数据仓库中的表划分为事实表、维度表两种类型。


    事实表
    在ER模型中抽象出了有实体、关系、属性三种类别,在现实世界中,每一个操作型事件,基本都是发生在实体之间的,伴随着这种操作事件的发生,
    会产生可度量的值,而这个过程就产生了一个事实表,存储了每一个可度量的事件。数据仓库建模理论

      电商场景:一次购买事件,涉及主体包括客户、商品、商家,产生的可度量值包括商品数量、金额、件数等

  • 相关阅读:
    Android实现 再按一次退出 的三种方法 durationTime、timerTask 和Handler
    Android中使用Handler造成内存泄露的分析和解决
    Android上成功实现了蓝牙的一些Profile
    A2DP和AVRCP蓝牙音频传输协议的应用解释
    [LeetCode]Climbing Stairs
    Android该系统提供的服务--Vibrator(振子)
    阅读UML类图和时序图
    js如果你想删除您问
    【Win7】【磁盘管理】删除相似“33fbc1d57e9aaf1ea88e6f08”缓存目录
    Linux使用快捷键,who命令,rm命令,ps命令,cd,命令kill命令,find命令,grep命令,tar命令(gz、tar、bz2),用户管理,vim配置的一部分,相关命令
  • 原文地址:https://www.cnblogs.com/wqbin/p/10218042.html
Copyright © 2011-2022 走看看