久久r热视频,国产午夜精品一区二区三区视频,亚洲精品自拍偷拍,欧美日韩精品二区

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

解讀ORACLE數(shù)據(jù)庫(kù)的統(tǒng)一命名與編碼規(guī)范

瀏覽:6日期:2023-11-23 16:32:53

1、編寫(xiě)目的

使用統(tǒng)一的命名和編碼規(guī)范,使數(shù)據(jù)庫(kù)命名及編碼風(fēng)格標(biāo)準(zhǔn)化,以便于閱讀、理解和繼承。

2、適用范圍

本規(guī)范適用于公司范圍內(nèi)所有以O(shè)RACLE作為后臺(tái)數(shù)據(jù)庫(kù)的應(yīng)用系統(tǒng)和項(xiàng)目開(kāi)發(fā)工作。

3、對(duì)象命名規(guī)范

3.1 數(shù)據(jù)庫(kù)和SID

數(shù)據(jù)庫(kù)名定義為系統(tǒng)名+模塊名

★ 全局?jǐn)?shù)據(jù)庫(kù)名和例程SID 名要求一致

★ 因SID 名只能包含字符和數(shù)字,所以全局?jǐn)?shù)據(jù)庫(kù)名和SID 名中不能含有“_”等字符

3.2 表相關(guān)

3.2.1 表空間

★ 面向用戶(hù)的專(zhuān)用數(shù)據(jù)表空間以用戶(hù)名+_+data命名 ,如Aud 用戶(hù)專(zhuān)用數(shù)據(jù)表空間可命名為Aud_data

★ 面向用戶(hù)的專(zhuān)用索引表空間以用戶(hù)名+_+idx命名

★ 面向用戶(hù)的專(zhuān)用臨時(shí)表空間以用戶(hù)名+_+tmp命名

★ 面向用戶(hù)的專(zhuān)用回滾段表空間以用戶(hù)名+_+rbs 命名

★ 面向應(yīng)用的表空間以應(yīng)用名+_data/應(yīng)用名+_idx/應(yīng)用名+_tmp/應(yīng)用名+_rbs 命名

★ LOB 段數(shù)據(jù)專(zhuān)用表空間以其數(shù)據(jù)表空間+_+lobs 命名,如上例中數(shù)據(jù)表空間為Aud_data,則LOB 段表空間可命名為Aud_data_lobs

3.2.2 表空間文件

表空間文件命名以表空間名+兩位數(shù)序號(hào)(序號(hào)從01開(kāi)始)組成,如Aud_data01 等

3.2.3 表

表命名要遵循以下原則:

★ 一般表采用“系統(tǒng)名+t_+模塊名+_+表義名” 格式構(gòu)成

★ 若數(shù)據(jù)庫(kù)中只含有單個(gè)模塊,命名可采用“系統(tǒng)名+t_+表義名”格式構(gòu)成

★ 模塊名或表義名均以其漢語(yǔ)拼音的首字符命名,表義名中漢語(yǔ)拼音均采用小寫(xiě),且字符間不加分割符;

★ 表別名命名規(guī)則:取表義名的前3 個(gè)字符加最后一個(gè)字符。如果存在沖突,適當(dāng)增加字符(如取表義名的前4 個(gè)字符加最后一個(gè)字符等)

★ 臨時(shí)表采用“系統(tǒng)名+t_tmp_+表義名” 格式構(gòu)成

★ 表的命名如

dft_gy_cbap:系統(tǒng)名(電費(fèi) df)+t_+模塊名(高壓 gy)+_+表義名(抄表安排 cbap) dft_cbbj: 系統(tǒng)名(電費(fèi) df)+t_+表義名(抄表標(biāo)記 cbbj) dft_tmp_hj: 系統(tǒng)名(電費(fèi) df)+tmp+表義名(合計(jì)hj)(此處為臨時(shí)表)

★ 關(guān)聯(lián)表命名為Re_表A_表B,Re 是Relative的縮寫(xiě),表A 和表B均采用其表義名或縮寫(xiě)形式。

3.2.4 屬性(列或字段)

屬性命名遵循以下原則:

★ 采用有意義的列名,為實(shí)際含義的漢語(yǔ)拼音的首字符,且字符間不加任何分割符

★ 屬性名前不要加表名等作為前綴

★ 屬性后不加任何類(lèi)型標(biāo)識(shí)作為后綴

★ 不要使用“ID”作為列名

★ 關(guān)聯(lián)字段命名以 “cd+_+關(guān)聯(lián)表的表義名(或縮寫(xiě))+_+字段名”進(jìn)行

3.2.5 主鍵

★ 任何表都必須定義主鍵

★ 表主鍵命名為:“pk+_+表名(或縮寫(xiě))+_+主鍵標(biāo)識(shí)”如“pk_YHXX_IDKH”等

3.2.6 外鍵

表外鍵命名為: “fk+_+表名(或縮寫(xiě))+_主表名(或縮寫(xiě))+_+主鍵標(biāo)識(shí)”如“fk_YHLX_YHXX_SFZH”等

3.2.7 CHECK約束

CHECK 約束命名為: “chk+_+CHECK約束的列名(或縮寫(xiě))”

3.2.8 UNIQUE約束

UNIQUE 約束命名為: “unq+_+UNIQUE約束的列名(或縮寫(xiě))”

3.2.9 索引

索引的命名為:“表名(或縮寫(xiě))+_+列名+_idx”。其中多單詞組成的屬性列列名取前幾個(gè)單詞首字符再加末單詞首字符組成如yd_kh 表khid 上的index: yd_kh_khid_idx

3.2.10 觸發(fā)器

★ AFTER型觸發(fā)器

系統(tǒng)名+tr_+<表名>_+ +[_row]

★ BEFORE型觸發(fā)器

系統(tǒng)名+tr_+<表名>_+bef_+[_row]

★ INSTEAD OF型觸發(fā)器

系統(tǒng)名+ti_+<表名>+_++[_row]

★ 各種類(lèi)型的觸發(fā)器中

i,u,d 分別表示insert、update 和delete行級(jí)觸發(fā)器,后加_row 標(biāo)識(shí),語(yǔ)句級(jí)觸發(fā)器不加,如 yddftr_CSH_i_row

3.2.11 簇

簇以簇中要存儲(chǔ)的各個(gè)表(或表別名)及表間加and的組成 命名,即表“A+And+表B…”,如存儲(chǔ)GR(工人)和GRJN(工人技能)表的簇命名為GRAndGRJN

3.3 視圖

視圖命名以系統(tǒng)名v_+模塊名作為前綴,其他命名規(guī)則和表的命名類(lèi)似

3.4 序列

序列命名以seq_+含義名組成

3.5 同義詞

同義詞命名與其基礎(chǔ)對(duì)象的名稱(chēng)一致,但要去除其用戶(hù)前綴或含有遠(yuǎn)程數(shù)據(jù)庫(kù)鏈接的后綴

3.6 存儲(chǔ)對(duì)象相關(guān)

3.6.1 存儲(chǔ)過(guò)程

存儲(chǔ)過(guò)程命名由“系統(tǒng)名+sp+_+存儲(chǔ)過(guò)程標(biāo)識(shí)(縮寫(xiě))”組成存儲(chǔ)過(guò)程標(biāo)識(shí)要以實(shí)際含義的漢語(yǔ)拼音的首字符構(gòu)成,并用下劃線(xiàn)分割各個(gè)組成部分。如增加代理商的帳戶(hù)的存儲(chǔ)過(guò)程為“sfsp_ZJDLSZH”。

3.6.2 函數(shù)

函數(shù)命名由“系統(tǒng)名+f+_+函數(shù)標(biāo)識(shí)”組成

3.6.3 包

包命名由“系統(tǒng)名+pkg+_+包標(biāo)識(shí)”組成

3.6.4 函數(shù)文本中的變量采用下列格式命名:

★ 參數(shù)變量命名采用“i (o或io)+_+名稱(chēng)”形式,前綴i 或o 表輸入還是輸出參數(shù)

★ 過(guò)程變量命名采用“l(fā)+_+名稱(chēng)”形式

★ 全局包變量命名采用“g+_+名稱(chēng)”形式

★ 游標(biāo)變量命名采用“名稱(chēng)+_+cur”形式

★ 常量型變量命名采用“c+_+名稱(chēng)”形式

★ 變量名采用小寫(xiě),若屬于詞組形式,用下劃線(xiàn)分隔每個(gè)單詞

★ 變量用來(lái)存放表中的列或行數(shù)據(jù)值時(shí),使用%TYPE、%ROWTYPE 方式聲明變量,使變量聲明的類(lèi)型與表中的保持同步,隨表的變化而變化

3.7 用戶(hù)及角色

★ 用戶(hù)命名由“系統(tǒng)名稱(chēng)+_+user+_+名詞(或縮寫(xiě))或名詞短語(yǔ)(或縮寫(xiě))”組成

★ 角色命名由“系統(tǒng)名稱(chēng)+_+role+_+名詞(或縮寫(xiě))或名詞短語(yǔ)(或縮寫(xiě))”組成

3.8 數(shù)據(jù)庫(kù)鏈接

★ 數(shù)據(jù)庫(kù)鏈接命名由“遠(yuǎn)程服務(wù)器名+_+數(shù)據(jù)庫(kù)名+_+link”組成

★ 若遠(yuǎn)程服務(wù)器名和數(shù)據(jù)庫(kù)名一致,上式“_+數(shù)據(jù)庫(kù)名”部分省去

3.9 命名中的其它注意事項(xiàng)

★ 命名都不得超過(guò)30個(gè)字符。

★ 不要在對(duì)象名的字符之間留空格

★ 小心保留詞,要保證你的命名沒(méi)有和保留詞、數(shù)據(jù)庫(kù)系統(tǒng)或者常用訪(fǎng)問(wèn)方法沖突

4、 編碼規(guī)范

4.1 一般性注釋

4.1.1 注釋盡可能簡(jiǎn)潔、詳細(xì)而全面

4.1.2 創(chuàng)建每一數(shù)據(jù)庫(kù)對(duì)象時(shí)都要加上COMMENT ON注釋?zhuān)哉f(shuō)明該對(duì)象的功能和用途;建表時(shí),對(duì)某些數(shù)據(jù)列也要加上COMMENT ON注釋?zhuān)哉f(shuō)明該列和/或列取值的含義。如:XX 表中有CZZT列屬性為NUMBER(10, 0)可加COMMENT ON 注釋如下COMMENT ON COLUMN XX.CZZT IS '0 = 正常, 1 = 等待, 2 = 超時(shí), 3 = 登出'

4.1.3 注釋語(yǔ)法包含兩種情況:?jiǎn)涡凶⑨尅⒍嘈凶⑨?

單行注釋?zhuān)鹤⑨屒坝袃蓚€(gè)連字符(--),一般對(duì)變量、條件子句可以采用該類(lèi)注釋。

多行注釋?zhuān)悍?hào)/*和*/之間的內(nèi)容為注釋內(nèi)容。對(duì)某項(xiàng)完整的操作建議使用該類(lèi)注釋。

4.2 函數(shù)文本注釋

4.2.1 在每一個(gè)塊和過(guò)程(存儲(chǔ)過(guò)程、函數(shù)、包、觸發(fā)器、視圖等)的開(kāi)頭放置注釋

/************************************************************************ *name : --函數(shù)名 *function : --函數(shù)功能 *input : --輸入?yún)?shù) *output : --輸出參數(shù) *author : --作者 *CreateDate : --創(chuàng)建時(shí)間 *UpdateDate : --函數(shù)更改信息(包括作者、時(shí)間、更改內(nèi)容等) *************************************************************************/ CREATE [OR REPLACE] PROCEDURE dfsp_xxx …

4.2.2 傳入?yún)?shù)的含義應(yīng)該有所說(shuō)明。如果取值范圍確定,也應(yīng)該一并說(shuō)明。取值有特定含義的變量(如boolean類(lèi)型變量),應(yīng)給出每個(gè)值的含義。

4.2.3 在每一個(gè)變量聲明的旁邊添加注釋。說(shuō)明該變量要用作什么

通常,簡(jiǎn)單使用單行注釋就行了,例如l_sfzh CHAR(11) --身份證號(hào)碼

4.2.4 在塊的每個(gè)主要部分之前添加注釋

在塊的每個(gè)主要部分之前增加注釋?zhuān)忉屜隆M語(yǔ)句目的,最好是說(shuō)明該段語(yǔ)句及算法的目的以及要得到的結(jié)果,但不要對(duì)其細(xì)節(jié)進(jìn)行過(guò)多的描述

4.2.5 在塊和過(guò)程的開(kāi)頭注釋中還可以增加要訪(fǎng)問(wèn)的數(shù)據(jù)庫(kù)等信息

4.3 常用SQL 語(yǔ)句的編寫(xiě)規(guī)范

4.3.1 CREATE語(yǔ)句

CREATE TABLE dft_dksz(YHBS VARCHAR2(20) NOT NULL, ZHGX DATE, DKKHD VARCHAR2(24), CONSTRAINT pk_dksz_yhbs PRIMARY KEY (YHBS) )

4.3.2 SELECT語(yǔ)句

查詢(xún)語(yǔ)句采用以下原則編寫(xiě)(可最大化重用共享池中的SQL 語(yǔ)句,提高應(yīng)用程序性能):

★ 將SELECT 語(yǔ)句分為5部分:

(1) 由SELECT 開(kāi)頭,后跟一個(gè)顯示查詢(xún)結(jié)果的列表;

(2) 由FROM 開(kāi)頭,后跟一個(gè)或多個(gè)獲取數(shù)據(jù)所涉及的表;

(3) 由WHERE 開(kāi)頭,后跟一個(gè)或多個(gè)確定所需值的條件;

(4) 由GROUP BY開(kāi)頭,后跟一個(gè)或多個(gè)表列名,通過(guò)這些列以對(duì)查詢(xún)結(jié)果進(jìn)行匯總;

(5) 由ORDER BY開(kāi)頭,后跟一個(gè)或多個(gè)表列名,通過(guò)這些列以對(duì)查詢(xún)結(jié)果進(jìn)行排序。

★ 每個(gè)部分分行編寫(xiě),將每一行的第一個(gè)關(guān)鍵字與第一行的SELECT尾部對(duì)齊,如

SELECT col1, col2, col3 FROM table1 WHERE col1 > col2 GROUP BY col1, col2 ORDER BY col1;

★ 關(guān)鍵字用大寫(xiě),列名和表名采用小寫(xiě)

★ 語(yǔ)句中嵌入逗號(hào)時(shí),在逗號(hào)后面加一空格,當(dāng)逗號(hào)是最后一個(gè)字符時(shí),把它放在本行

★ 當(dāng)語(yǔ)句的同一部分要延續(xù)到下一行時(shí),按下列格式排列:

SELECT col1, col2, col3, col4, col5, col6, col7, col8, col9, col10

★ 將語(yǔ)句中WHERE 和AND 部分格式化,書(shū)寫(xiě)布局類(lèi)似于

WHERE AND AND

★ 當(dāng)語(yǔ)句中出現(xiàn)括號(hào)時(shí),括號(hào)的兩邊不留空格

★ 在SQL 語(yǔ)句使用運(yùn)算符時(shí),操作兩邊應(yīng)各留一個(gè)空格,如

WHERE X = Y AND A = B AND C = D

4.3.3 INSERT語(yǔ)句

INSERT INTO <要插入的表名> (<列1>, <列2>, .., <列n-1>, <列n>) VALUES (<列1值>, <列2值>, .., <列n-1值>, <列n值>)

4.3.4 UPDATE語(yǔ)句

UPDATE <要更新的表名> SET <要更新的列> = <列值>

4.3.5 DELETE語(yǔ)句

DELETE FROM table1 WHERE col1 = '???'

4.4 條件執(zhí)行語(yǔ)句(IF)編寫(xiě)規(guī)范

條件執(zhí)行語(yǔ)句IF…ELSE 按以下格式編寫(xiě)

IF <條件表達(dá)式> THEN <一條或多條語(yǔ)句> [ELSE (或ELSIF<條件表達(dá)式>) THEN <一條或多條語(yǔ)句> END IF;

注:

(1) 在IF…THEN和ELSE(或ELSIF)及ELSE…THEN和END IF間可包含一條或多條PL/SQL

語(yǔ)句,而不需要加BEGIN 和END

(2) IF…ELSE…ENDIF 語(yǔ)句可以嵌套

(3) 注意ELSIF的寫(xiě)法

4.5 循環(huán)語(yǔ)句編寫(xiě)規(guī)范

4.5.1 簡(jiǎn)單循環(huán)語(yǔ)句

LOOP <零條或多條語(yǔ)句> EXIT WHEN <條件表達(dá)式> <零條或多條語(yǔ)句> END LOOP;

4.5.2 FOR循環(huán)語(yǔ)句

FOR 變量 IN [變量取值范圍]

LOOP <一條或多條語(yǔ)句> END LOOP;

4.5.3 WHILE循環(huán)語(yǔ)句

WHILE <條件表達(dá)式>

LOOP <一條或多條語(yǔ)句> END LOOP;

4.6 函數(shù)文本(存儲(chǔ)過(guò)程、函數(shù)和包等)

★ 對(duì)于存儲(chǔ)過(guò)程、函數(shù)等程序塊都要有異常處理部分,在異常部分的最后都要設(shè)置OTHERS異常情態(tài)處理器,以提高程序的自檢能力,格式如下:

BEGIN … EXCEPTION WHEN excep—name1 THEN … WHEN excep—name2 THEN … WHEN OTHERS THEN … END;

★ 對(duì)于子程序、觸發(fā)器、包等帶名的程序塊,要使用結(jié)束標(biāo)識(shí),如

CREATE OR REPLACE PROCEDURE XXXsp_XXX IS … BEGIN … END XXXsp_XXX;/* 此處的過(guò)程名XXXsp_XXX是可選的,規(guī)范要求寫(xiě)上,與塊開(kāi)始的CREATE相對(duì)應(yīng) */

主站蜘蛛池模板: 乃东县| 翁牛特旗| 托克逊县| 攀枝花市| 蛟河市| 隆子县| 乌审旗| 西城区| 隆化县| 广河县| 普格县| 治县。| 武川县| 称多县| 平武县| 大理市| 宜丰县| 邵阳市| 莆田市| 石阡县| 彩票| 修武县| 万全县| 靖江市| 绿春县| 山阴县| 连云港市| 宁国市| 开封市| 自治县| 黑山县| 嘉兴市| 慈溪市| 南宫市| 紫阳县| 东方市| 九江市| 山阴县| 隆安县| 木兰县| 清涧县|