数据库管理和设计规范

yaoyaouser

贡献于2011-06-10

字数:0 关键词:

数据库管理和设计规范 易泓管理咨询开发参考文档 文档准备人: 张炜 制作日期: 2009 年 8 月 30 日 提交日期: 2009 年 8 月 30 日 版本号: V1.0 状态: 易泓管理咨询 浙江省杭州市滨江区江陵路 1760 号 邮编:310051 ®易泓公司 & Geely 版权所有 本文档特为上海易泓企业管理咨询有限公司软件开发制作 Creating Customer Values 为客户创造价值 内部参考文件 数据库管理与设计规范 Last printed Jun/09/20109 | Page 2 of 10 文档描述 文件名 状态 数据库管理和设计规范 未评审 变更记录 日期 作者 版本 描述 2009-08-30 张炜 1.0 未评审 审阅 审阅者 审阅时间 注释 内部参考文件 数据库管理与设计规范 Last printed Jun/09/20109 | Page 3 of 10 目录 1. 简介 -------------------------------------------------------------------------- 4 1.1. 目的 ----------------------------------------------------------------------------------------- 4 1.2. 范围 ----------------------------------------------------------------------------------------- 4 1.3. 引用 ----------------------------------------------------------------------------------------- 4 2. 数据库管理规则 ------------------------------------------------------------ 4 2.1. 数据库对象命名规则 --------------------------------------------------------------------- 4 2.1.1. 表命名通常按照以下规则: -------------------------------------------------------------- 4 2.1.2. 字段命名规则 ------------------------------------------------------------------------------- 5 2.1.3. 分区命名规则 ------------------------------------------------------------------------------- 5 2.1.4. 视图/物化视图命名规范 ------------------------------------------------------------------- 5 2.1.5. 索引命名规范 ------------------------------------------------------------------------------- 5 2.1.6. 触发器命名规范 ---------------------------------------------------------------------------- 5 2.1.7. 函数/存储过程命名规范 ------------------------------------------------------------------- 6 2.2. 临时表管理 -------------------------------------------------------------------------------- 6 2.3. 数据库运行维护管理 --------------------------------------------------------------------- 6 2.3.1. 用户管理 ------------------------------------------------------------------------------------ 6 2.3.2. 密码管理 ------------------------------------------------------------------------------------ 6 2.3.3. 管理权限 ------------------------------------------------------------------------------------ 7 2.3.4. 数据库备份 ---------------------------------------------------------------------------------- 8 3. 数据库设计规则 ------------------------------------------------------------ 8 3.1. 数据类型规则 ------------------------------------------------------------------------------ 8 3.2. 存储过程设计规则 ------------------------------------------------------------------------ 8 3.3. 视图设计规则 ------------------------------------------------------------------------------ 9 3.4. 索引设计规则 ------------------------------------------------------------------------------ 9 3.5. 表及外键设计规则 ------------------------------------------------------------------------ 9 3.6. SQL 语句规则 --------------------------------------------------------------------------- 10 3.7. 函数规则 --------------------------------------------------------------------------------- 10 3.8. 建库规则 --------------------------------------------------------------------------------- 10 内部参考文件 数据库管理与设计规范 Last printed Jun/09/20109 | Page 4 of 10 1. 简介 1.1. 目的 本规范为数据库管理和设计的标准、约定和指南。它以安全可靠的软件工程原 则为基础,使数据库设计易于理解、维护和增强,提高设计效率。同时,将带来 更大的一致性,使软件开发团队的效率明显提高。 本标准由上海易泓企业管理咨询有限公司软件研发部提出。 本标准由上海易泓企业管理咨询有限公司软件研发部负责起草。 1.2. 范围 本规范规定了数据库管理规则和设计规则。 本标准适用于数据库管理与设计。 1.3. 引用 2. 数据库管理规则 2.1. 数据库对象命名规则 2.1.1. 表命名通常按照以下规则: a) 表的命名遵循数据库对象命名的一般规则。要求表功能描述的命名尽量采用标 准的翻译,能准确地表达该表的中文含义,能根据英文猜测到表的用途。 值 说明 具体表 Gsy1062_Loguser 表名 系统标志 G 代表 GEELY 内部参考文件 数据库管理与设计规范 Last printed Jun/09/20109 | Page 5 of 10 模块标志 sy 代表系统模块 工厂标志(可选) 1062 代表工厂,没有工厂代表系统公用 分隔符 _ 下划线 功能标志 Louser 具体功能描述 2.1.2. 字段命名规则 字段的命名由英文单词(或缩写)和下划线’_’组成,多个单词之间用下划线分 开,要求字段名能表达字段的含义。 2.1.3. 分区命名规则 分区命名通常按照如下规则: a) 循环利用的分区,表名各单词第一个字母的缩写_P<两位数值>。 b) 按月份分区的分区,表名各单词第一个字母的缩写_P(年月)。 2.1.4. 视图/物化视图命名规范 视图命名通常按照如下规则: a) 视图的命名规范遵循普通表的命名规范,并在视图前加上“v_”前缀,表示是 视图。如果是开放给地市的视图,要求保留源表名,并在视图的末尾加上地市的缩写以 区分。 b) 物化视图一般在数据库之间相互复制数据时用,命名规则如下:MV_源表名_源 数据库。 2.1.4. 索引命名规范 索引命规则为:IDX_表名缩写_字段名缩写(如果是复合索引,字段名缩写至少要包 含复合索引的头两个字段名的缩写);如果是主键索引,以“PKX”为索引前缀。 2.1.5. 触发器命名规范 触发器的命名规则:trg_ 表名_ ,其中表名为触发源表名, ins/upd/del 表示 insert/update/delete 触发器。 内部参考文件 数据库管理与设计规范 Last printed Jun/09/20109 | Page 6 of 10 2.1.6. 函数/存储过程命名规范 函数/存储过程命名通常按照如下规则: A) 存储过程包的命名以“pkg_”打头,其他规范遵循普通表的命名规范,要求名字能表 达存储过程包的用途。 B) 存储过程的命名以“sp_”打头,其他规范遵循普通表的命名规范,要求名字能表达 存储过程的用途。 C) 函数的命名以“fn_”打头,其他规范遵循普通表的命名规范,要求名字能表达函数 的用途。 2.2. 临时表管理 Z+用户名+Test+功能描述 2.3. 数据库运行维护管理 2.3.1. 用户管理 2.3.1.1 由于业务支撑系统是一个业务变更频繁的系统,需要随时处理投诉处理、 bug、错误数据等,应用界面往往不能满足这种需求。因此,系统需开设维护用的帐号, 供维护人员日常维护之用。 2.3.1.2 系统用户分为两个等级: a) 只读用户,此用户只能查询,不能修改生产数据,可以在指定表空间上创建临时 表,用于处理投诉、临时统计等。 b) 维护用户,此用户可以修改数据库,可以在指定表空间创建临时表空间,用于系统 维护。 2.3.1.3 对于研发部的员工,实行实名制,拥有只读权限,并限制资源。 2.3.2. 密码管理 2.3.2.1 数据库系统新开用户需经研发部严格审批,并由 DBA 负责创建,创建时需设置 足够复杂的密码和合适的权限。 内部参考文件 数据库管理与设计规范 Last printed Jun/09/20109 | Page 7 of 10 2.3.2.2 密码应每月修改一次,且更改后应以某种介质形式密封保存至安全可靠处,以 防丢失。 2.3.2.3 密码的设置,应遵循以下原则: a) 不要使用过于简单的口令(如姓名或生日等),口令的长度需大于 6 位,必须大 小写字母和数字混用。 b) 口令不能为空。 c) 对每个用户设置连续的不成功登录的最大次数。 d) 对临时用户的口令的设置有效日期,并在使用完毕后给予删除。 2.3.2.4 数据库帐号和密码由指定的维护人员和开发人员进行管理,不得向其他人员透 露。发现密码泄漏,追究密码泄漏人员的责任。 2.3.2.5 用户应记住自己的口令,不应把它记载在不保密的媒介物上,严禁将口令贴在 终端上。输入的口令不应显示在显示终端上。 2.3.2.6 严禁通过任何非法手段获取数据库和操作系统的口令,一经发现,必严厉追究 相关人员的责任。 2.3.2.7 相关人员离开岗位时,应向系统管理员交接用户名和口令。系统管理员应根据 实际情况,及时更改密码或删除用户名。 2.3.3. 管理权限 2.3.3.1 系统保存着用户的用户信息和帐务信息,为防止未经授权的用户擅自修改用户 资料、泄漏用户信息,除了必须遵循数据库用户密码管理的一般规定外,还必须对系统 维护帐号进行严格的限制。 2.3.3.2 只读用户和维护用户由相关维护人员拥有,外来开发人员严禁登录系统,一律 使用测试库。 2.3.3.3 只读用户口令由 DBA 分配给相关维护人员。 2.3.3.4 维护用户由 DBA 掌握,如外来开发人员需要使用此用户对系统进行维护,需提 出申请,并由易泓公司相关人员修改口令后交给外来开发人员。在维护结束后访问权限 由收回。 内部参考文件 数据库管理与设计规范 Last printed Jun/09/20109 | Page 8 of 10 2.3.4. 数据库备份 根据生产系统部署单位实际需求和环境,数据库备份通常按照如下规则: a) 每周六 19:00 执行完全数据库备份。完全数据库备份保存 2 个月。 b) 每周一~周六,每天 19:00 执行差异数据库备份。差异数据库备份保存 2 个 月。 c) 每周一~周日,每 1 小时执行一次事务日志备份。日志备份保存 2 个月。 d) 在备份时,同时在两台计算机上进行。保存的备份完全一致。 e) 每周删除前 2 个月的备份以清空磁盘空间。 3. 数据库设计规则 3.1. 数据类型规则 数据类型设计通常按照如下规则: a) 不要用 SQL 保留字来命名表、视图、字段、索引。数据库的关键字请参考相关资 料。 b) 一般情况下不要设立诸如是否使用的标志字段,统一由数据库删除规则来确定。 但可以建立此字段保留使用。 c) 字符型字段的确定。长度固定用 char,不固定用 varchar/varchar2。 d) 不要将 Null 值与空串""视为相同。在不同的数据库中对这两者的理解是不相同 的。在 Oracle 中空串与 Null 理解一样。如果碰到这种情况统一用 Null。数据库中不允许出现空串。 e) 可以在设计表时建立若干保留字段,以被需求增加、业务变更等不时之需。 示例:varchar(200),varchar(100)。 f) 设计时请参照可用数据类型对照表。 3.2. 存储过程设计规则 与数据库交互频繁的业务规则,可以考虑用存储过程实现,每个存储过程代码不能 超过 200 行。 内部参考文件 数据库管理与设计规范 Last printed Jun/09/20109 | Page 9 of 10 触发器设计规则 触发器通常按照如下设计规则: a) 避免使用后触发(同时需要注意:SQL Server、Sybase 不支持前触发事件)。 b) 触发器主要使用范围:系统序列号产生触发器。触发器统一由 Power Designer 生成。 c) 系统序列号的存储统一通过触发器来控制。程序插入赋值时缺省为 0。 d) 不允许动态创建触发器。 3.3. 视图设计规则 试图通常按照如下设计规则: a) 使用静态视图,不允许动态创建视图。 b) 视图中尽量避免包含 order by 语法,影响效率。 c) 视图中避免使用 union 或 union all 语法( Sybase 不支持)。如必须使 用,需经过项目组讨论。 3.4. 索引设计规则 索引通常按照如下设计规则: a) 为了保证索引具有提高效率的作用,估计记录数不大于 50 的表一律不允许建索 引。 b) 只用于 distinct 或 group by 子句引用的列,不需要建立索引。 c) 对于数据值变化不大的列,比如只有 yes 和 no,不要建索引,否则效率降低。 d) 复合索引为多列,同复合主键一样将变化显著的列放到复合索引的首位。 e) 一个复合索引可包含 16 个列(具体可能多数据库会不同),索引太多则插入数据 会变慢,当索引太多的时候,必须权衡查询和插入数据的响应时间是否满足需求。 f) 不允许动态创建索引。 3.5. 表及外键设计规则 表及外键通常按照如下设计规则: 内部参考文件 数据库管理与设计规范 Last printed Jun/09/20109 | Page 10 of 10 a) 所有表必须为单一主键。 b) 主键字段统一命名为 ID,类型为 T_ID 域。 3.6. SQL 语句规则 SQL 语句通常按照如下设计规则: a) 在查询时尽量减少多余数据的读取,通过使用 where 子句来减少返回的记录 数。 b) 主键字段统一命名为 ID,类型为 T_ID 域。 c) 语句全部用小写。 d) 禁止使用"select * from "语法,必须标明字段名。 e) 语句中 not in(in)操作,用 not exists(exists)来重写。 f) 提交语句时,必须一次仅提交一条执行 SQL 语句。多条语句放在一个事务中分 批执行。 g) SQL 语句包含多表连接时,必须加上表的别名。 3.7. 函数规则 一般数据库只能通过存储过程实现,不允许动态创建函数。 3.8. 建库规则 建库通常按照如下设计规则: a) SQL 语句转换类。 b) 提供 SQLException 信息转换。同一个 SQL 在不同数据库操作,JDBC 返回的错 误号以及错误信息不同。SQLException 信息转换器将不同 JDBC 返回的错误编号统一为以 Oracle 9i 为准,错误信息仍以不同 JDBC 返回的错误信息为主。

下载文档,方便阅读与编辑

文档的实际排版效果,会与网站的显示效果略有不同!!

需要 20 金币 [ 分享文档获得金币 ] 5 人已下载

下载文档

相关文档