数据库编程规范(修订稿).doc_第1页
数据库编程规范(修订稿).doc_第2页
数据库编程规范(修订稿).doc_第3页
数据库编程规范(修订稿).doc_第4页
数据库编程规范(修订稿).doc_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Q/DTT 1-2004-实施-发布数据库编程规范 IOSS事业部开发规范 C语言编程规范1 目 录目 录I前 言II数据库设计规范1范围1规范性引用文件1术语定义11库表命名规则1数据库对象使用规则3脚本编写规则4注释编写规则42存储过程(函数)的规则52.1存储过程(函数)命名规范52.2变量命名规范52.3存储过程(函数)注释规范53触发器的规则63.1触发器的命名规则63.2变量命名规范63.3触发器注释规范6第6页2 前 言为规范本部门的软件产品开发中的数据库设计标识,提高团队开发及设计质量,减少错误,提高效率,并使团队开发与设计代码风格统一,增强可读性、易维护性,从而达到知识的积累和共享,特制订此规范。因此,凡部门产品开发中的数据库相关部分都必须遵循本规范的要求,第三方软件可以有例外。其中,规则必须遵守,而建议则希望被遵守,如规则不能遵守,其原因必须作书面记载。3 数据库设计规范a) 范围本规范适用于数据库相关设计的软件工程师。b) 规范性引用文件c) 术语定义4 数据库(database): 指根据目前常用数据库产品建立的数据库模型及实体。5 表(table):数据库对象之一,用来存储系统中的数据。6 同义词(synonym):数据库对象的别名。7 视图(view):存储在数据库中的SELECT语句8 快照(snapshot):根据其他表创建的表,具有时间特性,既按时间间隔与基础表保持一致。9 索引(index):为加快表的查询速度而创建的二叉数结构。10 触发器(trigger):由表或数据库状态改变而触发对其他表或数据库其他状态的修改的动作。11 过程(procedure):存放在数据库中的供应用程序调用的脚本包。12 函数(function):存放在数据库中用于表达式的调用,必须提供返回值。13 约束(constraint):应用在表上的一些规则。 14 脚本(SQL script):在数据库中运行并完成一组数据库操作的文本文件。1 库表命名规则命名标识符时,应遵循下列规则:规则1:数据库对象名=对象类型前缀+名字字串。规则2:对象类型前缀遵循以下定义对象类型前缀为小写的简写字串。目前常用的数据库对象类型及对应前缀如下表:对象名对象英文名简写前缀备注1表TABLEt2同义词SYNONYMs3视图VIEWv4快照SNAPSHOTss5索引INDEXi6触发器TRIGGERtr7函数FUNCTIONf8过程PROCEDUREp9约束CONSTRAINTcCONSTRAINT可建立主键、外键、约束、空约束、索引等。建议不特别建立CONSTRAINT,而是在建表时,直接对各字段设置CONSTRAINT,由系统管理。10i注意:本表所列数据库对象不全,不同的数据库产品所支持的对象略有不同,此表仅列出了主要的、常用的数据库对象,有待今后进一步扩充。规则3:名字字串遵循以下规则名字字串由多个有意义的英文单词或英文单词缩写组成。英文单词间有层次关系的,高层含义的单词在前,低层含义的单词在后。名字中含有小于等于2个英文单词的,英文单词可写全写;含有大于2个英文单词的,英文单词长度小于等于6个字符的,全写;长度大于6个字符的,取用前4个字符;英文单词为固定缩写的,全写。英文单词或英文单词缩写的首字符大写,后随的字母小写。名称总长不超过30个字符。规则4:对象名称区别大小写由于SYBASE、SQL SERVER等数据库的对象名称区别大小写,而ORACLE、INFORMIX等数据库的对象名称不区别大小写,因此鉴于系统的可移植性,对遵循本设计规范所定义的数据库对象名称必须区别大小写,即在数据库对象的设计及应用程序中对数据库对象的引用中必须严格区别大小写。并且要求在同一数据库中,不能同时存在如下类似定义,如tAlm、TALM、talm。规则5:数据库对象属性(或变量)名=属性类型前缀+名字字串。规则6:属性类型前缀遵循以下原则属性类型前缀为小写的简写字串。目前常用的数据库属性类型及对应前缀如下表:属性类型名属性类型英文名简写前缀备注1整型数int,smallint,tinyint;number(n)等i不同数据库产品的整型数定义不同,本规范不具体区分是短整型还是长整型还是其它整型,统一为“整型”。2浮点数float,real;number(n,m)等f不同数据库产品的浮点型数定义不同,本规范统一为“浮点型”。3固定长度字符串char(n)等c同上。4可变长度字符串varchar(n);varchar2(n)等vc同上。5文本数据text;long等t同上。6日期时间datetime;date等d同上。7二进制raw;binary等r同上8比特位bitbi注意:本表所列属性类型不全,仅列出主要的、常用的数据库对象,有待今后扩充。规则7:数据库对象属性(或变量)名中的名字字串与数据库对象名的名字字串的命名规范相同。i. 数据库对象使用规则规则8:表命名规范遵循规则1,对不同类型的表有以下区别字典表要求在表名的最后跟字符串Dict,如tAlmTypeDict;临时表要求在表名的最后跟字符串Tmp,如tTa01Tmp;建议9:如果两表之间有从属或其他关系,则建议在表名定义中有所体现如tObject表存放对象定义,tObject Attr表存放对象属性。规则10:视图命名规范遵循规则1,对不同类型的视图有以下区别建议11:对连接多表的视图应在试图名称有所体现如vAlmUser,连接表tAlm与tUser建议12:对建立在一个表上的视图应在表名上体现该视图特性如vAlmDelete,是tAlm表中对状态为以删除记录的视图。建议13:同义词的使用规则,因为同义词在应用系统中容易对数据库对象造成误导和歧异,因此建议尽量不使用同义词,对数据库对象使用唯一名称定义。规则14:快照命名遵循规则1规则15:索引命名遵循规则1建议16:对于唯一索引建议在索引名最后增加字符串Uniq以表示该索引为唯一索引。建议17:如果唯一索引为单字段索引,建议在建表脚本中指定,不要单独建立索引。规则18:触发器命名遵循规则1,对不同类型的触发器有以下区别建议19:建议在触发器命名中体现触发器的操作类型,在触发器名称的最后增加操作类型缩写,删除为Del,修改为Upd,插入为Ins。规则20:触发器内部变量定义遵循规则5。规则21:函数命名遵循规则1,函数内部变量定义遵循规则5。规则22:过程命名遵循规则1,过程内部变量定义遵循规则5。规则23:约束命名遵循规则1,对于主键primary key、唯一值uniqe key、强制check、非空not null的约束建议在表的描述脚本中定义,不单独建立约束。规则24:外键命名遵循规则1,并且在在约束名最后增加字符串FK,用来表示该约束为外键。建议25:建议单独创建外键,不要在表的定义中指定外键规则26:数据库脚本的名称由多个有意义的英文单词或英文单词缩写组成,每个单词或英文缩写的开头字母为大写,其余为小写。并且以sql作为文件后缀。如AlmTableAdd.sqlii. 脚本编写规则规则27:对于数据库对象定义符合规则1,对于变量定义符合规则5。规则28:所有系统保留字名必须全部小写.如create、update、delete等系统保留字无论在数据库脚本还是应用程序中都使用小写字母规则29:数据库脚本每一行不能出现多个逗号create tabletSutdent(iIdint not null,vcNamevarchar(10)null)规则30:在数据库脚本中应加入适当注释。iii. 注释编写规则规则31:注释标识符统一使用“/*/”由于不同数据库的注释方式各有不同,因此为了脚本和代码的可移植性,要求采用统一的注释标识符。规则32:脚本文件版本信息遵循以下注释规范/*全名: *产品名称: * 版本号:* 数据库环境:* 创建人:* 创建日期:* 内容说明:* 内容列表:* 修改记录:修改时间(修改人):更新目的* 修改时间(修改人):更新目的*/规则32:脚本中对函数或过程的注释遵循以下原则对于函数或过程的注释可以放在函数体或过程里描述,以便在数据库中查询获得注释信息。2 存储过程(函数)的规则2.1 存储过程(函数)命名规范1 存储过程名称以“SP_”开头。(Store Procedure)2 函数的名称以“FUN_”开头。(Function)3 名称优先对应于应用层的方法名,只是增加了前缀,如应用层的GetAllNet在对应的数据库过程名应为SP_GetAllNet(注意SYBASE对过程名是大小写敏感的)。4 总长不超过25个字符,超过时缩写规则同表格部分的规范要求。2.2 变量命名规范1 过程的传入参数以“i_”开头(input)。2 过程的传出参数以“o_” 开头(output)。3 过程的传入传出参数以“io_” 开头(variable input/output)。4 过程内部定义的变量都以“m_”开头。5 所有变量除开头部分的后面单词可紧接写,单词间以首单词大写分割。如 “m_ClientName”,“i_ClientName”。6 注意SYBASE中变量名是大小写敏感的。2.3 存储过程(函数)注释规范1 存储过程的程序总体注释一定要在过程”as”单词后开始注释,否则提交入数据库中时,注释会丢失。2 过程的注释要说明过程的作者,时间,参数描述,功能描述,修改记录描述。示例如下:procedure SP_GetAllNE(i_DomainName char(20)as/*=METHOD SP_GetAllNE Authorzhou.qiang CreateDate2002-8-28 ARGUMENTS i_DomainName (in) 区域名称DESCRIPTION 获取区域内所有网元信息 MODIFICATION -*/begindeclare m_Countint /*internal variable*/- process hereend 3 触发器的规则3.1 触发器的命名规则1 触发器名称以“TR_”开头。(Trigger)2 以下划线分割。3 名

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论