1. 概述
数据模型是数据管理的分析工具和交流的有力手段;同时,还能够很好地保证数据的一致性,是实现商务智能(Business Intelligence)的重要基础。因此建立、管理一个企业级的数据模型,应该遵循标准的命名和设计规范。
文章目录
2. 数据仓库命名规范
2.1. 命名规范
2.1.1. 表属性规范
2.1.1.1. 表名
- ODS层表名
前缀为ODS_应用系统名(缩写)_数据表名
。数据表名称必须以有特征含义的单词或缩写组成,中间可以用“_”分割,例如:ODS_FUN_CUSTOMERINFO
。表名称不能用双引号包含,表名长度不超过30个字符。如果ODS设计采用贴源设计,数据表名应与源系统一致。
系统和应用名规则:- 核心
COR
- 对公信贷
CLN
- 个贷
PLN
- 基金
FUN
- 票据
TIC
- 理财
FIN
- 报表
RPT
- ……
- 核心
2.1.1.2. DW事实表表名
- 前缀为
DW_主题名(缩写)_功能描述
。数据表名称必须以有特征含义的单词或缩写组成,中间可以用“_”分割,例如:DW_ORD_DETAIL
。表名称不能用双引号包含,表名长度不超过30个字符。
主题名规则:- 订单
ORD
- 营销活动
MKC
- 贷款
LN
- 网银
NET
- 客户
CUS
- ……
数据表名规则: - 基础表
_BA
- 日汇总表
_D
- 月汇总表
_M
- 历史累计
_H
- 全量加载
_A
- 增量加载
_I
- 订单
2.1.1.3. APP应用层表名
- 前缀为
APP_主题名(缩写)_功能描述
。数据表名称必须以有特征含义的单词或缩写组成,中间可以用“_”分割,例如:APP_RPT_DEALER_GOODS
。表名称不能用双引号包含,表名长度不超过30个字符。
参考DW层表名称规范。
2.1.1.4. DW/DM维度表表名
- 前缀为
D_
。数据表名称必须以有特征含义的单词或缩写组成,中间可以用“_”分割,例如:D_ACCOUNT
、D_PUB_DATE
。表名称不能用双引号包含,表名长度不超过30个字符。
数据表名规则:- 日期维度
D_PUB_DATE
- 城市
D_CITY
- 日期维度
2.1.1.5. 元数据表名
- 前缀为
M_应用名(缩写)_功能描述
。数据表名称必须以有特征含义的单词或缩写组成,中间可以用“_”分割,例如:M_ETL_TASK
。表名称不能用双引号包含,表名长度不超过30个字符。
应用名规则:- ETL
ETL
- 报表
RPT
- OLAP分析
OLP
- 源系统
SRC
- 数据库
DB
- 软硬件
SHW
- ……
- ETL
2.1.2. 索引
2.1.2.1. 普通索引
- 前缀为
IDX_
。索引名称应是前缀+表名+构成的字段名。如果复合索引的构成字段较多,则只包含第一个字段,并添加序号。表名可以去掉前缀。
2.1.2.2. 主键索引
- 前缀为
IDX_PK_
。索引名称应是前缀+表名+构成的主键字段名,在创建表时用using index
指定主键索引属性。
2.1.2.3. 唯一索引
- 前缀为
IDX_UK_
。索引名称应是前缀+表名+构成的字段名。
2.1.2.4. 外键索引
- 前缀为
IDX_FK_
。索引名称应是前缀+表名+构成的外键字段名。
2.1.2.5. 函数索引
- 前缀为
IDX_func_
。索引名称应是前缀+表名+构成的特征表达字符。
2.1.2.6. 簇索引
- 前缀为
IDX_clu_
。索引名称应是前缀+表名+构成的簇字段。
2.1.3. 视图
- 前缀为
V_
。按业务操作命名视图。
2.1.4. 物化视图
- 前缀为
MV_
。按业务操作命名实体化视图。
2.1.5. 存储过程
- 前缀为
SP_
。按业务操作命名存储过程。
2.1.6. 触发器
- 前缀为
Trig_
。触发器名应是前缀+表名+触发器名。
2.1.7. 函数
- 前缀为
Func_
。按业务操作命名函数。
2.1.8. 数据包
- 前缀为
Pkg_
。按业务操作集合命名数据包。
2.1.9. 序列
- 前缀为
Seq_
。按业务属性命名。
2.1.10. 普通变量
- 前缀为
Var_
。存放字符、数字、日期型变量。
2.1.11. 游标变量
- 前缀为
Cur_
。存放游标记录集。
2.1.12. 记录型变量
- 前缀为
Rec_
。存放记录型数据。
2.1.13. 表类型变量
- 前缀为
Tab_
。存放表类型数据。
2.1.14. 数据库链接
- 前缀为
dbl_
。表示分布式数据库外部链接关系。
2.2. 命名
2.2.1. 语言
命名应该使用英文单词,避免使用拼音,特别不应该使用拼音简写。命名不允许使用中文或者特殊字符。
2.2.2. 大小写
名称一律小写,以方便不同数据库移植,以及避免程序调用问题。
2.2.3. 单词分隔
命名的各单词之间可以使用下划线进行分隔。
2.2.4. 保留字
命名不允许使用SQL保留字。
2.2.5. 命名长度
表名、字段名、视图名长度应限制在20个字符内(含前缀)。
2.2.6. 字段名称
同一个字段名在一个数据库中只能代表一个意思。不同的表用于相同内容的字段应该采用同样的名称,字段类型定义。
2.3. 数据类型
2.3.1. 字符型
固定长度的字串类型采用char
,长度不固定的字串类型采用varchar
。避免在长度不固定的情况下采用char
类型。
2.3.2. 数字型
数字型字段尽量采用number
类型,要注意精度。
2.3.3. 日期和时间
- 系统时间:由数据库产生的系统时间首选数据库的日期型,如
DATE
类型。 - 外部时间:由数据导入或外部应用程序产生的日期时间类型采用
varchar
类型,数据格式采用:YYYYMMDDHH24MISS
。
2.3.4. 大字段
如无特别需要,避免使用大字段(blob
,clob
,long
,text
,image
等)。
2.3.5. 唯一键
对于数字型唯一键值,尽可能用自增产生。