ORACLE对象命名规范

合集下载

Oracle数据库命名规范

Oracle数据库命名规范

1.Oracle数据库命名规范数据库命名规范总体上以“汉语拼音和常见英语单词相结合”的方式,汉语拼音即是采用每一个汉字拼音的第一个字母的方式。

英语单词采用整个英文单词或可以识别的英文单词缩写的方式。

数据库字段命名原则总统上同数据库命名,采用“汉语拼音和常见英语单词相结合”方式命名。

这里单独出来主要是强调本系统字段命名需要额外遵循如下规则:1)字段名称的唯一性:即同一含义的字段在整个系统范围内中必须有相同的字段名。

不能有类似一个表中的备注字段用“BeiZhu”,另一表中的备注却用“Remark”、“Desc”、“XXRemark”等。

2)字段含义唯一性:即系统同一字段名称必须有同一含义。

不能有类似“Name”在一个表中表单位名称,在另外一个表中表项目名称,这种情况需要加前缀区分。

3)所有字段名不能以SM开头,目的是避免与SuperMap保留字段前缀混淆4)空间表中:字段顺序以空间信息字段在前,属性信息字段在后原则。

5)属性表中:字段顺序以主次顺序设计,用于空间定位的字段放在最后原则。

1.1表属性规范1)表名前缀为Tbl_。

数据表名称必须以有特征含义的单词或缩写组成,中间可以用“_”分割,例如:tbl_pstn_detail。

表名称不能用双引号包含。

2)表分区名前缀为p。

分区名必须有特定含义的单词或字串。

例如:tbl_pstn_detail的分区p2004100101表示该分区存储2004100101时段的数据。

3)字段名字段名称必须用字母开头,采用有特征含义的单词或缩写,不能用双引号包含。

4)主键名前缀为PK_。

主键名称应是前缀+表名+构成的字段名。

如果复合主键的构成字段较多,则只包含第一个字段。

表名可以去掉前缀。

5)外键名前缀为FK_。

外键名称应是前缀+外键表名+主键表名+外键表构成的字段名。

表名可以去掉前缀。

1.2索引1)普通索引前缀为IDX_。

索引名称应是前缀+表名+构成的字段名。

如果复合索引的构成字段较多,则只包含第一个字段,并添加序号。

Oracle数据库设计规范建议

Oracle数据库设计规范建议

Oracle数据库1 数据对象的命名规范1.1 通用规范1.1.1 使用英文:要用简单明了的英文单词,不要用拼音,特别是拼音缩写。

主要目的很明确,让人容易明白这个对象是做什么用的;1.1.2 一律大写,特别是表名:有些数据库,表的命名乃至其他数据对象的命名是大小写敏感的,为了避免不必要的麻烦,并且尊重通常的习惯,最好一律用大写;1.2 数据库对象命名规范1.2.1 表的命名1.2.1.1 表名的前缀:前缀_表名_T。

为表的名称增加一个或者多个前缀,前缀名不要太长,可以用缩写,最好用下划线与后面的单词分开;其目的有这样几个:1.2.1.1.1 为了不与其他项目或者其他系统、子系统的表重名;1.2.1.1.2 表示某种从属关系,比如表明是属于某个子系统、某个模块或者某个项目等等。

表示这种从属关系的一个主要目的是,从表名能够大概知道如何去找相关的人员。

比如以子系统为前缀的,当看到这个表的时候,就知道有问题可以去找该子系统的开发和使用人员;1.2.2 视图命名:相关表名_V(或者根据需要另取名字);1.2.3 程序包命名:程序包名_PKG(用英文表达程序包意义);1.2.4 存储过程命名:存储过程名_PRO(用英文表达存储过程意义);1.2.5 函数命名:函数名称_FUN(用英文表达函数作用);1.2.6 触发器命名:触发器名称_TRI(用英文表达触发器作用);1.2.7 索引命名:表名_字段名_IDX(如果存在多字段索引,取每字段前三个字符加下划线组合,如在 custom, cutting, curtail 上建立联合索引,命名为表名_cus_cut_cur_IDX,如果前三个截取字符相同,就从字段名称中不同的字符开始取三个字符加下划线组合,如在 custid, custom,custname上建立联合索引,就命名为表_tid_tom_tna_IDX;1.2.8 唯一索引命名:表名_字段名_UNI(如果存在多字段唯一索引,取每字段前三个字符加下划线组合,如在 custom, cutting, curtail上建立唯一索引,命名为表名_ cus_cut_cur_UNI,如果前三个截取字符相同,就从字段名称中不同的字符开始取三个字符加下划线组合,如:在 custid, custom,custname上建立唯一索引,命名:表_tid_tom_tna_UNI;1.2.9 主键命名:表名_字段名_PK(如果存在多字段主键,取每字段前三个字符加下划线组合,如在 custom, cutting, curtail上建立主键,命名为表名_cus_cut_cur_PK,如果前三个截取字符相同,就从字段名称中不同的字符开始取三个字符加下划线组合,如在 custid, custom,custname上建立主键,命名:表_tid_tom_tna_PK;1.2.10 外键命名:表名_主表名_字段名_FK;1.2.11 Sequence命名:表名_列名_SEQ(或者根据需要另取名字);1.2.12 Synonym命名:与对应的数据库对象同名;1.2.12 JAVA命名:遵守公司相应的JAVA命名规范;2 SQL的设计和使用2.1 Sql 书写规范2.1.1 尽量不要写复杂的SQL:过于复杂的S QL可以用存储过程或函数来代替,效率更高;甚至如果能保证不造成瓶颈的话,把条SQL拆成多条也是可以的。

Oracle数据库编程规范

Oracle数据库编程规范

密级公开()普通(√)秘密()机密()绝密()Oracle数据库编程规范文档编号:<文档编号(按照文档编码规范)>文档归类:<文档归类>作者:李程扬创建时间:2005-11-14修改时间:2005-11-15版本号:v1.0文档传阅:一、数据库对象创建及命名规范1、数据库字段及对象命名规范a.数据库命名规范与PB编程规范对命名方式的约定可相互参照;b.命名单词间分隔用下划线[_],尽可能使用与业务相匹配的单词或其缩写;c.绝对不允许使用拼音首码及简单数字的命名方式;d.Oracle对于对象或字段名称长度有限制,最多31个字符;2、字段定义及类型说明a.字段定义仅能使用以下类型i.date:日期时间类型,存入日期字段的数据若未指明时间,时间缺省就是[00:00:00];若未指明日期,则日期缺省是[1900-01-01];对于年份[number(4,0)]与月份[number(6,0)]这类数据,一般用number类型定义;ii.number:数值类型,字段所占空间与每一行数据相关,即有多少存多少;要注意其定义小数位是包含在总长度中,如number(12,2)——总长度为12位,其中小数占2位;iii.char:定长字符串类型,不论字符串信息多少都要占用所定义长度的空间,不足的部分用空格填充;对于一些更新操作比varchar2效率高;长度限制为255;iv.varchar2:非定长字符串类型,字符串信息多少就占多少空间,所以对于此类型数据在存入数据库前要去空格,以防止多余空格造成字段关联错误;相比char可节省很多存储空间,某种程序上可提高网络传输效率;长度限制为4000个字符;v.clob:一般存大于4000个字节的字符串信息,如数据窗口的语法;vi.blob:一般存二进制数据,如图片;b.对于字符串类型,除数据固定长度字段(如char(1)、SICK_ID),其它情况都必须使用varchar2类型;c.对于number与varchar2类型,在定义时要预留足够的长度,因为这两种类型都是按实际数据来分配存储空间,这样才能避免数据需求变长,字段长度修改造成程序错误(数据窗字段及数值变量小数位定义);d.应尽量使用number类型定义代码、状态字段;相比char或varchar2,这可最大程度地节省空间,并可显著提度检索效率;当然,同类型已定义的字段,为兼容原先设计,还是必须使用旧的类型定义;e.字段命名约定i.字段名称不必像PB变量使用前缀来标识其数据类型;ii.字段常用后缀如下ID/No表示唯一的序列号标识;其中ID多用于表示对人或物的标识,即指的是一种标志(如Sick_ID);而No多用于对连续号或流水号的标识(如单据号Apply_No)Code 表示项目代码(如项目代码Item_Code)Name 表示名称(如项目名称Item_Name)Class 表示类别(如单据类别Apply_Class)Operator 表示操作员(类型用varchar(27),如Apply_Operator)Time 表示日期或日期时间(如Audit_Time)Dept 表示科室(如开单科室Apply_Dept)Flag 表示标志(字段类型用char(1),值为Y或N)Status 表示状态(字段类型用char(1))iii.常见业务字段名称及类型定义如下3、数据库对象定义说明:创建对象时一定要指定是在哪个模式下面a.表i.下面列出建表步骤(一般在PB6中新建表,再拷出相应建表语法)建表语法创建主键及索引创建同义词对象授权(所有新建对象都必须授权给zhiydba)ii.对于表命名有以下常用后缀_master:主表_detail:细表_record:记录表_dict:系统字典/用户字典_config:用户配置表iii.不推荐使用表外键约束,也不推荐除空值以外的其它约束检查,这类约束判断一般在程序中处理;b.主键:一种特殊的索引i.主键名都是以pk_作为前缀,后面一部分用表名,即pk_+表名ii.所有表都必须创建主键,否则这些表就没办法做更新操作c.索引i.索引名以idx_作为前缀,后面一部分用表名+索引相关列名或其缩写ii.创建索引时一定要记得指明其所在模式(一般与表在同一模式下),这一点程序员常会遗漏;iii.索引也要区分是唯一索引还是可重复索引;iv.要查询的列尽可能创建索引,一般不推荐使用多列组合索引,而应分开建立索引;如病人ID或查询时间字段;另外,用到组合索引时要注意索引列的顺序;v.一个表索引最多不能超过7个,否则会影响数据更新效率,且占用存储空间,即:索引越多、查询效率高、但更新操作慢、存储占用高;vi.对于值内容单一(如只有0与1)或大部分数据是空值的字段不用建索引;对于某些数据量很少的表(如字典),也是不用建索引;d.视图:其命名以v_作为前缀,统一建在zhiydba模式下(可省去授权)e.序列号:其命名以_seq作为后缀,统一建在zhiydba模式下;主要用于数据表的主键字段取唯一值(如单据号),对于字典代码就没必要用序列号;f.同义词:创建相应对象的同义词主要是便于编程(public),做到对象模式无关g.用户:即模式h.函数及存储过程:除非开放接口给其它软件供应商,否则不使用这两类对象,因为包(package)就可代替其功能,并便于分类组织;i.后台包/Java包:不用深入了解,知道有这些东西就可;j.后台任务(Job):后台计划任务执行,通过dba_jobs可查询当前在执行任务;k.触发器:Oracle的触发器一般都认为在事务处理上不安全,所以除非特殊接口,否则不准使用触发器;二、Oracle常用函数1、Oracle的PL/SQL语言是对SQL的过程性语言扩展,当前Oracle的SQL语法遵循SQL92标准;2、完整PL/SQL函数集可查阅\\Research\ZHIS4_Tools\Database\Oracle8i资料\doc\server.816\a76989\toc.htm3、字符串相关函数a.||:字符串合并操作符b.trim:去字符串前后空格,一定要记住存取字符串数都要调用此函数去空格c.substr:截取字符串的一部分内容,也PB的mid函数功能一样d.to_char:将数值型或日期型数据转化为字符类型,如to_char(sysdate,'yyyy-mm-dd hh24:mi:ss')e.lpad/rpad:在串值左/右重复填充指定的字符串,与PB的fill函数功能类似f.upper/lower:字符串都转为大写/小写4、日期相关函数a.+/-:加/减天数操作符b.to_date:将字符串类型数据转为日期型信息,如to_date('2005-11-15','yyyy-mm-dd')c.trunc:去掉时间那部分信息,常用于按日期检索数据d.add_months:增加月份5、数值相关函数:a.to_number:将字符串类型数据转为数值型,如to_number(to_char(operation_time,'yyyymmdd'))要注意,如果待转化数据包含非数字内容,就会报Oracle错误b.trunc:按指定小数位精度截取6、其它函数a.nvl:空值判断,这是很常用的函数;对于PL/SQL的空串与空值是一样的,即在SQL语法中没必要像PB一样判断空串;b.decode:条件分支判断,if elsec.sign:判断数值的符号,可用于>或<判断,常与decode合起来使用;7、伪列:在SQL语法中可以和普通列一样使用a.sysdate:取当前数据库所在服务器的时间——系统时间b.rownum:用于限制检索行数c.rowid:当前检索行的唯一内部定位标识符8、序列号取值:nextval,取序列号的下一数值9、特殊表:dual10、解析表列类型信息的命令:desc(describe)三、Oracle事务处理1、事务概念a.在PB编程中,事务开始于SQL更新操作或行锁,结束于提交(commit)或回滚操作,即一个事务的开始与结束是隐式由系统自动控制;b.在中断任何事务前(如弹出提示框或窗口),一定要把事务提交或回滚;c.注意:任何出错函数都会自动把事务回滚,再弹出相应提示;要注意判断返回值2、并发控制(锁机制/资源争用):多用户操作程序必须会遇到并发问题,数据库系统中一般通过锁来防止并发a.锁类型/锁粒度:PB编程中常用到的是排它锁,而Oracle内部处理一般是共享锁(如update/delete操作)i.行级锁:select for update语法;推荐在程序中使用;ii.表级锁:lock table语法;杜绝在程序中使用表级锁,除非是同一事务中对表的所有数据进行修改操作,否则极易引发数据库阻塞;b.死锁类型i.行间死锁:在不同事务处理中,a行与b行的锁表顺序相反;ii.表间死锁:在不同事务处理中,A表与B表的锁表顺序相反;c.死锁与阻塞:可认为两者是共生的,都源于对数据库资源未能及时释放i.死锁:Oracle对于死锁会在一定时间范围内检测到并自动解锁,但此过程需占有大量资源,大量事务并发死锁时常造成数据库变慢,客户端操作没有响应,严重情况下会引起系统崩溃;若Oracle没能及时解锁,这时数据库就会发生大量阻塞;ii.阻塞:一般是程序事务处理长时间未能提交或回滚,导致事务所占数据库资源未能释放,系统响应时间变量,大量阻塞也会使平常不会出现的行级死锁大量出现,从而使系统陷入资源争用的死循环,除非这时手工干预或引发阻塞的事务释放资源,否则最终结果必然是系统崩溃;iii.系统崩溃:指数据库系统对客户端操作无任何响应,且客户端无法连接;数据库所在服务器(一般是windows2000)对鼠标或键盘操作也无响应,这种情况下只能是重启服务器;四、数据库编程容错1、SQL执行语句容错:任何数据库操作都必须判断是否正确执行(sqlca)a.查询语句错误判断(select/cursor/execute immediate)sqlca.sqlcode:=0(正确),-1(出错),f_sqlerr/sqlca.sqlcode=100b.更新语句错误判断(update/insert/delete)sqlca.sqlcode/sqlnrows:数据更新影响行数,f_sqlerror2、PB程序错误判断a.数据窗口更新错误判断:update(true,false)=1/resetupdateb.数据窗口内部错误处理:dberror事件c.应用级错误:systemerror事件五、SQL执行效率问题1、客户端等待最占用时间的部分就是数据库操作及网络传输,网络问题不是这文档所涉及的,下面主要针对数据库操作讲一些常用优化方法;2、Oracle的SQL语法从提交命令到输出结果一般要经过以下几步:语法分析、语义分析、执行路径分析、……3、Oracle的优化方式:基于规则(base rule)/基于选择(base choose),一般推荐用基于选择(base choose)的优化方式,但可在检索语法中设置特殊的优化方式;4、SQL查询语句优化列举:尽可能利用索引,减少表间关联字段a.关联的字段不能加上使用表达式(函数、计算式等),特殊是修改数据窗口的检索条件时(SetSQLSelect),如:to_char(operation_time,'yyyy-mm-dd')=正确的写书方式应为:selectfrom dispensary_sick_price_itemwhere operation_time >= to_date('2005-11-15','yyyy-mm-dd')and operation_time < to_date('2005-11-16','yyyy-mm-dd');b.特别要注意对于字符型字段与数值参数关联(或反过来数值型字段与字符参数关联),一定要把参数先转化为与字段同样的类型,否则即使字段有建索引也没办法用到,因为Oracle分析SQL语法时会自动把字段加上相应的函数处理以匹配参数;即所有参数类型定义应与所关联字段匹配,或对类型转化要显示在参数中处理;c.多表关联时,尽可能使用主键列;d.尽可能用exists/not exists语法,而不是in/not in语法;一般若子查询数据量较小可用in语法,若子查询行数可能会超过100条,则必须使用exists语法,且Oracle的in语法有最多999行限制;e.尽量使用绑定变量,主要是动态执行的SQL语法(用动态游标),这样可在SQL执行预处理时省却语法分析阶段所占的时间,特别是在循环语句中;f.char和varchar2字段类型关连:i.char与char:不论两字段长度定义如何,都能利用索引;ii.varchar2与varchar2:也与其长度定义无关,但要注意要么后面都没空格,要么空格数量要一致才能用到索引;iii.char与varchar2:除非varchar2字段空格补足到与char定义长度一样,否则没办法用到索引;g.对于大数据量表新建索引时,一定要记得分析索引analyze index comm.PK_IC_CARD_DEPOSIT(索引名) compute statistics;5、判断SQL执行情况的方法:可通过在SQLPlus设置以下命令,然后执行所要分析的SQL语法,就可以得到其执行路径与执行时间等信息set autotrace on/set autotrace traceonly(不显示所检索的数据)set timing on6、大幅提高批量数据处理效率的方法——后台包,如床位计价、每日报表基表数据生成等;对于一些医院业务高峰常用模块(如住院摆药、单据扣费等)也常把这类业务写在后台包中处理;7、数据库连接接口:正常情况下都是使用PB原生Oracle接口,且按其客户端配置尽可能用高版本的Oracle客户端;六、数据库操作安全问题1、不准在PB的数据库管理窗口中执行SQL更新语法,必须在sqlplus执行,这样才能判断执行结果,防止更新语法写错(如where条件写漏了),以决定提交(commit)还是回滚(rollback);2、更新数据前先用相同条件的select语法查看,且把检索出的数据导出备份(用PB或程序员助手),以便出错时恢复数据(很有中能SQL语法没错,但需求是错的);3、除非是清库才使用truncate table语法(直接提交,无法回滚,且无数据库日志),否则删除所有数据只能使用delete from 语法;七、数据库管理相关1、Oracle数据库文件a.初始化文件:initzhis4.ora与spfilezhis4.ora(Oracle9i才有)b.密码文件:可用命令orapwd创建c.控制文件:control filed.数据文件:Oracle系统文件、临时表空间文件、回滚段数据文件、用户数据文件e.日志文件:在线日志与归档日志2、手工启动/关闭数据库实例a.启动实例(初始化文件):startup nomount->alter database mountb.启动实例(控制文件):startup mount->alter database openc.启动实例(数据文件):startup/startup opend.关闭实例:shutdown immediate3、数据库备份机制:a.[硬件]双机热备b.[软件]文件备份(在线热备/离线冷备)c.[软件]导出备份(全库导出/增量导出)4、重建数据库相关(详细步骤参见创建数据库步骤.txt)a.修改数据库实例名:创建实例,init文件实例参数修改,重建控制文件b.数据库文件路径修改:init文件控制文件路径修改,重建控制文件c.实例名与数据库文件路径都不变:拷到相同目录,直接启动。

oracle,外键命名规范

oracle,外键命名规范

竭诚为您提供优质文档/双击可除oracle,外键命名规范篇一:数据库(oracle)命名规范命名规范(oracle数据库)1表命名命名最好望文生义,避免使用数据库关键词命名一律为大写字母(不要大下写混合)英文单词单数命名.例:FactoRy 英文单词缩写命名.例:dept英文单词之间用下划线连结,且每个单词皆为单数.例:task_Result用来存储历史资料,命名以histoRy结尾.例:task_his用来存储日志资料,命名以log结尾.例:task_log用来存储类别资料,命名以type结尾.例:task_type2表字段命名最好望文生义,避免使用数据库关键词英文单词单数命名.例:mail英文单词缩写命名.例:dept_id英文单词之间用下划线连结,且每个单词皆为单数.例:useR_name字段用来存储流水号,命名以id结尾.例:task_id字段用来存储代码,命名以no结尾.例:task_no字段用来存储类别,命名以type结尾.例:station_type字段用来存储名称,命名以name 结尾.例:enduseR_name字段用来存储描述,命名以desc结尾.例:station_desc字段用来存储代码,命名以code结尾.例:eRRoR_code字段用来存储标志,命名以Flag开头.例:debug_Flag3索引命名以表名+index+两位流水号(01~99).例:enduseR_index014键值主键命名以表名+pk+一位流水号(1~9).例:dept_pk1附键命名以表名+ak+一位流水号(1~9).例:dept_ak1外键命名以表名+Fk+一位流水号(1~9).例:dept_Fk1检查条件以表名+ck+一位流水号(1~9).例:dept_ck15视图命名以V_开头例:V_dept其它规则参考资料表命名规则6触发器以表名+tR+一位流水号(1~9)命名.例:dept_tR17存储过程命名以pc开头实现单一资料表交易功能,以pc+表名命名.例:pc_line实现关联资料表交易功能,以pc+功能命名.例:pc_getdata命名需让人明白其主要功能8函数检查功能的函数,以is+检查项目命名.例:boolischarValid(char)获取资料功能的函数,以get+数据项命名.例:stringgetlineno(char)设定资料功能的函数,以set+数据项命名.例:intsetlineno(char)9序列命名以seq开头以表的字段名命名.例:seq_line_id若与其它表的字段名相同,则以表名+字段名命名.例:seq_code_type_id10表空间存储资料的命名为项目名称.例:cRm存储索引的命名为项目名称+idx.例:cRmidx存储历史的命名为项目名称+old.例:cRmold存储临时的命名为项目名称+log.例:cRmlog.11数据文件命名以所属表空间开头+两位流水号(01~99)+.oRa.例:cRm01.oRa12包命名以功能缩写开头+pkg+流水号(1~9).例:cRmpkg1篇二:oRacle对象命名规范oracle对象命名规范(试用稿)20xx年4月修改说明正文目录1引言................................................. ................................................... .....................41.11.21.32目的................................................. ................................................... ..............4范围................................................. ................................................... ..............4参考资料................................................. ................................................... (4)国网标准化命名规范.............................................................................................42.12.2 2.32.42.5基本原则................................................. ................................................... ......4实体(表)的英文命名规则................................................. .........................4属性(列)的英文命名规则................................................. .........................5主键的英文命名规则................................................. .....................................6外键的英文命名规则................................................. . (6)3内部补充命名规范................................................. ..............错误!未定义书签。

ORACLE数据库设计规范

ORACLE数据库设计规范

1命名原则1.1约定ü是指对数据库、数据库对象如表、字段、索引、序列、存储过程等的命名约定;ü命名使用富有意义的英文词汇,尽量避免使用缩写,多个单词组成的,中间以下划线分割ü避免使用Oracle的保留字如LEVEL、关键字如TYPE(见Oracle保留字和关键字);ü各表之间相关列名尽量同名;ü除数据库名称长度为1-8个字符,其余为1-30个字符,Database link名称也不要超过30个字符;ü命名只能使用英文字母,数字和下划线;1.2表名规则如下:命名规则为xxx_yyy_TableName。

xxx表示开发公司的名称,最多五个字母构成,尽量用简称;yyy表示子系统中的子模块的名称(可以没有), 最多五个字母构成,尽量用简称;TableName为表含义, 最多十个字母构成,尽量用简称TableName规则如下:ü使用英文单词或词组作为表名,不得使用汉语拼音ü用名词和名词短语作表名ü不使用复数正确的命名,例如:fiber_sys_userfiber_biz_order1.3存储过程规则如下:命名规则为xxx_yyy_StoredProcedureName。

xxx表示开发公司的名称,最多五个字母构成,尽量用简称;yyy表示子系统中的子模块的名称(可以没有), 最多五个字母构成,尽量用简称;StoredProcedureName为存储过程含义,最多十个字母构成,尽量用简称StoredProcedureName规则如下:ü用动词或动词短语来命名,并带有宾语ü需要符合用Pascal 命名规则。

ü尽量谨慎地使用缩写ü尽量不要和关键字重合ü不要用任何名前缀(例如U,B)üStoredProcedureName内不使用下划线ü当操作依赖条件时,一般结尾使用By+条件存储过程正确的命名,例如:sys_InsertUsersys_SearchUserByUserIDsys_DeleteUserByUserID1.4视图规则如下:ü视图的命名采用xxx_yyy_ViewName_v。

oracle命名规则

oracle命名规则

oracle命名规则一、概述Oracle命名规则是指在Oracle数据库中定义各种对象(如表、列、索引、约束等)时所遵循的命名规范。

合理的命名规则可以提高数据管理的效率,降低出错率,使数据库更易于维护和管理。

二、命名规则的基本原则1. 命名应该简洁明了,易于理解和记忆。

2. 命名应该准确反映对象的含义和作用。

3. 命名应该避免使用特殊字符和空格,以免造成不必要的麻烦。

4. 命名应该遵循大小写敏感原则。

三、表命名规则1. 表名应该用单数形式,并且尽量简短明了。

2. 表名应该准确反映表内数据的含义和作用。

3. 表名中可以使用下划线分隔单词,但不建议过多使用。

四、列命名规则1. 列名应该用小写字母,并且尽量简短明了。

2. 列名应该准确反映列内数据的含义和作用。

3. 列名中可以使用下划线分隔单词,但不建议过多使用。

五、索引命名规则1. 索引名称应以“IDX_”开头,后面跟上表名和列名,以便于识别。

2. 索引名称应该用小写字母,并且尽量简短明了。

3. 索引名称中可以使用下划线分隔单词,但不建议过多使用。

六、约束命名规则1. 约束名称应以“PK_”或“FK_”开头,分别代表主键和外键。

2. 约束名称应该用小写字母,并且尽量简短明了。

3. 约束名称中可以使用下划线分隔单词,但不建议过多使用。

七、存储过程和函数命名规则1. 存储过程和函数名称应该用大写字母,并且尽量简短明了。

2. 存储过程和函数名称应该准确反映其功能和作用。

3. 存储过程和函数名称中可以使用下划线分隔单词,但不建议过多使用。

八、包命名规则1. 包名称应该用大写字母,并且尽量简短明了。

2. 包名称应该准确反映其功能和作用。

3. 包名称中可以使用下划线分隔单词,但不建议过多使用。

九、触发器命名规则1. 触发器名称应该用大写字母,并且尽量简短明了。

2. 触发器名称应该准确反映其功能和作用。

3. 触发器名称中可以使用下划线分隔单词,但不建议过多使用。

十、总结Oracle命名规则是数据库管理中不可或缺的一部分,良好的命名规则可以提高数据管理的效率和准确性。

oracle列名命名规则

oracle列名命名规则

oracle列名命名规则Oracle列名命名规则如下:
1. 列名必须以字母开头,可以有数字、下划线和美元符号。

2. 列名长度不能超过30个字符。

3. 列名必须唯一。

4. 列名不能是Oracle保留字。

5. 列名应该清晰、简洁、易于理解和识别。

6. 列名应该使用英文单词,避免使用缩写和简写。

7. 列名最好不要包含空格或特殊字符,虽然Oracle可以支持这样的列名,但不建议使用。

8. 列名区分大小写,因此MY_COLUMN和my_column是不同的列名。

9. 列名应该与表名一起使用,以便更好地表达表中数据的含义。

例如,如果有一个表CUSTOMERS,那么列名应该以该表为前缀,如CUSTOMER_ID、CUSTOMER_NAME等。

数据库(Oracle)命名规范

数据库(Oracle)命名规范

命名规范(Oracle数据库)1表命名●命名最好望文生义,避免使用数据库关键词●命名一律为大写字母(或小写,不要大下写混合)●英文单词单数命名.例:FACTORY●英文单词缩写命名.例:DEPT●英文单词之间用下划线连结,且每个单词皆为单数.例:TASK_RESULT●用来存储历史资料,命名以HISTORY结尾.例:TASK_HISTORY●用来存储日志资料,命名以LOG结尾.例:TASK_LOG●用来存储类别资料,命名以TYPE结尾.例:TASK_TYPE2表字段●命名最好望文生义,避免使用数据库关键词●英文单词单数命名.例:MAIL●英文单词缩写命名.例:DEPT_ID●英文单词之间用下划线连结,且每个单词皆为单数.例:USER_NAME●字段用来存储流水号,命名以ID结尾.例: TASK_ID●字段用来存储代码,命名以NO结尾.例: TASK_NO●字段用来存储日期,命名以DATE结尾.例:CREATE_DATE●字段用来存储数量,命名以QTY结尾.例:PLAN_QTY●字段用来存储类别,命名以TYPE结尾.例:STATION_TYPE●字段用来存储名称,命名以NAME结尾.例:ENDUSER_NAME●字段用来存储描述,命名以DESC结尾.例:STATION_DESC●字段用来存储代码,命名以CODE结尾.例:ERROR_CODE●字段用来存储标志,命名以FLAG开头.例:DEBUG_FLAG3索引命名以表名+ INDEX+两位流水号(01~99).例:ENDUSER_INDEX014键值●主键命名以表名+PK+一位流水号(1~9).例:DEPT_PK1●附键命名以表名+AK+一位流水号(1~9).例:DEPT_AK1●外键命名以表名+FK+一位流水号(1~9).例:DEPT_FK1●检查条件以表名+CK+一位流水号(1~9).例:DEPT_CK15视图●命名以V_开头例:V_DEPT●其它规则参考资料表命名规则6触发器以表名+TR+一位流水号(1~9) 命名.例:DEPT_TR17存储过程●命名以PC开头●实现单一资料表交易功能,以PC+表名命名.例:PC_LINE●实现关联资料表交易功能,以PC+功能命名.例:PC_GETDATA●命名需让人明白其主要功能8函数●检查功能的函数,以Is+检查项目命名.例:bool IsCharValid(char)●获取资料功能的函数,以Get+数据项命名.例:string GetLineNo(char)●设定资料功能的函数,以Set+数据项命名.例:int SetLineNo(char)9序列●命名以SEQ开头●以表的字段名命名.例: SEQ_LINE_ID●若与其它表的字段名相同,则以表名+字段名命名.例:SEQ_CODE_TYPE_ID 10表空间●存储资料的命名为项目名称.例:CRM●存储索引的命名为项目名称+IDX.例:CRMIDX●存储历史的命名为项目名称+OLD.例:CRMOLD●存储临时的命名为项目名称+LOG.例:CRMLOG.11数据文件命名以所属表空间开头+两位流水号(01~99)+.ORA.例:CRM01.ORA 12包命名以功能缩写开头+PKG+流水号(1~9).例:CRMPKG113用户●项目管理者以项目名称命名.例:CRM●开发者通用名称DEVELOPER●初学者通用名称BEGINNER。

数据库对象命名规范

数据库对象命名规范

1数据库对象命名规范1.1基本命名原则以下基本原则适用于所有数据库对象命名,如无特别说明则为强制规范。

Ø规范:遵循行业规范当有相关国家/行业强制性数据结构标准规范存在时,用于存储某业务数据的业务表在表名命名上原则上应该遵从标准规定,其表中相关字段的中文名称(即数据项名称)若标准规范上有规定的应遵循规定。

此外,若标准规范上对数据项的类型、长度有规定的,原则上也应当遵循或保证能直接兼容保存和访问。

Ø规范:字母全部大写原则所有数据库对象命名字母全部大写。

Oracle对大小写不敏感,但是有些数据库对大小写敏感,统一大写有助于在多个数据库间移植。

Ø规范:字符范围原则只能使用英文字母、下划线、数字进行命名,首位字符必须是英文字母。

Ø规范:分段命名原则命名中多个单词间采用下划线分隔,以便阅读同时方便某些工具对数据库对象的映射。

如XXX_XXX_XXX,但不限于三段式。

Ø规范:勿用保留词数据库对象命名不能直接使用数据库保留关键字,但分段中可以使用。

如USER不能用于表名、列名等,但是USER_NAME可以用于列名,USER_INFO也可以用于表名。

详细保留关键字请参见最后第6.1节,保留字。

Ø规范:简单命名原则命名尽可能简单,避免太长的命名,尽量使用缩写形式,但是缩写也要能够表达命名的含义。

数据库对象命名总长度不得超过30字节,以免超过数据库命名长度限制(Oracle有30的限制,Mysql为64,SQL SERVER也是64)。

建议每个单词分段长度不要超过6位。

Ø建议:富有含义原则数据库对象命名通常用能表示其内容或者含义的英文单词或其缩写表示也可用其中文名称各字词的拼音首写字母或者拼音简写方式表示。

数字应尽量避免使用。

此外在公安行业,对于业务表上表示业务属性的字段名(即字段英文名)的命名,业内普遍默认的规范通常是以其中文名称的每个汉字拼音首字母组成。

ORACLE对象命名规范

ORACLE对象命名规范

Oracle对象命名规范(试用稿)2020年5月修改说明正文目录1引言............................................ 错误!未定义书签。

目的......................................... 错误!未定义书签。

范围......................................... 错误!未定义书签。

参考资料..................................... 错误!未定义书签。

2国网标准化命名规范.............................. 错误!未定义书签。

基本原则..................................... 错误!未定义书签。

实体(表)的英文命名规则..................... 错误!未定义书签。

属性(列)的英文命名规则..................... 错误!未定义书签。

主键的英文命名规则........................... 错误!未定义书签。

外键的英文命名规则........................... 错误!未定义书签。

3内部补充命名规范................................ 错误!未定义书签。

表分区(P ARTITION)........................... 错误!未定义书签。

索引(I NDEX) ................................ 错误!未定义书签。

视图(V IEW)................................. 错误!未定义书签。

物化视图(M ATERIALIZED V IEW)................... 错误!未定义书签。

临时表....................................... 错误!未定义书签。

Oracle数据库使用及命名规则的详解

Oracle数据库使用及命名规则的详解

Ekw719公司已建立的或待建立的网站,如:中文站(CHINA),国际站(ALIBABA),华商站(CHINESE)等。

OLPSOnline process system,在线处理系统,即我们的会员可以浏览的网站所连接的数据库,也是我们所说的前台。

BOPSBack Office process system,后台处理系统,即我们的网站的发布系统。

BZOBusiness Object(?),公司网站低层JAVA对象,主要负责与数据库打交道。

一、命名约定1.是指数据库、数据库对象如TABLE、SEQUENCE、PROCEDURE、COLUMN等的命名约定;2.命名富有意义英文词汇,除个别通用的(见列表),要避免使用缩写),多个单词组成的,中间以下划线分割;3.除数据库名称长度为1-8个字符,其余为1-30个字符,Database link名称也不要超过30个字符;4.命名只能使用英文字母,数字和下划线;'Ekw719'>5.避免使用Oracle的保留字如level、关键字如type(见列表);6.名表之间相关列名尽量同名;7.数据库的命名:网上数据库命名为“OLPS”+表示站点(SITE,以下同)的2-4个字符,后台数据库命名为“BOPS”+表示站点的2-4个字符。

测试数据库命名为“OLPS|BOPS”+“TEST”,开发数据库命名为“OLPS|BOPS”+“TEST”,用模式(SCHEMA/USER)的不同来区分不同的站点。

8.INDEX命名:table_name+column_name+index_type(1 byte)+idx,各部分以下划线(_)分割。

多单词组成的column name,取前几个单词首字母,加末单词组成column_name。

如:sample表member_id上的index: sample_mid_idx news表title上的unique index:news_titile_uidx;9.SEQUENCE命名:seq_+table_name;二、注释说明1.本注释说明主要用于PL/SQL程序及其它SQL文件,其它可作参考;2.SQLPLUS接受的注释有三种:――这儿是注释/*这儿是注释*/REM这儿是注释3.开始注释,类似JAVAK中的开始注释,主要列出文件名,编写日期,版权说明,程序功能以及修改记录:REMREM$Header: filename, version, created date,autherREMREM CopyrightREMREM FUNCTIONREM function explanationREMREM NOTESREMREM MODIFIED(yy/mm/dd)REM who when - for what, recently goes first4.块注释,如表注释,PROCEDURE注释等,同JAVA:/** This table is for TrustPass* mainly store the information* of TrustPass members*/5.单行注释,如列注释:login_id VARCHAR2(32) NOT NULL, -- 会员标识三、缩进低级别语句在高级别语句后的,一般缩进4个空格:DECLAREv_MemberId VARCHAR2(32),BEGINSELECT admin_member_id INTO v_MemberIdFROM companyWHERE id = 10;DBMS_OUTPUT.PUT_LINE(v_MemberId);END;同一语句不同部分的缩进,如果为sub statement,则通常为2个空格,如果与上一句某部分有密切联系的,则缩至与其对齐:BEGINFOR v_TmpRec IN(SELECT login_id,gmt_created, -- here indented as column abovesatusFROM member -- sub statementWHERE site = 'china'AND country='cn' )LOOPNULL;END LOOP;END;四、断行一行最长不能超过80字符∙同一语句不同字句之间∙逗号以后空格∙其他分割符前空格SELECT offer_name||','||offer_count as offer_category,idFROM categoryWHERE super_category_id_1 = 0;五、大小写属于ORACLE的关键字大小,表名、列名等小写。

Oracle数据库命名规范

Oracle数据库命名规范

命名规范(Oracle数据库)1表命名●命名最好望文生义,避免使用数据库关键词●命名一律为大写字母(不要大下写混合)●英文单词单数命名.例:FACTORY●英文单词缩写命名.例:DEPT●英文单词之间用下划线连结,且每个单词皆为单数.例:TASK_RESULT●用来存储历史资料,命名以HISTORY结尾.例:TASK_HIS●用来存储日志资料,命名以LOG结尾.例:TASK_LOG●用来存储类别资料,命名以TYPE结尾.例:TASK_TYPE2表字段●命名最好望文生义,避免使用数据库关键词●英文单词单数命名.例:MAIL●英文单词缩写命名.例:DEPT_ID●英文单词之间用下划线连结,且每个单词皆为单数.例:USER_NAME●字段用来存储流水号,命名以ID结尾.例: TASK_ID●字段用来存储代码,命名以NO结尾.例: TASK_NO●字段用来存储类别,命名以TYPE结尾.例:STATION_TYPE●字段用来存储名称,命名以NAME结尾.例:ENDUSER_NAME●字段用来存储描述,命名以DESC结尾.例:STATION_DESC●字段用来存储代码,命名以CODE结尾.例:ERROR_CODE●字段用来存储标志,命名以FLAG开头.例:DEBUG_FLAG3索引命名以表名+ INDEX+两位流水号(01~99).例:ENDUSER_INDEX014键值●主键命名以表名+PK+一位流水号(1~9).例:DEPT_PK1●附键命名以表名+AK+一位流水号(1~9).例:DEPT_AK1●外键命名以表名+FK+一位流水号(1~9).例:DEPT_FK1●检查条件以表名+CK+一位流水号(1~9).例:DEPT_CK15视图●命名以V_开头例:V_DEPT●其它规则参考资料表命名规则6触发器以表名+TR+一位流水号(1~9) 命名.例:DEPT_TR17存储过程●命名以PC开头●实现单一资料表交易功能,以PC+表名命名.例:PC_LINE●实现关联资料表交易功能,以PC+功能命名.例:PC_GETDATA●命名需让人明白其主要功能8函数●检查功能的函数,以Is+检查项目命名.例:bool IsCharValid(char)●获取资料功能的函数,以Get+数据项命名.例:string GetLineNo(char)●设定资料功能的函数,以Set+数据项命名.例:int SetLineNo(char)9序列●命名以SEQ开头●以表的字段名命名.例: SEQ_LINE_ID●若与其它表的字段名相同,则以表名+字段名命名.例:SEQ_CODE_TYPE_ID 10表空间●存储资料的命名为项目名称.例:CRM●存储索引的命名为项目名称+IDX.例:CRMIDX●存储历史的命名为项目名称+OLD.例:CRMOLD●存储临时的命名为项目名称+LOG.例:CRMLOG.11数据文件命名以所属表空间开头+两位流水号(01~99)+.ORA.例:CRM01.ORA 12包命名以功能缩写开头+PKG+流水号(1~9).例:CRMPKG1。

(O管理)DO数据库命名编码规范

(O管理)DO数据库命名编码规范

(O管理)DO数据库命名编码规范文件标识:QD-30-08密级:内部版本号:Ver1.0大庆金桥软件开发作业体系Oracle数据库命名编码规范变更历史目录1.文档介绍41.1文档目的41.2文档范围41.3定义41.4参考资料42.命名规范42.1一般规则42.2对象命名汇总表53.编码规范63.1一般性规定63.2CREATE语句73.3SELECT语句73.4INSERT语句83.5UPDATE语句83.6DELETE语句93.7游标语句93.8IF语句93.9简单循环语句113.10FOR循环语句113.11WHILE循环语句11 3.12程序块规范123.13语法规范124.设计规范144.1一般表设计144.2特殊表设计原则15 4.3索引设计原则15 4.4完整性设计原则15 4.5触发器154.6视图设计154.7性能优化165.书写规范205.1缩进风格205.2空格及换行206.注释说明216.1一般性注释216.2函数文本注释217.异常规范227.1PL/SQL异常规范227.2后台验证异常信息规范238.附录238.1附一开发工具238.2附二预定义异常248.3附三范式258.3.1第一范式258.3.2第二范式258.3.3第三范式258.3.4Boyce-Codd范式268.3.5第四范式268.3.6第五范式268.3.7反规范化261.文档介绍1.1文档目的本文档用于指导开发设计人员对Oracle数据库进行设计和编码。

使用统一的命名和编码规范,使数据库对象命名及编码风格标准化,可增加程序的可读性,增强系统的可维护性,提高软件的质量。

本文档仅仅针对Oracle数据库做的规范,对其他数据库不具有指导意义。

1.2文档范围本规范适用于公司范围内所有以Oracle作为后台数据库的应用系统和项目开发工作。

对公司2010年以前用Oracle数据库开发的项目不做限制。

1.3定义无1.4参考资料2.命名规范2.1一般规则Oracle中的各种数据对象,包括实例、数据库、表空间、表、视图、存储过程、函数、解发器等的命名都要遵循Oracle的标准命名规则:1)以字符打头,30个字符以内,名称超过长度的情况下适当采用缩写。

ORACLE数据库命名编码规范

ORACLE数据库命名编码规范

ORACLE 数据库命名编码规范1、编写目的使用统一的命名和编码规范,使数据库命名及编码风格标准化,以便于阅读、理解和继承,在实现业务功能的同时具有较佳的运行性能。

2、适用范围本规范适用于公司范围内所有以ORACLE 作为后台数据库的应用系统和项目开发工作。

3、对象命名规范应遵守的通用规则1、必须使用拼写正确的英文单词。

不允许使用汉语拼音或者其他首拼等缩写。

2、词汇必须完整。

不允许使用随意的简写形式。

3、如果名字代表复数意义,应使用其正确的复数形式。

4、约定俗成的字母缩写,可作为一个单词使用。

5、应尽量将标志符的意义描述清楚。

即使用一个以上的单词来表示一项内容。

6、所有的对象名都是大写3.1数据库和SID1、全局数据库名和例程SID 名要求一致2、数据库名定义为系统+功能名称,例如核心业务生产,可以命名为lisprod3、因SID名只能包含字符和数字,所以全局数据库名和SID 名中不能含有“_”等字符3.2表空间建议在表空间的命名前面统一加上系统名,比如一个数据库有多个系统的DATA的情况下1、面向用户的专用数据表空间以系统名_用户名++DATA 命名,如AUD 用户专用数据表空间可命名为PI_AUD_DATA(PI表示个险)2、面向用户的专用索引表空间以系统名_用户名+_+IDX 命名3、面向用户的专用临时表空间以系统名_用户名+_+TMP 命名4、面向用户的专用回滚段表空间以系统名_用户名+_+RBS 命名5、面向应用的表空间以系统名_应用名+_DATA/系统名_应用名+_IDX/系统名_应用名+_TMP/应用名+_RBS 命名6、 LOB 段数据专用表空间以其数据表空间+_+LOBS 命名,如上例中数据表空间为AUD_DATA,则LOB 段表空间可命名为AUD_DATA_LOBS7、表空间文件表空间文件命名以表空间名+两位数序号(序号从01 开始)组成,如AUD_DATA01 等3.3表3.3.1表和视图的命名表要存放在所对应的表空间下,命名的时候可以加上表空间的简称, 表命名要遵循以下原则1、一般表采用模块名+_+表义名” 格式构成2、若数据库中只含有单个模块,命名可采用“表义名”格式构成3、模块名或表义名均以其英文的字符命名,4、表别名命名规则:取表义名的前3 个字符加最后一个字符。

oracle命名规范

oracle命名规范

1、编写目的使用统一的命名和编码规范,使数据库命名及编码风格标准化,以便于阅读、理解和继承。

2、适用范围本规范适用于公司范围内所有以ORACLE作为后台数据库的应用系统和项目开发工作。

3、对象命名规范3.1 数据库和SID数据库名定义为系统名+模块名Ø全局数据库名和例程SID名要求一致Ø因SID名只能包含字符和数字,所以全局数据库名和SID名中不能含有“_”等字符3.2 表相关3.2.1 表空间Ø面向用户的专用数据表空间以用户名+_+data命名,如Aud用户专用数据表空间可命名为Aud_dataØ面向用户的专用索引表空间以用户名+_+idx命名Ø面向用户的专用临时表空间以用户名+_+tmp命名Ø面向用户的专用回滚段表空间以用户名+_+rbs命名Ø面向应用的表空间以应用名+_data/应用名+_idx/应用名+_tmp/应用名+_rbs命名ØLOB段数据专用表空间以其数据表空间+_+lobs命名,如上例中数据表空间为Aud_data,则LOB段表空间可命名为Aud_data_lobs3.2.2 表空间文件表空间文件命名以表空间名+两位数序号(序号从01开始)组成,如Aud_data01等3.2.3 表表命名要遵循以下原则:Ø一般表采用“系统名+t_+模块名+_+表义名”格式构成Ø若数据库中只含有单个模块,命名可采用“系统名+t_+表义名”格式构成Ø模块名或表义名均以其汉语拼音的首字符命名,表义名中汉语拼音均采用小写,且字符间不加分割符;Ø表别名命名规则:取表义名的前3个字符加最后一个字符。

如果存在冲突,适当增加字符(如取表义名的前4个字符加最后一个字符等)Ø临时表采用“系统名+t_tmp_+表义名”格式构成Ø表的命名如dft_gy_cbap:系统名(电费df)+t_+模块名(高压gy)+_+表义名(抄表安排cbap)dft_cbbj: 系统名(电费df)+t_+表义名(抄表标记cbbj)dft_tmp_hj: 系统名(电费df)+tmp+表义名(合计hj)(此处为临时表)Ø关联表命名为Re_表A_表B,Re是Relative的缩写,表A和表B均采用其表义名或缩写形式。

oracle命名参数

oracle命名参数

oracle命名参数Oracle命名参数是一种在编程中常用的技术,它能够提高代码的可读性和可维护性。

在本文中,我们将详细介绍Oracle命名参数的使用方法和注意事项。

一、什么是Oracle命名参数Oracle命名参数是一种使用参数名称来传递参数值的方法,相比于按位置传递参数值,它更加直观和易于理解。

在Oracle中,可以在存储过程、函数、触发器等对象中使用命名参数。

二、Oracle命名参数的使用方法在Oracle中,可以通过在参数前加上冒号(:)来表示该参数是一个命名参数。

例如,下面是一个使用命名参数的示例:```sqlCREATE OR REPLACE PROCEDURE calculate_total_price(p_product_name IN VARCHAR2,p_quantity IN NUMBER,p_price_per_unit IN NUMBER,p_discount_rate IN NUMBER DEFAULT 0.1,p_total_price OUT NUMBER) ISBEGINp_total_price := p_quantity * p_price_per_unit * (1 -p_discount_rate);END;```在上述示例中,参数p_product_name、p_quantity、p_price_per_unit、p_discount_rate和p_total_price都是命名参数。

其中,p_product_name、p_quantity和p_price_per_unit 是输入参数,p_discount_rate是一个带有默认值的输入参数,p_total_price是一个输出参数。

通过使用命名参数,我们可以清晰地知道每个参数的作用和含义。

三、Oracle命名参数的优势使用Oracle命名参数有以下几个优势:1. 提高代码的可读性:通过使用命名参数,可以清楚地知道每个参数的作用和含义,提高代码的可读性和可维护性。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Oracle对象命名规范(试用稿)2020年6月修改说明版本号编写日期摘要作者0.1 2010-05-27 初稿,未评审稿徐峻1.0 2010-06-30 评审稿徐峻正文目录1引言 (4)1.1目的 (4)1.2范围 (4)1.3参考资料 (4)2国网标准化命名规范 (4)2.1基本原则 (4)2.2实体(表)的英文命名规则 (4)2.3属性(列)的英文命名规则 (5)2.4主键的英文命名规则 (6)2.5外键的英文命名规则 (6)3内部补充命名规范................................................................. 错误!未定义书签。

3.1表分区(P ARTITION) (6)3.2索引(I NDEX) (6)3.3视图(V IEW) (6)3.4物化视图(M ATERIALIZED V IEW) (6)3.5临时表 (7)3.6触发器(T RIGGER) (7)3.7过程(P ROCEDURE) (7)3.8函数(F UNCTION) (7)3.9包(P ACKAGE &P ACKAGE B ODY) (7)3.10序列发生器(S EQUENCE) (7)3.11数据链接(D ATABASE L INK) (7)3.12类型(T YPE &T YPE B ODY) (8)3.13角色(R OLE) (8)3.14目录(D IRECTORIE) (8)3.15表空间(T ABLESPACE) (8)4附录 (8)4.1常用缩写简表 (8)1引言1.1目的本规范的目的是让数据库设计人员,在进行数据库对象设计时,确保命名的标准化、规范化。

通过建立命名规范,促使每个设计人员养成良好的习惯,提高对象的可识别性,促进团队交流和新员工的学习,以保证软件产品的质量。

1.2范围本规范应用于高阳金信公司电力服务中心使用到Oracle数据库的软件开发项目。

本规范适用人员包括电力服务中心所有软件开发人员,在整个软件设计开发过程中必须遵循此规范。

1.3参考资料《电力用户用电信息采集系统主站软件标准化设计》2命名规范2.1基本原则规范的命名能使对象更易阅读,可以提供一些标识功能方面的信息,有助于更好的理解其用途。

特别是加前缀的命名方式可以为数据库对象的管理和浏览带来极大便利,同时也能清晰地与其他工具建立的对象进行区别。

2.2表(Table)1)表的命名采用英文与下划线组合的命名规则。

表名的长度一般不允许超过20个字符。

要求使用英文,不能使得拼音,英文单词的字母要求大写,多个单词间用下划线连接,"_"。

关联表命名规则为:前缀_RELA_表A_表B。

采用的英文单词应尽量为常用单词,英文单词过长时,可以采用适当的简写(一般是前4个字符),如果CODE仅有一个单词,要求不使用缩写,而是采用完整的单词。

一般下划线不应多于四个。

示例:表命名规则:“前缀”+“_”+“英文单词”+“_”+“英文单词”+“_”+“英文单词”其中前缀为主题域的简写。

2)词意准确性要尽可能采用专业词汇和国际标准词汇,包括:IEC通用电力标准、中国电力行业标准、国际会计标准协会 IASB 国际会计准则等通用行业术语。

3)高频词汇优先原则如遇多个单词均可反映表的内容,要求采用 GOOGLE 的标准译法,也就是使用频率最多的单词优先选用原则。

已规定的表前缀见下表:缩写全字说明B_ Business 内部业务相关C_ customer 客户域及计量点相关D_ device资产域E_ 曲线数据,历史数据G_ grid 电网域,(另包含需要保留的旧版本表)O_ organization 组织域R_ 采集点相关S_ System 系统相关2.3列/字段(Column)1)字段命名采用英文与下划线组合的命名规则。

字段名的长度一般不允许超过15个字符,个别的字段名的长度可以达到20,但不允许超过20。

英文单词的字母要求大写,多个单词间用下划线连接,"_"。

采用的英文单词应尽量为常用单词,英文单词过长时,可以采用适当的简写(一般是前4个字符),复杂的词组取各个单词的首字母拼成一个简写单词,如果CODE仅有一个单词,要求不使用缩写,而是采用完整的单词,一般下划线不应多于四个。

示例:字段命名规则:“英文单词”_“英文单词”2)词意准确性要尽可能采用专业词汇和国际标准词汇,包括:IEC通用电力标准、中国电力行业标准、国际会计标准协会 IASB 国际会计准则等通用行业术语。

通用CODE的选用,要尽可忠实地反映实体的内容,并注意细微区别,如:TYPE表示类型,MODEL表示型号,CATEGORY表示分类,NO 表示编号,CODE 表示编码,ID 表示标识。

3)高频词汇优先原则如遇多个单词均可反映实体的内容,要求采用 GOOGLE 的标准译法,也就是使用频率最多的单词优先选用原则。

2.4主键约束一般采用PK_加实体名的命名规则,如:客户实体(CUSTOMER)的主键为PK_CUSTOMER 。

2.5外键约束一般采用“FK_子表_主表_主键”的命名规则,用电户(CONSUMER)的引用为FK_CONSUMER_CUSTOMER_ID 。

2.6唯一性约束一般采用“UN_实体名”的命名规则,如:客户实体(CUSTOMER)的唯一键为UN_CUSTOMER 。

2.7表分区(Partition)➢表分区命名:P分区名,如PMAX,PMIN,P201005。

➢子分区命名:父分区名_SP_区域缩写,根据实际情况进行组合。

2.8索引(Index)➢B-TREE索引命名:IDX_表名_字段组合,如命名太长则:IDX_表名_首字段。

➢BITMAP索引命名:BIT_表名_字段组合,如命名太长则:BIT_表名_首字段。

➢分区NORMAL索引命名:LOC_表名_字段组合,如命名太长则:LOC_表名_首字段。

➢分区BITMAP索引命名:BLOC_表名_字段组合,如命名太长则:BLOC_表名_首字段。

➢主键索引和唯一性索引的命名同约束命名。

2.9视图(View)➢视图命名:VW_视图含义说明。

➢视图在另一个Scheme下用于虚表功能时,命名可与源表相同,特此说明。

2.10物化视图(Materialized View)➢物化视图命名:MV_物化视图含义说明。

➢物化视图用于快照复制功能时,命名可与源表相同,特此说明。

2.11临时表➢命名:TMP_表名。

2.12触发器(Trigger)➢触发器命名:TRG_表名_[A | B]_ [ R | S ]_ [ I | U | D ]。

➢说明:[ A | B ]:表明触发器发生是before或者after; [ R | S ]:表明触发器类型是row或者statement;[ I | U | D ]:表明触发事件类型(insert,update,delete)。

例如:表名为B_STUDENT,触发器类型为after each row,触发事件为insert orupdate,则触发器应该命名为TRG_B_STUDENT_A_R_IU。

备注:对于大型海量数据库系统,要慎用触发器,一般不使用触发器。

2.13过程(Procedure)➢过程命名:PRC_过程功能说明。

➢过程功能说明尽量采用动宾结构,采用英文,以“_”分隔。

如:PRC_SET_TOTAL_VALUE ➢如果过程被封装在包中,可不用前缀。

2.14函数(Function)➢函数命名:FNC_函数返回值说明。

➢函数返回值说明采用名词,用英语表达出函数返回值是什么,以“_”分隔。

例如一个获得缺陷ID号的函数命名为:FNC_FAULT_ID。

➢如果函数被封装在包中,可不用前缀。

2.15包(Package &Package Body)➢包命名:PCK_包含义说明。

2.16序列发生器(Sequence)➢序列发生器命名:SEQ_序列发生器含义说明。

➢序列发生器一般不建议直接调用,需通过oracle的自定义函数封装后获取。

2.17数据链接(Database Link)➢数据链接命名:DBL_访问目标标识。

➢访问目标标识即访问数据库的SID或数据库说明。

例如:DBL_PEIS、DBL_CIS、DBL_PMS。

2.18类型(Type & Type Body)➢类型命名:TYP_类型含义说明。

2.19角色(Role)➢角色命名:ROLE_角色含义说明。

2.20目录(Directorie)➢目录命名:DIR_目录标识。

2.21表空间(Tablespace)➢表空间命名:TS_表空间标识。

➢索引表空间命名为:TS_表空间标识_IDX。

3附录3.1常用缩写简表更多缩写以后可维护《Data Dictionary》。

在数据建模过程时由设计人员不断扩充。

缩写全字说明APP application 应用程序CONN connection 连接SYS system 系统DEPT department 部门ORG organization 组织SUBS substation 变电站TRAN transformer 变压器。

相关文档
最新文档