数据库编程规范修订稿.docx

上传人:b****7 文档编号:9417046 上传时间:2023-02-04 格式:DOCX 页数:11 大小:26.12KB
下载 相关 举报
数据库编程规范修订稿.docx_第1页
第1页 / 共11页
数据库编程规范修订稿.docx_第2页
第2页 / 共11页
数据库编程规范修订稿.docx_第3页
第3页 / 共11页
数据库编程规范修订稿.docx_第4页
第4页 / 共11页
数据库编程规范修订稿.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

数据库编程规范修订稿.docx

《数据库编程规范修订稿.docx》由会员分享,可在线阅读,更多相关《数据库编程规范修订稿.docx(11页珍藏版)》请在冰豆网上搜索。

数据库编程规范修订稿.docx

数据库编程规范修订稿

数据库编程规范

目录I

前言II

数据库设计规范1

范围1

规范性引用文件1

术语定义1

1库表命名规则1

数据库对象使用规则3

脚本编写规则4

注释编写规则4

2存储过程(函数)的规则5

2.1存储过程(函数)命名规范5

2.2变量命名规范5

2.3存储过程(函数)注释规范5

3触发器的规则6

3.1触发器的命名规则6

3.2变量命名规范6

3.3触发器注释规范6

前言

为规范本部门的软件产品开发中的数据库设计标识,提高团队开发及设计质量,减少错误,提高效率,并使团队开发与设计代码风格统一,增强可读性、易维护性,从而达到知识的积累和共享,特制订此规范。

因此,凡部门产品开发中的数据库相关部分都必须遵循本规范的要求,第三方软件可以有例外。

其中,规则必须遵守,而建议则希望被遵守,如规则不能遵守,其原因必须作书面记载。

数据库设计规范

范围

本规范适用于数据库相关设计的软件工程师。

规范性引用文件

术语定义

数据库(database):

指根据目前常用数据库产品建立的数据库模型及实体。

表(table):

数据库对象之一,用来存储系统中的数据。

同义词(synonym):

数据库对象的别名。

视图(view):

存储在数据库中的SELECT语句

快照(snapshot):

根据其他表创建的表,具有时间特性,既按时间间隔与基础表保持一致。

索引(index):

为加快表的查询速度而创建的二叉数结构。

触发器(trigger):

由表或数据库状态改变而触发对其他表或数据库其他状态的修改的动作。

过程(procedure):

存放在数据库中的供应用程序调用的脚本包。

函数(function):

存放在数据库中用于表达式的调用,必须提供返回值。

约束(constraint):

应用在表上的一些规则。

脚本(SQLscript):

在数据库中运行并完成一组数据库操作的文本文件。

1库表命名规则

命名标识符时,应遵循下列规则:

规则1:

数据库对象名=对象类型前缀+名字字串。

规则2:

对象类型前缀遵循以下定义

对象类型前缀为小写的简写字串。

目前常用的数据库对象类型及对应前缀如下表:

对象名

对象英文名

简写前缀

备注

1

TABLE

t

2

同义词

SYNONYM

s

3

视图

VIEW

v

4

快照

SNAPSHOT

ss

5

索引

INDEX

i

6

触发器

TRIGGER

tr

7

函数

FUNCTION

f

8

过程

PROCEDURE

p

9

约束

CONSTRAINT

c

CONSTRAINT可建立主键、外键、约束、空约束、索引等。

建议不特别建立CONSTRAINT,而是在建表时,直接对各字段设置CONSTRAINT,由系统管理。

10

……

……

……

……

注意:

本表所列数据库对象不全,不同的数据库产品所支持的对象略有不同,此表仅列出了主要的、常用的数据库对象,有待今后进一步扩充。

规则3:

名字字串遵循以下规则

名字字串由多个有意义的英文单词或英文单词缩写组成。

英文单词间有层次关系的,高层含义的单词在前,低层含义的单词在后。

名字中含有小于等于2个英文单词的,英文单词可写全写;含有大于2个英文单词的,英文单词长度小于等于6个字符的,全写;长度大于6个字符的,取用前4个字符;英文单词为固定缩写的,全写。

英文单词或英文单词缩写的首字符大写,后随的字母小写。

名称总长不超过30个字符。

规则4:

对象名称区别大小写

由于SYBASE、SQLSERVER等数据库的对象名称区别大小写,而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

比特位

bit

b

……

……

……

……

注意:

本表所列属性类型不全,仅列出主要的、常用的数据库对象,有待今后扩充。

规则7:

数据库对象属性(或变量)名中的名字字串与数据库对象名的名字字串的命名规范相同。

数据库对象使用规则

规则8:

表命名规范遵循规则1,对不同类型的表有以下区别

字典表要求在表名的最后跟字符串Dict,如tAlmTypeDict;

临时表要求在表名的最后跟字符串Tmp,如tTa01Tmp;

建议9:

如果两表之间有从属或其他关系,则建议在表名定义中有所体现

如tObject表存放对象定义,tObjectAttr表存放对象属性。

规则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,对于主键primarykey、唯一值uniqekey、强制check、非空notnull的约束建议在表的描述脚本中定义,不单独建立约束。

规则24:

外键命名遵循规则1,并且在在约束名最后增加字符串FK,用来表示该约束为外键。

建议25:

建议单独创建外键,不要在表的定义中指定外键

规则26:

数据库脚本的名称由多个有意义的英文单词或英文单词缩写组成,每个单词或英文缩写的开头字母为大写,其余为小写。

并且以sql作为文件后缀。

如AlmTableAdd.sql

脚本编写规则

规则27:

对于数据库对象定义符合规则1,对于变量定义符合规则5。

规则28:

所有系统保留字名必须全部小写.

如create、update、delete等系统保留字无论在数据库脚本还是应用程序中都使用小写字母

规则29:

数据库脚本每一行不能出现多个逗号

createtabletSutdent

iIdintnotnull,

vcNamevarchar(10)null

规则30:

在数据库脚本中应加入适当注释。

注释编写规则

规则31:

注释标识符统一使用“/**/”

由于不同数据库的注释方式各有不同,因此为了脚本和代码的可移植性,要求采用统一的注释标识符。

规则32:

脚本文件版本信息遵循以下注释规范

/************************************************

*全名:

*

*产品名称:

*

*版本号:

*

*数据库环境:

*

*创建人:

*

*创建日期:

*

*内容说明:

*

*内容列表:

*

*修改记录:

修改时间(修改人):

更新目的*

*修改时间(修改人):

更新目的*

*************************************************/

规则32:

脚本中对函数或过程的注释遵循以下原则

对于函数或过程的注释可以放在函数体或过程里描述,以便在数据库中查询获得注释信息。

2存储过程(函数)的规则

2.1存储过程(函数)命名规范

1.存储过程名称以“SP_”开头。

(StoreProcedure)

2.函数的名称以“FUN_”开头。

(Function)

3.名称优先对应于应用层的方法名,只是增加了前缀,如应用层的GetAllNet在对应的数据库过程名应为SP_GetAllNet(注意SYBASE对过程名是大小写敏感的)。

4.总长不超过25个字符,超过时缩写规则同表格部分的规范要求。

2.2变量命名规范

1.过程的传入参数以“@i_”开头(input)。

2.过程的传出参数以“@o_”开头(output)。

3.过程的传入传出参数以“@io_”开头(variableinput/output)。

4.过程内部定义的变量都以“@m_”开头。

5.所有变量除开头部分的后面单词可紧接写,单词间以首单词大写分割。

如“@m_ClientName”,“@i_ClientName”。

6.注意SYBASE中变量名是大小写敏感的。

2.3存储过程(函数)注释规范

1.存储过程的程序总体注释一定要在过程”as”单词后开始注释,否则提交入数据库中时,注释会丢失。

2.过程的注释要说明过程的作者,时间,参数描述,功能描述,修改记录描述。

示例如下:

procedureSP_GetAllNE(@i_DomainNamechar(20))

as

/*======================================================

METHODSP_GetAllNE

Authorzhou.qiang

CreateDate2002-8-28

ARGUMENTS@i_DomainName(in)区域名称

DESCRIPTION获取区域内所有网元信息

MODIFICATION

---------------------------------------------------------------------------------------------*/

begin

declare@m_Countint/*internalvariable*/

----processhere……

end

3触发器的规则

3.1触发器的命名规则

1.触发器名称以“TR_”开头。

(Trigger)

2.以下划线分割。

3.名称全部大写。

4.总长不超过25个字符,超过时缩写规则同表格部分的规范要求。

3.2变量命名规范

1.触发器内部定义的变量都以“@m_”开头。

2.所有变量除开头部分的后面单词可紧接写,单词间以首单词大写分割。

如“@m_ClientName”等

3.3触发器注释规范

1.触发器的总体注释一定要在”declare”单词后开始注释,否则提交入数据库中时,注释会丢失。

总体注释要说明过程的作者,时间,参数描述,功能描述,修改记录描述。

可参照存储过程部分。

.

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

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1