数据库设计规范_第1页
数据库设计规范_第2页
数据库设计规范_第3页
数据库设计规范_第4页
数据库设计规范_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、数据库设计规范V 1.0 2007-8-28目 录1)目的32)范围33)术语34)设计概要35)命名规范(逻辑对象)46)数据库对象命名67)脚本注释88)数据库操作原则99)常用字段命名(参考)91) 目的 为了统一公司软件开发的设计过程中关于数据库设计时的命名规范和具体工作时的编程规范,便于交流和维护,特制定此规范。 2) 范围 本规范适用于开发组全体人员,作用于软件项目开发的数据库设计、维护阶段。 3) 术语 数据库对象:在数据库软件开发中,数据库服务器端涉及的对象包括物理结构和逻辑结构的对象。 物理结构对象:是指设备管理元素,包括数据文件和事务日志文件的名称、大小、目录规划、所在的服

2、务器计算极名称、镜像等,应该有具体的配置规划。一般对数据库服务器物理设备的管理规程,在整个项目/产品的概要设计阶段予以规划。 逻辑结构对象:是指数据库对象的管理元素,包括数据库名称、表空间、表、字段/域、视图、索引、触发器、存储过程、函数、数据类型、数据库安全性相关的设计、数据库配置有关的设计以及数据库中其他特性处理相关的设计等。 4) 设计概要 n 设计环境 l 数据库 : ORACLE 9i 、MS SQL SERVER 2000 等 l 操作系统: LINUX 7.1以上版本,显示图形操作界面; RedHat 9 以上版本 WINDOWS 2000 SERVER 以上n 设计使用工具 l

3、 使用PowerDesigner 做为数据库的设计工具,要求为主要字段做详尽说明。对于SQL Server 尽量使用企业管理器对数据库进行设计,并且要求对表,字段编写详细的说明(这些将作为扩展属性存入SQL Server中) l 通过PowerDesigner 定制word格式报表,并导出word文档,作为数据字典保存。(PowerDesigner v10 才具有定制导出word格式报表的功能)。对于SQL Server 一旦在企业管理器进行数据库设计时加入扩展属性,就可以通过编写简单的工具将数据字典导出。 l 编写数据库建数据库、建数据库对象、初始化数据脚本文件 n 设计原则 l 采用多数据

4、文件 l 禁止使用过大的数据文件,unix系统不大于2GB,window系统不超过500MB l oracle数据库中必须将索引建立在索引表空间里。 l 基本信息表在建立时就分配足够的存储空间,禁止其自动扩展功能 l 大文本字列、blob列要独立出一张表,此表只有id和blob(或大文本)列 l 为每一个数据库创建独立的管理员用户,使用该用户进行设计,尽量不要使用sa或者系统管理员身份进行数据库设计。 n 设计的更新 l 在设计阶段,由数据库管理员或指定的项目组其一成员进行维护。 l 运行阶段,由数据库管理员进行维护。 l 如对表结构进行修改,应先在数据字典文档进行修改,最后在数据库中进行修改

5、。如果修改的是数据库字典表,必须由数据库管理员进行。 l 编写更新的SQL代码,如果使用PowerDesigner,禁止由PowerDesigner直接连数据库进行数据库操作(如果是更改表或者字段的说明性文字可以通过数据库管理器图形界面进行修改) l 修改数据库要通过SQL,禁止其它方式对数据进行修改 l 修改数据库的SQL要添加说明后保存备查 n 命名总体原则 l 设定的前缀一律用小写字母 l 标识名称命名全部小写 l 整个命名的全长不得超过30个字母 l 全部使用字母和下划线'_',不能使用中文和其他字符,有特别情况允许使用末尾数字编号。例如:t_Finace1, t_Fi

6、nace2. l 命名名称来自于业务,全部采用英文单词 l 英文单词过长可以采用通用的缩写,尽量表达出业务的含义 l 如需要两个以上的英文单词做标识名称,单词之间要用下划线'_'连接 l 名称全是由名词组成的,名词由大范围到小范围排序取名 l 完成某功能的名称,如函数和过程,以动宾形式取名 5) 命名规范(逻辑对象) a) 数据库结构命名 l 数据库命名 数据库的命名要求使用与数据库意义相关联的英文字母,即<业务系统名称>。 例如:china care 数据库的命名为ccnet; 客户资料数据库的命名为Customer_Info。 l 数据库日志设计命名 数据库日志

7、的的命名以<数据库名>_<日志名>.log格式命名。其中,<日志名>为有意义的数据库日志名称。 例如: ccnet_logredo.log b) 数据库配置设计命名 数据库配置设计方案是以文件形式保存的,其内容是关于特定数据库的配置项目的具体值。 数据库配置文件的命名以:<数据库类型简写_<应用系统标志>_cfg.ini格式命名。 其中,数据库类型简写见附件1数据库类型简写,cfq表示该文件是数据库配置文件。 例如:ORA_ ccnet_cfg.ini c) 数据库复制与存储设计命名 数据库复制与存储设计方案是以文件形式保存的,其内容是关于

8、特定数据库之间的复制策略的具体细节。 数据库复制与存储设计文件的命名以:<数据库类型简写>_<应用系统标志>_rep.txt格式命名。 其中,数据库类型简写见附件1数据库类型简写,rep表示该文件是数据库复制与存储文件。 d) 数据库连接设计命名 数据库连接设计方案是以文件形式保存的,其内容是关于特定分布式数据库之间的连接设计的具体细节。 数据库连接设计文件的命名以:<数据库类型简写>_<应用系统标志>_dbl. sql格式命名。其中,数据库类型简写见附件1数据库类型简写,dbl表示该文件是数据库连接设计文件。 e) 表空间、数据文件命名(主要针

9、对Oracle) l 索引表空间: 表空间命名格式:ts<系统标识>_i l 数据库文件命名格式:ts<系统标识>_in.dbf l 临时表空间: 表空间命名格式:ts<系统标识>_t l 数据库文件命名格式:ts<系统标识>_tn.dbf l 回滚表空间: 表空间命名格式:ts<系统标识>_r l 数据库文件命名格式:ts<系统标识>_rn.dbf l 数据表空间: 表空间命名格式:ts<系统标识>_d l 数据库文件命名格式:ts<系统标识>_dn.dbf 注:表空间名不超过8位,n 可取00-

10、99或0-9,根据系统数据量确定。 6) 数据库对象命名 a) 表 表的命名必须以"t_"(Table缩写)开头,格式为:t_系统标识_<数据表类型标识>_<表标识>。 其中, 表示可选项,依据实际情况而增加;<表标识> 要求与表意义相关联的英文字母,例如:t_Customers。 数据表大致分为:业务数据表、基本编码表、辅助编码表、系统信息表、累计数据表、结算数据表、决策数据表; l 基本编码表用base标志 l 累计数据表用count标志 l 系统信息表用info标志 . 例如:t_trade_base_trade_code,t_tr

11、ade_info_help . b) 字段/域 根据业务要求进行命名,不需设定固定的前缀。 c) 索引 针对数据库表中一个或多个字段建立的索引的命名格式应以"idx_"开头,索引列名间用_隔开,即为idx_ColumnName1_ColumnName2_ 其中,ColumnName1是数据库表中(第一个)索引字段的名称或名称简写;ColumnName2是数据库表中(第二个)索引字段的名称或名称简写;索引名的总长必需符合数据库的规定。 例:idx_cert_number (表示在字段cert_number上创建索引) 为了避免重名索引出现,可选命名方式为 idx_<表名

12、>_<递增号> 作为索引的命名,但是要求在数据字典中进行详细说明 d) 视图 视图的命名必须以"v_"(View 缩写)开头,格式为: v_<视图类型>_系统标识 _<视图标识>。 其中,视图类型参见"表的分类说明";系统标识_是可选项,依据情况而增加;<视图标识> 应与视图意义相关联的英文字母。 例:v_user_detail_info e) 存储过程 存储过程的命名必须符合sp_系统标识_<存储过程标识>格式。 其中,sp表示是存储过程;系统标识为可选项,依据情况而增加;<存储过

13、程标识>是与存储过程意义相关联的英文字母,例如:USP_Query_Write_to_Disk。 例:sp_check_user_auth(以动宾方式取名) f) 触发器 触发器的的命名必须符合tr_<表名>_<i,u,d的任意组合> 格式。 其中,tr表示是触发器;<i,u,d的任意组合>是与触发器意义相关联的英文字母。 例:tr_user_info_iu (表示对user_info表进行插入、更新的触发器) g) 函数 函数的命名必须符合fn_系统标识_<函数标识>格式。 其中,fn表示是函数,系统标识为可选项,依情况而定;<函数

14、标识>是与函数意义相关联的英文字母。 例:fn_create_id(以动宾方式取名) h) 自定义数据类型 自定义数据类型的命名格式为:ud_<自定义数据类型标识>_<数据类型> i) Default(缺省) Default(缺省)的命名格式一般为:df_<Default标识>;对于非绑定的默认可取系统默认的名字j) Check、Constraint(约束) 约束的命名格式一般为:ck_<表名>_ <Check标识>;一些约束可直接放在生成表的语句中。 例:ck_flag 参见第8.1点实例,约束字段flag只能取字符'

15、0'到'9': constraint ck_flag CHECK (flag between '0' and '9' ) k) Rule(规则) 规则的命名格式一般为:rl_<Rule标识>;对于非绑定规则(约束) 可取系统默认的名字。 l) 主键 主键的命名格式为pk_<表名>_<主键标识>。 例:pk_user_info_userid (表user_info以字段userid创建主键) m) 外键 外键的命名格式为fk_<表名>_<主表名>_<外键标识>。 可选命

16、名方式为 fk_<表名>_<递增号> 作为索引的命名,但是要求在数据字典中进行详细说明 例:fk_user_info_department_deptid (在表user_info的字段department_id上创建外键,参照主表department) n) 同义词(ORACLE) 同义词的命名格式为:sy_<同义词标识> 例:sy_user_info (为所有权属于ben的表user_info的公共同义词) 7) 脚本注释 7.1 存储过程或触发器 a) 每一个存储过程或触发器都要在最前面写注释,注释如下 /* writer: create date: v

17、er: Depiction: remark: */ 另外,过程中声明的重要变量要有注释,例如: iActionFlag int = 0 /* 0 => Checkout, 1 => GetLatest, 2 => UndoCheckOut */ b) 如果只对存储过程或触发器进行部分修改时须添加以下注释: /*rewriter: add(rewriter): date:<格式:YYYY-MM-DD> start1: 修改描述: */ /* 原代码内容*/(修改时) /*rewriter: date:<格式:YYYY-MM-DD> end1: */ /*

18、rewriter: add(rewriter): date:<格式:YYYY-MM-DD> start2: */ 新代码内容 /*rewriter: date:<格式:YYYY-MM-DD> end2: */ c) 如果对存储过程或触发器有较大的修改,可增加修改内容的注释。 /*Log Id:<Log编号,从1开始一次增加> rewriter: rewrite date:<格式:YYYY-MM-DD> Depiction: */ 7.2 自定义函数 a) 每一个自定义函数都要在其前面写注释,注释如下 /* function name:xxxx D

19、epiction:<对此函数的描述> param(a,b) a 功能或描述. b 功能或描述 output: x x=0表示. x=1 表示. writer: create date:<创建日期,格式:YYYY-MM-DD> ver: remark: * / 另外,函数中声明的重要变量要有注释,例如: iActionFlag int = 0 /* 0 => Checkout, 1 => GetLatest, 2 => UndoCheckOut */ b) 如果只对函数进行部分修改时须添加以下注释: /*rewriter: add(rewriter):

20、date:<格式:YYYY-MM-DD> start1: 修改描述: */ /* 原代码内容*/(修改时) /*rewriter: date:<格式:YYYY-MM-DD> end1:*/ /*rewriter: add(rewriter): date:<格式:YYYY-MM-DD> start2: */ 新代码内容 /*rewriter: date:<格式:YYYY-MM-DD> end2: */ c) 如果对函数有较大的修改,可增加修改内容的注释。 /*Log id:<Log编号,从1开始一次增加> rewriter: rewri

21、te date:<修改日期,格式:YYYY-MM-DD> Depiction: */ 8) 数据库操作原则 8.1 建立、删除、修改库表操作 在开发环境中,对于自己的库表可任意进行修改、删除操作;但需保留相应的建表语句和说明,与建表人建表时间。 8.2 添加、删除、修改表数据 l 在开发环境中,开发人员所开发模块独自使用的库表,可自由操作表中数据; l 对其他模块关联的库表,应取得其他模块的开发人员同意后再执行操作; l 系统的信息表、字典表的修改应向数据库的管理员提出操作需求,由数据库的管理员执行操作。 9) 常用字段命名(参考) 9.1 系统信息常用字段 字段名称字段代码ORA

22、CLESQLSERVER值说明用户标识user_idchar(8)char(8)用于登录应用系统的标识, 填写数字一般做主键,要填满长度用户名称user_namevarchar2(20)varchar(20)用户标识对应的名称组标识grp_idchar(4)char(4)用户所属的组标识,填写数字一般做主键,要填满长度组名称grp_namevarchar2(50)varchar (50)组标识对应名称组权限标识grp_auth_idchar(2)char(2)由低到高,从00到99要填满长度组权限名称grp_auth_namevarchar2(50)varchar (50)组权限标识对应名称密

23、码passwordvarchar2(30)varchar(30) 9.2 客户个人信息常用字段 字段名称字段代码ORACLESQLSERVER值说明客户标识customer_idchar(?)char(?)业务系统使用的客户标识,一般做主键,不用可变长类型要填满长度客户姓名customer_namevarchar2(50)varchar(50)部门标识dept_idchar(?)char(?)一般做主键,不用可变长类型要填满长度部门名称dept_namevarchar2(50)varchar(50)性别sexchar(1)char(1)F/M婚姻状况marriagestatusvarchar2

24、(50)varchar(50)没有标识的,直接在字段中填写具体值出生日期birthdaydatesmalldatetime身高hightnumber(5,2)dec(5,2)单位为厘米体重weightnumber(5,2)dec(5,2)单位为公斤民族nationalityvarchar2(20)varchar(20)联系电话phonevarchar2(50)varchar(50)家庭电话home_phonevarchar2(50)varchar(50)办公电话1office_phone1varchar2(50)varchar(50)办公电话2office_phone2varchar2(50)varchar(50)区号zonevarchar2(20)varchar(20)传真号码office_faxvarchar2(50)varchar(50)移动电话mobil_phonevarchar2(50)varchar(50)电子信箱emailvarchar2(50)varchar(50)邮政编码po

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论