XXX数据库设计说明书
银行信贷管理系统数据库设计说明书
编写:武刘强日期:2013-12-08
变更记录
目录
目录 (3)
1 引言 (4)
1.1 预期的读者 (4)
1.2 数据库 (4)
1.3 目的和作用 (4)
2 数据字典设计 (4)
3 数据库设计 (5)
3.1 系统物理结构设计 (5)
3.2 表设计 (8)
3.2.1 客户信息表dk_kh (8)
3.2.2 贷款申请表dk_sq (9)
3.2.3 用户信息表t_person (9)
3.2.4 单位信息表t_dw (10)
3.2.5 资产管理表t_zcgl (10)
3.2.6 贷款分户表t_dkfh (10)
3.2.7 部门信息表t_depart (11)
3.2.8 系统角色表t_role (11)
3.2.9 贷款还款表t_dkhk (11)
3.2.10 贷款利息表t_dklx (12)
3.3 表之间的关联设计 (12)
3.4 存储过程设计 (13)
3.5 触发器设计 (13)
3.6 Job设计 (13)
1引言
1.1 预期的读者
1.项目经理
2.客户项目经理
3.系统开发人员
4.系统测试人员
1.2 数据库
所采用的数据库管理系统是Oracle v10中文简体版
1.3 目的和作用
将数据分析的结果进一步整理,形成最终的计算机模型,以便开发人员建立物理数据库。
2数据字典设计
数据字典的主要目的是提供查阅对不了解的条目的解释。
在数据字典中记录数据元素的下列信息:一般信息(名字,别名,描述等),定义(数据类型,长度,结构等),使用特点(值的范围,使用频率,使用方式—输入/输出/本地,条件值等),控制信息(来源,用户,使用它的程序,改变权等),分组信息(父结构,从属结构,物理位置—记录、文件和数据库等)。
下面的例子是通过卡片来描述数据字典:
3 数据库设计
3.1 系统物理结构设计
数据库设计(Database Design)是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,使之能够有效地存储数据,满足各种用户的应用需求。
本节主要将前一阶段设计好的基本E-R 图转换为与选用DBMS 产品所支持的数据模型相符合的逻辑结构,完成逻辑结构设计。
[14-19]
(1)部门实体拥有部门编号、名称、电话、地址、职能和负责人等属性。
部门实体图如图3.1所示。
部 门
职能
电话
名称负责人
地址
部门号
图3.1 部门实体图
(2)操作员实体包括人员姓名、性别、电话身份证、手机号、家庭地址和所属部门等属性。
操作员实体图如图3.2所示。
操作员身份证号
姓名手机号
家庭地址性别所属部门
电话
图3.2 操作员实体图
(3)客户实体包括账户、姓名、客户类型、证件号码、联系地址和信用评级等属性。
客户实体图如图3.3所示。
客户
证件号码
姓名账户
地址
信用评级种类
...
图3.3 客户实体图
(4)资产实体包括资产编号、评估公司、评估价格、存放单位、相应贷款金额评估日期等属性。
资产实体图如图3.4所示。
资 产
相应贷款
评估金额评估公司评估日期
存放单位
编号
图3.4 资产实体图
(5)贷款实体包括贷款编号、客户号、贷款分类、金额、抵押物和贷款期限等属性。
贷款实体图如图3.5所示。
贷 款
抵押物
贷款分类
客户号贷款期限
金额
编号
图3.5贷款实体图
(6)利息实体包括贷款编号、客户号、贷款金额、贷款利率、利息额和处理标志等属性。
利息实体图如图3.6所示。
利 息
利息额贷款金额客户号处理标志
贷款利率
编号
图3.6 利息实体图
(7)客户信息维护(管理)操作包括客户和管理员两个实体。
一个管理员
可以对多个客户进行信息维护,二者关系为1:N 。
客户信息维护的E-R 图如图3.7所示。
管理员
1
维护
N
客户
图3.7 客户信息维护实体图
(8)贷款发放操作包括放贷人员、贷款和客户三个实体。
一个放贷人员可以对多个客户进行贷款,二者关系为1:N ;而一个客户可以获得多笔贷款,二者关系为1:M 。
贷款发放的E-R 图如图3.8所示。
信贷人员
1
放贷
N
客户
贷款
获得
1
M
图3.8 贷款发放实体图
(9)利息计算操作包括会计人员、贷款和利息三个实体。
一个会计人员可以对进行多次利息,二者关系为1:N ;一项贷款可以拥有多笔利息,二者关系为1:M 。
利息计算的E-R 图如图3.9所示。
会计人员
1
计算
N
贷款
利息
包含
1
M
图3.9贷款发放实体图
(10)角色分配操作包括操作员,人员和角色三个实体。
一个操作员可以添加多个角色,二者关系为1:N ;一个角色拥有多个用户,而一个用户只有一个角色,二者关系为1:M 。
角色分配的E-R 图如图3.10所示。
人员
N
赋予
1
系统管理员
角色
分配
1
N
图3.10 角色分配实体图
信贷管理系统主要包括以下实体:客户管理员、客户、贷款、信贷员、贷款、利息、会计、角色和系统管理员等九个角色。
经过以上的分析可知,客户和客户管理员的关系为N :1;客户与贷款的关系为1:N ,信贷员与贷款的关系为1:M ;贷款与利息的关系为1:N ,会计与利息的关系为1:M 。
系统管理员可以设置多个角色,二者关系为1:N 。
每一个系统角色(用户组)可以包含多个用户,角色与信贷员的关系、角色与会计的关系以及角色与客户管理员的关系都为一对多。
信贷系统整体E-R 图如图3.11所示。
客 户
1
管理
N
客户管理员
借贷贷 款1M 放贷信贷员
N 11
产生
N 利息M 计算1
会计
角色
设置
系统管理员
分配
1
M 分配
分配1N
1
N
1
N
图3.11 信贷管理系统整体E-R 图
3.2 表设计
3.2.1 客户信息表 dk_kh
表3.1 客户信息表
3.2.2贷款申请表dk_sq
表3.2 贷款申请表
3.2.3用户信息表t_person
表3.3 用户信息表
3.2.4单位信息表t_dw
表3.4 单位信息表
3.2.5资产管理表t_zcgl
表3.5 资产管理表
3.2.6贷款分户表t_dkfh
表3.6 贷款分户表
3.2.7部门信息表t_depart
表3.7 部门信息表
3.2.8系统角色表t_role
表3.8 系统角色表
3.2.9贷款还款表t_dkhk
表3.9 贷款还款表
3.2.10贷款利息表t_dklx
表3.10 贷款利息表
表设计中应注意的问题:
1.对于字符类型的字段,要仔细确认字段的可能长度。
在SQL Server数据库设计中,一般来说,对于定长的字符数据字段,去字符类型(char),对于不定长的,取变长字符类型(varchar)。
2.对于以分类形式出现的字段,建议不使用字符类型,而使用数字类型。
如:人员分类为高职、中职、低职;如果用字符类型,则将这些字符串需要入库;如果使用数字类型分别用1、2、3代表高职、中职、低职,则入库的是数字信息,从程序编写的角度考虑,后者更好维护一些,主要体现在如果是多语言版本时,我们不需要在程序中将这些字符串信息进行判断处理。
3.3 表之间的关联设计
为了保证数据的完整性,需要对表之间相互的数据进行约束,主要是通过外键来实现数据增删时的数据完备。
3.4 存储过程设计
存储过程是一组预先定义并编译好的SQL语句,可以接受参数、返回状态值和参数值,并可以嵌套调用。
使用存储过程可以改变SQL语句的运行性能,提高其执行效率。
存储过程还可用做一种安全机制,使用户通过它访问未授权的表或视图。
3.5 触发器设计
触发器是一种特殊的存储过程,当表中的数据被修改时,由系统自动执行。
使用触发器可以实施更为复杂的的数据完整性约束。
3.6 Job设计
数据库系统提供了Job功能,该功能可以用来解决需要定期处理商业数据的问题。