数据库设计规范标准详.docx

上传人:b****4 文档编号:24809222 上传时间:2023-06-01 格式:DOCX 页数:17 大小:23.53KB
下载 相关 举报
数据库设计规范标准详.docx_第1页
第1页 / 共17页
数据库设计规范标准详.docx_第2页
第2页 / 共17页
数据库设计规范标准详.docx_第3页
第3页 / 共17页
数据库设计规范标准详.docx_第4页
第4页 / 共17页
数据库设计规范标准详.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

数据库设计规范标准详.docx

《数据库设计规范标准详.docx》由会员分享,可在线阅读,更多相关《数据库设计规范标准详.docx(17页珍藏版)》请在冰豆网上搜索。

数据库设计规范标准详.docx

数据库设计规范标准详

保密级别:

□绝密□机密□秘密■内部公开

数据库设计规范

变更记录

版本号

修改点说明

变更日期

变更人

审批人

V1.0

创建

修改点说明的内容有如下几种:

创建、修改〔+修改说明、删除〔+删除说明

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

Oracle数据库VARCHAR2类型,根据业务数据特征定义适当的长度,定义成偶数长度.

REAL、FLOAT、INTEGER、NUEBER

Oracle数据库必须使用NUEBER

NUMBER、NUMERIC、DECIMAL

Oracle数据库必须使用NUMBER

DATE

时间类型必须使用DATE

BLOB〔二进制数据、CLOB〔字符数据

2)数据类型长度的选用参考:

如果以下字段类型和长度能满足设计要求,必须遵循以下字段选用原则

数据类型

常用类型

CHAR

CHAR<1>本规范不推荐长度不为1的字段使用char类型

VARCHAR2

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<2000>

NUMBER

NUMBER

DATE

BLOB

3)常用字段定义:

●涉及销售额等金额的数值:

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表空间命名规则

1)表空间

●表空间的描述规则统一为:

TS_业务规则.

●例如:

TS_CRM等

2)临时表空间

临时表空间的描述规则统一为:

TS_TMP_业务规则.

3.4表

命名规则

1)业务数据库中的数据表

命名规则:

子系统简称_业务含义

2)分析型数据库中的数据表

操作型数据存储区中的数据表:

ODS_业务规则.

事实表:

FACT_业务规则.

维表数据:

DIM_业务规则.

中间表:

MID_业务规则.

3.5字段命名规则

1)主键与外键必须使用相同的字段名和数据类型<含数据精度>;尽量少使用联合主键;主键的命名有一定的含义,不要只写成"ID"之类的字段名;主键的生成规则有一定的含义,比如前缀+流水号规则,不要使用自增主键,不要使用数字类型.

2)凡与业务含义无关的主键一律加_ID后缀.如PARTY_ID;

3)凡是具有业务含义的编码〔或代码等字段一律加_CODE后缀.如PARTY_CODE;

4)凡是名称、姓名等字段一律加_NAME后缀.如PARTY_NAME;

3.6视图命名规则

命名规则:

VW_子系统简称_业务含义.

3.7序列命名规则

命名规则:

SEQ_表名.

3.8存储过程的命名规则

命名规则:

PRC_子系统简称_业务含义.

3.9函数的命名规则

命名规则:

FUN_子系统简称_业务含义.

3.10索引命名规范

命名规则:

IDX_表名_有关字段.不允许使用自动生成的索引.

3.11约束命名规范

主键

PK_表名,需要考虑主键长度太长无法创建的情况,表名部分要尽量简化且易于区分.

外键

FK_表名_字段_被参照表名,需要考虑外键长度太长无法创建的情况,表名部分要尽量简化且易于区分.

4数据模型产出物规范

1)PDM文件

数据模型产出物统一为PDM文件.各个项目根据情况,可以区分概念模型和物理模型;

2)XML文件

数据模型需要产出相应的XML文件,通过PDM进行转换,具体xml使用说明参照附录A.

3)建表脚本

数据库的建表脚本作为数据库设计的规范产出物,需要严格进行版本控制,有统一的命名规范,命名规范如下:

●创建表脚本:

项目简称_create_table.sql.

●修改表脚本:

项目简称_alter_table.sql,在原有表的基础上做的修改,增加字段、主键、外键、索引等.

●创建存储过程脚本:

项目简称_create_prc.sql,所有涉及存储过程的创建和修改,必须实时更新此文件.

●创建函数脚本:

项目简称_create_fun.sql,所有涉及函数的创建和修改,必须实时更新此文件.

●创建视图脚本:

项目简称_create_view.sql,所有涉及视图的创建和修改,必须实时更新此文件,并且如果在PDM文件中有视图的创建,需要更新PDM文件.

注:

修改表脚本只作为备忘,所有表结构的修改,都必须实时更新"PDM文件"和"创建表脚本",便于项目实施时表结构的导入.

附录A:

xml文件使用说明

表结构设计文件是指在进行表,视图,以及约束的设计过程中所产生的文件.

格式:

xml文件

xml-stylesheettype="text/xsl"href="ui/TL_Schema.xsl"?

>

DOCTYPEapp-dataSYSTEM"ui/TL_Schema.dtd">

上面两行格式固定,主要用于数据结构的列表展示,每一个表结构文件都要引用

文件根节点

文件二级节点,下面允许有多个元素

✧文件三级节点,指项目设计中的模块,name和chineseDescription必须维护.下面允许有多个节点.

文件四级节点,指项目设计中的模块,name和chineseDescription必须维护.下面允许有多个

节点

表定义节点,下面允许有多个元素

✓属性name指代表的英文名称,

✓属性chineseDescription指表的中文名称.

✓属性pkg指由表结构自动生成的java类所在包路径.

✓属性jspPath指由表结构自动生成的jsp文件在所路径

✓属性function="all"指生成增删改查

✓属性head="TABLE_NAME"指当前表的主表名称

✓属性line="TABLE_NAME"指当前表的细表名称

表注释元素,用来对表的功能,修改信息做出描述

表的列元素.

✓属性name指代字段的英文名称<即字段名>

✓primaryKey="true"用来标识当前列为主键列

✓required="true"用来标识当前列是否允许为空

✓type="VARCHAR"用来标识当前列的字段类型定义

✓size="10"用来标识当前列的字段长度

✓chineseDescription="内码"用来标识当前列的字段中文名称

✓queryShow="true"标识列中在查询列表中是否显示

✓searchShow="true"标识列中在查询条件中是否显示

✓updateShow=""标识列中在修改页面中是否显示

✓insertShow="true"标识该列在插入页面中是否显示

✓detailShow="true"标识该列在明细页面中是滞显示

✓enumValue="1:

JSP,2:

CLASS"标识该列允许的选择值及代表意义.

标识外键引用,允许子节点

本节点主要是把当前表字段与引用表字段根据字段名关联起来

附录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

展开阅读全文
相关搜索

当前位置:首页 > 工作范文 > 行政公文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1