1、XX公司XX事业部文档编号版本A1密级商密A项目名称Xxx系统项目来源DR-RD-O2O(V1.1)Xxx系统数据库设计说明书(内部资料请勿外传)XX公司版权所有不得复制XXX系统1数据库设计说明书11 引言21.1 编写目的21.2 术语表21.3 参考资料3数据库环境说明32 数据库的命名规则4逻辑设计43 物理设计53.1 表汇总53.2 表泌XXX表53.3 视图的设计73.4 存储过程、函数及触发器的设计7安全性设计73.5 防止用户直接操作数据库的方法73.6 用户帐号密码的加密方法83.7 角色与权限8优化84 数据库管理与维护说明8、引言1.1 编写目的例如:本文档是xx系统概
2、要设计文档的组成部分,编写数据库设计文档的目的是:明 确数据库的表名、字段名等数据信息,用来指导后期的数据库脚本的开发,本文档遵循fa 数据库设计和开发规范。本文档的读者对象是需求人员、系统设计人员、开发人员、测试 人员。1-2术语表定义系统或产品中涉及的重要术语,为读者在阅读文档时提供必要的参考信息。序号术语或缩略语说明性定义1PMProject Manager,项目经理1.3参考资料列出有关资料的名称、作者、文件编号或版本等。参考资料包括:a. 需求说明书、架构设计说明书等;本项目的其他己发表的文件;b. 引用文件、资料、软件开发标准等。资料名称作者文件编号、版本资料存放地点二、需求规约提
3、示:本部分完成此数据库系统业务描述和需求分析2.1业务描述提示:本部分完成此数据库系统的业务描述,例如:a)数据库系统创建的背景(2)数据库系统要解决的问题(3)数据库系统要完成的业务流程及工作内容(4)揭示该数据库的资源需求和设计约束2.2需求分析提示:本部分完成此数据库系统的需求分析,例如:a)分析该业务流程的内在联系(2 ) 业务流程各个节点的依赖关系在数据上的反映(3)揭示创建此数据库系统的目的、目标、己知条件(4)将业务流程节点抽象成数据库对象三、数据库环境说明提示:(1) 说明所采用的数据库系统,设计工具,编程工具等(2) 详细配置例如:数据库实 例数据库系 统数据库部 署环境数据
4、库设 计工具数据库存放位 置说明实例名,文件 名名称:如MySql,版本:4.()软硬件、网络环境例如:存放位羸绝对路径/相对路径实例用途说明数据库的命名规则3.1数据库对象命名规则提示:a)说明本数据库的命名规则,例如:本数据库设计完全按照 血 数据库设计规范 命名。(2) 如果本数据库的命名规则与公司的标准不完全一致的话,请作出解释。3.2数据项编码规则提示:说明本数据库数据项的编码规则,例如:学号:班号+班内序号(两位整数00-99)五、逻辑设计提示:数据库设计人员根据需求文档,创建与数据库相关的那部分实体关系图(ERD)。 如果采用面向对象方法(OOAD),这里实体相当于类(class
5、)o例如:六、物理设计提示:(1) 主要是设计表结构。一般地,实体对应于表,实体的属性对应于表的列,实体之 间的关系成为表的约束。逻辑设计中的实体大部分可以转换成物理设计中的表,但是它们并 不一定是_ 对应的。(2) 对表结构进行规范化处理(第三范式)。5.1 表汇总表名功能说明表A表B表C5.2 表X: XXX 表表的索引:索引是否建立要根据具体的业务需求来确定。允许为空:不填的表示为“是唯_:不填的表示为“是”。表的记录数和增长量:根据具体的业务需求确定。增长量应确定单位时间如果量大可以按每天,如果不大可以按每月。表字段的区别度:主要是考虑到将来在此字段上建立索引类型选择时作为参考,当字段
6、 值唯一时可以不考虑,当字段值不唯一时,估算一个区别度,近似即 可。例如:如果一个表的NAME字段有共2000个值,其中有1999个 不同值,1999/2000=0. 99越接近1区别度越高,反之区别度越低。表的并发:根据具体的业务需求预测表的并发。表名数据库用户主键其他排序字段索引字段序号字段名称数据类型(精 度范围)允许为 空Y/N唯一Y/N区别度默认值约束条件/说明此表 格的 序 号, 与数 据库 的序 号无 关字段名数据类型Y/NY/N高/中 /低主键、外键,字段 含乂,相关说明等sql脚本CREATE TABLE XXX(字段名称数据类型NOT NULL /NULL,字段名称数据类型
7、NOT NULL /NULL,字段名称数据类型NOT NULL /NULL,字段名称数据类型NOT NULL /NULL,CONSTRAINT PKS% 表名表宇阕 PRIMARY KEY (字段名称D)type = INNODB;ALTER TABLE XXXADD CONSTRAINT ER .XXX表名_YYY表名_XXX表字 段FOREIGN心U字段名称)REFERENCES YYY表名J (字段名称)CREATE INDEX 索引名ON XXX表名(字段名称)记录数此表的记录数增长量此表的增长量表的并发此表的并发程度补充说明补充说明5.3视图的设计根据XXX产品的概耍设计文档来确定。
8、视图的命名按照Ox数据库设计规范中关于视图的命名规范命名。视图的设计应注意以下几点:1尽量减少列中使用的公式。2去掉所有不必要的列。3不要使同一个文档属于多个分类。4避免使用表单公式。5.4存储过程、函数及触发器的设计存储过程及触发器的命名按照fa数据库设计规范中关于存储过程及触发器的命名 规范命名。存储过程:根据具体得业务逻辑确定输入参数个数,类塑,确定对哪儿个表进行何种 作。在定义存储过程时,要使用其完成单一、相对集中的任务,不要定义己由其 他提供功能的过程。例如:不要定义强制数据完整性的过程(使用完整性约 束)。函数 :函数与存储过程非常相似,它也是存储在数据库中的对象。但是可以在 SQ
9、L命令中使用函数。就好像建立自己的substr函数-样触发器:触发器是存储在数据库中的程序,它在某一特定事件发生时执行。这些程 序可以用PL/SQL和java语言编写,也可以用作c语言的调用,数据库允许 用户定义这些程序,然后在相关的表,视图或者数据库动作执行insert, update或delete语句时执行。七、安全性设计提示:提高软件系统的安全性应当从“管理”和“设计”两方面着手。这里仅考虑数据 库的安全性设计。例如:应用级的用户帐号密码不能与数据库相同,防止用户直接操作数据库。用户只能 用帐号登陆到应用软件,通过应用软件访问数据库,而没有其它途径操作数据库。6.1防止用户直接操作数据库
10、的方法提示:用户只能用帐号登陆到应用软件,通过应用软件访问数据库,而没有其他途径操 作数据库。6.2用户帐号密码的加密方法提示:对用户帐号的密码进行加密处理,确保在任何地方都不会出现密码的明文。例如:用户帐号采用MD5进行数据加密后再录入数据库,以防止任何地方密码的安全 性要求。6.3角色与权限提示:确定每个角色对数据库表的操作权限,如创建、检索、更新、删除等。每个角色 拥有刚好能够完成任务的权限,不多也不少。在应用时再为用户分配角色,则每个用户的权 限等于他所兼角色的权限之和。角色可以访问的表与列操作权限例如:管理员可访问所有表完全控制权限角色B八、优化提示:分析并优化数据库的时一空”效率,尽可能地“提高处理速度”并且“降低数 据占用空间(1)分析“时一空”效率的瓶颈,找出优化对象(目标),并确定优先级。(2)当优化对象(目标)之间存在对抗时,给出折衷方案。(3)给出优化的具体措诲,例如优化数据库环境参数,对表格进行反规范化处理等。优先级优化对象(目标)措施九、数据库管理与维护说明提示:在设计数据库的时候,及时给出管理与维护本数据库的方法,有助于将来撰写出正确完备的用户手册。