文档库 最新最全的文档下载
当前位置:文档库 › 数据库开发规范

数据库开发规范

数据库开发规范
数据库开发规范

项目一部数据库开发规范

注:对该文件内容增加、删除或修改均需填写此变更记录,详细记载变更信息,以保证其可追溯性。

1.命名规范

1.1.对象

新建的表,存储过程,包等要遵循以下规则

1.2.表

表名不得超过30个字母,全部采用大写字母,表的命名可以如下:模块缩写名_表的名称,如RES_NODE代表资源模块的节点; 值班: DUTY_CALENDAR。

1.3.字段名称

字段名不得超过30个字母,必须以英文单词构成,每个单词之间以下划线隔开,全部采用大写字母。对复杂的大型应用系统而言,必须建立表名和字段名的数据字典,并附于开发规范附录中,在命名时必须严格遵守数据字典。

2.数据库对象管理

2.1.一般规定

数据库所有对象,包括表、视图、主键、索引、序列、存储过程、包等必须在数据库建模工具中进行管理并保持与数据库完全同步。

2.2.大小写

在数据库模型、数据库脚本中,所有对象,包括表、视图、主键、索引、序列、存储过程、包等名称必须大写。

3.语句书写规范

3.1.尽量不使用某种数据库的特有功能

为了保持可移植性,尽量不使用某种数据库的特有功能,如SQL Server专用的Unique ID, Oracle专用的Sequence的功能;

3.2.查询sql语句尽量使用绑定变量

3.3.尽最大可能不使用通配符

在SQL语句中,LIKE关键字支持通配符匹配,但这种匹配特别耗费时间。如:SELECT A FROM ABC WHERE A LIKE 'M%' 。在A字段上建立了索引。把语句改为SELECT A FROM ABC WHERE A >'M' AND A <'N',在执行查询时会利用索引以提高响应速度。

使用*通配符必须事先征得项目开发负责人同意。

3.3.1Distinct

使用distinct会增加查询和I/O的操作次数。应当避免使用distinct关键字。

3.3.2嵌套查询

SELECT A FROM CMS_USER WHERE USER_NAME IN ( SELECT

USER_NAME FROM CMS_DEPARTMENT WHERE DEPARTMENT=’电子办’)如果我们用连接来代替,且表关联放在条件语句的最后部。即:

SELECT A FROM CMS_USER,CMS_DEPARTMENT WHERE

CMS_DEPARTMENT .DEPARTMENT=’电子办’ AND

CMS_DEPARTMENT .USER_NAME = CMS_https://www.wendangku.net/doc/5616939206.html,ER_NAME 将提高一定的效率。

查询嵌套层次越多,效率越低。应当尽量避免子查询。如果子查询不可避免,那么要在子查询中过滤掉尽可能多的行。

3.3.3排序

利用索引自动以适当的次序输出时,可以避免对表中数据排序,当以下的情况发生时,排序就不能省略:

?索引中不包括一个或几个待排序的列;

?group by或order by子句中列的次序与索引的次序不一样;

?排序的列来自不同的表。

正确地增建索引、合理地合并数据库表,可以避免不必要的排序。如果排序不可避免,那么应当试图简化它,如缩小排序列的范围等。

3.3.4UNION

如果不过滤多表中的重复数据,请使用UNION ALL;如果过滤多表中的重复数据,请使用UNION。

3.3.5长语句

避免使用很长、很复杂的查询语句,如果有特殊需求必须书写较长的SQL语句,应该把语句分解成若干部分,每一部分形成一个存储过程或函数。

3.3.6大表尽可能使用分区

大表分区:超过1G的表尽可能使用分区,分区的原则和尽可能和维护该表的机制结合起来。比如:保留10天数据,每天删除10天前的一天数据,在删除数据的时候,可以采用采用alter table table_name truncate partition partition_name,而后alter table table_name drop partition partition_name;这里不直接使用drop的原因是减小数据库的开销。Truncate 是在秒的级别中完成。

3.3.7其他注意事项

1)在条件语句中,如 Where a.s=b.c 中将记录少的表放在等号的前部。表关联

条件放在语句的最后部。

2)不使用容易与系统关键字重复的单词来命名,如ID,DATE等,但可以使用如

NODEID,BUYDATE等可以来命名;

3)SQL语句用大写字母(字段中的内容除外);

4)编写ddl和dml时,每个语句后面必须加上分号;

5)对于定期增加性的性能数据表,必须建立有效的索引;

6)查询语句的Where语句必须落在索引上。

4高效的sql语句

4.1Sql优化方法

RBO(rule-based optimizer)

CBO

4.1.1驱动表

1)2张行数不一致的表连接

表TAB1行数:16,384行

表TAB2行数:1行

×SELECT COUNT(*) FROM TAB2, TAB1;

○SELECT COUNT(*) FROM TAB1, TAB2;

2)3张表连接

×SELECT *

FROM EMP E,

LOC L,

CAT C

WHERE E.emp_no BETWEEN 1000 AND 2000

AND E.cat_no = C.cat_no

AND E.locn = L.locn;

○SELECT *

FROM LOC L,

CAT C,

EMP E

WHERE E.emp_no BETWEEN 1000 AND 2000

AND E.cat_no = C.cat_no

AND E.locn = L.locn;

4.1.2Where语句顺序的效率

1)使用索引引起的where语句效率

使用AND语句时行数多的放在前面

×SELECT *

FROM emp E

WHERE emp_sal > 50000

AND emp_type = 'MANAGER'

AND 25 < (SELECT COUNT(*) FROM EMP WHERE emp_mgr

= E.emp_no);

○SELECT *

FROM emp E

WHERE 25 < (SELECT COUNT(*) FROM EMP WHERE

emp_mgr = E.emp_no)

AND emp_sal > 50000

AND emp_type = 'MANAGER';

使用OR语句时,行数多的放在后面

×SELECT *

FROM emp E

WHERE 25 < (SELECT COUNT(*) FROM EMP WHERE

emp_mgr = E.emp_no)

OR (emp_sal > 50000

AND emp_type = 'MANAGER');

○SELECT *

FROM emp E

WHERE (emp_sal > 50000

AND emp_type = 'MANAGER')

OR 25 < (SELECT COUNT(*) FROM EMP WHERE emp_mgr =

E.emp_no);

2)ROWID的使用

使用ROWID的WHERE语句效率最高。

SELECT ROWID, ...

INTO :emp_rowid, ...

FROM emp

WHERE emp.emp_no = 56722

FOR UPDATE;

UPDATE emp

SET https://www.wendangku.net/doc/5616939206.html, = ... ,

WHERE ROWID = :emp_rowid;

3)减少访问次数

×SELECT emp_name, sal, grade

FROM emp

WHERE emp_no = 0342;

SELECT emp_name, sal, grade

FROM emp

WHERE emp_no = 0291;

○SELECT A.emp_name, A.sal, A.grade,

B.emp_name, B.sal, B.grade

FROM emp A, emp B

WHERE A.emp_no = 0342

AND B.emp_no = 0291;

4)Where语句的索引的使用

(1)SUBSTR

×SELECT acc_name, trans_date, amount

FROM transaction

WHERE SUBSTR(account_name,1,7) = 'CAPITAL';

○SELECT acc_name, trans_date, amount

FROM transaction

WHERE account_name LIKE 'CAPITAL%';

(2)!=

×SELECT acc_name, trans_date, amount

FROM transaction

WHERE amount != 0;

FROM transaction

WHERE amount > 0;

(3)TRUNC

×SELECT acc_name, trans_date, amount

FROM transaction

WHERE TRUNC(trans_date) = TRUNC(SYSDATE);

○SELECT acc_name, trans_date, amount

FROM transaction

WHERE trans_date

BETWEEN TRUNC(SYSDATE)

AND TRUNC(SYSDATE) + .99999;

(4)||

×SELECT acc_name, trans_date, amount

FROM transaction

WHERE acc_name || acc_type = 'AMEXA';

○SELECT acc_name, trans_date, amount

FROM transaction

WHERE acc_name = 'AMEX'

AND acc_type = 'A';

(5)运算

×SELECT acc_name, trans_date, amount

FROM transaction

WHERE amount + 3000 < 5000;

○SELECT acc_name, trans_date, amount

FROM transaction

WHERE amount < 5000 + 3000;

4.2SQL命令的使用秘诀

4.2.1DECODE的使用

×SELECT COUNT(*), SUM(salary)

FROM emp

WHERE dept_no = 0020

AND emp_name LIKE 'SMITH%';

SELECT COUNT(*), SUM(salary)

FROM emp

WHERE dept_no = 0030

AND emp_name LIKE 'SMITH%';

○SELECT COUNT(DECODE(dept_no, 0020, 'X', NULL))

D0020_count,

COUNT (DECODE(dept_no, 0030, 'X', NULL))D0030_count,

SUM (DECODE(dept, 0020, salary, NULL)) D0020_sal,

SUM (DECODE(dept, 0030, salary, NULL)) D0030_sal

FROM emp

WHERE emp_name LIKE 'SMITH%';

4.2.2表的别名的使用

× SELECT E.emp_no, name, tax_no, https://www.wendangku.net/doc/5616939206.html,p_code, comp_name

FROM company C, emp E

WHERE https://www.wendangku.net/doc/5616939206.html,p_code = https://www.wendangku.net/doc/5616939206.html,p_code;

○ SELECT E.emp_no, https://www.wendangku.net/doc/5616939206.html,, E.tax_no, https://www.wendangku.net/doc/5616939206.html,p_code, https://www.wendangku.net/doc/5616939206.html,p_name

FROM company C, emp E

WHERE https://www.wendangku.net/doc/5616939206.html,p_code = https://www.wendangku.net/doc/5616939206.html,p_code;

4.2.3去掉重复行

DELETE FROM emp E

WHERE E.rowid > ( SELECT MIN(X.rowid)

FROM emp X

WHERE X.emp_no = E.emp_no );

4.2.4表的行计数

SELECT COUNT(有索引的列) FROM TRANS;

SELECT COUNT(*) FROM TRANS;

SELECT COUNT(1) FROM TRANS;

4.2.5用WHERE语句替换HAVING语句的使用

×SELECT region, AVG(loc_size)

FROM location

GROUP BY region

HAVING region != 'SYDNEY'

AND region != 'PERTH';

○SELECT region, AVG(loc_size)

FROM location

WHERE region != 'SYDNEY'

AND region != 'PERTH';

GROUP BY region

4.2.6使用表连接替代EXISTS使用

×SELECT emp_name

FROM emp

WHERE (emp_cat, sal_range) =

(SELECT MAX(category), MAX(sal_range) FROM emp_categories) AND emp_dept = 0020;

○SELECT emp_name

FROM emp

WHERE emp_cat = (SELECT MAX(category) FROM emp_categories)

AND sal_range = (SELECT MAX(sal_range) FROM emp_categories)

AND emp_dept = 0020;

4.2.7使用EXISTS替代表连接

×SELECT ...

FROM dept D, emp E

WHERE E.dept_no = D.dept_no

AND E.emp_type = 'MANAGER'

AND D.dept_cat = 'A';

○SELECT ...

FROM emp E

WHERE EXISTS ( SELECT 'X' FROM dept

WHERE dept_no = E.dept_no

AND dept_cat = 'A')

AND E.emp_type = 'MANAGER';

×SELECT ...

FROM dept D, emp E

WHERE E.dept_no = D.dept_no

AND (E.emp_type = 'MANAGER'

OR D.dept_cat = 'A');

○SELECT ...

FROM emp E

WHERE E.emp_type = 'MANAGER';

OR EXISTS ( SELECT 'X'

FROM dept

WHERE dept_no = E.dept_no

AND dept_cat = 'A');

4.2.8使用EXISTS代替DISTINCT语句

×SELECT DISTINCT dept_no, dept_name

FROM dept D, emp E

WHERE D.dept_no = E.dept_no;

○SELECT dept_no, dept_name

FROM dept D

WHERE EXISTS ( SELECT 'X'

FROM emp E

WHERE E.dept_no = D.dept_no);

4.2.9使用NOT EXISTS代替NOT IN语句

× SELECT ...

FROM emp

WHERE dept_no NOT IN ( SELECT dept_no

FROM dept

WHERE dept_cat = 'A');

○SELECT ...

FROM emp E

WHERE NOT EXISTS ( SELECT 'X'

FROM dept

WHERE dept_no = E.dept_no

AND dept_cat = 'A');

4.2.10使用union all 代替union 语句

Union -------- 进行排序

Union All -------- 不排序

4.2.11使用Union和IN代替OR语句

Loc_no, region上有索引

× SELECT ...

FROM location

WHERE loc_id = 10

OR region = 'MELBOURNE';

○ SELECT ...

FROM location

WHERE loc_id = 10

UNION ALL

SELECT ...

FROM location

WHERE region = 'MELBOURNE';

×SELECT ...

FROM location

WHERE loc_id = 10

OR loc_id = 20

OR loc_id = 30;

5高效索引

5.1索引的使用

使用索引时,要考虑以下因素:

1)索引列的计算

2)索引列的增加

3)索引列不要用NOT

4)索引中空值的使用

IS NULL, IS NOT NULL

5)索引列的数据类型的变换

EMP_TYPE为varchar2类型,下列语句使用索引

SELECT ...

FROM emp

WHERE emp_type = 123;

SELECT ...

FROM emp

WHERE TO_NUMBER(emp_type) = 123;

SELECT ...

FROM emp

WHERE emp_type = '123';

5.2增加索引

增加索引要考虑多种因素,要考虑对更新、插入的影响等。

1)频繁查询不超过大表1%~15%的场合。

2)列的不同值

3)列

4)列

5)同表

6解析表的使用方法

6.1SQLTRACE

6.1.1参数表的生成

$>sqlplus –s /

SQL>@$ORACLE_HOME/rdbms/admin/utlxplan.sql

SQL> commit

SQL> exit

6.1.2AUTOTRACE的用法

@afe57gc2/users/home/ino 29 >sqlplus sys/****

SQL> @$ORACLE_HOME/sqlplus/admin/plustrce.sql

SQL> drop role plustrace;

SQL> grant plustrace to ops$ino;

SQL> exit

6.1.3AUTOTRACE功能的使用

@afe57gc2/oracle/product/8.1.7 37 >sqlplus /

SQL> set autotrace on

SQL> select * from wcattori;

执行计划

----------------------------------------------------------

0 SELECT STATEMENT Optimizer=CHOOSE

1 0 TABLE ACCESS (FULL) OF 'WCATTORI'

統計

----------------------------------------------------------

0 recursive calls

12 db block gets

4 consistent gets

0 physical reads

0 redo size

4779 bytes sent via SQL*Net to client

314 bytes received via SQL*Net from client

1 SQL*Net roundtrips to/from client

0 sorts (memory)

0 sorts (disk)

0 rows processed

SQL>

6.2TKPROF

6.2.1初始化

@afe57gc2/oracle/product/8.1.7 40 >sqlplus /

SQL> ALTER SESSION SET TIMED_STATISTICS = true;

SQL> ALTER SESSION SET MAX_DUMP_FILE_SIZE = 500;

6.2.2SQL Trace开始

SQL> ALTER SESSION SET SQL_TRACE = true;

6.2.3实例

SQL> SELECT * FROM WCATTORI;

6.2.4SQL Trace结束

SQL> ALTER SESSION SET SQL_TRACE = false;

SQL> exit

6.2.5内容变换

@afe57gc2/users/home/ino 44 >su

Password:

# chmod 777 /oracle/product/8.1.7/rdbms/log/ora_14186_wca1.trc

# exit

@afe57gc2/users/home/ino 46 >tkprof

$ORACLE_HOME/rdbms/log/ora_14186_wca1.trc output.txt

TKPROF: Release 8.1.7.2.0 - Production on 木 Apr 18 15:55:17 2002

(c) Copyright 2000 Oracle Corporation. All rights reserved.

備考:ログファイルの出力先

SQL> column name format A20

SQL> column value format A30

SQL> select name, value from v$parameter where name like '%dump_dest';

NAME VALUE

-------------------- ------------------------------

background_dump_dest ?/rdbms/log

user_dump_dest ?/rdbms/log

core_dump_dest ?/dbs

SQL>

6.2.6内容确认

@afe57gc2/users/home/ino 47 >cat output.txt (一部抜粋)

SELECT *

FROM

WCATTORI

call count cpu elapsed disk query current rows

------- ------ -------- ---------- ---------- ---------- ---------- ----------

Parse 1 0.00 0.00 0 0 0 0

Execute 1 0.00 0.00 0 0 0 0

Fetch 1 0.00 0.00 0 4 12 0

------- ------ -------- ---------- ---------- ---------- ---------- ----------

total 3 0.00 0.00 0 4 12 0

Misses in library cache during parse: 0

Optimizer goal: CHOOSE

Parsing user id: 34

Rows Row Source Operation

------- ---------------------------------------------------

0 TABLE ACCESS FULL WCATTORI

软件工程-数据库设计规范与命名规则

数据库设计规范、技巧与命名规范 一、数据库设计过程 数据库技术是信息资源管理最有效的手段。 数据库设计是指:对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,有效存储数据, 满足用户信息要求和处理要求。 数据库设计的各阶段: A、需求分析阶段:综合各个用户的应用需求(现实世界的需求)。 B、在概念设计阶段:形成独立于机器和各DBMS产品的概念模式(信息世界模型),用E-R图来描述。 C、在逻辑设计阶段:将E-R图转换成具体的数据库产品支持的数据模型,如关系模型,形成数据库逻辑模式。 然后根据用户处理的要求,安全性的考虑,在基本表的基础上再建立必要的视图(VIEW)形成数据的外模式。 D、在物理设计阶段:根据DBMS特点和处理的需要,进行物理存储安排,设计索引,形成数据库内模式。 1. 需求分析阶段 需求收集和分析,结果得到数据字典描述的数据需求(和数据流图描述的处理需求)。 需求分析的重点:调查、收集与分析用户在数据管理中的信息要求、处理要求、安全性与完整性要求。 需求分析的方法:调查组织机构情况、各部门的业务活动情况、协助用户明确对新系统的各种要求、确定新系统的边界。 常用的调查方法有:跟班作业、开调查会、请专人介绍、询问、设计调查表请用户填写、查阅记录。 分析和表达用户需求的方法主要包括自顶向下和自底向上两类方法。自顶向下的结构化分析方法(Structured Analysis, 简称SA方法)从最上层的系统组织机构入手,采用逐层分解的方式分析系统,并把每一层用数据流图和数据字典描述。 数据流图表达了数据和处理过程的关系。系统中的数据则借助数据字典(Data Dictionary,简称DD)来描述。 2. 概念结构设计阶段 通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模型,可以用E-R图表示。 概念模型用于信息世界的建模。概念模型不依赖于某一个DBMS支持的数据模型。概念模型可以转换为计算机上某一 DBMS 支持的特定数据模型。 概念模型特点: (1) 具有较强的语义表达能力,能够方便、直接地表达应用中的各种语义知识。 (2) 应该简单、清晰、易于用户理解,是用户与数据库设计人员之间进行交流的语言。 概念模型设计的一种常用方法为IDEF1X方法,它就是把实体-联系方法应用到语义数据模型中的一种语义模型化技术, 用于建立系统信息模型。 使用IDEF1X方法创建E-R模型的步骤如下所示:

MySQL数据库开发规范1.3

平安金融科技数据库(MySQL)开发规范 作者: 简朝阳 Last Updated: 25/02/14 19:30:18 历史修订记录: 版本修订人修订时间修订内容 1.0 1.1 李海军2013-03-11 增加部分说明及修改 1.2 李海军2013-07-29 增加连接池使用说明和memory引擎的控制 1.3 李海军2014-02-25 增加了char类型,修改了timestamp的使用场合。 说明 ?本规范包含平安金融科技使用MySQL 数据库时所需要遵循的所有对象设计(数据库,表,字段),所需要遵循的命名,对象设计,SQL 编写等的规范约定。 ?所有内容都为必须严格执行的项目,执行过程中有任何疑问,请联系DBA Team 取得帮助。 概述 ?禁止明文传播数据库帐号和密码。 ?禁止开发工程师通过应用帐号登录生产数据库。 ?禁止应用在服务器安装MySQL客户端(可以安装开发包)。 ?禁止开发人员在SQL中添加Hint,Hint只能由DBA审核后添加。 ?禁止使用悲观锁定,即读锁select … for update。 ?禁止在开发代码中使用DDL语句,比如truncate,alter table … 等。 ?禁止DML语句的where条件中包含恒真条件(如:1=1)。

1. 命名规范 总则 ?数据库对象名仅可包含小写英文字母、数字、下划线(_)三类字符,并以英文字母开头。 ?数据库对象命名禁止使用MySQL保留字。 ?多个单词之间用下划线(_)分隔。 ?对象名称长度若超过限制,则使用简写/缩写命名。 1.1. 数据库命名 ?数据库以"db_"前缀+ "站点名_"前缀及其所服务的应用名称命名。 1.2. 表命名 ?所属同一模块的表必须以模块名作为前缀命名。 ?历史数据表在原表基础上增加"_his"后缀命名。 1.3. 字段命名 ?布尔意义的字段以"_flag"作为后缀,前接动词。如:表示逻辑删除意义的字段可命名为delete_flag。 ?各表间相同意义的字段(如:作为连接关系的引用字段)使用相同的字段名。 1.4. 索引命名 ?唯一索引以uk_tablename_columnnames 方式命名 ?普通索引以idx_tablename_columnnames 方式命名 ?组合索引以idx_tablename_column1_column2... 方式命名 示例 ?站点名:maymay ?模块名:order ; ?数据表:item; ?字段组成:order_item_id,add_time,raw_update_time,c1,c2,c3,c4,c5 ?标准数据库名:db_maymay_order; ?标准数据表名:order_item; ?历史数据表名:order_item_his;

能耗监测平台系统-数据库结构

能耗监测平台系统数据库结构

目录 一、数据库表 .......................................................................................................................... - 3 - 数据库名称:Energymonitor ...................................................................................................... - 3 - 1. 行政区划表(XingZhengQH)......................................................................................... - 3 - 2. 建筑类别表(JianZhuLB) .............................................................................................. - 3 - 3. 能耗单位信息表(NengHaoDW).................................................................................. - 3 - 4. 能耗分类信息表(NengHaoFL) .................................................................................... - 3 - 5. 能耗分项信息表(NengHaoFX).................................................................................... - 4 - 6. 能耗标准煤换算信息表(NengHaoBZMHS) ................................................................ - 4 - 二、值列表 .............................................................................................................................. - 4 -

专题数据库建设推荐标准规范

专题数据库建设推荐标准规范 (一)数据采集规范 1.数据来源包括在人文社会科学研究过程中采集、加工和积累的研究数据。 2.采集对象包括社会调查、统计分析、案例集成、基础文献等一手数据和原始资料。 3.数据类型包括数值、文本、图片、音频、视频和空间数据等。 4.采集方式包括自动采集、半自动采集和手工采集等。 (二)数据加工规范 1.数字对象唯一标识符规范采用《我国数字图书馆标准规范建设》项目(CDLS)所推荐的唯一标识符体系以及数据中心规定的相关标准。 2.专题数据库的核心元数据应符合《TR-REC-014数据集核心元数据规范》及数据中心的相关要求。 3.音频资料描述元数据规范及著录规则,遵循《CDLS-S05-031音频资料描述元数据规范》和《CDLS-S05-032音频资料元数据著录规则》所推荐的一系列相关标准以及数据中心规定的相关标准。 4.其它资料描述元数据规范及著录规则,遵循《我国数字图书馆标准规范建设》项目(CDLS)所推荐的一系列相关标准及数据中心规定的相关标准。

5.各类接口所实现服务的标识应符合《TR-REC-017资源唯一标识规范》的相关规范要求。 6.文本、图片、音频、视频等各类型数据能够转换为数据中心规定的数字文件格式。 7.专题数据库数据的加工过程需严格执行两重审核制度,保证数据格式符合规定标准。 (三)数据库系统规范 1.专题数据库系统平台必须使用正版数据库管理系统软件,推荐使用关系数据库管理系统,遵守SQL语言系列标准。 2.专题数据库系统平台应具备数据备份及容灾机制,重要数据应进行异地备份。 3.专题数据库系统平台应具备一定的扩充能力,系统的模块化程度高,软件维护方便。 4.专题数据库系统平台应遵循中国国家标准GB/T 20273-2006《数据库管理系统安全技术要求》,具有切实可行的安全保护和保密措施,确保数据永久安全。 (四)专题数据库应用系统规范 1.专题数据库应用系统至少包括数据采集、数据加工、数据检测、数据浏览、数据检索、用户管理和数据维护七大类功能。 2.专题数据库应用系统至少支持开放数据访问接口、开放索引数据收割接口和开放服务状态监控接口三类功能接口。 3.专题数据库应用系统向数据中心提供访问完整数据记

数据库设计和编码规范

数据库设计和编码规范 Version

目录

简介 读者对象 此文档说明书供开发部全体成员阅读。 目的 一个合理的数据库结构设计是保证系统性能的基础。一个好的规范让新手容易进入状态且少犯错,保持团队支持顺畅,系统长久使用后不至于紊乱,让管理者易于在众多对象中,获取所需或理清问题。 同时,定义标准程序也需要团队合作,讨论出大家愿意遵循的规范。随着时间演进,还需要逐步校订与修改规范,让团队运行更为顺畅。 数据库命名规范 团队开发与管理信息系统讲究默契,而制定服务器、数据库对象、变量等命名规则是建立默契的基本。 命名规则是让所有的数据库用户,如数据库管理员、程序设计人员和程序开发人员,可以直观地辨识对象用途。而命名规则大都约定俗成,可以依照公司文化、团队习惯修改并落实。 规范总体要求 1.避免使用系统产品本身的惯例,让用户混淆自定义对象和系统对象或关键词。 例如,存储过程不要以sp_或xp_开头,因为SQL SERVER的系统存储过程以 sp_开头,扩展存储过程以xp_开头。 2.不要使用空白符号、运算符号、中文字、关键词来命名对象。 3.名称不宜过于简略,要让对象的用途直观易懂,但也不宜过长,造成使用不方 便。 4.不用为数据表内字段名称加上数据类型的缩写。 5.名称中最好不要包括中划线。

6.禁止使用[拼音]+[英语]的方式来命名数据库对象或变量。 数据库对象命名规范 我们约定,数据库对象包括表、视图(查询)、存储过程(参数查询)、函数、约束。对象名字由前缀和实际名字组成,长度不超过30。避免中文和保留关键字,做到简洁又有意义。前缀就是要求每种对象有固定的开头字符串,而开头字符串宜短且字数统一。可以讨论一下对各种对象的命名规范,通过后严格按照要求实施。例如:

污染源在线监控站点基础数据库系统

佛山市水质自动监测系统软件开发项目 项目名称 佛山市水质自动监测系统软件开发项目 二、项目范围 软件开发和数据对接 、项目建设背景 为加强对江河水质的监控并及时掌握水质情况,2006 年建设了水环境质量自动监测网络,其中,全市已建成7个水质自动监测站,拟建3 个,监测项目达14 项,水环境质量自动监测网能实时对全市主要江河水源地和跨界断面水质进行监控。水站建成后由于分布地方不同,收集各站点的信息比较麻烦,环境管理人员不能及时掌握各水站的水质监测情况,因此急需建设一套水质自动监测系统,把各水站监测的各主要江河水质数据在系统上表现出来。 同时,2004 年我局建设了污染源在线监控系统,该系 统实时监控我市重点污染源排污状况,包括废水重点污染源和省控制废气重点污染源企业。为进一步扩展系统将地表水自动监测站监测数据纳入系统监控,要求在此平台基础上开发水质自动监测系统,把各水站监测的各主要江河水质数据在环境信息管理平台上表现出来,为环境管理和环境决策提供有效信息。

四、各水站点运行及建设概况 1、水站建设现状 截至2008 年4 月,佛山市境内已建成水质自动监测子 站共7 个,包括位于禅城区沙口站,顺德区陈村潭村站、伦教羊额站、龙江杨滘站、均安七滘站、容桂穗香围站,以及省环保局投资建设的位于三水区青岐站。拟建水质自动监测站共3 个,包括即将建成的位于南海区小塘站、计划年内兴建的位于高明区富湾站和位于三水区大塘站。 2、监测项目 目前沙口水质自动监测站监测项目包括水温、pH 值、 溶解氧、电导率、浊度、高锰酸盐指数、氨氮、总磷、总有机碳等9 项。年内新增包括硬度、酚、氰化物、总砷、镉、六价铬、镍等7 项 监测项目。 位于顺德区5 个水质自动监测站监测项目相同,包括 pH 值、溶解氧、电导率、浊度、高锰酸盐指数、硬度、酚、 氟化物、硝酸盐氮、氨氮、总磷、氰化物及总砷等14 项。 三水区青岐站监测项目包括水温、pH 值、溶解氧、电 氰化物 等10 项。 在建南海区小塘站监测项目包括水温、pH 值、溶解氧、

数据库设计方法、规范与技巧

数据库设计方法、规范与技巧 一、数据库设计过程 数据库技术是信息资源管理最有效的手段。数据库设计是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,有效存储数据,满足用户信息要求和处理要求。 数据库设计中需求分析阶段综合各个用户的应用需求(现实世界的需求),在概念设计阶段形成独立于机器特点、独立于各个DBMS产品的概念模式(信息世界模型),用E-R图来描述。在逻辑设计阶段将E-R图转换成具体的数据库产品支持的数据模型如关系模型,形成数据库逻辑模式。然后根据用户处理的要求,安全性的考虑,在基本表的基础上再建立必要的视图(VIEW)形成数据的外模式。在物理设计阶段根据DBMS特点和处理的需要,进行物理存储安排,设计索引,形成数据库内模式。 1. 需求分析阶段 需求收集和分析,结果得到数据字典描述的数据需求(和数据流图描述的处理需求)。 需求分析的重点是调查、收集与分析用户在数据管理中的信息要求、处理要求、安全性与完整性要求。 需求分析的方法:调查组织机构情况、调查各部门的业务活动情况、协助用户明确对新系统的各种要求、确定新系统的边界。 常用的调查方法有:跟班作业、开调查会、请专人介绍、询问、设计调查表请用户填写、查阅记录。 分析和表达用户需求的方法主要包括自顶向下和自底向上两类方法。自顶向下的结构化分析方法(Structured Analysis,简称SA方法)从最上层的系统组织机构入手,采用逐层分解的方式分析系统,并把每一层用数据流图和数据字典描述。 数据流图表达了数据和处理过程的关系。系统中的数据则借助数据字典(Data Dictionary,简称DD)来描述。 数据字典是各类数据描述的集合,它是关于数据库中数据的描述,即元数据,而不是数据本身。数据字典通常包括数据项、数据结构、数据流、数据存储和处理过程五个部分(至少应该包含每个字段的数据类型和在每个表内的主外键)。 数据项描述={数据项名,数据项含义说明,别名,数据类型,长度, 取值范围,取值含义,与其他数据项的逻辑关系} 数据结构描述={数据结构名,含义说明,组成:{数据项或数据结构}} 数据流描述={数据流名,说明,数据流来源,数据流去向, 组成:{数据结构},平均流量,高峰期流量} 数据存储描述={数据存储名,说明,编号,流入的数据流,流出的数据流, 组成:{数据结构},数据量,存取方式} 处理过程描述={处理过程名,说明,输入:{数据流},输出:{数据流}, 处理:{简要说明}} 2. 概念结构设计阶段 通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模型,可以用E-R图表示。概念模型用于信息世界的建模。概念模型不依赖于某一个DBMS支持的数据模型。概念模型可以转换为计算机上某一DBMS支持的特定数据模型。 概念模型特点: (1) 具有较强的语义表达能力,能够方便、直接地表达应用中的各种语义知识。 (2) 应该简单、清晰、易于用户理解,是用户与数据库设计人员之间进行交流的语言。 概念模型设计的一种常用方法为IDEF1X方法,它就是把实体-联系方法应用到语义数据模型中的一种语义模型化技术,用于建立系统信息模型。 使用IDEF1X方法创建E-R模型的步骤如下所示: 2.1 第零步——初始化工程

人口基础数据库建设规范

竭诚为您提供优质文档/双击可除人口基础数据库建设规范 篇一:全员人口数据库建设培训手册 入户调查———信息卡登记填写篇 以下几个率,我们各级检查中是要考核的,数据库的建设必须达到如下指标: 1、全员人口个案信息覆盖率要求达到95% 口个案信息覆盖率=去除重复个案后数据库包含人口数/应纳入全员库人口总数×100% 应纳入全员库人口包括本地户籍人口(含流出人口)与流入人口。 2、准确率(已采集信息正确的人数占已采集所有人数的比例)(具体计算可能要通过逻辑审核或者是实地调查核与信息卡数据库核对结果计算)95%以上。 3、项目完整率(每人约有50项采集内容,其中每人已采集项目与总项目数的比例)(在实际计算中可能选择其中几项必须填写项来计算,如逻辑审核中重点核实的缺少必填写项目审核) 4、数据库更新及时率(出生或者是四术发生变动时,

数据库是否及时变更,数据库中出生和四术的上报日期与实际的出生日期和实际避孕措施开始日期的变更不应超过三个月或者是更短日期,否则视为不及时) 以上各项指标的高低是关系到全员人口数据库建设成败与否的关键因素。 只有信息采集达到上述标准要求,才能为下一步全员录入奠定基础。 下面将全员人口信息采集步骤详细叙述如下: 一、全员人口数据库要求实现以房管人,内蒙采集规范对房屋的编码要求如下: 内蒙至村级编码示意图:(系统中已经固定编码) 村级至户级示意图:(小区至户未固定编码) 二、具体到平房或楼房中编码规则如下: 如图:这个平房小区共有三排: 第一排共一列,这一列有三院,一院大门向东开,一院里有三户人家,二院大门向南,院内有两户人家,三院有一户人家; 第二排共两列,第一列共一院,院内有两户人家,第二列共有两院,第一院有两户人家,第二院有一户人家; 第三排共一列,这一列有两院人家,第一院有两户,第二院有一户。 那么这个小区内的房屋编码依次为:

Oracle数据库开发规范

项目编号:××× xxx Oracle数据库开发规范 Oracle DB Development Standardization <部门名称> **年**月**日 文档信息: 文档名称: 文档编号: 文档版本日期: 起草人: 起草日期: 复审人: 复审日期: 版本历史: 版本 日期 作者 更改参考 说明

审批信息: 签字/日期 审核 审批 目录 1 概述 4 1.1 编写目的 4 1.2 文档约定 4 1.3 预期的读者和阅读建议 4 1.4 参考文献 5 2 数据库对象命名 6 2.1 命名总体原则 6 2.2 表名 6 2.3 视图 6 2.4 同义词 6 2.5 序列7 2.6 索引7 2.7 存储过程7 2.8 存储函数8 2.9 存储程序包8 2.10 触发器8 2.11 字段8 2.12 其他9 3 设计规范9 3.1 范围9 3.2 表空间9 3.3 字符集10 3.4 主外键约束10 3.5 分区表10 3.6 RAC下的序列设计10 3.7 字段10 3.8 表结构设计11 3.9 索引设计11 3.10 临时表11 4 SQL编写规范 12 4.1 书写规范12 4.2 SQL语句的索引使用13 4.3 SQL语句降低系统负荷 15 5 PL/SQL编程规范18

5.1 书写规范18 5.2 常用数据库操作语句编码规范19 5.3 常用过程控制结构20 5.4 Condition 21 5.5 Cursor 22 5.6 变量定义与赋值22 5.7 过程与函数调用23 5.8 例外处理(Exception) 23 5.9 例外处理的错误消息24 5.10 注释(Comment) 25 5.11 应用调试控制27 5.12 并发控制27 5.13 代码测试、维护29 1 概述 1.1 编写目的 为规范软件开发人员的Oracle数据库开发提供参考依据和统一标准。 1.2 文档约定 说明本文档中所用到的专用术语定义或解释,缩略词定义。 1.3 预期的读者和阅读建议 本文档适用于所有开发员。 1.4 参考文献 列出有关的参考文件,如: a.属于本项目的其他已发表文件; b.本文件中各处引用的文档资料。 列出这些文件的标题、作者,说明能够得到这些文件资料的来源。 2 数据库对象命名 2.1 命名总体原则 本规范所涉及数据库对象主要是指表、视图、同义词、索引、序列、存储过程、函数、触发器等; 命名应使用富有意义的英文词汇,尽量避免使用缩写,多个单词组成的,中间以下划线分割;避免使用Oracle的保留字或关键字,如LEVEL和TYPE; 各表之间相关列名尽量同名; 除数据库模式对象名称长度为1-8个字符,其余对象名称均要求不超过30个字符; 命名只能使用大写英文字母,数字和下划线,且以英文字母开头。 2.2 表名 规则:XXX_MMM_DDDD 说明:XXX代表子系统或模块名称(2-3个字母构成); MMM代表子模块名称(2-3个字母构成,根据实际情况可以没有); DDDD为表的简称含义,使用英文单词或词组构成,可包括下划线,但不得使用汉语拼音。 示例:PO_HEADERS_ALL 2.3 视图 规则:XXX_MMM_DDDD_V 说明:XXX代表子系统或模块名称(2-3个字母构成);

数据库性能监控分析系统的设计与实现

—105— 数据库性能监控分析系统的设计与实现 王 娜,宿红毅,白 琳,王 鑫,郝子昭 (北京理工大学计算机科学与工程系,北京 100081) 摘 要:在讨论Oracle 体系结构和性能优化的基础上介绍了一个基于J2EE 的数据库性能监控和分析系统(DMI)的总体设计思想及其部分实现。 关键词:性能优化;Oracle ;实时监控;JMS ;RMI Design and Realization of Database Performance Monitoring and Analyzing System WANG Na, SU Hongyi, BAI Lin, WANG Xin, HAO Zizhao (Dept. of Computer Science and Engineering, Beijing Institute of Technology, Beijing 100081) 【Abstract 】This paper presents the design and part of implementation of a database performance monitoring and analyzing system (DMI) based on J2EE with discussing the architecture and performance optimizing of Oracle. 【Key words 】Performance optimizing; Oracle; Real-time monitoring; JMS; RMI 计 算 机 工 程Computer Engineering 第31卷 第24期 Vol.31 № 24 2005年12月 December 2005 ·软件技术与数据库· 文章编号:1000—3428(2005)24—0105—03 文献标识码:A 中图分类号:TP311.13 随着数据库应用的不断深入和扩大,数据库中的数据量迅速增长,数据操作也越来越复杂,数据库工作效率逐渐下降。因此,实施对数据库的管理维护、性能调优越来越受到广大数据库管理员(DBA)的关注和重视。虽然目前各种数据库产品本身也提供了大量功能强大的性能监控和调试工具,如Oracle 的OEM 、Performance Manager 、Capacity Planer 等,来帮助数据库管理人员对数据库性能进行调整、优化,但遗憾的是,精通掌握这些工具并能通过它们来有效地分析数据库性能状态,进而合理配置数据库以调整其性能也十分困难。因此开发一个简单高效的数据库性能监控管理工具来辅助DBA 对数据库进行性能分析调优成为数据库应用不断扩展的需要。 针对这种情况,本文结合业界先进的数据库管理经验,开发了Database Management Insight(DMI)——一个简单、实用、方便、安全的数据库监控管理平台。它可以有效地辅助数据库管理人员对数据库进行性能优化,确保数据库正常、平滑、高效地运转。DMI 可以监控Oracle 、Sybase 、DB2等数据库,本文以Oracle 为例来对该系统进行阐述。 1 总体设计 1.1 Oracle 的结构和性能优化 数据库优化的目的是更改系统的一个或多个组件,使其满足一个或多个目标的过程。对Oracle 数据库来说,优化是进行合理的资源配置,达到组件之间的均衡以改善其性能,即增加吞吐量、提高响应时间。数据库性能优化要考虑到系统的各个组成部分,由图1可以看出,Oracle 应用系统主要包含以下几个部分[1]: (1)用户进程和服务器进程 用户进程是SQL 语句的提出者,服务器进程则负责执行由用户进程传递过来的SQL 语句,与SGA 区交互。用户进程和服务器进程是数据库性能调整的一个重要方面,尤其是当用户的数量随着时间的推移而 不断增大时,建立与数据库的重复性临时连接的Web 应用系统会导致性能下降[2]。 (2)Oracle 实例 一个Oracle 实例是存储结构和后台进程的组合体。其中,SGA 是用来存放所有数据库进程共享的数据和控制信息的存储区域,当数据库一启动,SGA 就立即占有服务器的内存空间。SGA 中的库高速缓存、字典高速缓存、数据高速缓存、日志缓冲区以及大缓冲池和Java 池等组件的大小对系统性能有极大的影响,它们直接影响磁盘I/O 的频率,从而影响数据库效率[3]。实施性能优化时应注意DB_CACHE_SIZE 、SHARED_POOL_SIZE 、LOG_BUFFER 、LARGE_POOL_SIZE 和JAVA_POOL_SIZE 这几个参数的值,如果配置不合理会造成系统资源的极大浪费。 图 1 Oracle 体系结构 基金项目:武器装备预研项目 作者简介:王 娜(1981—),女,硕士生,主研方向:计算机网络与分布式处理;宿红毅,副教授;白 琳、王 鑫、郝子昭,硕士生 收稿日期:2004-10-28 E-mail :sdbzwn@https://www.wendangku.net/doc/5616939206.html,

数据库规范

数据库相关规范 1.使用utf8mb4字符集 2.所有表、字段必须写清中文注释 3.金额字段禁止使用小数存储(单位:分) 4.禁止使用字段属性隐式转换(如:“WHERE ms_no = 1234”ms_no为字符串类型) 5.尽量不使用负向查询(NOT、!=、<>、!<、!>、NOT IN、NOT LIKE等) 6.禁止使用外键,如有完整性约束,需要应用程序控制 7.禁止使用程序配置文件内的账号访问线上数据库 8.禁止非DBA对线上数据库进行写操作 9.开发、测试、线上环境分离 10.所以提交的SQL语句必须经过测试 11.禁止存储大文件或大照片 12.库名、表名、字段名:小写,下划线分割,不超过32个字符,必须见名知意,禁止拼 音英文混用 13.表必须有主键 14.必须把字段定义为NOT NULL并设置默认值 15.必须使用varchar(20)来存储手机号 16.单表索引控制在5个以内,单索引字段数不许超过5个 a)索引的使用。? b)(1) 尽量避免对索引列进行计算。如计算较多,请提请管理员建立函数索引。? c)(2) 尽量注意比较值与索引列数据类型的一致性。? d)(3) 对于复合索引,SQL语句必须使用主索引列? e)(4) 索引中,尽量避免使用NULL。? f)(5) 对于索引的比较,尽量避免使用NOT=(!=)? g)(6) 查询列和排序列与索引列次序保持一致 (7) 禁止在更新频繁、区分度不高(如:性别)的字段上建立索引 (8) 建立组合索引,必须把区分度高的字段放在前面 17.禁止使用SELECT * ,只获取必要的字段 18.禁止使用INSERT INTO t_xxx VALUES(xxx),必须指定插入的列名 19.禁止在WHERE条件的属性上使用函数或表达式 20.禁止%开头的模糊查询 21.禁止使用OR条件 22.应用程序必须捕获SQL异常,并作出相应处理 23.逻辑删除代替物理删除 24.选择最有效的表名、查询条件顺序(从右到左) 25.减少访问数据库的次数 26.SQL中的关键字均使用大写字母,数据表最好起别名 27.查询条件中“>=”代替“>” 28.等号两边使用空格,逗号后使用空格 29.多表操作必须使用别名 30.整条语句必须写明注释,关键逻辑单独书写注释,说明算法、功能 a)注释风格:注释单独成行、放在语句前面。? b)(1) 应对不易理解的分支条件表达式加注释;? c)(2) 对重要的计算应说明其功能;?

数据库建设规范

数据库建设规范 目录 1. 前言 2 2. 范围 3 3. 术语和定义3 范式3 关联3 关系模型 3 视图3 外键3 约束3 主键4 4. 命名规范 4 规范约定 4 表名4 视图4 存储过程 4 函数4 触发器 5 字段5 索引5 5. 数据库建设过程规范 5

概述5 需求分析阶段 6 需求调查 6 内容分析 6 概念结构设计阶段7 定义实体 7 定义关系 7 定义属性 7 定义键8 定义索引 8 定义其他对象和规则9 逻辑结构设计阶段9 数据库物理设计阶段10 实施、运行、维护规范11 6. 数据库建设安全性规范11 概述12 完整性设计12 物理安全 14 访问控制 14 数据备份 15 前言

数据库技术是信息资源管理最有效的手段。数据库设计是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,有效存储数据,满足用户信息要求和处理要求。 本规范通过数据建库的命名、结构、建库过程及安全性措施等几个技术方面进行约定,目的就是提供一套规范、合理、科学的建库技术体系,应用系统提供建库技术参考。 范围 本规范主要从关系数据库的命名、关系和结构以及建设过程等几个方面来规定数据库设计应遵循的规范。 术语和定义 范式 关系数据库中的关系是要满足一定要求的,满足不同程度要求的为不同范式。满足最低要求的叫第一范式,简称1NF。在第一范式中满足进一步要求的为第二范式,其余以此类推。一般而言,数据库的设计应至少满足第三范式。 关联 关联是不同表之间的数据彼此联系的方法。关联同时存在于形成不同实体的数据项之间和表实体本身之间,构成了数据库规范化的基本核心问题。它分为一对一、一对多、多对多三种关联形式。 关系模型 关系模型由关系数据结构、关系操作集合和关系完整性约束三部分组成。在 关系模型中,实体与实体间的联系都是用关系来表示的。 视图 视图是一个定制的虚拟表。可以是本地的、远程的或带参数的;其数据可以 来源于一个或多个表,或者其他视图;它是可更新的,可以引用远程表;它可以 更新数据源。视图是基于数据库的,因此,创建视图的前必须有数据库。 外键 外键是一个关系中的一组属性(一个或多个列),它同时也是某种(相同的 或其它的)关系中的主键。它是关系之间的逻辑链接。 约束

Greenplum数据库设计开发规范

G r e e n p l u m数据库设 计开发规范 集团企业公司编码:(LL3698-KKI1269-TM2483-LUI12689-ITT289-

目录

第一章前言 1.1文档目的 随着Greenplum数据库的正式上线使用。为了保证Greenplum 数据仓库系统平台的平稳运行,保证系统的可靠性、稳定性、可维护性和高性能。特制定本开发规范,以规范基于Greenplum数据库平台的相关应用开发,提高开发质量。 1.2预期读者 Greenplum数据仓库平台应用的设计与开发人员; Greenplum 数据仓库平台的系统管理人员和数据库管理员; Greenplum 数据仓库平台的运行维护人员; 1.3参考资料 参考Greenplum4.3.x版本官方指引: 《GPDB43AdminGuide.pdf》 《GPDB43RefGuide.pdf》 《GPDB43UtilityGuide.pdf》

第二章设计规范 2.1数据库对象数量 数据库对象类型包括数据表、视图、函数、序列、索引等等,在Greenplum数据库中,系统元数据同时保存在Master 服务器和Segment 服务器上,过多的数据库对象会造成系统元数据的膨胀,而过多的系统元数据造成系统运行逐步变慢;同时,类似数据库的备份、恢复、扩容等较大型的操作都导致效率变慢。因此,依据GreenplumDB产品的最佳时间,单个数据库的对象数量,应控制在10万以内。 GP数据库的对象包括:表、视图、索引、分区子表、外部表等。 如果数据表的数量太多,建议按应用域进行分库,尽量将单个数据库的表数量控制在10万以内,可以在一个集群中创建多个数据库。 【备注】:在Greenplum数据库中,一张分区表,在数据库中存储为一张父表、每张分区子表都是一张独立的库表;例如:一张按月进行分区的存储一年数据的表,如果含默认分区,共14张表。 2.2表创建规范 为了避免数据库表数量太多,避免单个数据表的数据量过大,给系统的运行和使用带来困难,在Greenplum数据库中需遵循如下的表创建规范: 1、GP系统表中保存的表名称都是以小写保存。通常SQL语句中表名对大小写不敏感。但不允许在建表语句中使用双引号(“”)包括表

数据库设计规范

1概述 1.1 目的 软件研发数据库设计规范作为数据库设计的操作规范, 详细描述了数据库设计过程及结果,用于指导系统设计人员 正确理解和开展数据库设计。 1.2 适用范围 1.3 术语定义 DBMS:数据库管理系统,常用的商业 DBMS有 Oracle, SQL Server, DB2 等。 数据库设计:数据库设计是在给定的应用场景下,构造 适用的数据库模式,建立数据库及其应用系统,有效存储数据,满足用户信息要求和处理要求。 概念数据模型:概念数据模型以实体- 关系 (Entity-RelationShip, 简称 E-R) 理论为基础,并对这一理论进 行了扩充。它从用户的观点出发对信息进行建模,主要 用于数据库概念级别的设计,独立于机器和各DBMS产品。可以用 Sybase PowerDesigner工具来建立概念数据模型(CDM)。 逻辑数据模型:将概念数据模型转换成具体的数据库产 品支持的数据模型,如关系模型,形成数据库逻辑模式。可

以用 Sybase PowerDesigner工具直接建立逻辑数据模型 ( LDM),或者通过CDM转换得到。 物理数据模型:在逻辑数据模型基础上,根据DBMS特点和处理的需要,进行物理存储安排,设计索引,形成数据库内模式。可以用 Sybase PowerDesigner 工具直接建立物理数据模型( PDM),或者通过 CDM / LDM 转换得到。 2数据库设计原则 按阶段实施并形成该阶段的成果物 一般符合3NF范式要求;兼顾规范与效率 使用公司规定的数据库设计软件工具 命名符合公司标准和项目标准 3数据库设计目标 规范性:一般符合3NF范式要求,减少冗余数据。 高效率:兼顾规范与效率,适当进行反范式化,满足应 用系统的性能要求。 紧凑性:例如能用 char(10) 的就不要用 char(20) ,提高存储的利用率和系统性能,但同时也要兼顾扩展性和可移植性。 易用性:数据库设计清晰易用,用户和开发人员均能容

MySQL数据库开发规范精编WORD版

M y S Q L数据库开发规 范精编W O R D版 IBM system office room 【A0816H-A0912AAAHH-GX8Q8-GNTHHJ8】

平安金融科技数据库(MySQL)开发规范 作者: 简朝阳 Last Updated: 25/02/14 19:30:18 历史修订记录: 修订时间修订内容 版本修订人 1.0 1.1李海军2013-03-11增加部分说明及修改 1.2李海军2013-07-29增加连接池使用说明和memory引擎的控制 增加了char类型,修改了timestamp的使用 1.3李海军2014-02-25 场合。 说明 本规范包含平安金融科技使用 MySQL 数据库时所需要遵循的所有对象设计(数据库,表,字段),所需要遵循的命名,对象设计,SQL 编写等的规范约定。 所有内容都为必须严格执行的项目,执行过程中有任何疑问,请联系 DBA Team 取得帮助。

概述 禁止明文传播数据库帐号和密码。 禁止开发工程师通过应用帐号登录生产数据库。 禁止应用在服务器安装MySQL客户端(可以安装开发包)。 禁止开发人员在SQL中添加 Hint,Hint只能由DBA审核后添加。 禁止使用悲观锁定,即读锁select … for update。 禁止在开发代码中使用DDL语句,比如 truncate,alter table … 等。 禁止DML语句的where条件中包含恒真条件(如:1=1)。 1. 命名规范 总则 数据库对象名仅可包含小写英文字母、数字、下划线(_)三类字符,并以英文字母开头。 数据库对象命名禁止使用MySQL保留字。 多个单词之间用下划线(_)分隔。 对象名称长度若超过限制,则使用简写/缩写命名。 1.1. 数据库命名 数据库以"db_"前缀 + "站点名_"前缀及其所服务的应用名称命名。

微震监测数据处理系统详细设计说明书

微震监测数据处理系统 软件详细设计说明书 学生姓名王建旭学号 0808140505 学生姓名王智杰学号 0808140512 学生姓名汤玉杰学号 0808140119 学生姓名毕国兴学号 0808140727 专业电子信息科学与技术年级 08级 指导教师劳彩莲职称副教授 学院信息与电气工程学院 中国农业大学教务处制 2011年 7月

目录 1 目的 (3) 2 代码框架描述 (3) 2.1 源文件说明 (3) 2.2 系统配置文件说明 (3) 3 系统结构关系图 (4) 4 单文档多视的创建与通讯子模块详细设计说明 (4) 4.1 数据结构 (5) 4.2 处理流程详细说明 (5) 4.3 编码设计 (6) 5 OpenGL子模块详细设计说明 (7) 5.1 数据结构 (8) 5.2 处理流程详细说明 (10) 5.3 部分重要编码设计 (10) 5.3.1函数SetGoal(float x,float y,float z,float color) (11) 5.3.2函数RenderScene() (12) 6 微震列表子模块详细设计说明 (12) 6.1 数据结构 (13) 6.2 处理流程详细说明 (13) 6.3 编码设计 (18) 7 SQL Server数据库详细设计说明 (19) 7.1 数据结构 (21) 7.1.1 数据库信息模型: (21) 7.1.2数据库逻辑模型 (21) 7.1.3数据库结构的详细设计 (21) 7.2 数据库系统的建立 (22) 7.2.1 数据库建立 (22) 7.2.2表的建立和管理 (22) 8 详细微震情报表子模块详细设计说明 (22) 8.1 数据结构 (23) 8.2 处理流程详细说明 (23) 8.3 编码设计 (24)

研发部门数据库管理规范标准[详]

版/次:2015.11.19 数据库管理规 编制:钱凌杰 审核: 批准: 分发号: XXX信息科技 2015年11月

目录 一、总则 (4) 二、适用围 (4) 三、数据库管理员主要职责 (4) 四、数据库的日常管理工作 (4) 4.1每日的管理工作 (4) 4.2数据库管理的每月工作 (5) 4.3数据库管理的每年工作 (5) 五、数据库的安全管理 (6) 5.1数据库环境安全 (6) 5.2数据库系统安装、启动与更新时的安全规定 (6) 5.3安全和口令策略 (7) 5.4访问控制 (9) 5.5紧急事故的处理 (9) 5.6数据库文件管理 (10) 5.7数据库安全管理 (10) 六、备份与恢复 (10) 6.1备份方式及策略 (11) 6.2备份要求 (11) 6.3恢复的管理 (12) 6.4对长期保存的备份进行校验 (13) 6.5异地容灾备份 (13) 七、日志及监控审计 (13) 7.1审计围 (13) 7.2日志保存 (13) 7.3日志访问 (14) 7.4安全审计 (14) 八、数据存放、归档管理 (14) 九、附则 (15)

一、总则 为规XXX信息科技(以下简称“公司”)信息系统的数据库管理和配置方法,保障信息系统稳定安全地运行,特制订本办法。 二、适用围 本规中所定义的数据管理容,特指存放在信息系统数据库中的数据,对于存放在其他介质的数据管理,参照相关管理办法执行。 三、数据库管理员主要职责 1、负责对数据库系统进行合理配置、测试、调整,最大限度地发挥设备资源优势。负责数据库的安全运行。 2、负责定期对所管辖的数据库系统的配置进行可用性,可靠性,性能以及安全检查。 3、负责定期对所管辖的数据库系统的可用性,可靠性,性能以及安全的配置方法进行修订和完善。 4、负责对所管辖的数据库系统运行过程中出现的问题及时处理解决。 5、负责对所管辖数据库系统的数据一致性和完整性,并协助应用开发人员、使用操作等相关人员做好相关的配置、检查等工作。 6、负责做好数据库系统及数据的备份和恢复工作。

数据库建设规范.doc

v1.0可编辑可修改 数据库建设规范 目录 1.前言 (3) 2.范围 (3) 3.术语和定义 (3) 范式 (3) 关联 (3) 关系模型 (3) 视图 (4) 外键 (4) 约束 (4) 主键 (4) 4.命名规范 (4) 规范约定 (4) 表名 (5) 视图 (5) 存储过程 (5) 函数 (5) 触发器 (5) 字段 (6) 索引 (6)

v1.0可编辑可修改 5.数据库建设过程规范. (6) 概述 (6) 需求分析阶段 (7) 需求调查 (7) 内容分析 (8) 概念结构设计阶段 (8) 定义实体 (8) 定义关系 (9) 定义属性 (9) 定义键 (9) 定义索引 (10) 定义其他对象和规则 (11) 逻辑结构设计阶段 (11) 数据库物理设计阶段 (12) 实施、运行、维护规范 (13) 6.数据库建设安全性规范. (14) 概述 (14) 完整性设计 (14) 物理安全 (17) 访问控制 (17) 数据备份 (18)

1.前言 数据库技术是信息资源管理最有效的手段。数据库设计是指对于一个给定的应用环境, 构造最优的数据库模式,建立数据库及其应用系统,有效存储数据,满足用户信息要求和处理要求。 本规范通过数据建库的命名、结构、建库过程及安全性措施等几个技术方面进行约定, 目的就是提供一套规范、合理、科学的建库技术体系,应用系统提供建库技术参考。 2.范围 本规范主要从关系数据库的命名、关系和结构以及建设过程等几个方面来规定数据库设计应遵循的规范。 3.术语和定义 范式 关系数据库中的关系是要满足一定要求的,满足不同程度要求的为不同范式。满足最低要求的叫第一范式,简称 1NF。在第一范式中满足进一步要求的为第二范式,其余以此类推。一般而言,数据库的设计应至少满足第三范式。 关联 关联是不同表之间的数据彼此联系的方法。关联同时存在于形成不同实体的数据项之间 和表实体本身之间,构成了数据库规范化的基本核心问题。它分为一对一、一对多、多对多三种关联形式。 关系模型 关系模型由关系数据结构、关系操作集合和关系完整性约束三部分组成。在

相关文档