收藏 分销(赏)

数据库设计标准规范模板.doc

上传人:二*** 文档编号:4710406 上传时间:2024-10-10 格式:DOC 页数:18 大小:276.54KB
下载 相关 举报
数据库设计标准规范模板.doc_第1页
第1页 / 共18页
本文档共18页,全文阅读请下载到手机保存,查看更方便
资源描述
保密等级:□绝密 □机密 □秘密 ■内部公开 数据库设计规范 变更统计 版本号 修改点说明 变更日期 变更人 审批人 V1.0 创建 修改点说明内容有以下多个:创建、修改(+修改说明)、删除(+删除说明) 目 录 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) 数据类型选择标准 数据类型 使用说明 CHAR 依据业务数据特征决定是否使用CHAR类型,比如静态编码、固定年月日时间字段等,避免数据变长情况下使用CHAR类型 VARCHAR2(N) Oracle数据库VARCHAR2类型,依据业务数据特征定义合适长度,定义成偶数长度。 REAL、FLOAT、INTEGER、NUEBER Oracle数据库必需使用NUEBER NUMBER(P,S)、NUMERIC (P, S)、DECIMAL (P, S) Oracle数据库必需使用NUMBER DATE 时间类型必需使用DATE BLOB(二进制数据)、CLOB(字符数据) 2) 数据类型长度选择参考: 假如以下字段类型和长度能满足设计要求,必需遵照以下字段选择标准 数据类型 常见类型 CHAR CHAR(1)本规范不推荐长度不为1字段使用char类型 VARCHAR2(N) VARCHAR2(2) VARCHAR2(4) VARCHAR2(8) VARCHAR2(10) VARCHAR2(16) VARCHAR2(20) VARCHAR2(30) VARCHAR2(40) VARCHAR2(50) VARCHAR2(100) VARCHAR2(200) VARCHAR2(400) VARCHAR2(1000) VARCHAR2() NUMBER NUMBER(P,S) DATE BLOB 3) 常见字段定义: l 包含销售额等金额数值: NUMBER (16,2) l 包含税率、百分比、分成数值: NUMBER (10,6) l 包含货物单价数值: NUMBER (16,6) l 包含人数数值: NUMBER (10) l 包含人名: VARCHAR2 (50) l 包含单位名称、地址: VARCHAR2 (100) l 包含说明、理由、意见: VARCHAR2 (200) l optr_code,提议在业务表中增加该字段,表示操作职员号; l opt_date,提议在业务表中增加该字段,表示操作时间; l remark,提议在业务表中增加该字段,作为备用字段; l stand,提议在业务表中增加该字段,作为备注; l 描述“是、否”类型字段命名,避免使用“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) 非前导字符能够为: l A至Z l 0至9 l _(下划线字符) 3.3 表空间(Tablespace)命名规则 1) 表空间 l 表空间描述规则统一为:TS_业务规则。 l 比如: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; 3.6 视图(View)命名规则 命名规则:VW_子系统简称_业务含义。 3.7 序列(Sequence)命名规则 命名规则:SEQ_表名。 3.8 存放过程(Procedure)命名规则 命名规则:PRC_子系统简称_业务含义。 3.9 函数(Function)命名规则 命名规则:FUN_子系统简称_业务含义。 3.10 索引(Index) 命名规范 命名规则:IDX_表名_相关字段。不许可使用自动生成索引。 3.11 约束(Constraint) 命名规范 主键(Primary Key Constraint):PK_表名,需要考虑主键长度太长无法创建情况,表名部分要尽可能简化且易于区分。 外键(Foreign Key Constraint):FK_表名_字段_被参考 (referenced) 表名,需要考虑外键长度太长无法创建情况,表名部分要尽可能简化且易于区分。 4 数据模型产出物规范 1) PDM文件 数据模型产出物统一为PDM文件。各个项目依据情况,能够区分概念模型和物理模型; 2) XML文件 数据模型需要产出对应XML文件,经过PDM进行转换,具体xml使用说明参考附录A。 3) 建表脚本 数据库建表脚本作为数据库设计规范产出物,需要严格进行版本控制,有统一命名规范,命名规范以下: l 创建表脚本:项目简称_create_table.sql。 l 修改表脚本:项目简称_alter_table.sql,在原有表基础上做修改,增加字段、主键、外键、索引等。 l 创建存放过程脚本:项目简称_create_prc.sql,全部包含存放过程创建和修改,必需实时更新此文件。 l 创建函数脚本:项目简称_create_fun.sql,全部包含函数创建和修改,必需实时更新此文件。 l 创建视图脚本:项目简称_create_view.sql, 全部包含视图创建和修改,必需实时更新此文件,而且假如在PDM文件中有视图创建,需要更新PDM文件。 注:修改表脚本只作为备忘,全部表结构修改,全部必需实时更新“PDM文件”和“创建表脚本”,便于项目实施时表结构导入。 附录A:xml文件使用说明 表结构设计文件是指在进行表,视图,和约束设计过程中所产生文件。 格式:xml文件 ² <?xml-stylesheet type=“text/xsl” href=“ui/TL_Schema.xsl”?> ² <!DOCTYPE app-data SYSTEM “ui/TL_Schema.dtd”> 上面两行格式固定,关键用于数据结构列表展示,每一个表结构文件全部要引用 ² <app-data> 文件根节点 ² <database> 文件二级节点,下面许可有多个<module>元素 ² <module name=“DEPLOY” chineseDescription=“基础信息维护”> ² 文件三级节点,指项目设计中模块,name 和chineseDescription必需维护。 下面许可有多个<submodule>节点。 ² <submodule name=“BASE_SOURCE” chineseDescription=“基础信息”> 文件四级节点,指项目设计中模块,name 和chineseDescription必需维护。下面许可有多个<table>节点 ² <table name=“DEPLOY_MACHINE” chineseDescription=“主机信息” pkg=“com.tl. deploy.machine” jspPath=“com/tenglong/deploy/machine” function1=“all”> 表定义节点,下面许可有多个<rem><column><foreign-key><index>元素 ü 属性name指代表英文名称, ü 属性chineseDescription指表汉字名称。 ü 属性pkg指由表结构自动生成java类所在包路径。 ü 属性jspPath指由表结构自动生成jsp文件在所路径 ü 属性function=“all”指生成增删改查 ü 属性head =“TABLE_NAME”指目前表主表名称 ü 属性line = “TABLE_NAME”指目前表细表名称 ² <rem>表注释元素,用来对表功效,修改信息做出描述</rem> ² <column name=“PID” primaryKey=“true” required=“true” type=“VARCHAR” size=“32” chineseDescription=“内码” queryShow=“true” searchShow=“true” updateShow=“false” insertShow=“true” detailShow=“true”/>表列元素。 ü 属性name指代字段英文名称(即字段名) ü primaryKey =“true”用来标识目前列为主键列 ü required=“true”用来标识目前列是否许可为空 ü type=“VARCHAR”用来标识目前列字段类型定义 ü size=“10” 用来标识目前列字段长度 ü chineseDescription=“内码”用来标识目前列字段汉字名称 ü queryShow=“true”标识列中在查询列表中是否显示 ü searchShow=“true”标识列中在查询条件中是否显示 ü updateShow=““标识列中在修改页面中是否显示 ü insertShow=“true”标识该列在插入页面中是否显示 ü detailShow=“true”标识该列在明细页面中是滞显示 ü enumValue=“1:JSP,2:CLASS”标识该列许可选择值及代表意义。 ² <foreign-key foreignTable="DEPLOY_TASK">标识外键引用,许可< reference>子节点 ² <reference local="TID" foreign="TID"/> 本节点关键是把目前表字段和引用表字段依据字段名关联起来 附录B:保留关键字 对象命名不许可使用关键字: ABSOLUTE INDICATOR SYSTEM_USER AUXILIARY ABSOLUTE INITIALIZE TABLE BUFFERPOOL ACTION INITIALLY TEMPORARY CALLED ADA INNER TERMINATE CAPTURE ADD INOUT TEXTSIZE CCSID ADMIN INPUT THAN CLUSTER AFTER INSENSITIVE THEN COLLECTION AGGREGATE INSERT TIME COLLID ALIAS INT TIMESTAMP COMMENT ALL INTEGER TIMEZONE_HOUR CONCAT ALLOCATE INTERSECT TIMEZONE_MINUTE CONDITION ALTER INTERVAL TO COUNT_BIG AND INTO TOP CURRENT_LC_PATH ANY IS TRAILING CURRENT_SERVER ARE ISOLATION TRAN CURRENT_TIMEZONE ARRAY ITERATE TRANSACTION DAYS AS JOIN TRANSLATE DB2GENERAL ASC KEY TRANSLATION DB2SQL ASSERTION KILL TREAT DBA AT LANGUAGE TRIGGER DBINFO AUTHORIZATION LARGE TRIM DBSPACE AVG LAST TRUNCATE DISALLOW BACKUP LATERAL TSEQUAL DO BEFORE LEADING UNDER DSSIZE BEGIN LEFT UNION EDITPROC BETWEEN LESS UNIQUE ELSEIF BINARY LEVEL UNKNOWN ENCRYPT BIT LIKE UNNEST ERASE BIT_LENGTH LIMIT UPDATE EXCLUSIVE BLOB LINENO UPDATETEXT EXPLAIN BOOLEAN LOAD UPPER FENCED BOTH LOCAL USAGE FIELDPROC BREADTH LOCALTIME USE FINAL BREAK LOCALTIMESTAMP USER GENERATED BROWSE LOCATOR USING GRAPHIC BULK LOWER VALUE HANDLER BY MAP VALUES HOURS CALL MATCH VARCHAR IDENTIFIED CASCADE MAX VARIABLE INTEGRITY CASCADED MIN VARYING ISOBID CASE MINUTE VIEW JAVA CAST MODIFIES WAITFOR LABEL CATALOG MODIFY WHEN LC_CTYPE CHAR MODULE WHENEVER LEAVE CHAR_LENGTH MONTH WHERE LINKTYPE CHARACTER NAMES WHILE LOCALE CHARACTER_LENGTH NATIONAL WITH LOCATORS CHECK NATURAL WITHOUT LOCK CHECKPOINT NCHAR WORK LOCKSIZE CLASS NCLOB WRITE LONG CLOB NEW WRITETEXT LOOP CLOSE NEXT YEAR MICROSECOND CLUSTERED NO ZONE MICROSECONDS COALESCE NOCHECK FALSE MINUTES COLLATE NONCLUSTERED TRUE MODE COLLATION NONE ACCESS MONTHS COLUMN NOT ADD NAME COMMIT NULL ALL NAMED COMPLETION NULLIF ALTER NHEADER COMPUTE NUMERIC AND NODENAME CONNECT OBJECT ANY NODENUMBER CONNECTION OCTET_LENGTH AS NULLS CONSTRAINT OF ASC NUMPARTS CONSTRAINTS OFF AUDIT OBID CONSTRUCTOR OFFSETS BETWEEN OPTIMIZATION CONTAINS OLD BY OPTIMIZE CONTAINSTABLE ON CHAR PACKAGE CONTINUE ONLY CHECK PAGE CONVERT OPEN CLUSTER PAGES CORRESPONDING OPENDATASOURCE COLUMN PART COUNT OPENQUERY COMMENT PARTITION CREATE OPENROWSET COMPRESS PCTFREE CROSS OPENXML CONNECT PCTINDEX CUBE OPERATION CREATE PIECESIZE CURRENT OPTION CURRENT PRIQTY CURRENT_DATE OR DATE PRIVATE CURRENT_PATH ORDER DECIMAL PROGRAM CURRENT_ROLE ORDINALITY DEFAULT PSID CURRENT_TIME OUT DELETE QUERYNO CURRENT_TIMESTAMP OUTER DESC RECOVERY CURRENT_USER OUTPUT DISTINCT RELEASE CURSOR OVER DROP RENAME CYCLE OVERLAPS ELSE REORG DATA PAD EXCLUSIVE REPEAT DATABASE PARAMETER EXISTS RESET DATE PARAMETERS FILE RESOURCE DAY PARTIAL FLOAT RRN DBCC PASCAL FOR RUN DEALLOCATE PATH FROM SCHEDULE DEC PERCENT GRANT SCRATCHPAD DECIMAL PLAN GROUP SECONDS DECLARE POSITION HAVING SECQTY DEFAULT POSTFIX IDENTIFIED SECURITY DEFERRABLE PRECISION IMMEDIATE SHARE DEFERRED PREFIX IN SIMPLE DELETE PREORDER INCREMENT SOURCE DENY PREPARE INDEX STANDARD DEPTH PRESERVE INITIAL STAY DEREF PRIMARY INSERT STOGROUP DESC PRINT INTEGER STORES DESCRIBE PRIOR INTERSECT STORPOOL DESCRIPTOR PRIVILEGES INTO STYLE DESTROY PROC IS SUBPAGES DESTRUCTOR PROCEDURE LEVEL SYNONYM DETERMINISTIC PUBLIC LIKE TABLESPACE DIAGNOSTICS RAISERROR LOCK TYPE DICTIONARY READ LONG UNDO DISCONNECT READS MAXEXTENTS UNTIL DISK READTEXT MINUS UPSERT DISTINCT REAL MLSLABEL VALIDPROC DISTRIBUTED RECONFIGURE MODE VARIANT DOMAIN RECURSIVE MODIFY VCAT DOUBLE REF NOAUDIT VOLUMES DROP REFERENCES NOCOMPRESS WLM DUMMY REFERENCING NOT YEARS DUMP RELATIVE NOWAIT ADD DYNAMIC REPLICATION NULL ARITH_OVERFLOW EACH RESTORE NUMBER CHAR_CONVERT ELSE RESTRICT OF CONFIRM END RESULT OFFLINE CONTROLROW END-EXEC RETURN ON ENDTRAN EQUALS RETURNS ONLINE ERRORDATA ERRLVL REVOKE OPTION ERROREXIT ESCAPE RIGHT OR EXP_ROW_SIZE EVERY ROLE ORDER IDENTITY_GAP EXCEPT ROLLBACK PCTFREE IDENTITY_START EXCEPTION ROLLUP PRIOR INSTALL EXEC ROUTINE PRIVILEGES JAR EXECUTE ROW PUBLIC MAX_ROWS_PER_PAGE EXISTS ROWCOUNT RAW MIRROR EXIT ROWGUIDCOL RENAME MIRROREXIT EXTERNAL ROWS RESOURCE NOHOLDLOCK EXTRACT RULE REVOKE NUMERIC_TRUNCATION FETCH SAVE ROW ONCE FILE SAVEPOINT ROWID ONLINE FILLFACTOR SCHEMA ROWNUM PERM FIRST SCOPE ROWS PERMANENT FLASE SCROLL SELECT PROCESSEXIT FLOAT SEARCH SESSION PROXY_TABLE FOR SECOND SET QUIESCE FOREIGN SECTION SHARE READPAST FORTRAN SELECT SIZE REMOVE FOUND SEQUENCE SMALLINT REPLACE FREE SESSION START RESERVEPAGEGAP FREETEXT SESSION_USER SUCCESSFUL SHARED FREETEXTTABLE SET SYNONYM STRIPE FROM SETS SYSDATE SYB_IDENTITY FULL SETUSER TABLE SYB_RESTREE FUNCTION SHUTDOWN THEN TEMP GENERAL SIZE TO UNPARTITION GET SMALLINT TRIGGER USER_OPTION GLOBAL SOME UID GO SPACE UNION GOTO SPECIFIC UNIQUE GRANT SPECIFICTYPE UPDATE GROUP SQL USER GROUPING SQLCA VALIDATE HAVING SQLCODE VALUES HOLDLOCK SQLERROR VARCHAR HOST SQLEXCEPTION VARCHAR2 HOUR SQLSTATE VIEW IDENTITY SQLWARNING WHENEVER IDENTITY_INSERT START WHERE IDENTITYCOL STATE WITH IF STATEMENT ACQUIRE IGNORE STATIC ALLOW IMMEDIATE STATISTICS AS IN STRUCTURE ASUTIME INCLUDE SUBSTRING AUDIT INDEX SUM AUX
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 品牌综合 > 行业标准/行业规范

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服