数据库规范 - 图文

更新时间:2023-10-09 18:16:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

版本所有:广东同望科技股份有限公司 保密级别:■普通 □保密 □机密 文件编号:TUP/BZ-GC-RJ-SJK

统一过程管理体系

数据库设计规范

版本号 1.1

广东同望科技股份有限公司

修订历史

版本 发布日期 生效日期 1.0 2008-08-06 2008-08-06 修订说明 新建 作者 罗洪臣 审核人 批准人 当前状态 罗洪臣 袁阗 试用发布 修改了命名规范,完善了设计准则,孙伟宾、新增加SQL语句规范、死锁预防规范,1.1 2010-08-25 2010-08-25 张亮、喻补充规范用词用语说明、常用域一览国军 表、数据库设计建议。

罗洪臣 袁阗 正式发布

第 2 页 共 23 页

广东同望科技股份有限公司

目录

1. 目的范围 ............................................................................................................................................................ 4 2. 术语定义 ............................................................................................................................................................ 4 3. 标准规范 ............................................................................................................................................................ 4 3.1 设计准则 ...................................................................................................................................................... 4 3.2 命名规范 ...................................................................................................................................................... 5 3.3 字段定义规范 .............................................................................................................................................. 7 3.4 约束条件 ...................................................................................................................................................... 7 3.5 SQL语句规范 ............................................................................................................................................... 7 3.5.1 书写风格 ............................................................................................................................................... 7 3.5.2 性能优化 ............................................................................................................................................... 8 3.5.3 跨数据库支持 ....................................................................................................................................... 9 3.6 死锁预防规范 .............................................................................................................................................. 9 4. 检查制度 .......................................................................................................................................................... 10 5. 裁剪指南 .......................................................................................................................................................... 10 6. 层次关系 .......................................................................................................................................................... 10 6.1 主控文件 .................................................................................................................................................... 10 6.2 支持文件 .................................................................................................................................................... 11 6.3 相关文件 .................................................................................................................................................... 11 7. 附录 .................................................................................................................................................................. 11 7.1 同望数据库设计模板 ................................................................................................................................ 11 7.2 规范用词用语说明 .................................................................................................................................... 11 7.3 常用域一览表 ............................................................................................................................................ 12 7.4 保留关键字表 ............................................................................................................................................ 13 7.4.1 SQL关键字 ......................................................................................................................................... 13 7.4.2 Oracle 关键字 ..................................................................................................................................... 13 7.4.3 SQLServer关键字 ............................................................................................................................... 14 7.4.4 DB2关键字 ......................................................................................................................................... 15 7.4.5 ODBC关键字 ...................................................................................................................................... 18 7.5 数据库设计建议 ........................................................................................................................................ 19

第 3 页 共 23 页

1. 目的范围

? 目的作用:数据是企业的一种资产,是企业IT应用的基础和前提,通过数据挖掘等手段可以实现数

据的附加值。应用系统必须保证数据的安全和可靠。本规范的目的就是指导和规范数据库设计,提高设计人员的数据库设计技能,以达到应用系统数据的安全和可靠,并具备高性能和易扩展。 ? 应用范围:创新中心、方案项目事业部、工程造价事业部 ? 读者对象:公司所有数据库设计人员、开发人员。

2. 术语定义

高并发系统:指业务处理系统吞吐率超过每秒10次的系统。 CLOB:Character Large Object,字符大对象。

BLOB:Binary Large Object,二进制大对象,是一个可以存储二进制文件的容器。 实体表:指对应实际的业务对象的表。

关系表:指不代表一个对象而是对象间的关系的表。

3. 标准规范

3.1 设计准则

准则一、数据库设计必须在系统的安全性、可靠性、性能、易开发维护之间保持平衡,必须保证应用服务器与数据库服务器之间的平衡。这是数据库设计的基本准则。

准则二、数据库设计应遵守3NF规范,表之间的关系应通过外键连接。表只包括其本身基本的属性;当不是它们本身所具有的属性时需进行分解;在遵循3NF的基础上对复杂的数据查询做适当冗余,减轻编码的繁琐以及过多的表关联查询。

准则三、不应使用硬编码的方式,而应采用数据驱动方式保存常用信息。这样可以使许多策略变更和维护都会方便得多,大大增强系统的灵活性和扩展性。例如:采用数据字典维护基础信息,存放数据库当前版本等信息。

准则四、严禁使用触发器。使用触发器不能很好支持跨数据库,并且对数据库带来额外的计算开销,不利用程序调试。

准则五、严禁高并发系统在业务处理程序中使用视图和存储过程,可在批处理中使用视图和存储过程。严禁有跨数据库要求的产品使用视图。业务处理是指用户提交表单等操作频繁的处理,批处理是指集成执行的并发小而复杂的处理。在高并发系统中,在频繁的处理中使用视图和存储过程,会加大数据库的加力,数据库将成为系统的瓶颈,且最大提升为三台服务器集群,而且这种成本非常高;但如果在应用服务器中处理,则实现集群的方案更为经济可行。视图检索速度比直接使用SQL慢,视图需要预解析。视图对跨平台支持不佳,不同数据库对视图语法支持不太一样,特别是复杂的视图移植起来困难度上升。

准则六、预计记录数超过1万的表不宜超过30列,不宜在一个表中保持多个对象。如果字段过多,会影响数据处理性能。若表字段过多宜拆分为多个表。

准则七、禁止在高并发系统的业务处理事务中同时处理大字段(CLOB、BLOB)数据,禁止检索大字段,

广东同望科技股份有限公司

大字段不得超过10M。超过10M的数据存储为文件。在事务处理的同时处理大字段会延长处理时间,易导致数据库死锁。

准则八、字段长度应尽量充足;中文字符长度当应用程序为GBK编码时应设置为每字符2个字节,当应用程序为UTF-8时应设置为每字符3个字节。因为oracle 9i及以上版本utf-8长度为3个字节。

准则九、命名宜用英文或缩写,不宜使用汉语拼音,严禁使用留空格,严禁使用保留关键字。名称长度不得超过30个字符。要保证字段名不与保留字、数据库系统常用访问方法冲突。

准则十、同一系统不同表中同一字段名称的数据类型必须保持一致性。在命名字段并为其指定数据类型的时候一定要保证一致性。例如:数据类型在一个表里是整数,那在另一个表里不得变成字符串型。

准则十一、所有表必须设置时间戳(最后修改时间)(tts: Toone TimeStamp)、最后修改人(tlm: Toone Last Modifier)字段,应设置删除标志(tdf: Toone Delete Flag)字段。设置时间戳tts记录数据最后变化时间,便于数据后期处理ETL(抽取、转换、装载的过程),同时为事后校核数据提供参考。设置删除标志tdf,采用软删除有利于删除数据的恢复,也可以追踪删除数据的历史,另一方面,因为数据记录删除量达到总体数据量20%以上时索引检索速度会下降,通过软删除可以防止这种情况。采用软删除机制必须配套的在系统中设置数据维护计划,定期批量清除删除数据,以防止垃圾数据影响查询性能。设计最后修改人tlm是为了追踪数据处理人员,便于事后审计。

准则十二、时效性数据表可设置历史记录字段(thi:Toone History Infomation),记录表关键时效信息。通过一个字段记录历史变化,用于追踪数据操作流程信息,便于事后审讯或让用户了解数据处理过程。相比每个表设置历史记录表,处理更简单,性能更好。

准则十三、应保持事务尽可能小,请求的资源尽可能少;应按同一顺序访问数据对象。不同事务写两个及以上表时,应按同一顺序操作,且不得交替写入。比如事务T1、T2写表Table1、Table2,应按同样的顺序先Table1再Table2,或先Table2再Table1,而不能是T1先Table1再Table2,T2先Table2再Table1,这样处理在并发情况下可能出现死锁。进一步可以引申为在同一个事务中,不得出现先写Table1再写Table2,然后写Table1的情况。

3.2 命名规范

一、表命名

由于历史原因,IP、IE、OA的三条产品线形成了三套命名规范,为了确保规范的延续性和统一性,本规范将三种命名规范均视为合理,同一产品线应使用一致的命名约定。具体如下表: 产品线 IP产品线 [系统标识]_[业务模块标识]_[表标识] 或者 [部门标识]_[业务模块标识]_[表标识] 表名一律小写,中间以下划线(_)分隔各标识段,以相同业务模块的表排列在一起为原则 IE产品线 OA产品线 公式 [系统标识]_[表标识] 系统标识:4个小写字母,前两位是产品线标志,后两位是子系统缩写。 表标识:如果表名的实意单词是一个或两个单词组成,名字就取全名;如果表的名字由3个或者3个以上单词[系统标识]_[表类型]_[表标识] 系统标识: 一个业务模块(或子系统)有多个业务表,业务模块标识(或者叫子系统标识)用于标识这些表是同一个业务模块(子系统)。新增业务模块时,该标识必须简短唯一; 表类型 (e,r) :e表示实体表,r表示实体关系表。 说明 第 5 页 共 23 页

本文来源:https://www.bwwdw.com/article/fzzf.html

Top