DR-RD-020(V1.1)Xxx系统数据库设计说明书(内部资料请勿外传)编写:日期:检查:日期:审核:日期:批准:日期:XX公司版权所有不得复制XX公司xx事业部文档编号版本A1密级商密A项目名称Xxx系统项目来源XXX系统...................................................................................................................................................1数据库设计说明书..................................................................................................................................11引言..................................................................................................................................................21.1编写目的.................................................................................................................................21.2术语表.....................................................................................................................................21.3参考资料.................................................................................................................................32数据库环境说明..............................................................................................................................33数据库的命名规则..........................................................................................................................34逻辑设计..........................................................................................................................................35物理设计..........................................................................................................................................45.1表汇总.....................................................................................................................................45.2表[X]:[XXX表]....................................................................................................................45.3视图的设计.............................................................................................................................65.4存储过程、函数及触发器的设计..........................................................................................66安全性设计......................................................................................................................................66.1防止用户直接操作数据库的方法..........................................................................................66.2用户帐号密码的加密方法.....................................................................................................76.3角色与权限.............................................................................................................................77优化..................................................................................................................................................78数据库管理与维护说明..................................................................................................................71引言1.1编写目的例如:本文档是xx系统概要设计文档的组成部分,编写数据库设计文档的目的是:明确数据库的表名、字段名等数据信息,用来指导后期的数据库脚本的开发,本文档遵循《xx数据库设计和开发规范》。本文档的读者对象是需求人员、系统设计人员、开发人员、测试人员。1.2术语表定义系统或产品中涉及的重要术语,为读者在阅读文档时提供必要的参考信息。序号术语或缩略语说明性定义1PMProjectManager,项目经理21.3参考资料列出有关资料的名称、作者、文件编号或版本等。参考资料包括:a.需求说明书、架构设计说明书等;b.本项目的其他已发表的文件;c.引用文件、资料、软件开发标准等。资料名称作者文件编号、版本资料存放地点2数据库环境说明提示:(1)说明所采用的数据库系统,设计工具,编程工具等(2)详细配置例如:数据库实例数据库系统数据库部署环境数据库设计工具数据库存放位置说明实例名,文件名名称:如MySql,版本:4.0软硬件、网络环境例如:pb,visio,rose存放位置,绝对路径/相对路径实例用途说明3数据库的命名规则提示:(1)说明本数据库的命名规则,例如:本数据库设计完全按照《xx数据库设计规范》命名。(2)如果本数据库的命名规则与公司的标准不完全一致的话,请作出解释。4逻辑设计提示:数据库设计人员根据需求文档,创建与数据库相关的那部分实体关系图(ERD)。如果采用面向对象方法(OOAD),这里实体相当于类(class)。例如:inhr_partner_spinhr_partner_cppartner_sett_relscoop_relssettle_order_relspartner_sett_ordercoop_settl_ordersp_coop_relscp_coop_rels合作伙伴服务提供商内容提供商合同:1结算帐单运营商结算规则合同模板合同:25物理设计提示:(1)主要是设计表结构。一般地,实体对应于表,实体的属性对应于表的列,实体之间的关系成为表的约束。逻辑设计中的实体大部分可以转换成物理设计中的表,但是它们并不一定是一一对应的。(2)对表结构进行规范化处理(第三范式)。5.1表汇总表名功能说明表A表B表C5.2表[X]:[XXX表]表的索引:索引是否建立要根据具体的业务需求来确定。允许为空:不填的表示为“是”。唯一:不填的表示为“是”。表的记录数和增长量:根据具体的业务需求确定。增长量应确定单位时间如果量大可以按每天,如果不大可以按每月。表字段的区别度:主要是考虑到将来在此字段上建立索引类型选择时作为参考,当字段值唯一时可以不考虑,当字段值不唯一时,估算一个区别度,近似即可。例如:如果一个表的NAME字段有共2000个值,其中有1999个不同值,1999/2000=0.99越接近1区别度越高,反之区别度越低。表的并发:根据具体的业务需求预测表的并发。表名数据库用户主键其他排序字段索引字段序号字段名称数据类型(精度范围)允许为空Y/N唯一Y/N区别度默认值约束条件/说明此表格的序号,与数据库的序号无关[字段名称][数据类型][Y/N][Y/N][高/中/低]主键、外键,字段含义,相关说明等Mysql脚本CREATETABLE[XXX表名]([字段名称][数据类型][NOTNULL/NULL],[字段名称][数据类型][NOTNULL/NULL],[字段名称][数据类型][NOTNULL/NULL],[字段名称][数据类型][NOTNULL/NULL],CONSTRAINTPK_[XXX表名]_[XXX表字段]PRIMARYKEY([字段名称]))type=INNODB;ALTERTABLE[XXX表名]ADDCONSTRAINTFK_[XXX表名]_[YYY表名]_[XXX表字段]FOREIGNKEY([字段名称])REFERENCES[YYY表名]([字段名称])CREATEINDEX[索引名]ON[XXX表名]([字段名称])记录数[此表的记录数]增长量[此表的增长量]表的并发[此表的并发程度]补充说明[补充说明]5.3视图的设计[根据XXX产品的概要设计文档来确定。视图的命名按照《xx数据库设计规范》中关于视图的命名规范命名。视图的设计应注意以下几点:1尽量减少列中使用的公式。2去掉所有不必要的列。3不要使同一个文档属于多个分类。4避免使用表单公式。]5.4存储过程、函数及触发器的设计[存储过程及触发器的命名按照《xx数据库设计规范》中关于存储过程及触发器的命名规范命名。存储过程:根据具体得业务逻辑确定输入参数个数,类型,确定对哪几个表进行何种作。在定义存储过程时,要使用其完成单一、相对集中的任务,不要定义已由其他提供功能的过程。例如:不要定义强制数据完整性的过程(使用完整性约束)。函数:函数与存储过程非常相似,它也是存储在数据库中的对象。但是可以在SQL命令中使用函数。就好像建立自己的substr函数一样触发器:触发器是存储在数据库中的程序,它在某一特定事件发生时执行。这些程序可以用PL/SQL和java语言编写,也可以用作c语言的调用,数据库允许用户定义这些程序,然后在相关的表,视图或者数据库动作执行insert,update或delete语句时执行。]6安全性设计提