1. 程式人生 > 其它 >數倉命名規範

數倉命名規範

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設計採用貼源設計,資料表名應與源系統一致。

l系統和應用名規則如下:

n核心 COR

n對公信貸 CLN

n個貸 PLN

n基金 FUN

n票據 TIC

n理財 FIN

n報表 RPT

n……

n如有新系統,按規則新增

2.1.1.1.2.DW事實表表名

字首為DW_主題名(縮寫)_功能描述 。資料表名稱必須以有特徵含義的單詞或縮寫組成,中間可以用“_”分割,例如:DW_ORD_DETAIL。表名稱不能用雙引號包含,表名長度不超過30個字元。

l主題名規則如下:

n訂單 ORD

n營銷活動 MKC

n貸款 LN

n網銀 NET

n客戶 CUS

n……

n如有新主題,按規則新增

l資料表名規則如下:

n基礎表 _BA

n日彙總表 _D

n月彙總表 _M

n歷史累計 _H

n全量載入 _A

n增量載入 _I

2.1.1.1.3.APP應用層表名

字首為APP_主題名(縮寫)_功能描述。資料表名稱必須以有特徵含義的單詞或縮寫組成,中間可以用“_”分割,例如: APP_RPT_DEALER_GOODS。表名稱不能用雙引號包含,表名長度不超過30個字元。

l主題名規則如下:

n報表 RPT

l資料表名規則如下:

參考DW層表名稱規範

2.1.1.1.4.DW/DM維度表表名

字首為D_。資料表名稱必須以有特徵含義的單詞或縮寫組成,中間可以用“_”分割,例如:D_ACCOUNT、D_PUB_DATE。表名稱不能用雙引號包含,表名長度不超過30個字元。

l資料表名規則如下:

n日期維度 D_PUB_DATE

n城市 D_CITY

2.1.1.1.5.元資料表名

字首為M_應用名(縮寫)_功能描述 。資料表名稱必須以有特徵含義的單詞或縮寫組成,中間可以用“_”分割,例如:M_ETL_TASK。表名稱不能用雙引號包含,表名長度不超過30個字元。

l應用名規則如下:

nETL ETL

n報表 RPT

nOLAP分析 OLP

n源系統 SRC

n資料庫 DB

n軟硬體 SHW

n……

n如有新應用,按規則新增

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_。索引名稱應是 字首+表名+構成的欄位名。如果複合索引的構成欄位較多,則只包含第一個欄位,並新增序號。表名可以去掉字首。

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.欄位名稱

同一個欄位名在一個數據庫中只能代表一個意思。比如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型別,要注意精度。

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.唯一鍵

對於數字型唯一鍵值,儘可能用自增產生。