Oracle数据库设计策略及规范.docx
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
Oracle数据库设计策略及规范 设计策略及规范 1. 目的 定义Oracle数据库设计规范,作为数据库规划、设计、开发以及维护人员的技术参考资料。用以规范和指导相关人员的设计行为。 2. 概述 本文档根据Oracle数据库性能特点,描述对表、视图、存储过程、对象命名等方面的设计规范。 3. 基本策略 3.1 设计策略 分类拆分数据量大的表。 对于经常使用的表(如某些参数表或代码对照表),由于其使用频率很高,要尽量减少表中的记录数量。例如,银行的户主账表原来设计成一张表,虽然可以方便程序的设计与维护,但经过分析发现,由于数据量太大,会影响数据的迅速定位。如果将户主账表分别设计为活期户主账、定期户主账及对公户主账等,则可以大大提高查询效率。 分区策略 在拥有数500行以上的表时,采用分区策略。 索引设计。 对于大的数据库表,合理的索引能够提高整个数据库的操作效率。在索引设计中,索引字段应挑选重复值较少的字段;在对建有复合索引的字段进行检索时,应注意按照复合索引字段建立的顺序进行。例如,如果对一个5万多条记录的流水表以日期和流水号为序建立复合索引,由于在该表中日期的重复值接近整个表的记录数,用流水号进行查询所用的时间接近3秒;而如果以流水号为索引字段建立索引进行相同的查询,所用时间不到1秒。因此在大型数据库设计中,只有进行合理的索引字段选择,才能有效提高整个数据库的操作效率。 有时候为了提高性能。减少表的关联,恰当的数据冗余是允许的。 索引对新增,删除,更新的性能影响比较大,对相关的表的索引使用要权衡 为表和索引建立不同的表空间,禁止在系统表空间中放入非核心oracle系统成分的对象, 确保数据表空间和索引表空间位于不同的磁盘磁盘驱动器上。 对于经常发生同时查询或频繁查询的表,最好把他放到不同的磁盘空间上 4. 逻辑设计规范 4.1 范式 如果没有性能上的原因,应该使用关系数据库理论,达到较高的范式,避免数据冗余。 如果在数据量上与性能上无特别要求,考虑到实现的方便性可以有适当的数据冗余,但基本上要达到3NF。 4.2 表设计 对于数据量比较大的表,根据表数据的属性进行分区,以得到较好的性能。如果表按某些字段进行增长,则采用按字段值范围进行范围分区;如果表按某个字段的几个关键值进行分布,则采用列表分区;对于静态表,则采用Hash分区或列表分区;在范围分区中,如果数据按某关键字段均衡分布,则采用子分区的复合分区方法。 每个表均创建类型为Sequence的主键字段。 每个表中需含有如下几个基本字段:一个表的SEQ号,4个创建信息字段,5-8个备用字段,一个删除标记字段,最好还有一个行版本字段 字段名 类型 备注 业务SEQ号 整数型 作为表主键 OBLIGATE1 字符型 备用字段 OBLIGATE2 OBLIGATE3 OBLIGATE4 OBLIGATE5 CREATE_USER_ID VARCHAR 创建用户ID CREATE_DATETIME DATE 创建时间 LAST_UPDATE_USER_ID VARCHAR 更新用户ID LAST_UPDATE_DATETIME TIMESTAMP 更新时间 不要用Identify字段作为表的主键与其它表关联。 4.3 索引设计 常规OLTP应用,创建B-TREE索引,不创建位图索引。 不需要为小型数据表(<5000)创建索引。 给单个表创建的索引不超过5个,特别是海量交易类表。 索引条件查询结果记录,不超总记录的20%。 不要给固定选项的字段创建独立索引。 如只有'男,女'的性别字段;'是,否'的状态字段等,不要创建独立索引,位可以建立复合索引。 对于复合索引,索引字段顺序比较关键,把查询频率比较高的字段排在索引组合的最前面。 索引放到独立的表空间,该表空间不需要REDO LOG。 含有外键约束的表的字段,必须有单独索引。如订单明细的表头外键。 5. 对象命名规范 5.1 一般规范 5.1.1 语言 命名使用英文单词,不使用复数。 Oracle数据库设计策略及规范全文共3页,当前为第1页。 英文单词使用同对象本身意义相对或相近的单词。选择最简单或最通用的单词。不能使用毫不相干的单词来命名。 Oracle数据库设计策略及规范全文共3页,当前为第1页。 当一个单词不能表达对象含义时,用词组组合,如果组合太长时,采用简写或缩写,缩写要基本能表达原单词的意义。 当出现对象名重名时,是不同类型对象时,加类型前缀或后缀以示区别。 禁止使用中文或拼音缩写进行命名 5.1.2 大小写 名称一律大写,以方便不同数据库移植,以及避免程序调用问题 5.1.3 单词分隔 命名的各单词之间使用下划线进行分隔。 命名的各单词之间不允许有空格存在 5.1.4 保留字 命名不允许使用SQL保留字。 5.1.5 Oracle数据库设计策略与规范是确保高效、稳定和可维护性的关键。本文档旨在提供一套标准,指导数据库规划、设计、开发和维护人员的工作。以下是基于文档内容的关键知识点: 1. **设计策略**: - **分类拆分大表**:对于高频率使用的表,如参数表或代码对照表,应通过分类拆分减少单表记录数量,提高查询效率。例如,将户主账表分为活期、定期和对公账户。 - **分区策略**:对于包含500行以上的表,采用分区策略,可以加快数据定位,提高查询性能。 - **索引设计**:合理选择索引字段,减少重复值,注意复合索引的字段顺序。在大型数据库中,良好的索引设计至关重要。 - **适当的数据冗余**:在考虑性能提升时,可以接受一定程度的数据冗余,但需谨慎处理。 - **表空间管理**:将表和索引放在不同表空间,避免在系统表空间存储非核心组件,并确保数据和索引分布在不同磁盘驱动器上。 2. **逻辑设计规范**: - **范式**:如果没有性能问题,应遵循高范式设计,减少数据冗余。通常要求至少达到3NF,但在实际应用中可能需要适度妥协。 - **表设计**: - 表分区:根据表数据属性进行,如范围、列表、哈希或复合分区。 - 主键:每个表应有Sequence类型的主键,包含基本字段如序列号、创建信息、更新信息、备用字段、删除标记和行版本字段。 - **索引设计**: - 常规OLTP应用使用B-TREE索引,避免位图索引。 - 小型表(<5000行)通常不需要索引。 - 单表索引不超过5个,尤其是交易量大的表。 - 索引查询结果不应超过总记录的20%。 - 避免为固定选项字段创建独立索引,但可以建立复合索引。 - 独立表空间存放索引,无需REDLOG。 - 含外键约束的字段应有单独索引。 3. **对象命名规范**: - **命名规则**:使用英文单词,不使用复数,且应与对象意义相关。词组、简写或缩写应能体现对象含义。 - **大小写**:全名大写,便于跨数据库移植和程序调用。 - **分隔符**:使用下划线分隔单词,避免空格。 - **避免保留字**:命名不得使用SQL保留字,防止冲突。 这些规范旨在优化数据库性能,提高数据操作效率,同时确保代码的可读性和可维护性。在实践中,应灵活运用这些原则,根据具体项目需求进行调整。
- 粉丝: 104
- 资源: 9352
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助