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 | 最后更新时间 |
为支持复杂分析和决策制定,本案例介绍如何基于sakila数据库构建数据仓库。通过清洗与转换,实现多维度数据观察,如时间、电影、演员和用户等,帮助在线DVD租赁商店做出更优决策。
1625

被折叠的 条评论
为什么被折叠?



