数据库开发规范.docx

  1. 1、本文档共22页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
v1.0 可编辑可修改 项目一部数据库开发规范 11 v1.0 可编辑可修改 版本号 日期 修改者 说 明 2012-03-06 注:对该文件内容增加、删除或修改均需填写此变更记录,详细记载变更信息,以保证 其可追溯性。 22 v1.0 可编辑可修改 命名规范 1.1. 对象 新建的表,存储过程,包等要遵循以下规则 对象名称 前缀 备注 表 见下表,根据功能分 视图 v_ 主键 pk_ 索引 idx_ 序列 seq_ 存储过程 pr_ 包 pk_ 函数 f_ 同义词 s_ 数据库连 dl_ 接 (dblink) 1.2. 表 表名不得超过 30 个字母,全部采用大写字母,表的命名可以如下:模块缩写名 _表的名称,如 RES_NODE代表资源模块的节点 ; 值班: DUTY_CALENDAR。 33 v1.0 可编辑可修改 1.3. 字段名称 字段名不得超过 30 个字母,必须以英文单词构成,每个单词之间以下划线隔 开,全部采用大写字母。对复杂的大型应用系统而言,必须建立表名和字段名的数 据字典,并附于开发规范附录中,在命名时必须严格遵守数据字典。 数据库对象管理 2.1. 一般规定 数据库所有对象,包括表、视图、主键、索引、序列、存储过程、包等必须在 数据库建模工具中进行管理并保持与数据库完全同步。 2.2. 大小写 在数据库模型、数据库脚本中,所有对象,包括表、视图、主键、索引、序 列、存储过程、包等名称必须大写。 语句书写规范 3.1. 尽量不使用某种数据库的特有功能 为了保持可移植性,尽量不使用某种数据库的特有功能,如 SQL Server 专用的 Unique ID, Oracle 专用的 Sequence 的功能; 3.2. 查询 sql 语句尽量使用绑定变量 3.3. 尽最大可能不使用通配符 在 SQL语句中, LIKE 关键字支持通配符匹配,但这种匹配特别耗费时间。如: SELECT A FROM ABC WHERE A LIKE 'M%' 。在 A 字段上建立了索引。把语句改 44 v1.0 可编辑可修改 为 SELECT A FROM ABC WHERE A >'M' AND A <'N' ,在执行查询时会利用 索引以提高响应速度。 使用 * 通配符必须事先征得项目开发负责人同意。 3.3.1 Distinct 使用 distinct 会增加查询和 I/O 的操作次数。应当避免使用 distinct 关键 字。 3.3.2 嵌套查询 SELECT A FROM CMS_USER WHERE USER_NAME IN ( SELECT USER_NAME FROM CMS_DEPARTMENT WHERE DEPARTMENT=’电子办’) 如果我们用连接来代替,且表关联放在条件语句的最后部。即: SELECT A FROM CMS_USER,CMS_DEPARTMENT WHERE CMS_DEPARTMENT .DEPARTMENT=’电子办’ AND CMS_DEPARTMENT .USER_NAME = 将提高一定的效率。 查询嵌套层次越多,效率越低。应当尽量避免子查询。如果子查询不可避免,那么要在子查询中过滤掉尽可能多的行。 3.3.3 排序 利用索引自动以适当的次序输出时,可以避免对表中数据排序,当以下的情况发生时,排序就不能省略: 索引中不包括一个或几个待排序的列; group by 或 order by 子句中列的次序与索引的次序不一样; 排序的列来自不同的表。 55 v1.0 可编辑可修改 正确地增建索引、合理地合并数据库表,可以避免不必要的排序。如果排序不 可避免,那么应当试图简化它,如缩小排序列的范围等。 3.3.4 UNION 如果不过滤多表中的重复数据,请使用 UNION ALL;如果过滤多表中的重复数 据,请使用 UNION。 3.3.5 长语句 避免使用很长、很复杂的查询语句,如果有特殊需求必须书写较长的 SQL语句,应该把语句分解成若干部分,每一部分形成一个存储过程或函数。 3.3.6 大表尽可能使用分区 大表分区:超过 1G的表尽可能使用分区,分区的原则和尽可能和维护该表的机制结合起来。比如:保留 10 天数据,每天删除 10 天前的一天数据,在删除数据的时候,可以采用采用 alter table table_name truncate partition partition_name, 而后 alter table table_name drop partition partition_name; 这里不直接使用 drop 的原因是减小数据库的开销。 Truncate 是在秒的级别中完 成。 3.3.7 其他注意事项 在条件语句中,如 Where = 中将记录少的

文档评论(0)

132****0439 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档