数据仓库建模指南系列教程学习笔记

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

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

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

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

六合分析法: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表、事务表

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

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

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

时间: 2024-10-10 13:25:16

数据仓库建模指南系列教程学习笔记的相关文章

[数据仓库]-0023-独一无二的数据仓库建模指南系列教程升级版

2018最新最全大数据技术.项目视频.整套视频,非那种淘宝杂七杂八网上能免费找到拼凑的乱八七糟的几年前的不成体系浪费咱们宝贵时间的垃圾,详细内容如下,视频高清不加密,需要的联系QQ:3164282908(加Q注明博客园). 课程名称: 独一无二的数据仓库建模指南系列教程升级版 本课程也有部分免费的视频课程<数据仓库建模指南系列教程>,大家可以前往学习和了解 https://edu.hellobi.com/course/54/lessons [温馨提示:1. 你可以在PC端浏览器或者微信收藏该页

[简明python教程]学习笔记之编写简单备份脚本

[[email protected] 0503]# cat backup_ver3.py #!/usr/bin/python #filename:backup_ver3.py import os import time #source source=['/root/a.sh','/root/b.sh','/root/c.sh'] #source='/root/c.sh' #backup dir target_dir='/tmp/' today=target_dir+time.strftime('

[简明python教程]学习笔记2014-05-05

今天学习了python的输入输出.异常处理和python标准库 1.文件 通过创建一个file类的对象去处理文件,方法有read.readline.write.close等 [[email protected] 0505]# cat using_file.py #!/usr/bin/python #filename:using_file.py poem='''Programing is fun when the work is done use Python! ''' f=file('poem.

Webpack新手入门教程(学习笔记)

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; text-align: center; font: 30.0px Helvetica; color: #000000 } p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 16.0px "PingFang TC Semibold"; color: #000000 } p.p3 { margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0

SQL语句教程学习笔记之一

转自http://www.1keydata.com/cn/sql/ 无论您是一位 SQL 的新手,或是一位只是需要对 SQL 复习一下的资料仓储业界老将, 您就来对地方了.这个 SQL 教材网站列出常用的 SQL 指令.包含以下几个部分: SQL 指令: SQL 如何被用来储存.读取.以及处理数据库之中的资料. 表格处理: SQL 如何被用来处理数据库中的表格. SQL语法: 这一页列出所有在这个教材中被提到的 SQL 语法. 对于每一个指令,我们将会先列出及解释这个指令的语法,然后我们会用一个

ios/mac/COCOA系列 -- UIALertVIew 学习笔记

最近在学习ios开发,学习的书籍<ios7 Pragramming cookbook>,做笔记的目的以后方便查看.笔记形式是小例子,将书上的例子书写完整. UIAlertViewClass 的使用场景 1,向用户以一个警告的形式显示信息. 2,让用户确认一些动作 3,让用户输入用户名和密码 4,让用户输入一些文本,这些文本在程序被使用 例1   实现简单显示一些警告信息 新建一个 Single View Application 简单工程,工程名字维AlterView,扩展前缀CB   代码如下

廖雪峰Git教程学习笔记

廖雪峰git简单教程学习笔记 教程地址:https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b0001.可以这样设计目录,在d:\reposisoty\ 在这个目录下面有很多的仓库.mkdir learngitcd learngit>>git init          #这样就把learngit 初始化成了一个仓库>>git status        #说明当前仓库的状态并

contiki-main.c 中的process系列函数学习笔记 &lt;contiki学习笔记之六&gt;

说明:本文依然依赖于 contiki/platform/native/contiki-main.c 文件. ------------------------------------------------------------------------------------------------------------------------------------- 根据上一个笔记里面添加的printf()语句的打印信息提示,hello world 打印是在执行了 1 autostart_

数据仓库架构理论和实践,数据仓库建模指南

数据仓库架构理论和实践,数据仓库建模指南 背景 在数据仓库建模中,未经任何加工处理的原始业务层数据,我们称之为ODS(Operational Data Store)数据.在互联网企业中,常见的ODS数据有业务日志数据(Log)和业务DB数据(DB)两类.对于业务DB数据来说,从MySQL等关系型数据库的业务数据进行采集,然后导入到Hive中,是进行数据仓库生产的重要环节. 如何准确.高效地把MySQL数据同步到Hive中?一般常用的解决方案是批量取数并Load:直连MySQL去Select表中的