資源描述:
《數(shù)據(jù)庫(kù)編碼規(guī)范[教學(xué)]》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫(kù)。
1、命名和注釋規(guī)范1?數(shù)據(jù)庫(kù)涉及字符規(guī)范釆用26個(gè)英文字母(區(qū)分大小寫(xiě))和0-9這
2、?個(gè)自然數(shù),加上下劃線勻成,共63個(gè)字符。不能出現(xiàn)其他字符(注釋除外)。2?數(shù)據(jù)庫(kù)對(duì)象命名規(guī)范數(shù)據(jù)庫(kù)對(duì)象包括表、視圖(查詢)、存儲(chǔ)過(guò)程(參數(shù)查詢)、函數(shù)、約束。對(duì)象名字由前綴和實(shí)際名字組成,長(zhǎng)度不超過(guò)30.在SYMSEASE下,對(duì)象名區(qū)分大小寫(xiě),統(tǒng)一使用大寫(xiě),其他數(shù)據(jù)庫(kù)按照本規(guī)范。前綴:使用小寫(xiě)字母字典表d_視圖view存儲(chǔ)過(guò)程proc函數(shù)func實(shí)際名字:實(shí)際名字盡量描述實(shí)體的內(nèi)容,由單詞或單詞組合,每個(gè)單詞的首字母大寫(xiě),其他字母小寫(xiě),
3、不以數(shù)字和》頭。如視圖Use^Jst存儲(chǔ)過(guò)程Usecj)elete因此,合法的對(duì)象名字類似如下。視圖viewJ^fessage_List存儲(chǔ)過(guò)程pro^_Message_Jkdd3?視圖命名規(guī)范我們約定,字段由前綴和實(shí)際名字組成,屮間用下劃線連接。前綴:使用小寫(xiě)字母view表示視圖。因此,合法的視圖名類似如FoviewUserviewUserinfo4?存儲(chǔ)過(guò)程命名規(guī)范我們約定,過(guò)程由前綴和實(shí)際名字加操作名字組成,屮間用下劃線連接。前綴:使用小寫(xiě)字母proa表示存儲(chǔ)過(guò)程。操作名字:Insert
4、Delelte
5、Upd
6、ate
7、Caculate
8、Confirm
9、Init例如:procUserInsert2?存儲(chǔ)過(guò)程設(shè)計(jì)注釋規(guī)范注釋大致格式如下:CREATEORREPLACEPROCEDUREprocxxxxxxxx0IS或AS)★存儲(chǔ)過(guò)程名procxxxxxxxx*作者Yezi葉子)*日期2004-12-17*版本L0*描述保存用戶資料*入口參數(shù)*出口參數(shù)*具體流程變更過(guò)程及變更內(nèi)容描述:6.sql語(yǔ)句規(guī)范所有sql關(guān)鍵詞全部大寫(xiě),比如SELRTI;UFWEFKMORDERBY等。7?索引命名規(guī)范索引名由前綴和實(shí)際名字組成,屮間用下
10、劃線連接。普通索引前綴:使用小寫(xiě)字母id&位圖索引前綴:idaap_&臨時(shí)表、臨時(shí)索引命名規(guī)范臨時(shí)表用表空間:tablespace_jiameCREATETABLEtab1enameT^BLESBACEtablespace_nameAS(SELBZTFFCMtablename);CREATETABLEtablename(colurnname)TABLESPACEtablespacenametCREATEINDE>indexnameCNTABLE(colimi_jiame)TABLESPACEtablespacenam
11、e;9注釋規(guī)范處理過(guò)程注釋:在sql語(yǔ)旬的上方說(shuō)明,格式如下:/*注釋*/EXECUTEIMMEDIT“SELECTCOUNT(1)FROMtab1;"變量注釋:在變量后面說(shuō)明變量的川途,格式如F:var_workdateVARCHAR2(10);/*當(dāng)日日期*/過(guò)程規(guī)范1、過(guò)程檢查規(guī)范開(kāi)發(fā)人員在提交存儲(chǔ)過(guò)程前,必須已經(jīng)使用SETSKWPUN(N分析過(guò)查詢計(jì)劃,做過(guò)門(mén)身的查詢優(yōu)化檢查。在Pl/sql卜?用F5檢查sql的執(zhí)行計(jì)劃SQL的使用規(guī)范:如杲游標(biāo)操作的數(shù)據(jù)超過(guò)1就耍盡量避免在游標(biāo)循環(huán)中盡量避免反復(fù)訪問(wèn)同一張或
12、幾張表,尤其是數(shù)據(jù)量較大的表,可以考慮先根據(jù)條件提取數(shù)據(jù)到臨時(shí)表中,然后再做連接。盡量避免使用游標(biāo),因?yàn)橛螛?biāo)的效率較差,萬(wàn)行,那么就應(yīng)該改寫(xiě);如果使用了游標(biāo),再進(jìn)行表連接的操作。應(yīng)該根據(jù)索引順序、范圍大注意陽(yáng)ERE字句寫(xiě)法,必須考慮語(yǔ)句順序,小來(lái)確定條件子句的前后順序,盡可能的讓字段順序與索引順序相一致,范圍從大到小。不要在W4ERE子句屮的“3左邊進(jìn)行函數(shù)、算術(shù)運(yùn)算或其他表達(dá)式運(yùn)算,否則系統(tǒng)將可能無(wú)法正確使用索引。盡量使用exists代替SELECTOOLNT⑴來(lái)判斷是否存在記錄,OOLNT函數(shù)只有在統(tǒng)計(jì)表屮所有行
13、數(shù)吋使用,而且OONT⑴比OTNT&)更有效率。a盡量使用“不要使用“7、注意一些OR子句和LNKN子句z間的替換&注意表之間連接的數(shù)據(jù)類型,避免不同類型數(shù)據(jù)之間的連接。a注意存儲(chǔ)過(guò)程中參數(shù)和數(shù)據(jù)類型的關(guān)系。10.注意ZERl;UPEAIE操作的數(shù)據(jù)量,防止與其他應(yīng)用沖突。如果數(shù)據(jù)量超過(guò)200個(gè)數(shù)據(jù)頁(yè)而(400k),那么系統(tǒng)將會(huì)進(jìn)行鎖升級(jí),頁(yè)級(jí)鎖會(huì)升級(jí)成表級(jí)鎖。索引的使用規(guī)范:1、索引的創(chuàng)建要與應(yīng)用結(jié)合考慮,建議大的OLTP表不耍超過(guò)6個(gè)索引。a盡可能的使用索引字段作為查詢條件,尤其是聚簇索引,必要時(shí)可以通過(guò)INDE
14、Xindeyianie來(lái)強(qiáng)制指定索引3.避免對(duì)大表查詢時(shí)進(jìn)行tablescan必要時(shí)考慮新建索引。4在使用索引字段作為條件吋,如果該索引是聯(lián)合索引,那么必須使用到該索引中的第一個(gè)字段作為條件時(shí)才能保證系統(tǒng)使用該索引,否則該索引將不會(huì)被使用。5要注意索引的維護(hù),周期性重建索引,重新編譯存儲(chǔ)過(guò)程。tempdb的使用規(guī)范:1、避免頻繁創(chuàng)建和刪除臨時(shí)表