第 0页 共 23页
1 引 言
1.1 课题设计的目的和背景意义
本系统是一个银行管理系统。当今社会,银行已成为社会不可缺少的一部
分,不论大中小城市,都存在或大或小或多或少的银行。对于一个稍有规模的银
行,都需要一个银行管理系统,进行规范化管理。因此银行管理系统的开发,显
得十分有必要。银行管理系统的开发是离不开数据库的。我们要建立起数据一致
性和完整性强、数据安全性好的库。
该系统包括对客户和银行两个方面的管理。客户可以进行存款、取款、贷
款、还款等一些基本的操作。而银行可以开设帐户、消户、银行业务查询、客户
业务查询等操作
银行管理系统的目的:用最简单的操作完成最繁琐的细节,从繁重的脑力劳
动脱离出来,由软件统一管理。使人一目了然。
本文的主要内容:语言采用 Delphi,采用 ODBC 连接 数据库 SQLsever2000,
采用 B/S 结构。
1.2 课题实现技术的简要说明
数据库管理采用 SQL SERVER 2000。SQL SERVER 2000 为提高银行管理
效率,能提供超大型系列所需的数据库服务。大型服务器可能有成千上万的用户
同时连接到 SQL SERVER 2000 实例。SQL SERVER 2000 为这些环境提供了全面
的保护,具有防止问题发生的安全措施,例如,可以防止多个用户试图同时更新
相同的数据[1]。SQL SERVER 2000 还在多个用户之间有效地分配可用资源,比如
内存、网络带宽和磁盘 I/O[2]。
开发语言采用的是 Delphi 。它是一门真正的面向对象的开发工具,并且是
完全的可视化[3]。 Delphi 使用了真编译,可以让你的代码编译成为可执行的文
件,而且编译速度非常快。 并且具有强大的数据库开发能力,可以让你轻松地
开发数据库。Delphi 是全新的可视化编程环境,为我们提供了一种方便、快捷的
第 1页 共 23页
Windows 应用程序开发工具。它使用了 Microsoft Windows 图形用户界面的许
多先进特性和设计思想,采用了弹性可重复利用的完整的面向对象程序语言
(Object-Oriented Language)、当今世界上最快的编辑器、最为领先的数据库技
术。对于广大的程序开发人员来讲,使用 Delphi 开发应用软件,无疑会大大地
提高编程效率。
2 系统分析
2.1 功能需求分析
1)客户信息
对于客户我们应该知道他的客户号,客户名,信用度,最大的经济支付能力。
2)存款功能
对于一个客户,他在一个银行有且只有一个存款账号。但可在不同的银行都
有存款,所以对于一个账号,我们需要知道其所在银行类型,账号,密码,存款
额,最近存款日期。(假定存款利率都一样)
3)取款和透支功能
对于客户取款,我们要知道他在用哪个卡型取款,即哪个银行,同时应该
验证身份信息(卡号,密码)要知道该卡上的存款额,及此次的取款额。根据卡
上的金额与所取金额的差值决定是否属于透支类型。若属于透支类型,需要知道
客户以前的透支记录,即哪张卡上(卡型)什么时间透支多少金额。若可以透支
需根据客户的信誉度和经济能力确定用户的最大可透支额,用户根据其信息来透
支所需金额。
4)贷款功能
我们需要知道贷款类别,然后根据客户的信誉度和经济承受能力来确定最
大可贷多少款子给客户。同时我们应该给客户一个贷款号,根据其贷款的年数来
确定客户的贷款利率,对于贷款我们还应该保存其贷款时间,还贷时间等。
5)还贷功能
对于贷款的还贷:我们应该支持分期还贷服务,这样我们需要记录客户的每
第 2页 共 23页
次还贷记录,即还贷的顺序号,此次还贷金额。
对于透支的偿还:处理方法是,将下一次的存款额作为偿还透支的金额,直
到透支额全部还清。
6)转账功能
需要知道转账的卡型,卡号,密码。需要判断对方的卡型(确定转账费率问
题),卡号。如果转账金额大于该卡现有金额则转账失败。
2.2 性能需求分析
1) 硬件环境
处理器:Inter Pentium II 266 MX 或更高
内存:128MB(建议 196MB)。。
显卡:显卡至少 SVGA 显示适配器[4]。
硬盘空间:硬盘至少 2GB。
2) 软件环境
操作系统::Windows 98 或是 Windows 2000/Windows NT Server 4.0。
数据库:Micrisoft SQL
2.3 安全性与完整性要求分析
2.3.1 安全性分析
1) 用户和管理员的权限设置:用户只能存款,取款,转账,还有查询存款
情况和还贷情况,同时也可以修改自己的资料(譬如密码),不具有修改和查阅
银行内部资料的权利。但银行管理员则可以,可以增添管理员,查阅银行的存取
状况等。
2) 非法数据的输入:每个字段信息都有自己确定的类型,不能插入不合乎
该类型的数据。可以在 DELPHI 程序中屏蔽掉,也可以在 SQL 数据库中作错误
处理。
3) 用户查询情况:在用户的查询过程中一些数据应该屏蔽掉,比如用户在
查询自己的存款状况时就应该屏蔽掉改客户的密码等。所以可以在查询语句中加
第 3页 共 23页
以处理,也可以创建视图来实现数据的屏蔽。
4)某些操作需要身份认证:取款,转账,修改资料等。
2.3.2 完整性要求分析
数据完整性是指数据的精确性和可靠性,首先就是实体的完整性,就是指每
一行记录在表中是唯一的实体,不能插入有重复主码的记录[5]。再一个就是参照
完整性,是指两个表的主关键字和外关键字的数据对应一致,防止数据的丢失或
者无意义的数据在数据库中的扩散。表现在:a 禁止在表中插入包含主表中不存
在的关键字的数据行。b 禁止删除在从表中的有对应记录的主表记录。完整性问
题可以通过一些工具来实现,如:规则,约束,触发器等。
2.4 系统总体结构设计
对于该银行管理系统来说主要包括两个模块:银行管理模块和客户管理模
块。其功能模块图如图 2.1 所示:
银行管理系统
银行管理
客户管理
开
设
银
行
银
行
业
务
查
询
开
设
帐
户
客
户
业
务
查
询
消
户
存
款
和
取
款
转
账
和
贷
款
客
户
查
询
还
贷
图 2.1 系统总体结构图
第 4页 共 23页
2.5 系统管理流程图
登入该系统后,如果是客户就进入客户管理区选择,若是银行内部的人就进入
银行管理,具体流程图如图 2.2 所示:
银 行 管
理
开设银行
银行业务查询
退
出
开设帐户
消户
存款和取款
转账和贷款
客户查询
还贷
添加账号
修改密码
系统窗口
Y
用 户 验
证
客户管理
N
系 统 管
理员
图 2.2 系统管理流程图
第 5页 共 23页
3 数据库详细设计
3.1 概念结构设计
1)实体集及属性描述:
实体 1:customer(客户)
属性:customer_id
name
实体 2:bank(银行)
属性:card_type(卡型-银行名称) adress
实体 3:fund_bill(存款单)
trust_abi(信誉度)
pay_abi(经济能力)
asset(银行现存款)
card_no
keyword
fortune_amount ( 存 款 金 额 )
payoff_date
rate(贷款利率)
属 性 : card_type
deposite_date
实体 4:loan_pack(贷款)
属性:loan_pack_no(贷款号) card_type(银行)loan_money
borrow_date
实体 5:overdraft(透支)
属性:card_type
card_no
实体 6:fetch_depo_log(存款/取款日志)
属性: card_type
实体 7:payoff_pro(还贷日志)
rest_money(为了支持分期付款而设立的)
dep_fet(存款/取款)
date(透支的时间)
dat
amount
amount
属性:loan_pack_no
payback_no
payback_amount
card_type
2)由以上对实体和属性分析可得出系统的总体 E-R 图如图 3.1 所示:
第 6页 共 23页
Customer_id
Pay_abi
Card_type
Deposite_dat
e
name
Trust_abi
Loan_pack_no
Card_type
Card_no
customer
Fund_bill
Card_no
keyword
Fortune_amou
tt
Card_type
Loan pack
rate
overdraft
Card_no
Loan_money
Payoff_date
Borrow_date
Rest_money
amount
date
Dep_fet
Payback_no
Fetch_depo_log
date
amount
Payoff_pro
amount
Card_type
Fund_bill
Bank
Customer
Asset
Addres
s
图 3.1 银行管理的 E-R 图
第 7页 共 23页
3.2 逻辑结构设计
3.2.1 表的冗余及外码约束
1) 表的冗余
在还贷日志实体和存取款日志实体中,这两个实体都是弱实体集,故需要连
同 强 实 体 集 的 主 码 一 起 够 成 该 实 体 的 主 码 。Loan_pack 的 主 码 是 card_type
loan_pack_no,所以 payoff_pro 的主码为 card_type,loan_pack_no ,payback_no。
fund_bill 的 主 码 是 card_type, card_no 故 fetch_depo_log 的 主 码 为 card_type ,
card_no,fetch_depo_log。
2)外码约束
表 3-1 外码约束表
参照实体
被参照实体
实体
外码
实体
外码
Fund_bill
Loan_pack
Overdraft
Payoff_pro
Card_type
Card_type
Card_no
Loan_pack_no
Bank
Bank
Fund_bill
Loan_pack
Card_type
Card_type
Card_no
Loan_pack_no
3.2.2
E-R 图到关系模型及其优化
customer_id->trust_abi
1) 由函数依赖及各实体属性得如下函数依赖:
customer_id->name
customer_id->pay_abi card_type->asset
card_type card_no->keyword card_type card_no->fortune_amount
card_type card_no->deposite_date
loan_pack_no card_type-> patoff_date
loan_pack_no card_type->rest_money
card_type card_no->amount
loan_pack_no card_type->loan_money
loan_pack_no card_type-> borrow-date
loan_pack_no card_type->rate