数据库管理规范.doc_第1页
数据库管理规范.doc_第2页
数据库管理规范.doc_第3页
数据库管理规范.doc_第4页
数据库管理规范.doc_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

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

文档简介

江苏移动新业务平台数据库管理规范(初稿)IBM江苏移动新业务平台代维小组2007年1月目 录1.前言32.数据库对象命名规范32.1.表命名规范32.2.字段命名规范42.3.分区命名规范52.4.视图/物化视图命名规范52.5.索引命名规范62.6.触发器命名规范62.7.函数/存储过程命名规范72.8.其他特别规定73.临时表管理74.数据库运行维护管理84.1.用户管理84.2.密码管理84.3.权限管理95.上线脚本格式规范95.1.分类要求95.2.命名要求105.3.内容相关要求105.4.书写顺序要求115.5.注释要求115.5.1.脚本执行注释115.5.2.表和字段的注释125.5.3.存储过程的创建和修改注释12附录131、常用业务名词的缩写132、常用标准名称131. 前言江苏移动新业务平台是江苏移动为客户提供客户服务的重要平台。为了加强平台系统的管理,规范数据库维护工作,促进公司业务运营系统的健康发展,保证数据库系统的安全稳定的运行,防止资料泄露,根据国家法律和公司相关规定,结合新业务平台系统的实际情况,特制订数据库管理制度。2. 数据库对象命名规范Oracle数据库对象的名字由字母、数字和一些连接符组成,多个单词之间用下划线分开,长度不超过30个字符。连接符用“_”字符,不建议使用其他的字符。如果超过30个字符,可以缩写,但一定要采用标准的缩写,常用标准缩写见附件。如果表或者是字段的名称仅有一个单词,那么建议不使用缩写,而是用完整的单词。在创建数据库对象时,不要使用引号,Oracle数据库自动转换为大写字符。2.1. 表命名规范表的命名遵循数据库对象命名的一般规则。要求表的命名尽量采用标准的翻译,能准确地表达该表的中文含义,能根据英文猜测到表的用途。如:gsm_user、user_imei、vpmn_user_service_opt、hlr_operation_succ;对于一些特定作用的表,除了遵循普通表命名规范外,增加特定后缀表示。多种类型的组合遵循先作用,后时间的原则,例如:配置历史表表示为XXX_cfg_his。1) 配置表配置表一般用于存放业务、系统的配置信息,须以_cfg结尾,如: send_process_cfg。2) 成功/失败表成功表记录操作成功的数据,以_succ后缀表示;失败表记录操作失败的数据,以_fail后缀表示。例如:hlr_operating_succ,hlr_operating_fail。3) 历史表历史表用于保留历史记录,以_his结尾。如:imei_info_his、user_product_info_ his。严禁以bak、back、backup等命名历史表。4) 删除表删除表了遵循普通表命名规范外,须以_del结尾。如:user_partition_del;5) 中间表中间表又称过渡表,是指为了产生某个结果,需要先计算出中间结果,根据中间结果进一步计算而得出需要的结果,存放中间结果的表称为中间表,有些系统也通俗地称为临时表。为了与真正的临时表区分,规定:1. 严禁以tmp、temp等作为生产表的前缀和后缀;2. 中间表以“_interim”作为后缀。6) 临时表临时表命名规则如下:N/I_创建人名字缩写_表名_创建时间_保存时间(以天为单位)其中:N表示Nornal,为一般临时表;I表示Important,为重要临时表;创建时间表示为YYMMDD;保存时间以天为单位,表示需要保留的期限。如果按此规则组成的文件名太长,超过30个字符,YY和保存时间可以省略。如:I_XXX_ZONE_MVALUE_0101_30、N_XXX_USER_PARTITION_070124。如果保存时间忽略,默认普通临时表的保存时间为20天,重要临时表的保存时间为60天,超过此保留时间可能被管理员删除。数据库管理员对由此产生的后果不负责任。临时表的创建有严格的规定,详见“临时表管理”一节。2.2. 字段命名规范字段的命名由英文单词(或缩写)和下划线_组成,多个单词之间用下划线分开,要求字段名能表达字段的含义。表的字段如果需要引用其它关键表的字段,则必须保证他们的类型和长度是相同的,如:gsm_user中的gsm_user_id字段与user_package的user_id字段。2.3. 分区命名规范分区命名分为两种:循环利用的分区和按月份分区n 循环利用的分区表名各单词第一个字母的缩写_P如:BILL_ADJUST_SEQ 表的分区名为:BAS_P01BAS_P13如果一个月有多个分区,可以再加两位数值以区分,如:PREPAY_DETAIL_BILL_ITEM表的分区名为:PDBI_P0101PDBI_P0101, PDBI_P0101PDBI_P0105, PDBI_P0201PDBI_P0201, PDBI_P0201PDBI_P0205, ,PDBI_P1301PDBI_P1305n 按月份分区的分区表名各单词第一个字母的缩写_P(年月)如:CLERK_OPERATING_DETAIL表分区名为:COD_P0507COD_P0512注:为避免数据库的bug等问题,不建议使用复杂分区。2.4. 视图/物化视图命名规范视图的命名规范遵循普通表的命名规范,并在视图前加上“v_”前缀,表示是视图。如果是开放给地市的视图,要求保留源表名,并在视图的末尾加上地市的缩写以区分。如:v_zone_mvalue_his_nt、v_vpmn_operation_succ_tz。物化视图一般在数据库之间相互复制数据时用,命名规则如下:MV_源表名_源数据库。如:mv_gsm_user_11, mv_gsm_user_21, mv_gsm_user_41,分别表示从11,21和41复制过来的gsm_user表的数据。部分物化视图由于程序统一接入的原因,可以与原表名相同. 2.5. 索引命名规范 索引命规则为:IDX_表名缩写_字段名缩写(如果是复合索引,字段名缩写至少要包含复合索引的头两个字段名的缩写);如果是主键索引,以“PKX”为索引前缀,如:CLERK_OPERATING_DETAIL表(OPERATOR_ID, CHECKOUT_SRL)列上的复合索引命名为:IDX_COD_OPID_CHKSRL;CLERK_OPERATING_DETAIL表(OPERATING_SRL, CODE_COUNTY )上的主键索引命名为:PKX_COD_OPSRL_CODECTY。给表增加主键时要显式指定约束的名字,否则系统将随机分配一个约束名字(同时也是主键索引的名字),导致几个库的名字不一样;并且要指定using index tablespace 参数,否则索引会建在该用户默认的表空间上,不利于数据库性能和系统维护。规范的语法为:alter table CLERK_OPERATING_DETAILadd constraint PKX_COD_OPSRL_CODECTY -主键约束名,也是索引名primary key (OPERATING_SRL, CODE_COUNTY) using index tablespace ;不能写成:alter table CLERK_OPERATING_DETAIL add primary key (OPERATING_SRL, CODE_COUNTY);2.6. 触发器命名规范触发器的命名规则:trg_表名_,其中表名为触发源表名,ins/upd/del表示insert/update/delete触发器。如:trg_msn_member_del,触发器的含义为:create or replace trigger ti_msn_member_delbefore delete on msn_member for each rowdeclare beginend2.7. 函数/存储过程命名规范存储过程的命名以“sp_”打头,其他规范遵循普通表的命名规范,要求名字能表达存储过程的用途,如:sp_pre_score_modify、sp_create_scp_operation。函数的命名以“fn_”打头,其他规范遵循普通表的命名规范,要求名字能表达函数的用途,如:fn_get_packname、fn_check_brand_package。2.8. 其他特别规定生产用户模式下的对象严禁引用非生产用户模式下的对象。非生产用户模式下的对象一般是临时对象,随时可能被DBA删除,可能引起引用它的对象实效,进而影响生产。生产用户模式下严禁建临时表。3. 临时表管理临时表只能由非生产用户模式创建,是为了维护/统计而临时生成的表,生产用户严禁建临时表。如果由于上线/割接等原因,只能在生产用户模式下创建,则须在DBA或局方相关人员的同意下方可进行,并严格监控,及时删除。临时表创建时应严格按照临时表明名规范进行.临时表只能在指定表空间创建,不允许在生产表空间建任何用户模式的临时表。创建临时表的维护人员负责清除自己创建的临时表,否则,数据库管理员将定期清除超过保留规定的活占用空间很大的临时表。4. 数据库运行维护管理4.1. 用户管理由于新业务平台是一个业务变更频繁的系统,需要随时处理投诉处理、bug、错误数据等,应用界面往往不能满足这种需求。因此,建议新业务平台系开设维护用帐号,供维护人员日常运行维护之用。新业务平台系统的运维用户分为两个等级:1) 只读用户,用户名ccmnt,此用户只能查询,不能修改生产数据,可以在指定表空间上创建临时表,用于处理投诉、临时统计等;2) 维护用户,用户名nbpmain,此用户可以修改生产数据库,可以在指定表空间创建临时表空间,用于新业务平台维护。4.2. 密码管理数据库系统新开用户需经信息技术中心严格审批,并由DBA负责创建,创建时需设置足够复杂的密码和合适的权限。密码应建议每月修改一次,且更改后应以某种介质形式密封保存至安全可靠处,以防丢失。密码的设置,应遵循以下原则:1) 不要使用过于简单的口令(如姓名或生日等),口令的长度为6-8位,必须大小写字母和数字混用;2) 口令不能为空;3) 对每个用户设置连续的不成功登录的最大次数;4) 对临时用户的口令的设置有效日期,并在使用完毕后给予删除;数据库帐号和密码由指定的维护人员和开发人员进行管理,不得向其他人员透露。发现密码泄漏,追究密码泄漏人员的责任。用户应记住自己的口令,不应把它记载在不保密的媒介物上,严禁将口令贴在终端上。输入的口令不应显示在显示终端上。严禁通过任何非法手段获取数据库和操作系统的口令,一经发现,必严厉追究相关人员的责任。相关人员离开岗位时,应向数据库管理员交接用户名和口令。数据库管理员应根据实际情况,及时更改密码或删除用户名。4.3. 权限管理新业务平台系统保存着用户的用户信息和帐务信息,为防止未经授权的用户擅自修改用户资料、泄漏用户信息,除了必须遵循数据库用户密码管理的一般规定外,还必须对新业务平台维护帐号进行严格的限制。日常运维操作严禁以生产用户和拥有DBA的用户登录,如确实需要使用生产用户操作(如月例行作业维护计划等),需要得到DBA的授权,所有操作应得到有效的监控。ccmnt和nbpmain用户由局方相关维护人员和开发商相关维护人员拥有,开发商的开发人员严禁登录生产系统,一律使用开发库或测试库。ccmnt口令由DBA分配给开发商维护组负责人,由负责人分配给相关维护人员。nbpmain用户平时由DBA或局方相关人员掌握,如开发商维护人员需要使用此用户对系统进行维护,需提出申请,并由局方相关人员修改口令后交给开发商相关人员。在维护结束后访问权限由局方相关人员收回。开发商维护组负责人应严格限制nbpmain用户的使用范围。5. 上线脚本格式规范5.1. 分类要求按上线项目须将DDL和DML分成两个不同的文件,如果涉及到多个用户模式,再按用户模式把DDL或DML分成不同的文件。如果建表时要同时要插入数据(一般为新增的配置表),则将该表的DML并入该表DDL所在文件。DDL包括:create、replace、alter、dropDML包括:insert、update、delete5.2. 命名要求脚本命名格式为:数据库用户模式脚本类型主题.sql,如:esdb_interboss_ddl_帐务对帐结果表.sqlzwdb_sysmgmt_dml_营销管理_菜单权限配置.sql5.3. 内容相关要求不管是DDL还是DML,都需要在对象前面要显式地加上用户模式。建表和建索引须显式指定存储参数,包括initrans、storage(initial,next)、tablespace,等等。表空间由设计人员根据用途在现有表空间中确定,DBA负责审核。修改表(如增加字段或修改字段)需检查有无需要重新编译失效对象,有则把重新编译的脚本附在该语句后面,无则注明“无相关的失效对象”。查找相关的对象的脚本:select alter | decode(type, PACKAGE BODY, PACKAGE, type) | | owner | . | name | compile; from (select distinct owner, type, name from all_dependencies t where t.referenced_owner = CUSTCARE and t.referenced_name = upper(USER_SERVICE_OPT) and referenced_type = TABLE connect by prior = t.referenced_name order by owner, type, name);替换其中referenced_owner和referenced_name和referenced_type即可。如果对象有嵌套引用,则该脚本会报错,须手工找出相关联的对象。当增加字段或修改字段时,还需要考虑相关的视图是否也需要增加字段,而不是仅仅重新编译;如果此表上有物化视图LOG,还需要考虑是否需要重建相关的物化视图,并指出物化视图涉及的数据库和名字。新增表需要有如下信息:估算表的记录数量、是否分区、数据保存时间、维护脚本。其中记录数量、是否分区、数据保存时间信息由设计人员给出,并在建表的开头添加注释,月/定期例行维护脚本附在建表脚本之后。如:-记录数据共1000条,配置表,数据永久保留create table custcare.G_SVC_CODE .-数据每月10万条,保留四个月,增加到每月维护计划维护create table query.sms_limiting_cdr(msisdn number(12) not null,)partition by range(month_number)( PARTITION SLC_P01 VALUES LESS THAN (2) TABLESPACE TS_TAB_CQ_INE_04, PARTITION SLC_P02 VALUES LESS THAN (3) TABLESPACE TS_TAB_CQ_INE_04, PARTITION SLC_P03 VALUES LESS THAN (4) TABLESPACE TS_TAB_CQ_INE_04, PARTITION SLC_P04 VALUES LESS THAN (5) TABLESPACE TS_TAB_CQ_INE_04);-下面是维护脚本 DML语句后需要有COMMIT语句,存储过程脚本最后必须有“/”。5.4. 书写顺序要求如果脚本有多条语句且有顺序要求(依赖关系),需按从上到下的顺序书写,如建表完要在该表上建索引,需要把建表脚本写在上面,建索引脚本写在下面,不要分开书写。5.5. 注释要求5.5.1. 脚本执行注释脚本执行注释需要包含以下内容:脚本提交人、脚本功能简单描述、用户模式、数据库、执行时间,其中执行时间分为“可提前执行”和“参照软件升级计划”,“可提前执行”表示脚本可以在上线当天下午提前执行,“参照软件升级计划”表示上线当晚按上线安排来执行,如:-*提交人:XXX-*功能描述:密码加密脚本-*数据库:数据库名称-*用户模式: 用户模式名-*执行时间:可提前执行 5.5.2. 表和字段的注释建表或增加字段的脚本需要给表和每个字段加上注释,如:COMMENT ON TABLE CUSTCARE.G

温馨提示

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

评论

0/150

提交评论