DB2 命名开发规范.docx

上传人:b****1 文档编号:988586 上传时间:2023-04-30 格式:DOCX 页数:16 大小:23.85KB
下载 相关 举报
DB2 命名开发规范.docx_第1页
第1页 / 共16页
DB2 命名开发规范.docx_第2页
第2页 / 共16页
DB2 命名开发规范.docx_第3页
第3页 / 共16页
DB2 命名开发规范.docx_第4页
第4页 / 共16页
DB2 命名开发规范.docx_第5页
第5页 / 共16页
DB2 命名开发规范.docx_第6页
第6页 / 共16页
DB2 命名开发规范.docx_第7页
第7页 / 共16页
DB2 命名开发规范.docx_第8页
第8页 / 共16页
DB2 命名开发规范.docx_第9页
第9页 / 共16页
DB2 命名开发规范.docx_第10页
第10页 / 共16页
DB2 命名开发规范.docx_第11页
第11页 / 共16页
DB2 命名开发规范.docx_第12页
第12页 / 共16页
DB2 命名开发规范.docx_第13页
第13页 / 共16页
DB2 命名开发规范.docx_第14页
第14页 / 共16页
DB2 命名开发规范.docx_第15页
第15页 / 共16页
DB2 命名开发规范.docx_第16页
第16页 / 共16页
亲,该文档总共16页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

DB2 命名开发规范.docx

《DB2 命名开发规范.docx》由会员分享,可在线阅读,更多相关《DB2 命名开发规范.docx(16页珍藏版)》请在冰点文库上搜索。

DB2 命名开发规范.docx

DB2命名开发规范

ForDB2

 

DBDevelopment-Naming

Specification

2012/01/01

 

Author(作者):

JetLee

Date:

Checkedby(审核):

Date:

ChangeHistory(变更历史)

Date

Version

Author

Descriptionofchange

2012-6-12

1.0

JetLee

新起草

2012-6-15

1.1

JetLee

文档拆分成两个

Content

1Introduction(引言)6

1.1Purpose(规范的目的)6

1.2Readers(阅读的人员)6

1.3Glossary(术语)6

1.4Reference(参考资料)6

2UnifiedcriterionforNaming(统一的命名规范)6

2.1OverallPrinciple(整体性原则)6

2.2Databasealias(数据别名)7

2.3ObjectSchema(对象概述)7

2.4Table(表)7

2.4.1TableName(表名称)7

2.4.2TableIndex(表索引)7

2.4.3TableField(表字段)7

2.5View(视图)8

2.6Storedprocedure(存储过程)8

2.7Function(函数)8

2.8VariantorParameter(变量&参数)8

3UnifiedcriterionforDevelopment(统一的开发规范)9

3.1Statement(语句)9

3.1.1OverallPrinciple(整体性原则)9

3.1.2Nesting(语句嵌套)9

3.2Comments(备注)9

3.2.1Field(字段)9

3.2.2Parameter(参数)9

3.2.3Function(函数)10

3.2.4Procedure(过程)10

3.2.5View(视图)10

3.2.6KeyArithmetic(关键算法)11

3.3CreateTable(表创建)11

3.3.1TableIndex(索引)11

3.3.2[删除]ParadigmRequirement(范式要求,原则上属于设计要求)11

3.4View(视图)11

3.5Function(函数)11

3.6Procedure(过程)12

3.7Trigger(触发器)13

3.8IsolationLevel(隔离集使用)13

4Attachment(附件)13

4.1[删除,系统设计的范畴]TableNormalForm13

4.2IsolationLevel13

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:

CREATEFUNCTIONSFC.F_SHOW_FIELD_NAME()

RETURNSINT

AS

BEGIN

RETURN(DBO.F_SHOW_FILED_QUANTITY())

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:

CREATEVIEWSFC.V_ORDERSAS

/*VIEWNAME:

V_ORDERS

此视图主要用于计算内部客户订购公司产品的联合价格;

该视图引用:

ORDERS(订单表)

INNER_CSTM(内部客户表)

F_COMBINE_OUTPUT(计算联合价格函数)

*/

SELECTA.ORDER_NUMBER,B.CSTM_ID,DBO.F_COMBINE_OUTPUT(A.PRICE,B.QUANTITY)ASCOMBINE_OUTPUTFROMORDERSA,INNER_CSTMBWHEREA.ORDER_NUMBER=B.ORDER_NUMER

3.2.6KeyArithmetic(关键算法)

∙(Nomattertheprocedureorfunction,addthecommentstothepositionwhereyouwantthinkitisdifficulttounderstand.(不管是存储过程,还是函数,在某些语句的表达上,如果认为较复杂,或作必要说明的,请在该语句上面添加备注。

/*根据订单表与内部客户表联合,通过函数F_COMBINE_OUTPUT计算得到联合价格更新到订单表的价格*/

UPDATEASETA.PRICE=DBO.F_COMBINE_OUTPUT(A.PRICE,B.QUANTITY)FROMORDERSA,INNER_CSTMBWHEREA.ORDER_NUMBER=B.ORDER_NUMER.

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_ORDER

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2