Oracle数据库开发规范.docx

上传人:王** 文档编号:1344691 上传时间:2024-06-20 格式:DOCX 页数:45 大小:56.20KB
下载 相关 举报
Oracle数据库开发规范.docx_第1页
第1页 / 共45页
Oracle数据库开发规范.docx_第2页
第2页 / 共45页
Oracle数据库开发规范.docx_第3页
第3页 / 共45页
Oracle数据库开发规范.docx_第4页
第4页 / 共45页
Oracle数据库开发规范.docx_第5页
第5页 / 共45页
Oracle数据库开发规范.docx_第6页
第6页 / 共45页
Oracle数据库开发规范.docx_第7页
第7页 / 共45页
Oracle数据库开发规范.docx_第8页
第8页 / 共45页
Oracle数据库开发规范.docx_第9页
第9页 / 共45页
Oracle数据库开发规范.docx_第10页
第10页 / 共45页
亲,该文档总共45页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《Oracle数据库开发规范.docx》由会员分享,可在线阅读,更多相关《Oracle数据库开发规范.docx(45页珍藏版)》请在优知文库上搜索。

1、ORAC1.E数据库开发规范注:木规范基于ORAC1.EI0G。对于其他数据库以及ORAC1.E数据库其他的版本,本规范并不一定合适。目录目录错误!未定义书签。1:字符集、字段类型错误!未定义书签。1. 1:字符集错误!未定义书签。2. 2:字段类型错误!未定义书签。2:命名规范错误!未定义书签。3. 1:命名规则表错误!未定义书签。4. 2:命名规范:错误!未定义书签。3:书写规范错误!未定义书签。5. 1:缩进风格与对齐错误!未定义书签。6. 2:语句书写规则错误!未定义书签。7. 3:其他错误!未定义书签。4:表错误!未定义书签。5:触发器错误!未定义书签。6:主键和外键:错误!未定义书

2、签。7:索引错误!未定义书签。7.1:建立索引错误!未定义书签。7.2:使用索引错误!未定义书签。8:视图错误!未定义书签。9:存储过程和函数错误!未定义书签。10:注释规范错误!未定义书签。10.1:总则错误!未定义书签。10.2:存储过程、函数头注释错误!未定义书签。10.3:文献注释错误!未定义书签。11:脚本规范错误!未定义书签。12:SQ1.语句性能优化13:冗余信息14:异常解决附录错误!未定义书签错误!未定义书签错误!未定义书签错误!未定义书签错误!未定义书签数据库三个范式.1:字符集、字段类型1. 1:字符集ORAC1.E的数据库实例有2个字符集设立:数据库字符集和国家字符集。

3、 【规则数据库字符集设立为ZHS16GBK,国家字符集设立为A1.16UTF16。 【规则1-1-2不要试图修改数据库的字符集。假如需要不同字符集的数据库实例,那只能重新建立一个新的数据库实例。1.2:字段类型【规则1-2-1定长文本型字段都要声明char,不定长文本型字段都要声明成varchar2(假如的确需要,也可以使用nvarchar2)类型。 例如:Createtablet_test(namevarchar2(10),departmentnvarchar2(20);请注意,在ZHS16GBK字符集下,每一个汉字是占用2个字节,而每一个英文字母和符号占用一个字节。上面的name字段可以最

4、多存储5个汉字,或者是10个字母。而department字段可以最多保存20个字符,不管是汉字或者字母。 也可以如下声明:Createtablet_test(namevarchar2(10char),departmentvarchar2(20char);这样的话,不管是汉字或者是字母,name字段就可以保存最多10个字符,。【规则所有的日期型都要声明成文本型,形同:yyyyMMdd0其中,yyyy是4位数的年份,MM是两位数的月份,dd是两位数的日期。举例如下:20230U2表达2023年1月份12日【规则123】所有的时间型都要声明成文本型,形同:hh24:mi:sso其中,hh24表达是2

5、4进制的小时,mi是分钟,ss是秒数。举例如下:11:12:13表达11点12分13秒。 【规则2-2-3假如一个字段需要同时包含日期和时间,需要提成日期型和时间型两种类型的字段进行设计。 【规则124】bool型字段一律定义成Char(I)类型,0,表达false,,1表达true。同时需要在该字段上面加约束,使合法的取值只能是0,1。 【规则125】所有的整型字段都应当声明为number(n),n为整型字段有效长度。比如Createtablet_test(agenumber(3)字段age能存储从-999到999的数字。当然,可以在这个字段上加约束,以约束它只能保存正数。不要如以下的方式定

6、义整型:Createtablet_test(agenumber)o由于这样定义等价于:Createtablet_test(agenumber(38)很显然,这个字段定义得实在太大太大了。不仅没有必要,并且对数据库有负面影响。【规则126】所有的浮点数定义为:number(p,s),其中的P是表达精度,或者总位数,取138中数字。S是小数位数,合法值为:84-127。比如:Createtabletable1(salarynumber(8,2)这个Salary字段表达,精确到小数点后面2位,总共最多有8位数字,这样算来,在小数点前面,最多能有6位数字。这个字段能表达的最大正数是999999.99,

7、最大负数是-999999.99。【规则127】假如一个字段保存的是一系列的编码(枚举型),则该字段必须定义成文本型。字段中保存的是大写字母。举例如下:CUStomer表格有一个字段CUStomejlype,该字段相应的是客户的类型编码,字段类型是Chal(1),其中,N表达普通客户,表达VlP客户。同时必须增长约束,以保证枚举选择以外的值不能被插入。【规则128】如无特殊需求,避免使用大字段(blob,clob,long,text,image等)。假如需要使用大字段,可以先考虑Blob。2:命名规范2.1:命名规则表对象名前缀范例描叙数据库实例无sale_test表空间ts_ts_user表t

8、ablet_t_Customer表名原则上不超过24个字符分区表t_+分区描叙t_system_items_0612视图VieWv_V_Customer视图名原则上不超过24个字符序列sequences_Seq_t_Customer_id约束ckc_ckt_ckc_t_Customer_idckt_t_Customer对字段的约束前缀为ckc.对表的约束前缀为ckt一般索引idx_idxSamplemid位图索引11aidx_mapidx_sample_mid唯一索引unidx_unidx_sajnple_mid分区表本地索引ln_lnl_system_item_分区表全局索引g11-gn_s

9、ystem_item主键Pk_ak_pk_t_Customerak_1.Customer存储过程UP_upInsAgentccount函数Uf_uf_SeIMaxData包和包体Pkg_pkg_MngClt物化视图mv_mv_Customer数据库联接from_from_sale_test保存点spt_spt_wrp变量自定义记录类型rec_Typerec_itemis(item_idvarchar2(10);游标cur_Cursorcur_itemsis局部变量1_l_item输入变量i_i_itme输出变量o_ojtme输入输出变量io_io_item2.2:命名规范: 【规则22“】所有

10、用户自定义的数据库对象名统一使用小写字母。 【规则222】命名尽量采用富故意义的英文词汇,不要采用汉语拼音。 示例:以下书写不符合规范(物料编码表) 应如下命名: 【规则223】所有名称采用英文单数名词或动词,避免出现复数。 【规则224假如键是主键,用表格名再加前缀pk_的方式命名。假如长度超过30个字符,则对表格名进行缩写。 【规则2-2-5假如键是备选主键,用表格名再加前缀ak_的方式命名。假如长度超过30个字符,则对表格名进行缩写。 【规则2-2-6假如是主键字段,统一命名为:Id;假如是保存其他表上的主键字段则用缩写加“Id”的方法命名。举例如下: 销售订单的编号字段命名:SalOr

11、dId;主键则命名为:Id。 【规则2-2-7存储过程、函数、触发器、程序块中定义的变量和输入、输出参数在命名上有所区分。 变量名小写,局部变量名使用“1.开头。用1.前缀代表输入参数变量,用。_前缀代表输出参数变量,用i。前缀代表输入输出参数变量。【规则228当一个单词不可以表达对象的函义时,用词组组合,假如组合太长时,采用简写或缩写,缩写要基本能表达原单词的意义。标记符应当直观且可以拼读,可望文知意。 例如,下面的命名就很合适l_minValuenumber;1_maxValuenumber;procedureup_setValue(.);【规则2-2-9变量和参数用小写字母开头的单词组合

12、而成示例:1JtemNumbernumber;【规则2-2-10变量的名字应当使用“名词”或者“形容词+名词”示例1JtemVaIuenumber;【规则2-2-11存储过程名字应当使用“动词”或者“动词+名词”(动宾词组)示例procedureup_setValue(.); 【规则2212当一个单词不可以表达对象的函义时,用词组组合,假如组合太长时,采用简写或缩写,缩写要基本能表达原单词的意义。原则上一方面要考虑的是需要清楚的表达命名所要表达的含义,另一方面才是考虑长度不要太长。 【规则2-2-13分区表的表名可以遵循普通表的正常命名规则。 【规则2214】准时间范围分区(每有一个分区),分

13、区名字为表的重要用途的缩写+下划线+yymm示例:库存交易分区表的分区命名可以采用如下方式:示例trans_0611、trans_0612trans_0701、trans_0702【规则2-2-15最小分区名字为before_data,最大分区名字为after_data.3:书写规范3.1:缩进风格与对齐 【规则311】:程序块采用缩进风格书写,保证代码清楚易读,风格一致,缩进格数统一为4个。 【规则312同一条语句占用多于一行时,从第二行开始第一个关键字应当空4格。示例:selectfieldl,field2,.fromt_tablenamewherefield11【规则3-1-3对于Ins

14、ertvalues和update语句,行写一个字段,这段后面紧跟注释(注释语句左对齐),values和insert左对齐,左括号和右括号与insert、values左对齐。示例:insertintot_user(user_id,-用户ID,主键user_name,-用户名login_name-登录名)values(i_user_id,1_user_name,i_login_name3.2:语句书写规则【规则3-2-1一行代码只做一件事情,如只定义一个变量或几个同类型且密切相关的变量,或只写一条语句。这样的代码容易阅读,并且方便于写注释。 示例:以下书写不符合规范:l_count:=1;l_creation_date:=sysdate; 应写成:l_count:=1;l_creation_date:=sysdate;【规则322】建议:假如一行能将SQ1.语句所有容纳下,可以把语句放在一行,否则句子要在关键字和谓词处适当换行,以增长可读性。 示例:稍微短点的SQ1.语句可

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

当前位置:首页 > IT计算机 > 数据库

copyright@ 2008-2023 yzwku网站版权所有

经营许可证编号:宁ICP备2022001189号-2

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!