数据库设计规范
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
保密级别:□绝密□机密□秘密■内部公开
数据库设计规范
变更记录
目录
1 编写目的 (1)
2 数据库策略 (1)
2.1 数据库对象长度策略 (1)
2.2 数据完整性策略 (1)
2.3 规范化设计与性能之间的权衡策略 (1)
2.4 字段类型的定义与使用策略 (1)
3 命名规范 (3)
3.1 数据库命名规则 (3)
3.2 数据库对象命名的一般原则 (4)
3.3 表空间(Tablespace)命名规则 (4)
3.4 表(Table)命名规则 (4)
3.5 字段命名规则 (5)
3.6 视图(View)命名规则 (5)
3.7 序列(Sequence)命名规则 (5)
3.8 存储过程(Procedure)的命名规则 (5)
3.9 函数(Function)的命名规则 (5)
3.10 索引(Index) 命名规范 (5)
3.11 约束(Constraint) 命名规范 (5)
4 数据模型产出物规范 (5)
附录A:xml文件使用说明 (7)
附录B:保留关键字 (8)
1编写目的
本文的目的是提出针对Oracle数据库的设计规范,使利用Oracle数据库进行设计开发的系统严格遵守本规范的相关约定,建立统一规范、稳定、优化的数据模型。
参照以下原则进行数据库设计:
1)方便业务功能实现、业务功能扩展;
2)方便设计开发、增强系统的稳定性和可维护性;
3)保证数据完整性和准确性;
4)提高数据存储效率,在满足业务需求的前提下,使时间开销和空间开销达到优化平衡。
2数据库策略
1)数据模型全局单一,所有公共的数据模型得到共享。
2)数据库建模要基于统一的元数据管理机制。
3)数据库设计遵循关系数据库的规范化理论。
4)OLTP与OLAP分开设计。
2.1数据库对象长度策略
数据库字段的长度要考虑业务对象的类型、数据库所用字符集、时间格式来设定出相对准确的长度,满足业务需要,同时保证数据库的高效,避免不必要的开销。
2.2数据完整性策略
1)必须遵循数据库设计的第二范式,根据业务需要尽量满足第三范式。
2)数据完整性尽量通过业务逻辑实现,数据库设计应尽量避免使用大量的外键约束,避免使用触发
器。
2.3规范化设计与性能之间的权衡策略
数据的标准化有助于消除数据库中的数据冗余。如果数据冗余低,数据的一致性容易得到保证,如无特殊理由,OLTP系统的设计应当遵循第三范式,对于OLAP系统,为了减少表间连接查询的操作,提高系统的响应时间,合理的数据冗余是必要的。
2.4字段类型的定义与使用策略
1)数据类型的选用原则
如果以下字段类型和长度能满足设计要求,必须遵循以下字段选用原则
●涉及销售额等金额的数值:NUMBER (16,2)
●涉及税率、比例、分成的数值:NUMBER (10,6)
●涉及货物单价的数值:NUMBER (16,6)
●涉及人数的数值:NUMBER (10)
●涉及人名的:VARCHAR2 (50)
●涉及单位名称、地址的:VARCHAR2 (100)
●涉及说明、理由、意见的: VARCHAR2 (200)
●optr_code,建议在业务表中增加该字段,表示操作员工号;
●opt_date,建议在业务表中增加该字段,表示操作时间;
●remark,建议在业务表中增加该字段,作为备用字段;
●stand,建议在业务表中增加该字段,作为备注;
●描述“是、否”类型的字段命名,避免使用“IS_”开头。
3命名规范
3.1数据库命名规则
数据库命名规则如下:
项目简称+1位数据库类型代码+识别代码+序号
数据库类型代码:
1)T:业务型数据库
2)A:分析型数据库
3)H:历史数据库
识别代码:
1)DEV:开发数据库
2)TEST:测试数据库
如果一种类型的数据库一个数据库,则不加序号,否则末尾增加序号。
如果是生产库则不加识别代码,否则需要增加爱识别代码DEV或TEST
如果只作历史库,部分生产、开发或者测试,则只需要项目简称+H+序号
举例:
出入系统业务生产库:AOCT、AOCT1、AOCT2
出入系统业务开发库:AOCTDEV、AOCTDEV1、AOCTDEV2
出入系统业务测试库:AOCTTEST、AOCTTEST1、AOCTTEST2
3.2数据库对象命名的一般原则
数据库对象的命名应该以最少的字母达到最容易理解的意义。如果没有特殊规定,数据库对象及其属性的命名应满足如下条件:
1)命名不推荐使用保留字;
2)数据库实体统一采用英文命名;
3)对象命名长度最好不要超过18个字符,缩写要易于理解,符合通用的习惯,例如部门编码缩
写:dept_code,组织机构编码缩写:org_code。
4)前导字符为A至Z
5)非前导字符可以为:
●A至Z
●0至9
●_(下划线字符)
3.3表空间(Tablespace)命名规则
1)表空间
●表空间的描述规则统一为:TS_业务规则。
●例如:TS_CRM等
2)临时表空间
临时表空间的描述规则统一为:TS_TMP_业务规则。
3.4表(Table)命名规则
1)业务数据库中的数据表
命名规则:子系统简称_业务含义
2)分析型数据库中的数据表
操作型数据存储区中的数据表:ODS_业务规则。
事实表:FACT_业务规则。
维表数据:DIM_业务规则。
中间表:MID_业务规则。
3.5字段命名规则
1)主键与外键必须使用相同的字段名和数据类型(含数据精度);尽量少使用联合主键;主键的命名
有一定的含义,不要只写成“ID”之类的字段名;主键的生成规则有一定的含义,比如前缀+流水号规则,不要使用自增主键,不要使用数字类型。
2)凡与业务含义无关的主键一律加_ID后缀。如PARTY_ID;
3)凡是具有业务含义的编码(或代码)等字段一律加_CODE后缀。如PARTY_CODE;
4)凡是名称、姓名等字段一律加_NAME后缀。如PARTY_NAME;