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_id | smallint | 主键(电影id) |
title | varchar | 电影名称 |
description | text | 电影描述 |
release_year | year | 上映年份 |
language_id | tinyint | 语言id |
original_language_id | tinyint | 原版语言id |
rental_duration | tinyint | 租赁时长 |
rental_rate | decimal | 电影租赁费 |
length | smallint | 电影时长 |
replacement_cost | decimal | 替换成本 |
rating | enum | 评分 |
special_features | set | 特色 |
last_update | timestamp | 最后更新时间 |
2.数据表film_category
存储定义电影id和所属电影类别id的数据,该数据表各个字段的含义
字段名称 | 数据类型 | 相关说明 |
film_id | smallint | 主键(电影id) |
category_id | tinyint | 外键(电影类别id) |
last_update | timestamp | 最后更新时间 |
3.数据表category
用于存储电影类别名称和所属类别id的数据,该数据表各个字段的含义如下:
字段名称 | 数据类型 | 相关说明 |
category_id | tinyint | 主键(电影类别id) |
name | varchar | 电影类别名称 |
last_update | timestamp | 最后更新时间 |
4.数据表film_actor
用于存储定义演员id和所属电影id的数据,该数据表各个字段的含义见表
字段名称 | 数据类型 | 相关说明 |
actor_id | smallint | 主键(演员id) |
film_id | smallint | 外键(电影id) |
last_update | timestamp | 最后更新时间 |
5.数据表actor
用于存储演员id对应的姓氏和名字数据,该数据表各个字段的含义见表
字段名称 | 数据类型 | 相关说明 |
actor_id | smallint | 主键(演员id) |
first_name | varchar | 演员名字 |
last_name | varchar | 演员姓氏 |
last_update | timestamp | 最后更新时间 |
6.数据表language
存储电影语言id和对应的语言名称数据,该数据表各个字段的含义见表
字段名称 | 数据类型 | 相关说明 |
language_id | tinyint | 主键(电影语言id) |
name | char | 电影语言名称 |
last_update | timestamp | 最后更新时间 |
7.数据表film_text
存储电影id和对应的电影名称及简述的数据,该数据表各个字段的含义见表
字段名称 | 数据类型 | 相关说明 |
film_id | smallint | 主键(电影id) |
title | varchar | 电影名称 |
description | text | 电影简述 |
8.数据表store
存储商店id和对应的管理人员id以及商店地址id的数据,该数据表各个字段的含义见表
字段名称 | 数据类型 | 相关说明 |
store_id | tinyint | 主键(商店id) |
manager_staff_id | tinyint | 管理人员id |
address_id | smallint | 商店地址id |
last_update | timestamp | 最后更新时间 |
9.数据表staff
用于存储员工的基本信息及员工所属商店的数据,该数据表各个字段的含义见表
字段名称 | 数据类型 | 相关说明 |
staff_id | tinyint | 主键(员工id) |
first_name | varchar | 员工名字 |
last_name | varchar | 员工姓氏 |
address_id | smallint | 地址id |
picture | blob | 照片 |
varchar | 邮箱 | |
store_id | tinyint | 商店id |
active | tinyint | 在职 |
username | varchar | 用户名 |
password | varchar | 密码 |
last_update | timestamp | 最后更新时间 |
10.数据表inventory
用于存储库存编号对应的电影id和商店id数据,该数据表各个字段的含义见表
字段名称 | 数据类型 | 相关说明 |
inventory_id | mediumint | 主键(库存编号) |
film_id | smallint | 电影id |
store_id | tinyint | 商店id |
last_update | timestamp | 最后更新时间 |
11.数据表customer
用于存储顾客的基本信息数据,该数据表各个字段的含义见表
字段名称 | 数据类型 | 相关说明 |
customer_id | smallint | 主键(顾客id) |
store_id | tinyint | 商店id |
first_name | varchar | 顾客名字 |
last_name | varchar | 顾客姓氏 |
varchar | 顾客邮箱 | |
address_id | smallint | 地址id |
active | tinyint | 活跃消费者 |
create_date | datetime | 创建日期 |
last_update | timestamp | 最后更新时间 |
12.数据表rental
用于存储租借相关信息数据,该数据表各个字段的含义见表
字段名称 | 数据类型 | 相关说明 |
rental_id | int | 主键(租借id) |
rental_date | datetime | 租赁日期 |
inventory_id | mediumint | 库存编号 |
customer_id | smallint | 顾客id |
return_date | datetime | 返还日期 |
staff_id | tinyint | 员工id |
last_update | timestamp | 最后更新时间 |
13.数据表payment
用于存储租赁时付款的相关信息,该数据表各个字段的含义见表
字段名称 | 数据类型 | 相关说明 |
payment_id | smallint | 主键(付款id) |
customer_id | smallint | 顾客id |
staff_id | tinyint | 员工id |
rental_id | int | 租借id |
amount | decimal | 数量 |
payment_date | datetime | 付款日期 |
last_update | timestamp | 最后更新时间 |
14.数据表country
用于存储国家id和对应的国家名称数据,该数据表各个字段的含义见表
字段名称 | 数据类型 | 相关说明 |
country_id | smallint | 主键(国家id) |
country | varchar | 国家名称 |
last_update | timestamp | 最后更新时间 |
15.数据表city
用于存储城市id和对应的城市名称以及所属国家id这一类数据,该数据表各个字段的含义见表
字段名称 | 数据类型 | 相关说明 |
city_id | smallint | 主键(城市id) |
city | varchar | 城市名称 |
country_id | smallint | 国家id |
last_update | timestamp | 最后更新时间 |
16.数据表address
用于存储城市地址及地址邮编、所属区域等相关信息,该数据表各个字段的含义见表
字段名称 | 数据类型 | 相关说明 |
address_id | smallint | 主键(地址id) |
address | varchar | 地址名称 |
address2 | varchar | 地址名称2 |
district | varchar | 区域 |
city_id | smallint | 城市id |
postal_code | varchar | 邮编 |
phone | varchar | 电话 |
last_update | timestamp | 最后更新时间 |