数据库命名规范
一、目的 ............................................................ 2
二、 适用范围 ....................................................... 2
三、命名规则 ........................................................ 2
四、 对象命名规范 ................................................... 2
1、 数据表(T) .................................................. 2 2、 约束及索引 ................................................... 3 3.触发器(TR) ..................................................... 3 4.静态视图(V) .................................................... 4 5.自定义函数(F) .................................................. 4 6.存储过程(P) .................................................... 4 6.包(PGK) ........................................................ 4 7.序列(SEQ) ...................................................... 4
五、 编码注释 ....................................................... 4
六、常用SQL 语句的编写规范.......................................... 5
数据库命名规范 第1 页
大连华铁海兴科技有限公司
一、目的
使用统一的命名和编码规范,使数据库命名及编码风格标准化,以便于阅读、理解和继承。
二、 适用范围
本规范适用于项目组范围内所有以ORACLE作为后台数据库的应用系统和项目开发工作。
三、命名规则
数据库对象命名规范采用英文的方式,基本格式为:OM_XXXX,(所有字母均为大写)
1) 其中:字母“O”为代表数据库对象的代码(Object),参见数据库包含的常用
对象;
2) 字母“M”为该对象所在的模块代码(Module),与详细设计中的模块进行对
照(暂定);
3) 下划线“_”为固定分隔符;
4) 字符串“XXXX”代表对此对象的说明,用英文表达。一般最大长度不能超过
20个字母 特殊情况另议
四、 对象命名规范
1) 数据表(T); 2) 约束及索引; 3) 触发器(TR); 4) 静态视图(V); 5) 自定义函数(F); 6) 存储过程(P); 7) 包(PKG) 8) 序列(SEQ)
说明:对象后面括号内代表此数据库对象的代码。
1、 数据表(T)
T+模块名称(暂定4位)+”_”+表义名
此外还要给表的别名定义简单规则(比方说,如果表名是一个单词,别名就取单词的前 4 个字母;如果表名是两个单词,就各取两个单词的前两个字母组成 4 个字母长的别名;如果表的名字由 3 个单词组成,你不妨从头两个单词中各取一个然后从最后一个单词中再取出两个字母,结果还是组成 4 字母长的别名,其余依次类推) 1.1字段命名
数据库命名规范 第2 页
大连华铁海兴科技有限公司
1) 完全采用英文单词描述,禁止使用拼音,尤其是拼音缩写,也禁止使用英
文加拼音的命名方式; 2) 表的设计尽量设立单一主键(设计阶段); 3) PFC键指主键(Primary Key)、外键(Foreign Key)、候选键(Candidate Key)。
PFC键作为数据完整性控制的一种简单手段,在开发阶段将关联约束部分交由数据库管理。 4) 主键(PK)命名:PK+”_”+表名(或缩写) +”_”+主键标识 5) 组合主键必须完全由外键字段构成(设计阶段),其中各外键字段的命名由第5
条约定; 6) 外键(FK)命名:FK+”_”+表名(或缩写) +”_”+外键标识 7) 字段应保持与关联表中的主键字段保持同一命名;在且仅在如果可能出现单一
表中字段重名的情况下可以不同命名。 8) 候选键(CK)命名:CK+”_”+表名(或缩写) +”_”+候选键标识
2、 约束及索引
2.1 CHECK约束
CHECK 约束命名为: CHK+”_”+CHECK约束的列名(或缩写)
2.2 UNIQUE约束
UNIQUE 约束命名为:UNQ+”_”+UNIQUE约束的列名(或缩写)
2.3 索引
索引的命名为: IDX+”_”+表名(或缩写)+”_”+列名。
其中多单词组成的属性列列名取前几个单词首字符再加末单词首字符组成。
3.触发器(TR)
包括三种触发器:更新(Update)、插入(Insert)、删除(Delete)。触发器作为数据完整性复杂控制的另一种手段,在开发阶段将关联约束部分交由数据库管理。
1) AFTER型触发器
TR+”_”+表名(或缩写)+”_”+AFT+”_”+< TI,TU,TD的任意组合> 2) BEFORE型触发器
TR+”_”+表名(或缩写)+”_”+BEF+”_”+< TI,TU,TD的任意组合> 3) INSTEAD OF型触发器
TR+”_”+表名(或缩写)+”_”+INS+”_”+< TI,TU,TD的任意组合> 4) 各种类型的触发器中
TI,TU,TD 分别表示INSERT、UPDATE和DELETE
数据库命名规范 第3 页
大连华铁海兴科技有限公司
4.静态视图(V)
参照基本命名规范,加以调整,静态视图的命名规范为“VM[S]_XXXX”,中括号表示可选项;
视图架设在在一个或多个表(或视图)上,必有一个核心表(或视图),“M[S]”的取舍与此核心表(或视图)一致,“XXXX”的描述也应该与此核心表(或视图)相适应;
附加说明:
1) 随着系统规模的扩大,会产生前期设定的中间层视图在后期会在程序中用到,或者前期程序中使用的视图在后期不再使用,这时会产生命名与使用不一致的情况。这些不一致可以在后期系统调整中消除;
2) “XXXX”之所以不采用低层对象命名叠加的方式,是因为那样会在视图层次较高的情况下,“XXXX”会拖得很长;
5.自定义函数(F)
3) 自定义函数在某些情况下,如果当作数据库全局变量使用,对于维护数据的完整性起着积极的作用。其他数据库对象可以直接使用它,通过将函数封装成存储过程后前端程序可以来使用它,这样就能达到前后端数据一致,部分做到程序与数据无关;
4) 参照基本命名规范,加以调整自定义函数的命名规范为
F+模块名称(暂定4位)+”_”+函数名
6.存储过程(P)
1) 存储过程用于封装复杂运算逻辑。 2) 存储过程还可以封装函数供前端程序使用; 3) 参照基本命名规范,存储过程的命名规范为
P+模块名称(暂定4位)+”_”+函数名
6.包(PGK)
PGK+模块名称(暂定4位)+”_”+包名
7.序列(SEQ)
SEQ+模块名称(暂定4位)+”_”+序列名
五、 编码注释
1) 注释尽可能简洁、详细而全面
2) 注释语法包含两种情况:单行注释、多行注释
单行注释:注释前有两个连字符(--),一般对变量、条件子句可以采用该类注释。
数据库命名规范 第4 页
大连华铁海兴科技有限公司
多行注释:符号/*和*/之间的内容为注释内容。对某项完整的操作建议使用该类注释。
3)函数文本注释
在每一个块和过程(存储过程、函数、包、触发器、视图等)的开头放置注释
/*********************************************************************
*name : --函数名 *function : --函数功能 *input : --输入参数 *output : --输出参数 *author : --作者 *CreateDate : --创建时间
*UpdateDate : --函数更改信息(包括作者、时间、更改内容等)
*********************************************************************/
4) 传入参数的含义应该有所说明。如果取值范围确定,也应该一并说明。取值有特定含义的变量(如boolean类型变量),应给出每个值的含义。
5) 在每一个变量声明的旁边添加注释。说明该变量要用作什么 通常,简单使用单行注释就行了,例如: PERSONID VARCHAR2(11) --身份证号码 6) 在块的每个主要部分之前添加注释
在块的每个主要部分之前增加注释,解释下—组语句目的,最好是说明该段语句及算法的目的以及要得到的结果,但不要对其细节进行过多的描述
7) 在块和过程的开头注释中还可以增加要访问的数据库等信息
六、常用SQL 语句的编写规范
1) CREATE语句
CREATE TABLE DFT_DKSZ(
YHBS VARCHAR2(20) NOT NULL, ZHGX DATE,
DKKHD VARCHAR2(24),
CONSTRAINT PK_DKSZ_YHBS PRIMARY KEY (YHBS) )
第二行以后的每一行行首字母必须与CREATE最后一个字母对齐。 2) SELECT语句
查询语句采用以下原则编写(可最大化重用共享池中的SQL 语句,提高应用程序性能):
将SELECT 语句分为5部分:
(1) 由SELECT 开头,后跟一个显示查询结果的列表; (2) 由FROM 开头,后跟一个或多个获取数据所涉及的表; (3) 由WHERE 开头,后跟一个或多个确定所需值的条件;
(4) 由GROUP BY开头,后跟一个或多个表列名,通过这些列以对查询结果进
行汇总;
(5) 由ORDER BY开头,后跟一个或多个表列名,通过这些列以对查询结果进
行排序。
数据库命名规范 第5 页
大连华铁海兴科技有限公司
(6)语句中嵌入逗号时,在逗号后面加一空格,当逗号是最后一个字符时,把
它放在本行
(7) 将语句中WHERE 和AND 部分格式化,书写布局类似于
WHERE AND AND
(8) 当语句中出现括号时,括号的两边不留空格
(9)在SQL 语句使用运算符时,操作两边应各留一个空格,如
WHERE X = Y AND A = B AND C = D
3) INSERT语句
INSERT INTO <要插入的表名>
(<列1> ,<列2> , ..
, <列n-1>, <列n>)
VALUES (<列1值>
,<列2值> , .., ,<列n-1值> ,<列n值>)
4) UPDATE语句
UPDATE <要更新的表名>
SET <要更新的列> = <列值> 5) DELETE语句
DELETE FROM TMAIL_MATERIALTRACING WHERE COLID = '???'
6) 条件执行语句(IF)编写规范
条件执行语句IF„ELSE 按以下格式编写 IF <条件表达式> THEN
<一条或多条语句>
[ELSE (或ELSIF<条件表达式>) THEN
<一条或多条语句> END IF; 注:
(1) 在IF„THEN和ELSE(或ELSIF)及ELSE„THEN和END IF间可包含一条或多条PL/SQL
语句,而不需要加BEGIN 和END
(2) IF„ELSE„ENDIF 语句可以嵌套
数据库命名规范 第6 页
大连华铁海兴科技有限公司
(3) 注意ELSIF的写法
7) 循环语句编写规范 (1) 简单循环语句
LOOP
<零条或多条语句> EXIT WHEN <条件表达式>
<零条或多条语句> END LOOP; (2) FOR循环语句
FOR 变量 IN [变量取值范围] LOOP
<一条或多条语句> END LOOP;
(3) WHILE循环语句
WHILE <条件表达式> LOOP
<一条或多条语句> END LOOP;
8) 函数文本(存储过程、函数和包等)
对于存储过程、函数等程序块都要有异常处理部分,在异常部分的最后都要设置OTHERS
异常情态处理器,以提高程序的自检能力,格式如下:
BEGIN „
EXCEPTION
WHEN excep—name1 THEN „
WHEN excep—name2 THEN „
WHEN OTHERS THEN „ END;
对于子程序、触发器、包等带名的程序块,要使用结束标识,如 CREATE OR REPLACE PROCEDURE XXXsp_XXX IS „ BEGIN „
END XXXsp_XXX;/* 此处的过程名XXXsp_XXX是可选的,规范要求写上,与块开始的CREATE相对应 */ 现用数据库模块名称: 物料: MATE(material) 计划: PLAN(plan) 工艺: TECH(technic)
数据库命名规范 第7 页
大连华铁海兴科技有限公司
基础数据:BASE(base) 合同: CONT(contract) 质量: QUAL(quality) 报表: REPO(report) 权限: AUTH(authority)
数据库命名规范 第8 页
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- xiaozhentang.com 版权所有 湘ICP备2023022495号-4
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务