ORACLE資料庫命名編碼規範

2021-04-07 13:35:50 字數 3935 閱讀 3215

oracle資料庫命名編碼規範

oracle資料庫命名編碼規範

版本記錄:

當前版本:

作 者:

完成日期:

籤 收 人:

檔案狀態:

[ ] 草稿

[√] 正式發布

[ ] 正在修改

簽收日期:

1、 編寫目的

使用統一的命名和編碼規範,使資料庫命名及編碼風格標準化,以便於閱讀、理解和

繼承。2、 適用範圍

本規範適用於公司範圍內所有以oracle作為後台資料庫的應用系統和專案開發工作。

3、 物件命名規範

3.1 資料庫和sid

資料庫名定義為系統名+模組名

? 全域性資料庫名和例程sid 名要求一致

? 因sid 名只能包含字元和數字,所以全域性資料庫名和sid 名中不能含有「_」等字元

3.2 表相關

3.2.1 表空間

? 面向使用者的專用資料表空間以使用者名稱+_+data命名 ,如aud 使用者專用資料表空間可命

名為aud_data

? 面向使用者的專用索引表空間以使用者名稱+_+idx命名

第2/9頁

? 面向使用者的專用臨時表空間以使用者名稱+_+tmp命名

? 面向使用者的專用回滾段表空間以使用者名稱+_+rbs 命名

? 面向應用的表空間以應用名+_data/應用名+_idx/應用名+_tmp/應用名+_rbs 命名

? lob 段資料專用表空間以其資料表空間+_+lobs 命名,如上例中資料表空間為

aud_data,則lob 段表空間可命名為aud_data_lobs

3.2.2 表空間檔案

表空間檔案命名以表空間名+兩位數序號(序號從01開始)組成,如aud_data01 等

3.2.3 表

表命名要遵循以下原則:

? 一般表採用「系統名+t_+模組名+_+表義名」 格式構成

? 若資料庫中只含有單個模組,命名可採用「系統名+t_+表義名」格式構成

? 模組名或表義名均以其漢語拼音的首字元命名,表義名中漢語拼音均採用小寫,且

字元間不加分割符;

? 表別名命名規則:取表義名的前3 個字元加最後乙個字元。如果存在衝突,適當增

加字元(如取表義名的前4 個字元加最後乙個字元等)

? 臨時表採用「系統名+t_tmp_+表義名」 格式構成

? 表的命名如

dft_gy_cbap:系統名(電費 df)+t_+模組名(高壓 gy)+_+表義名(抄表安排 cbap)

dft_cbbj: 系統名(電費 df)+t_+表義名(抄表標記 cbbj)

dft_tmp_hj: 系統名(電費 df)+tmp+表義名(合計hj)(此處為臨時表)

? 關聯表命名為re_表a_表b,re 是relative的縮寫,表a 和表b均採用其表義名或

縮寫形式。

3.2.4 屬性(列或字段)

屬性命名遵循以下原則:

? 採用有意義的列名,為實際含義的漢語拼音的首字元,且字元間不加任何分割符

? 屬性名前不要加表名等作為字首

? 屬性後不加任何型別標識作為字尾

? 不要使用「id」作為列名

? 關聯字段命名以 「cd+_+關聯表的表義名(或縮寫)+_+欄位名」進行

第3/9頁

3.2.5 主鍵

? 任何表都必須定義主鍵

? 表主鍵命名為:「pk+_+表名(或縮寫)+_+主鍵標識」

如「pk_yhxx_idkh」等

3.2.6 外來鍵

表外來鍵命名為: 「fk+_+表名(或縮寫)+_主表名(或縮寫)+_+主鍵標識」

如「fk_yhlx_yhxx_sfzh」等

3.2.7 check約束

check 約束命名為: 「chk+_+check約束的列名(或縮寫)」

3.2.8 unique約束

unique 約束命名為: 「unq+_+unique約束的列名(或縮寫)」

3.2.9 索引

索引的命名為:「表名(或縮寫)+_+列名+_idx」。

其中多單詞組成的屬性列列名取前幾個單詞首字元再加末單詞首字元組成

如yd_kh 表khid 上的index: yd_kh_khid_idx

3.2.10 觸發器

? after型觸發器

系統名+tr_+《表名》_+ col2

group by col1, col2

order by col1;

? 關鍵字用大寫,列名和表名採用小寫

? 語句中嵌入逗號時,在逗號後面加一空格,當逗號是最後乙個字元時,把它放在本行

? 當語句的同一部分要延續到下一行時,按下列格式排列:

select col1, col2, col3, col4, col5, col6,

col7, col8, col9, col10

? 將語句中where 和and 部分格式化,書寫布局類似於

where

andand

? 當語句中出現括號時,括號的兩邊不留空格

? 在sql 語句使用運算子時,操作兩邊應各留乙個空格,如

where x = y

and a = b

and c = d

4.3.3 insert語句

insert into 《要插入的表名》

(《列1>, 《列2>, .., 《列n-1>, 《列n>)

values (《列1值》, 《列2值》, .., 《列n-1值》, 《列n值》)

4.3.4 update語句

update 《要更新的表名》

set 《要更新的列》 = 《列值》

4.3.5 delete語句

delete from table1

where col1 = '???'

第8/9頁

4.4 條件執行語句(if)編寫規範

條件執行語句if…else 按以下格式編寫

if 《條件表示式》

then

《一條或多條語句》

[else (或elsif《條件表示式》)

then

《一條或多條語句》

end if;

注:(1) 在if…then和else(或elsif)及else…then和end if間可包含一條或多條pl/sql

語句,而不需要加begin 和end

(2) if…else…endif 語句可以巢狀

(3) 注意elsif的寫法

4.5 迴圈語句編寫規範

4.5.1 簡單迴圈語句

loop

《零條或多條語句》

exit when 《條件表示式》

《零條或多條語句》

end loop;

4.5.2 for迴圈語句

for 變數 in [變數取值範圍]

loop

《一條或多條語句》

end loop;

4.5.3 while迴圈語句

while 《條件表示式》

loop

《一條或多條語句》

end loop;

4.6 函式文字(儲存過程、函式和包等)

第9/9頁

? 對於儲存過程、函式等程式塊都要有異常處理部分,在異常部分的最後都要設定others

異常情態處理器,以提高程式的自檢能力,格式如下:

begin

…exception

when excep—name1 then

…when excep—name2 then

…when others then

…end;

? 對於子程式、觸發器、包等帶名的程式塊,要使用結束標識,如

create or replace procedure ***sp_*** is

…begin

…end ***sp_***;/* 此處的過程名***sp_***是可選的,規範要求寫上,與塊開始的create相對應 */

Oracle資料庫命名編碼規範

oracle資料庫命名編碼規範 版本記錄 當前版本 作 者 完成日期 籤 收 人 檔案狀態 草稿 正式發布 正在修改 簽收日期 1 編寫目的 使用統一的命名和編碼規範,使資料庫命名及編碼風格標準化,以便於閱讀 理解和 繼承。2 適用範圍 本規範適用於公司範圍內所有以oracle作為後台資料庫的應用系...

ORACLE資料庫命名規範

oracle資料庫命名規範 1 目的 規範資料庫各種物件的命名規則。2 資料庫命名原則 2.1 資料檔案 如果資料庫採用檔案系統,而不是裸裝置,約定下列命名規則 1 資料檔案以表空間名為開始,以.dbf為結尾,全部採用小寫英文本母加數字命名。如該表空間有多個資料檔案,則從第2個資料檔案開始,在表空間...

Oracle資料庫命名規範

u 資料庫的 schema,資料庫物件如表 字段 索引 序列 儲存過程等的命名約定 u命名使用富有意義的大寫英文詞彙,盡量避免使用縮寫,多個單詞組成的,中間以下劃線分割 u各表之間相關字段列名 字段型別盡量一致 u數值型別不使用 varchar2,日期型別只用 date,不允許使用 varchar2...