数据仓库学习(三)——命名规则

时间:2024-02-25 19:16:13

 1.   概述

数据模型是数据管理的分析工具和交流的有力手段;同时,还能够很好地保证数据的一致性,是实现商务智能(Business Intelligence)的重要基础。因此建立、管理一个企业级的数据模型,应该遵循标准的命名和设计规范。

2、数据仓库命名规则

2.1、命名规范

2.1.1、表属性规范

2.1.1.1. 表名

2.1.1.1.1. ODS层表名

前缀为ODS_应用系统名(缩写)_数据表名。数据表名称必须以有特征含义的单词或缩写组成,中间可以用“_”分割,例如:ODS_FUN_CUSTOMERINFO。表名称不能用双引号包含,表名长度不超过30个字符。如果ODS设计采用贴源设计,数据表名应与源系统一致。

系统和应用名规则如下:

核心       COR

对公信贷    CLN

个贷       PLN

基金       FUN

票据       TIC

理财        FIN

报表        RPT

……

如有新系统,按规则添加

2.1.1.1.2.      DW事实表表名

前缀为DW_主题名(缩写)_功能描述 。数据表名称必须以有特征含义的单词或缩写组成,中间可以用“_”分割,例如:DW_ORD_DETAIL。表名称不能用双引号包含,表名长度不超过30个字符(由于表名有长度限制,建议数据库实例名称不包括在表前缀中,而在SQL代码中加上实例前缀,避免表名长度不够用)。

主题名规则如下:

订单       ORD

营销活动    MKC

贷款        LN

网银       NET

客户        CUS

……

如有新主题,按规则添加

数据表名规则如下:

基础表        _BA

日汇总表       _D

月汇总表       _M

历史累计       _H

全量加载       _A

增量加载       _I

2.1.1.1.3.      APP应用层表名

前缀为APP_主题名(缩写)_功能描述 。数据表名称必须以有特征含义的单词或缩写组成,中间可以用“_”分割,例如: APP_RPT_ DEALER_GOODS。表名称不能用双引号包含,表名长度不超过30个字符。

主题名规则如下:

报表       RPT

数据表名规则如下:

参考DW层表名称规范

2.1.1.1.4.      DW/DM维度表表名

前缀为D_ 。数据表名称必须以有特征含义的单词或缩写组成,中间可以用“_”分割,例如:D_ACCOUNT、D_PUB_DATE。表名称不能用双引号包含,表名长度不超过30个字符。

数据表名规则如下:

日期维度      D_PUB_DATE

城市           D_CITY

2.1.1.1.5.      元数据表名

前缀为M_应用名(缩写)_功能描述 。数据表名称必须以有特征含义的单词或缩写组成,中间可以用“_”分割,例如:M_ETL_TASK。表名称不能用双引号包含,表名长度不超过30个字符。

应用名规则如下:

ETL        ETL

报表        RPT

OLAP分析    OLP

源系统      SRC

数据库      DB

软硬件      SHW

……

如有新应用,按规则添加

2.1.1.2.  表分区名

前缀为p 。分区名必须有特定含义的单词或字串。

例如 :tbl_pstn_detail 的分区p2004100101表示该分区存储 2004100101时段的数据。

2.1.1.3.  字段名

字段名称必须用字母开头,采用有特征含义的单词或缩写,不能用双引号包含。

2.1.1.4.  字段排列

每个表中的字段排列也应该遵从相应的规则进行摆放:

Ø  同类属性尽量靠拢摆放

例如:“协议”实体中有一组“日期”属性,包括“开户日期”、“销户日期”、“签署日期”、“起息日期”、“到期日期”等,可以排列在一起、

Ø  相关属性尽量靠拢摆放

例如:“币种”、“金额”常常一起使用,应排列在一起;

Ø  重要的和常用的属性靠前

Ø  和源系统非常接近的表(特别是一对一的情况),和源系统的属性顺序一致

2.1.1.5. 主键名

前缀为PK_。主键名称应是 前缀+表名+构成的字段名。如果复合主键的构成字段较多,则只包含第一个字段。表名可以去掉前缀。

2.1.1.6.  外键名

前缀为FK_。外键名称应是 前缀+外键表名 + 主键表名 + 外键表构成的字段名。表名可以去掉前缀。

2.1.2、索引

2.1.2.1.  普通索引

前缀为IDX_。索引名称应是 前缀+表名+构成的字段名。如果复合索引的构成字段较多,则只包含第一个字段,并添加序号。表名可以去掉前缀(普通索引前缀建议简化为IX_,唯一索引前缀建议简化为UX_,主键索引前缀建议用PK_,外建索引前缀建议用FK_)。

2.1.2.2.  主键索引

前缀为IDX_PK_。索引名称应是 前缀+表名+构成的主键字段名,在创建表时候用usingindex指定主键索引属性。

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_ 。触发器名应是 前缀 + 表名 + 触发器名。

建议触发器前缀为tr_或tg_,函数前缀为fu_或fn_,尽量简化

2.1.7、函数

前缀为Func_ 。按业务操作命名函数。

2.1.8、数据包

前缀为Pkg_ 。按业务操作集合命名数据包。

2.1.9、序列

前缀为Seq_ 。按业务属性命名。

2.1.10、普通变量

前缀为Var_ 。 存放字符、数字、日期型变量(变量前缀建议:字符vs_,数字vi_,日期vd_,尽量简化)。

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、字段名称

同一个字段名在一个数据库中只能代表一个意思。比如telephone在一个表中代表电话号码的意思,在另外一个表中就不能代表手机号码的意思。

不同的表用于相同内容的字段应该采用同样的名称,字段类型定义。

 例如:

行为名称

行为英文名称

英文缩写

计数

Count

cnt

金额

Amount

amt

微信

Weixin

Wx

成功

success

succ

支付

Pay

pay

地址

Address

addr

订单

Order

ord

渠道

Channel

chl

完成

Finish

Fin


2.3、数据类型

2.3.1、字符型

固定长度的字串类型采用char,长度不固定的字串类型采用varchar。避免在长度不固定的情况下采用char类型。如果在数据迁移等出现以上情况,则必须使用trim()函数截去字串后的空格。

2.3.2、数字型

数字型字段尽量采用number类型,要注意精度(数字型字段,建议根据字段可能的取值范围定义相应长度的数字类型,长度小,数据加载、计算效率越好。金额型字段,建议采用decimal类型,保证精确性)。

2.3.3、日期和时间

2.3.3.1.  系统时间

由数据库产生的系统时间首选数据库的日期型,如DATE类型。

2.3.3.2.  外部时间

由数据导入或外部应用程序产生的日期时间类型采用varchar类型,数据格式采用:YYYYMMDDHH24MISS。

2.3.4、大字段

如无特别需要,避免使用大字段(blob,clob,long,text,image等)。

2.3.5、唯一键

对于数字型唯一键值,尽可能用自增产生。