db2命名开发规范.docx
- 文档编号:11337469
- 上传时间:2023-02-28
- 格式:DOCX
- 页数:14
- 大小:23.26KB
db2命名开发规范.docx
《db2命名开发规范.docx》由会员分享,可在线阅读,更多相关《db2命名开发规范.docx(14页珍藏版)》请在冰豆网上搜索。
db2命名开发规范
ForDB2
DBDevelopment-Naming
Specification
2012/01/01
Author(作者):
JetLee
Date:
Checkedby(审核):
Date:
ChangeHistory(变更历史)
Date
Version
Author
Descriptionofchange
2012-6-12
JetLee
新起草
2012-6-15
JetLee
文档拆分成两个
Content
1Introduction(引言)
1.1Purpose(规范的目的)
GuidethedeveloperhowtonametheDBobjects(Tables,views,storedprocedure,etc)
(指引开发人员如何去规范对DB中对象进行命名);
1.2Readers(阅读的人员)
Developer,themembersofthereviewboard,DevelopmentManager;
(开发人员;Reviewboard成员;开发经理);
1.3Glossary(术语)
TableNormalform:
Refertheattachment;
表的范式:
参考附件;
IsolationLevel:
Refertheattachment;
隔离级:
参考附件;
1.4Reference(参考资料)
None
2UnifiedcriterionforNaming(统一的命名规范)
2.1OverallPrinciple(整体性原则)
Thecharactersrangeforallnames:
A-Z,a-z,0-9,_(Underscore).Notallowedtouseothercharactersasthename.(所有名称的字符范围为:
A-Z,a-z,0-9和_(下划线)。
不允许使用其他字符作为名称).
PleaseuseEnglishwordsorEnglishphrases(includingabbreviations)asname,butcannotbeusedasthenameofmeaninglesscharactersorChinesePinyin.(采用英文单词或英文短语(包括缩写)作为名称,不能使用无意义的字符或汉语拼音。
)
Nameshouldbeclarity,theabilitytoaccuratelyexpressthemeaningofthings,andreadable.Pleasefollowtheprincipleof"seetoknowthemeaning".(名称应该清晰明了,能够准确表达事物的含义,最好可读,遵循“见名知意”的原则。
)
Databaseobjectsneedtoaddthenecessarycomments,suchasTables,procedures,functions,etc.Expressthecontentsofthecommentsinyourmotherlanguage.(数据库对象需要添加必要的注释,如表、存储过程、函数等,注释使用母语;)
AccordingtothecharacteroftheDB2namingmanagement,weallusetheuppercaseoftheletterincreatethefollowingobjects:
Procedure,table,fields,vieworfunctions.(根据DB2系统本身对对象名称管理特点,我们在创建表、视图,函数,过程,字段过程中全部使用大写。
)
Sample:
CREATEFUNCTION()
RETURNSINT
AS
BEGIN
RETURN())
END
2.2Databasealias(数据别名)
Justfollowtheprincipleof"seetoknowthemeaning".(只要遵循“见名知意”的原则。
)
Sample:
PROM,MASII;
2.3ObjectSchema(对象概述)
Keeptheschemashortasyoucanaspossible.3to6lettersareavailable.Allthelettersshouldbecapitalized.(请尽量简短(3至6个字母),建议使用包括意义的缩写,需要全大写。
)
Sample:
SFC(该schema下的所有表或对象是与SFC相关的)
LPC
2.4Table(表)
2.4.1TableName(表名称)
Usenotmorethanthreewordstoconstructthetablename.Whenthelengthofasinglewordismorethaneight,notmorethan4letterscanbechosentorepresentthewholeword’smeaning.Inthecombinationname,allthelettersofeverywordshouldbecapitalized.Usethe“_”tospaceeverywordinthewholename.Exceptthesinglewordforthetablename,allthewordscannotbepluralinthecombinationname.(请使用不多于三个单词的组合构建一个表的名称。
当某个单词字母较多(超过8个字母时),请选择其中四个关键字作为它的代表含义;每个单词之间使用“-”分隔开;组合单词不使用复数,但单个单词则可以。
)
Sample:
DELIVER_CSTM_ORDER(递交客户订单)
ORDERS(订单表)
2.4.2TableIndex(表索引)
Usethesystemdefaultnamingruleforthetableindex.Don’tchangeit.(在定义表的索引时(PrimaryKey,Unique,etc),请使用系统默认的命名,无须去改动它。
)
2.4.3TableField(表字段)
Usenotmorethanthreewordstoconstructthetablename.Whenthelengthofasinglewordismorethaneight,notmorethan4letterscanbechosentorepresentthewholeword’smeaning.Usethe“_”tospaceeverywordinthewholename.(请使用不多于三个单词的组合构建一个字段的名称。
当某个单词字母较多时(超过8个字母),请选择其中不多于四个关键字作为它的代表含义;组合的单词中,每个单词之间以下划线间隔开);
Sample:
SCAN_DATE:
扫描日期
CSTM_ORDER_ID:
客户订单ID
2.5View(视图)
Referthenamingruleofthetable.Weshouldaddthecapitalized“V_”todifferentiatethetablename.(命名规则请参考“TableName”,为了与之相区别,在此前面加大写V_进行区分)
Sample:
V_ORDERS(订单)
V_SHOP_SCAN(车间扫描)
2.6Storedprocedure(存储过程)
Referthenamingruleofthetable.Weshouldaddthecapitalized“P_”todifferentiatethetablename.(命名规则请参考“TableName”,为了与之相区别,在此前面加大写P_进行区分。
)
Sample:
P_GET_SHOP_SCAN(获取车间扫描数据)
P_SEND_MAIL()(发送邮件通知)
2.7Function(函数)
Referthenamingruleofthetable.Weshouldaddthecapitalized“F_”todifferentiatethetablename.(命名规则请参考“TableName”,为了与之相区别,在此前面加大写F_进行区分。
)
Sample:
F_CHECK_COA(COA检查)
F_VIEW_FIELD_NAME(显示字段名)
2.8VariantorParameter(变量&参数)
Followthefieldnamingrule:
(遵循字段的命名方式)
Sample:
ORDER_NUMBER订单编号;
2.9Job(作业任务)
Meettheprincipleof"seetoknowthemeaning".Notmorethan8wordsinthecombination.Theshortennameisnotavailable.Allthelettersshouldbecapitalized.Thejobexecutingfrequencyshouldbeaddedtothename.(符合见名知意的原则,不多于8个单词组合的名称,不使用缩写;所有字母需要大写;在名称后面加入该JOB的执行频率);
Sample:
IMPORT_CUSTOMER_ORDER[5Min]
2.10Userdefineddatatype(用户自定义数据类型)
Followthetablenamingrule.Addtheprefix“UDT_”tothename.(Follow表的命名规则,前面加“UDT_”);
Sample:
UDT_PHONE_NUMBER(自定义一个电话号码的数据类型);
3UnifiedcriterionforDevelopment(统一的开发规范)
3.1Statement(语句)
3.1.1OverallPrinciple(整体性原则)
Intheprogramming,forreducingtheinputworkloadreason,allstatementwhichinvolvesthefollowingobjects:
Table,view,function,procedure,schema,etc,shouldbeuppercase.(在编程过程中,为减少录入切换工作量起见,对于语句中的手工录入的关键字、语句以及涉及到的数据库对象(Table,View,Procedure,Function,Schema)等等,全部使用大写。
)
Sample:
SELECTFIELD_NAME,FIELD_TYPEFROMTABLE_LISTWHERE…
UPDATETABLE_LISTSETFIELD_NAME=’XXX’WHERE…
EXECP_LOAD_MACHINE_LIST(…)
3.1.2Nesting(语句嵌套)
InDB2,weencourageusethenestingstatement.Butfortheeasetounderstand,thedepthofthenestingshouldnotbemorethantwotiers.Allthealiasusedinthestatementshouldbevariestoeachother.(在DB2中,鼓励使用查询的嵌套语句,但是为了可读性起见,嵌套的深度不要过两层以上。
同时嵌套语句中使用的别名都应该各不相同。
)
SELECT*FROM(SELECTFILED_NAME,FIELD_TYPEFROM(SELECT…FROMTABLE_LIST)T)A,ALL_OBJECTSBWHERE…
上面绿字部分为第一层;桔黄色部分为第二层;
Butinthepermittedtiers,wedon’tcarehowmanytimesyouusethenesting.(但在允许的层级上,使用多少次嵌套,不进行限制。
)
3.2Comments(备注)
3.2.1Field(字段)
Makecommentsforthefieldaspossibleasyoucan.Astothesimplifiedwordsincludedinthefieldname,youmustthegiveclearexplanationforit.(请尽量对表中所有字段进行备注;对于使用了简化单词组合成的字段,请必须说明。
)
Sample:
FILE_NAME:
文件名(这个简单明了,不一定要备注上去).
CSTM_NAME_CONVERT:
客户名称转换(这个必须要备注,其中有CSTM是使用了简化单词的,请解释明白。
3.2.2Parameter(参数)
Tothefunctionorprocedure,weshouldaddthecommentsfortheentryparameters.(对于函数或存储过程,在它们的过程体前面添加对各个入口参数的解释.)
Sample:
P_LOADMACHINESCAN(INORDER_NUMBERVARCHAR(20),ININPUT_DATETIMETIMESTEMP)
/*FUNCTIONNAME:
P_LOADMACHINESCAN.
此过程用于载入某个批次所有主机的扫描记录;
PARAMETERLIST:
ORDER_NUMBER用户输入的工单号;(输入)
INPUT_DATETIME用户选择的扫描时间范围;(输入)
*/
3.2.3Function(函数)
Associatewiththeparameters;addthecommentsintheheadofthefunction.(请连同参数一起,在过程体前面添加对该函数的作用进行解释).
Sample:
F_SHOW_FIELD_NAME(TABLENAMEVARCHAR(50))
/*FUNCTIONNAME:
F_SHOW_FIELD_NAME.
此函数用于显示指定表的所有字段名称;
PARAMETERLIST:
TABLENAME用户输入的表名字;(输入)
*/
3.2.4Procedure(过程)
Referthefunction.(请参考”函数”);
Sample:
P_LOAD_MACHINE_SCAN(INORDER_NUMBERVARCHAR(20),ININPUT_DATETIMETIMESTEMPT)
/*PROCEDURENAME:
P_LOAD_MACHINE_SCAN.
此过程用于载入某个批次所有主机的扫描记录;
PARAMETERLIST:
ORDER_NUMBER用户输入的工单号;(输入)
INPUT_DATETIME用户选择的扫描时间范围;(输入)
*/
3.2.5View(视图)
Addthenecessaryexplanationtotheview:
Therelatedthetableandotherviewname,andfunctionname.(请在语句体前面加入对该视图的必要说明:
该视图所涉及的表,或其它视图的名称,所引用的函数名称等等);
Sample:
CREATEVIEWAS
/*VIEWNAME:
V_ORDERS
此视图主要用于计算内部客户订购公司产品的联合价格;
该视图引用:
ORDERS(订单表)
INNER_CSTM(内部客户表)
F_COMBINE_OUTPUT(计算联合价格函数)
*/
SELECT,,,ASCOMBINE_OUTPUTFROMORDERSA,INNER_CSTMBWHERE=
3.2.6KeyArithmetic(关键算法)
(Nomattertheprocedureorfunction,addthecommentstothepositionwhereyouwantthinkitisdifficulttounderstand.(不管是存储过程,还是函数,在某些语句的表达上,如果认为较复杂,或作必要说明的,请在该语句上面添加备注。
)
…
…
/*根据订单表与内部客户表联合,通过函数F_COMBINE_OUTPUT计算得到联合价格更新到订单表的价格*/
UPDATEASET=,FROMORDERSA,INNER_CSTMBWHERE=.
…
…
3.3CreateTable(表创建)
3.3.1TableIndex(索引)
Notmorethan3fieldscanbecombinedtotheprimarykey.Astothefieldwhosewidthislongerthan20characters,itcannotbesetastheprimarykey.(PrimaryKey的索引组合不要超过三个字段;字段长度超过20字符的,不能应用于PrimaryKey的组合);
Theindexshouldbecreatedforthefiledthatisusedfrequently.(对于频繁使用某个字段进行检索该表的,应当在该字段上创建索引);
Notmorethan3indexesexistinasingletable(Inadditiontotheprimarykey).(一个表(除了Primarykey)索引数量不应当超过三个);
3.3.2ParadigmRequirement(范式要求,原则上属于设计要求)
(Exceptforthedatawarehousebuilding,allthetablecreatingshouldmeettheDB1NFrequirement.)除非进行数据仓库的建设,否则所有任何表至少需要符合第一范式;
3.4View(视图)
Forsavingtheworkload,nestingviewsisavailable.But,fortheeasetounderstand,thenestingstatementshouldnotbemorethanthreetiers.(为了节省代码的编写,允许使用嵌套视图,但不应该超过三层。
)
Sample:
CREATEVIEWV_ORDERS_DELIVERAS/*第一层*/
SELECT*FROMV_ORDERSWHERE…
V_ORDERS:
CREATEVIEWV_ORDERSAS
SELECT*FROMV_INNER_ORDER
V_INNER_ORDER:
/*最后一层*/
CREATEVIEWV_INNER_ORDERAS
SELECT*FROMORDERS
3.5Function(函数)
Forsavingtheworkload,nestingfunctionsisavailable.But,fortheeasetounderstand,thenestingstatementshouldnotbemorethantwotiers.(为了节省代码的编写,允许使用嵌套函数,但不应该超过两层。
)
Sample:
CREATEFUNCTION()
RETURNSINT
AS
BEGIN
RETURN())
END
F_SHOW_FIELD_QUANTITY:
CREATEFUNCTION()
RETURNSINT
AS
BEGIN
RETURN5
END
Foreasingtounderstandthecode,notmorethan200rowsintotaland120charactersinasinglerow(Includethe“Tab”character)areavailable.(为代码可读性起见,对函数开发行数限制在200行以内,列宽不超120个字符(包括前面自动缩进的占位符));
Thefunctioncannotbeusedtotheoutputcolumninthequerythatreturnrowsaremorethan10,000.(函数应用到查询的输出列时,仅能应用输出的行数不多于1万行的输出);
3.6Procedure(过程)
Forsavingtheworkload,nestingprocedureisavailable.But,fortheeasetounderstand,thenestingprocedureshouldnotbemorethanthreetiers.(为了节省代码的编写,允许使用嵌套过程,但从最近一次调用起,到最后一层不应该超过三层。
)
Sample:
CREATEPROCEDUREP_LOAD_MACHINE(INORDER_NUMBERVARCHAR(20))/*第一层*/
LANGUAGESQL
BEGIN
…
CALLP_GET_SCAN(…)
…
END;
P_GET_SCAN:
CREATEPROCEDUREP_GET_SCAN(INMA
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- db2 命名 开发 规范