ORACLE数据库命名编码规范

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

ORACLE数据库命名编码规范版本记录:当前版本:作者:www.cstl.cn完成日期:签收人:文件状态:[]草稿[√]正式发布[]正在修改签收日期: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_lobs3.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.7CHECK约束CHECK约束命名为:“chk+_+CHECK约束的列名(或缩写)”3.2.8UNIQUE约束UNIQUE约束命名为:“unq+_+UNIQUE约束的列名(或缩写)”3.2.9索引索引的命名为:“表名(或缩写)+_+列名+_idx”。其中多单词组成的属性列列名取前几个单词首字符再加末单词首字符组成如yd_kh表khid上的index:yd_kh_khid_idx3.2.10触发器ØAFTER型触发器系统名+tr_+表名_+i,u,d的任意组合+[_row]ØBEFORE型触发器系统名+tr_+表名_+bef_i,u,d的任意组合+[_row]ØINSTEADOF型触发器系统名+ti_+表名+_+i,u,d的任意组合+[_row]Ø各种类型的触发器中i,u,d分别表示insert、update和delete行级触发器,后加_row标识,语句级触发器不加,如yddftr_CSH_i_row3.2.11簇第4/9页簇以簇中要存储的各个表(或表别名)及表间加and的组成命名,即表“A+And+表B…”,如存储GR(工人)和GRJN(工人技能)表的簇命名为GRAndGRJN3.3视图视图命名以系统名v_+模块名作为前缀,其他命名规则和表的命名类似3.4序列序列命名以seq_+含义名组成3.5同义词同义词命名与其基础对象的名称一致,但要去除其用户前缀或含有远程数据库链接的后缀3.6存储对象相关3.6.1存储过程存储过程命名由“系统名+sp+_+存储过程标识(缩写)”组成存储过程标识要以实际含义的汉语拼音的首字符构成,并用下划线分割各个组成部分。如增加代理商的帐户的存储过程为“sfsp_ZJDLSZH”。3.6.2函数函数命名由“系统名+f+_+函数标识”组成3.6.3包包命名由“系统名+pkg+_+包标识”组成3.6.4函数文本中的变量采用下列格式命名:Ø参数变量命名采用“i(o或io)+_+名称”形式,前缀i或o表输入还是输出参数Ø过程变量命名采用“l+_+名称”形式Ø全局包变量命名采用“g+_+名称”形式Ø游标变量命名采用“名称+_+cur”形式Ø常量型变量命名采用“c+_+名称”形式Ø变量名采用小写,若属于词组形式,用下划线分隔每个单词Ø变量用来存放表中的列或行数据值时,使用%TYPE、%ROWTYPE方式声明变量,使变量声第5/9页明的类型与表中的保持同步,随表的变化而变化3.7用户及角色Ø用户命名由“系统名称+_+user+_+名词(或缩写)或名词短语(或缩写)”组成Ø角色命名由“系统名称+_+role+_+名词(或缩写)或名词短语(或缩写)”组成3.8数据库链接Ø数据库链接命名由“远程服务器名+_+数据库名+_+link”组成Ø若远程服务器名和数据库名一致,上式“_+数据库名”部分省去3.9命名中的其它注意事项Ø命名都不得超过30个字符。Ø不要在对象名的字符之间留空格Ø小心保留词,要保证你的命名没有和保留词、数据库系统或者常用访问方法冲突4、编码规范4.1一般性注释4.1.1注释尽可能简洁、详细而全面4.1.2创建每一数据库对象时都要加上COMMENTON注释,以说明该对象的功能和用途;建表时,对某些数据列也要加上COMMENTON注释,以说明该列和/或列取值的含义。如:XX表中有CZZT列属性为NUMBER(10,0)可加COMMENTON注释如下COMMENTONCOLUMNXX.CZZTIS'0=正常,1=等待,2=超时,3=登出'4.1.3注释语法包含两种情况:单行注释、多行注释单行注释:注释前有两个连字符(--),一般对变量、条件子句可以采用该类注释。多行注释:符号/*和*/之间的内容为注释内容。对某项完整的操作建议使用该类注释。4.2函数文本注释4.2.1在每一个块和过程(存储过程、函数、包、触发器、视图等)的开头放置注释/************************************************************************第6/9页*name:--函数名*function:--函数功能*input:--输入参数*output:--输出参数*author:--作者*CreateDate:--创建时间*UpdateDate:--函数更改信息(包括作者、时间、更改内容等)*************************************************************************/CREATE[ORREPLACE]PROCEDUREdfsp_xxx…4.2.2传入参数的含义应该有所说明。如果取值范围确定,也应该一并说明。取值有特定含义的变量(如boolean类型变量),应给出每个值的含义。4.2.3在每一个变量声明的旁边添加注释。说明该变量要用作什么通常,简单使用单行注释就行了,例如l_sfzhCHAR(11)--身份证号码4.2.4在块的每个主要部分之前添加注释在块的每个主要部分之前增加注释,解释下—组语句目的,最好是说明该段语句及算法的目的以及要得到的结果,但不要对其细节进行过多的描述4.2.5在块和过程的开头注释中还可以增加要访问的数据库等信息4.3常用SQL语句的编写规范4.3.1CREATE语句CREATETABLEdft_dksz(YHBSVARCHAR2(20)NOTNULL,ZHGXDATE,DKKHDVARCHAR2(24),CONSTRAINTpk_dksz_yhbsPRIMARYKEY(YHBS))4.3.2SELECT语句查询语句采用以下原则编写(可最大化重用共享池中的SQL语句,提高应用程序性能):Ø将SELECT语句分为5部分:(1)由SELECT开头,后跟一个显示查询结果的列表;第7/9页(2)由FROM开头,后跟一个或多个获取数据所涉及的表;(3)由WHERE开头,后跟一个或多个确定所需值的条件;(4)由GROUPBY开头,后跟一个或多个表列名,通过这些列以对查询结果进行汇总;(5)由ORDERBY开头,后跟一个或多个表列名,通过这些列以对查询结果进行排序。Ø每个部分分行编写,将每一行的第一个关键字与第一行的SELECT尾部对齐,如SELECTcol1,col2,col3FROMtable1WHEREcol1col2GROUPBYcol1,col2ORDERBYcol1;Ø关键字用大写,列名和表名采用小写Ø语句中嵌入逗号时,在逗号后面加一空格,当逗号是最后一个字符时,把它放在本行Ø当语句的同一部分要延续到下一行时,按下列格式排列:SELECTcol1,col2,col3,col4,col5,col6,col7,col8,col9,col10Ø将语句中WHERE和AND部分格式化,书写布局类似于WHEREANDANDØ当语句中出现括号时,括号的两边不留空格Ø在SQL语句使用运算符时,操作两边应各留一个空格,如WHEREX=YANDA=BANDC=D4.3.3INSERT语句INSERTINTO要插入的表名(列1,列2,..,列n-1,列n)VALUES(列1值,列2值,..,列n-1值,列n值)4.3.4UPDATE语句UPDATE要更新的表名SET要更新的列=列值4.3.5DELETE语句DELETEFROMtable1WHEREcol1='???'第8/9页4.4条件执行语句(IF)编写规范条件执行语句IF…ELSE按以下格式编写IF条件表达式THEN一条或多条语句[ELSE(或ELSIF条件表达式)THEN一条或多条语句ENDIF;注:(1)在IF…THEN和ELSE(或ELSIF)及ELSE…THEN和ENDIF间可包含一条或多条PL/SQL语句,而不需要加BEGIN和END(2)IF…ELSE…ENDIF语句可以嵌套(3)注意ELSIF的写法4.5循环语句编写规范4.5.1简单循环语句LOOP零条或多条语句EXITWHEN条件表达式零条或多条语句ENDLOOP;4.5.2FOR循环语句FOR变量IN[变量取值范围]LOOP一条或多条语句ENDLOOP;4.5.3WHILE循环语句WHILE条件表达式LOOP一条或多条语句ENDLOOP;4.6函数文本(存储过程、函数和包等)第9/9页Ø对于存储过程、函数等程序块都要有异常处理部分,在异常部分的最后都要设置OTHERS异常情态处理器,以提高程序的自检能力,格式如下:BEGIN…EXCEPTIONWHENexcep—name1THEN…WHENexcep—name2THEN…WHENOTHERSTHEN…END;Ø对于子程序、触发器、包等带名的程序块,要使用结束标识,如CREATEORREPLACEPROCEDUREXXXsp_XXXIS…BEGIN…ENDXXXsp_XXX;/*此处的过程名XXXsp_XXX是可选的,规范要求写上,与块开始的CREATE相对应*

1 / 9
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功