电商平台数据仓库 电商平台数据库设计_数据库

 优点:易于数据读取

数据插入异常:

执行以下操作时,由于没有主键信息,那么就不会插入数据成功

电商平台数据仓库 电商平台数据库设计_数据_02

数据更新异常:

把所有的字段都放在一个表中,那么就需要对该表的所有行数据进行锁定,更新时间过长

电商平台数据仓库 电商平台数据库设计_电商平台数据仓库_03

数据删除异常:

如果执行以下操作,那么就会把用户等级=‘青铜’的所有用户删除

电商平台数据仓库 电商平台数据库设计_数据_04

数据库的设计范式
设计范式是数据库设计的规范
有多种设计范式,如数据库设计第一范式,第3 =范式和第三范式等
数据库设计最低要满足第三范式(3NF)的要求
3NF定义:
-个表中的列和其它列之间既不包含部分函数依赖关系,
也不包含传递函数依赖关系,那么这个表的设计就符合第
三范式。
 

{登录名}《依赖---{用户级别}《依赖-----{级别积分上限,级别积分下限}
所以不符合第三范式的要求

所以讲用户表拆分为两个表从而符合第三范式:

电商平台数据仓库 电商平台数据库设计_数据_05

电商平台数据仓库 电商平台数据库设计_数据库_06

 

电商平台数据仓库 电商平台数据库设计_mysql_07

确认MySQL服务器是否支持分区表
mysq| > SHOW PLUGINS;

电商平台数据仓库 电商平台数据库设计_database_08

电商平台数据仓库 电商平台数据库设计_电商平台数据仓库_09

HASH分区的特点:
跟据MOD(分区键,分区数)的值把数据行存储到表的不同分区中
数据可以平均的分布在各个分区中
HASH分区的键值必须是一个INT类型的值 ,或是通过函数可以转为INT类型
 

电商平台数据仓库 电商平台数据库设计_电商平台数据仓库_10

RANGE分区特点

●跟据分区键值的范围把数据行存储到表的不同分区中

●多个分区的范围要连续,但是不能重叠

●默认情况下使用VALUES LESS THAN属性,即每个分区不包括指定的那个值:比如按照id=1-100进行分区,那么就不会包含100这个数值

电商平台数据仓库 电商平台数据库设计_数据_11

RANGE分区的适用场景
1.分区键为日期或是时间类型:比如按照id进行分区,那么假如在某一个分区的用户比较活跃,这个分区就会变得特别大,从而失去了分区的意义

2.所有查询中都包括分区键
3.定期按范围清理数据的情况

LIST分区的特点
按分区键取值的列表进行分区
同范围分区-样,各分区的列表值不能重复
每一行数据必须能找到对应的分区列表,否则数据插入失败

电商平台数据仓库 电商平台数据库设计_数据_12