数据库&数据仓库

  • 数据库和数据仓库的区别和联系
  • 数据仓库的分层,分几层?每一层的作用,分层的好处。
  • ODS层(临时存储层)
  • PDW(DW)层(数据仓库层)
  • MID(DM)层(数据集市层)
  • APP层(应用层)
  • 分层的好处
  • 星型模型和雪花模型是什么?有什么好处?
  • 一共有多少种范式,三范式是什么?
  • 目前关系数据库有六种范式:


数据库和数据仓库的区别和联系

数据仓库基于数据库对数据进行整理
相同点:都是依赖于一些软件来存储数据
都是高效率分析数据
以某种模型来管理数据

数据仓库的分层,分几层?每一层的作用,分层的好处。

ODS层(临时存储层)

Operational Data Store:
(数据操作存储层,操作型数据存储)
临时存储数据,为后一步的数据处理做准备。一般Ods层的数据和源系统的数据是同构的。粒度最细

PDW(DW)层(数据仓库层)

Data Warehouse:
数据仓库的主体,加工ods数据,数据是干净的,一致的,准确的。储存历史数据

MID(DM)层(数据集市层)

Data Mart:
面向主题组织数据,一般是星型和雪花结构的数据,轻度汇总数据。包括了所有的业务数量

APP层(应用层)

Application:
完全为了满足具体的分析需求而汇总的,也是星型和雪花结构的数据,高度汇总的数据,并不一定会覆盖所有的业务。
分层的方法?
名字、用户等。

分层的好处

1.用空间换时间,通过大量的预处理来提升应用系统的用户体验(效率),因此数据仓库会存在大量冗余的数据.
2.如果不分层的话,如果源业务系统的业务规则发生变化将会影响整个数据清洗过程,工作量巨大.
3.通过数据分层管理可以简化数据清洗的过程,因为把原来一步的工作分到了多个步骤去完成,相当于把一个复杂的工作拆成了多个简单的工作,把一个大的黑盒变成了一个白盒,每一层的处理逻辑都相对简单和容易理解,这样我们比较容易保证每一个步骤的正确性,当数据发生错误的时候,往往我们只需要局部调整某个步骤即可
4.有些项目可能有共享层,可以其他项目加工后的中间结果拿过来,用于实现其他业务需求。

星型模型和雪花模型是什么?有什么好处?

星形模型:当所有维度表连接到事实表上的时候,整个图就像一个星星,故称之为星型模型。星型架构是一种非正规化的结构,多维数据集的每一个维度都直接与事实表相连,不存在渐变维度,所以数据有一定冗余。因为有冗余,所以很多统计不需要做外部的关联查询,因此一般情况下效率比雪花模型高。
  雪花模型:当有多个维度表没有直接连接到事实表上,而是通过其他维度表连接到事实表上时,其图形就像雪花,故称雪花模型。雪花模型的优点是减少了数据冗余,所以一般情况下查询需要关联其他表。在冗余可接受的前提下使用星型模型。
星型模型和雪花模型的区别在于:维度表是直接连接到事实表还是其他维度表。

事实表:用来存储事实的度量和各维的码值
维度表:观察事物的角度

一共有多少种范式,三范式是什么?

范式:设计关系数据库时,遵从不同的规范要求,设计出合理的关系型数据库,这些不同的规范要求被称为不同的范式,实际上很多设计是反范式的

目前关系数据库有六种范式:

第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、巴斯-科德范式(BCNF)、第四范式(4NF)和第五范式(5NF,又称完美范式)。
第一范式,数据库表的每一列都是不可分割的原子数据项
第二范式,在1nf的基础上,要求实体的属性完全依赖于主关键字。所谓完全依赖是指不能存在仅依赖主关键字一部分的属性
第三范式,在2NF基础上,任何非主属性不依赖于其它非主属性(在2NF基础上消除传递依赖)