WHCSRL 技术网

《数据清洗》第八章 综合案例--构建DVD租赁商店数据仓库

1) 了解数据库sakila中的数据表

sakila样本数据库是MySql官方提供的一个模拟DVD租赁商店管理的数据库。

sakila数据库--->数据清洗--->构建数据仓库

1.案例概述

1.1 案例背景介绍

对于在线DVD租赁商店的决策者来说,他们需要从不同的商业角度观察数据,如从时间、电影、演员、用户等角度观察数据,并进行相关的分析得出决策,但是数据库中的数据不适合从多个角度进行分析,无法得出战略决策。

然而,数据仓库支持复杂的分析操作,侧重于决策支持,并且还提供直观易懂的查询结果。

因此我们需要基于数据库sakila创建一个DVD租赁商店数据仓库,并将sakila数据库中的数据加载到数据仓库中,以便于在线DVD租赁商店的决策者对数据进行分析得出商业决策。

1.2 数据仓库的架构模型

数据仓库sakila_dw的架构模型:星型模型

2.3 数据表简介

sakila数据库中16张数据表的基本信息

1.数据表film

存储电影的基本信息及相关介绍的数据,该数据表各个字段对的含义见表

字段名称数据类型相关说明
film_idsmallint主键(电影id)
titlevarchar电影名称
descriptiontext电影描述
release_yearyear上映年份
language_idtinyint语言id
original_language_idtinyint原版语言id
rental_durationtinyint租赁时长
rental_ratedecimal电影租赁费
lengthsmallint电影时长
replacement_costdecimal替换成本
ratingenum评分
special_featuresset特色
last_updatetimestamp最后更新时间

2.数据表film_category

存储定义电影id和所属电影类别id的数据,该数据表各个字段的含义

字段名称数据类型相关说明
film_idsmallint主键(电影id)
category_idtinyint外键(电影类别id)
last_updatetimestamp最后更新时间

3.数据表category

用于存储电影类别名称和所属类别id的数据,该数据表各个字段的含义如下:

字段名称数据类型相关说明
category_idtinyint主键(电影类别id)
namevarchar电影类别名称
last_updatetimestamp最后更新时间

4.数据表film_actor

用于存储定义演员id和所属电影id的数据,该数据表各个字段的含义见表

字段名称数据类型相关说明
actor_idsmallint主键(演员id)
film_idsmallint外键(电影id)
last_updatetimestamp最后更新时间

5.数据表actor

用于存储演员id对应的姓氏和名字数据,该数据表各个字段的含义见表

字段名称数据类型相关说明
actor_idsmallint主键(演员id)
first_namevarchar演员名字
last_namevarchar演员姓氏
last_updatetimestamp最后更新时间

6.数据表language

存储电影语言id和对应的语言名称数据,该数据表各个字段的含义见表

字段名称数据类型相关说明
language_idtinyint主键(电影语言id)
namechar电影语言名称
last_updatetimestamp最后更新时间

7.数据表film_text

存储电影id和对应的电影名称及简述的数据,该数据表各个字段的含义见表

字段名称数据类型相关说明
film_idsmallint主键(电影id)
titlevarchar电影名称
descriptiontext电影简述

8.数据表store

存储商店id和对应的管理人员id以及商店地址id的数据,该数据表各个字段的含义见表

字段名称数据类型相关说明
store_idtinyint主键(商店id)
manager_staff_idtinyint管理人员id
address_idsmallint商店地址id
last_updatetimestamp最后更新时间

9.数据表staff

用于存储员工的基本信息及员工所属商店的数据,该数据表各个字段的含义见表

字段名称数据类型相关说明
staff_idtinyint主键(员工id)
first_namevarchar员工名字
last_namevarchar员工姓氏
address_idsmallint地址id
pictureblob照片
emailvarchar邮箱
store_idtinyint商店id
activetinyint在职
usernamevarchar用户名
passwordvarchar密码
last_updatetimestamp最后更新时间

10.数据表inventory

用于存储库存编号对应的电影id和商店id数据,该数据表各个字段的含义见表

字段名称数据类型相关说明
inventory_idmediumint主键(库存编号)
film_idsmallint电影id
store_idtinyint商店id
last_updatetimestamp最后更新时间

11.数据表customer

用于存储顾客的基本信息数据,该数据表各个字段的含义见表

字段名称数据类型相关说明
customer_idsmallint主键(顾客id)
store_idtinyint商店id
first_namevarchar顾客名字
last_namevarchar顾客姓氏
emailvarchar顾客邮箱
address_idsmallint地址id
activetinyint活跃消费者
create_datedatetime创建日期
last_updatetimestamp最后更新时间

12.数据表rental

用于存储租借相关信息数据,该数据表各个字段的含义见表

字段名称数据类型相关说明
rental_idint主键(租借id)
rental_datedatetime租赁日期
inventory_idmediumint库存编号
customer_idsmallint顾客id
return_datedatetime返还日期
staff_idtinyint员工id
last_updatetimestamp最后更新时间

13.数据表payment

用于存储租赁时付款的相关信息,该数据表各个字段的含义见表

字段名称数据类型相关说明
payment_idsmallint主键(付款id)
customer_idsmallint顾客id
staff_idtinyint员工id
rental_idint租借id
amountdecimal数量
payment_datedatetime付款日期
last_updatetimestamp最后更新时间

14.数据表country

用于存储国家id和对应的国家名称数据,该数据表各个字段的含义见表

字段名称数据类型相关说明
country_idsmallint主键(国家id)
countryvarchar国家名称
last_updatetimestamp最后更新时间

15.数据表city

用于存储城市id和对应的城市名称以及所属国家id这一类数据,该数据表各个字段的含义见表

字段名称数据类型相关说明
city_idsmallint主键(城市id)
cityvarchar城市名称
country_idsmallint国家id
last_updatetimestamp最后更新时间

16.数据表address

用于存储城市地址及地址邮编、所属区域等相关信息,该数据表各个字段的含义见表

字段名称数据类型相关说明
address_idsmallint主键(地址id)
addressvarchar地址名称
address2varchar地址名称2
districtvarchar区域
city_idsmallint城市id
postal_codevarchar邮编
phonevarchar电话
last_updatetimestamp最后更新时间

推荐阅读