1、武汉理工大学华夏学院课程设计报告书课程名称:数据库系统原理课程设计题 目:银行储蓄管理系统数据库设计课程设计任务书学生姓名: 专业班级:指导教师: 工作单位:设计题目:银行储蓄管理系统数据库设计初始条件:本课程的设计的目的是通过实践使同学们经历数据库设计开发的全过程和受到一次综合训练,以便能较全面地理解、掌握和综合运用所学的知识。结合具体的开发案例,理解并初步掌握系统分析、系统设计、系统实施的主要环节和步骤以及软件文档的制作能力。要求完成的主要任务:要求学生根据所学的数据库原理与程序设计的知识,能够针对一个小型的银行储蓄管理系统,进行数据库系统的需求分析,概念结构设计、逻辑结构设计、物理结构设
2、计,数据录入及测试等,完成题目要求的功能。主要任务:用户有以下需求:建立读者档案;建立图书档案,建立书目索引;完成日常图书检索、借还工作,对读者档案、图书档案、借还系统的访问,必需进行身份验证。具体要求如下:1 存折信息 数据包括:存折的基本信息包括:户名、帐号、开户银行名称、开户日期、取款密码等。2账户存取明细数据包括:日期、摘要(现存、现支、转存、利息)、交易金额、余额、操作柜员编号。 3 检索系统 能根据户名、账号、交易日期、金额等进行查询。4取款输入账号和密码后,能根据密码判断用户是否合法,能判断取款金额是否超过了账户余额,如果取款金额合法,就对该账号的余额信息进行更新。5、存款输入账
3、号和存款金额后,能更新该账号的余额。6、转账 输入账号和密码后,能根据密码判断用户是否合法,然后再输入对方的转账账户,并判断对方的转账账户是否合法,如果合法,再输入转账的金额,并能判断转账金额是否超过了账户余额,如果转账金额合法,就对该账号的余额信息以及对方的账户余额信息进行更新.设计报告撰写格式要求:要求层次清楚、整洁规范、不得相互抄袭,凡正文内容有整段完全相同者一律以抄袭论处.设计报告正文字数不少于0。2万字(不包括附录)第1级(章)题序和题名用黑体三号字,第2级(目)题序和题名用黑体小四号字,第3级(条)题序和题名用黑体小四号字,正文内容用宋体五号字(英文用新罗马体),多倍行距1.25.
4、报告内容一律使用A4打印纸计算机打印,页码在页下居中标明。必须使用国家公布的规范字.页面设置:上空2.5 cm,下空2。0 cm,左空2。5 cm,右空2.0cm(左装订)。插图图面要整齐、美观,插图应与正文呼应,不能脱节。每幅插图应有图序与图题,图序编号要连续,图序与图题间空一格且要放在插图下方居中处。时间安排:消化资料、系统调查1天系统分析、总体设计,实施计划、撰写报告3天 演示、验收 1天指 导 教 师 签字: 2012年6月25日系 主 任 签 字: 2012年6月25日1 概述(设计题目与可行性分析)本软件实现银行的活期储蓄存款业务.整套软件由客户端程序和服务器端程序构成,客户端运行
5、在面向个人业务的银行柜台的电脑上,银行职员输入相关信息并通过网络通讯向服务器发送请求,并接受服务器端程序的应答显示处理的结果。服务器端处理客户端的各种业务请求.主要实现银行开户、销户、取款、存款、余额查询、转账、修改密码、打印账户明细记录等功能。2 需求分析2。1 定义银行储蓄应用系统软件:基本元素为构成银行储蓄及相关行为所必须的各种部分。 需求:用户解决问题或达到目标所需的条件或功能;系统或系统部件要满足合同、标准,规范或其它正式规定文档所需具有的条件或权能。需求分析:包括提炼,分析和仔细审查已收集到的需求,以确保所有的风险承担者都明其含义并找出其中的错误,遗憾或其它不足的地方。模块的独立性
6、:是指软件系统中每个模块只涉及软件要求的具体的子功能,而和软件系统中其他的模块的接口是简单的2。2 需求规格说明概览用户在进行存款取款的时候要做到高效高速地完成,计算机在这个过程中起到至关重要地作用,而我们的这个系统就是让计算机能够轻易地解决这一问题,用户需要存款并且快速将自己的使用信息记录下来,工作人员不用手写记录,人机交互中完成记录的输入。用户取款的时候计算机能很快速的清算出用户余额数并快速取款并打印单据.2.3产品的一般性描述现在的银行储蓄系统工作效率低,越来越不能满足广大人民群众的需要,人们希望能更方便更省时就可以办理储蓄业务;随着拥有多种银行卡的人群不断增长,人们急切希望有一种通用的
7、银行卡以便随时随地在哪家银行都可以存款提款;现在计算机网络的高速发现使越来越多的人更喜欢在网购物、在家存款取款。在这样的背景下,很明显现在的银行储蓄系统已经不能满足人们越益增长的需求,急切需要建立一个新的、高效的、方便的、互联的计算机储蓄系统。2。4产品功能外部功能:实现化窗口,查找及储蓄 内部功能:同步,过滤,定位,识别存储帐户信息:所有帐户信息永久性保存在一个特定的磁盘文件之中.在系统退出时,自动依据内存中存放的帐户信息映射表将所有帐户信息存入库文件之中。保存时先将原有库文件进行备份,之后将现有帐户信息映射表存储为新的库文件。读取帐户信息:所有帐户信息永久性保存在一个特定的磁盘文件之中.在
8、系统开始运行时首先自动打开该文件,将文件中的全部账户信息加载到内存中存放这些信息的帐户信息映射表中。并且在提示面板中显示库文件载入成功的信息.建立新帐户:通过建立新帐户面板输入一个新帐户的描述信息,并将该帐户添加到帐户信息映射表中,并以系统自动生成的唯一的帐户号作为键。由于键值唯一且通过程序自动生成,因此不会出现即使其他信息全部相同,建立的新帐户也是不重复的。所有帐户的公有描述信息包括:币种,初始存款额,用户名,用户身份证号,用户住址以及用户联系电话。其中币种,用户信息以及除密码外的特有描述信息将不能更改。2。5用户特征前台用户需要一定的计算机操作对数据操作有一定的要求,对于后台维护人员必须对
9、银行大型数据库系统有深刻的认识能对数据库备份、灾难性恢复有一定的了解。2。6运行环境适合windows 95 ,windows 98,windows xp,windows sp3、数据库:sql20052.7功能划分软件分别有新建,修改,查询,更新等功能。各个模块各有不同的功能,但都能完成查询和存储功能.各模块的数据都存放在数据库中.数据的条用和廉洁都有程序来完成.此软件所要完成的主要功能有两方面:如果是存款,储蓄填写存款单,然后交给键入系统,同时系统还要记录存款人姓名,住址,身份证,号码,存款类型,存款日期。利率及密码(可选)等信息,完成后由系统打印存款单给储户.如果是取款,储户填写取款单交
10、给业务员,业务员把取款金额输入系统要求储户输入密码以确认身份,核对密码正确无误后系统计算利息并印出利息清单给储户。 功能描述 外部功能:实现化窗口,查找及储蓄 内部功能:同步,过滤,定位,识别存储帐户信息:所有帐户信息永久性保存在一个特定的磁盘文件之中。在系统退出时,自动依据内存中存放的帐户信息映射表将所有帐户信息存入库文件之中。保存时先将原有库文件进行备份,之后将现有帐户信息映射表存储为新的库文件。读取帐户信息:所有帐户信息永久性保存在一个特定的磁盘文件之中.在系统开始运行时首先自动打开该文件,将文件中的全部账户信息加载到内存中存放这些信息的帐户信息映射表中.并且在提示面板中显示库文件载入成
11、功的信息。建立新帐户:通过建立新帐户面板输入一个新帐户的描述信息,并将该帐户添加到帐户信息映射表中,并以系统自动生成的唯一的帐户号作为键。由于键值唯一且通过程序自动生成,因此不会出现即使其他信息全部相同,建立的新帐户也是不重复的。所有帐户的公有描述信息包括:币种,初始存款额,用户名,用户身份证号,用户住址以及用户联系电话。其中币种,用户信息以及除密码外的特有描述信息将不能更改。定期存储帐户的特有描述信息为:定期存款方式信用卡帐户的特有描述信息为:信用卡密码结算存储帐户的特有描述信息为:结算汇款方式修改信用卡帐户密码:通过信用卡密码修改面板选择信用卡帐户并输入原始密码及更改密码可更改信用卡帐户密
12、码。建立用户身份信息资料:在建立新帐户过程中将输入用户的身份信息资料并与帐户信息一同存储。用户的身份信息资料一经注册便不可修改. 存款功能:以储户的存款为主要活动,相关记录根据存款结果进行调整,以使信息保持一致.系统需要在原帐户信息中增加一条记录,包括存款人姓名,住址,存款类型,存款日期,利率等信息.若为新储户须建立一个帐户,并记录此次的记录。打印存款给储户。取款功能:系统计算利息,在原帐户信息中取款减去.若为清户,记录注销该帐户,将帐户余额一并交与储户.打印利息清单给储户余额查询功能:为储户提供查询余额服务,将储户的相关记录输出.需要储户的帐户信息及密码。打印储户的帐户余额更新功能:根据用户
13、的存储数量,系统能够自动更新,并且应储户的需求修改密码并保存. 需要储户输入帐户及密码,若想修改密码按下一个键,输入密码按确定,并且要求储户再次确认密码系统保存储户信息,并且系统实现自动更新。2。8用户界面屏幕格式:采用全屏格式,通过分窗口操作进行各个操作之间的转换报表格式:以银行原报表格式设计电子打印表格式。菜单格式:下拉式菜单,应显示储户资料及帐户资料的各个详细条目.2。9可维护性本软件利用数据库进行编程,系统结构由程序基本无额定,大量的参数及文本内容全部存放于数据库中.修改,更新数据库只要在数据库进行修改添加,而不需要对系统结构进行修改,这样系统维护性升级都十分方便。2。10可理解性本软
14、件界面清晰简单,基本上可以实现鼠标完成日常的工作。2。11可移植性本软件是运行在windows系统下的,只要拷贝好数据库再安装好银行系统就可以实现软件的移植.3 概念结构设计31数据库表结构图3。2 客户端类图3。3 程序流程图4 逻辑结构设计和物理结构设计4。1客户端登录功能引言:客户端程序运行时,首先进行用户(银行职员)的合法性验证。银行职员输入正确的用户名和密码后,进入系统主菜单界面。用户有三次验证机会,超过三次程序直接退出.用户名和密码需事先保存在程序的配置文件中,并且密码需进行加密保存.输入处理输出1、用户名2、密码1、用户名长度10位2、密码长度6位3、有三次输入机会4、验证用户名
15、及密码5、用户名及密码正确后进入主菜单界面。1、如果用户名或者密码不正确,给用户一个友好提示并提示还有几次机会2、密码用输出4。2 客户端主菜单功能引言:显示银行的基本信息,例如银行支行的名称,地址,登录的银行职员的ID号等。以上这些数据银行职员可以手工对相关的文本文件进行修改.输出主菜单(包括开户、存款、取款、查询、转账、修改密码、销户、退出等功能)供操作用户选择,然后根据用户的输入选择进入不同的系统功能界面.输入处理输出1、菜单项编号1、验证用户输入的菜单项编号是否正确(09之间);2、根据用户的选择进入不同的功能界面。如果用户输入的菜单项编号不正确,给用户一个友好提示,并要求用户重新输入
16、。4。3 客户端开户功能引言:银行职员在客户端输入开户的基本信息,通过网络传送数据,在服务器处理后显示服务器端的处理结果.开户成功后打印存折相关信息。操作结束后返回主菜单界面。存折的基本信息包括:户名、帐号、开户银行名称、开户日期等。账户存取明细信息包括:日期、摘要(现存、现支、转存、利息)、交易金额、余额、操作柜员编号。输入处理输出1、用户姓名2、身份证号码3、密码4、重复密码5、开户金额1、开户的所有信息必填。2、录入的数据去除左右空格。3、用户姓名最大长度1-20位,只允许是字母或空格。4、身份证号码长度18位,全部数字或者前17位数字最后一位为X。从第7位开始必须是合法的8位日期5、密
17、码长度6位,只能是数字。6、密码和重复密码一致.7、开户金额大于等于0,小数位最多2位。8、通过网络把数据发送到服务器。1、如果用户输入的各项数据不正确,给用户一个友好提示,并要求用户重新输入。2、用户输入的数据左右空格去除后重新输出显示。3、应答服务器的处理结果并输出.4、开户成功后打印存折基本信息以及账户明细信息,存折的格式请参考用户接口。4.4 客户端存款功能引言:银行职员在客户端输入存款的基本信息,通过网络传送数据,在服务器处理后显示服务器端的处理结果。存款成功后打印账户明细.操作结束后返回主菜单界面。输入处理输出1、存折账户ID2、存款金额1、输入的所有信息必填。2、验证存折账户ID
18、的长度5位;3、存款金额大于0.00元,最多两位小数;4、通过网络把数据发送到服务器。1、如果用户输入的各项数据不正确,给用户一个友好提示,并要求用户重新输入。2、应答服务器的处理结果并输出.3、存款成功后打印账户明细信息,账户明细信息的格式请参考用户接口。4.5 客户端取款功能引言:银行职员在客户端输入取款的基本信息(假设存折账户的密码也由银行职员输入),通过网络传送数据,在服务器处理之后显示服务器端的处理结果。操作结束后返回主菜单界面。输入处理输出1、存折账户ID、2、存折密码3、取款金额1、输入的所有信息必填。2、验证账户ID的长度5位;3、验证存折密码长度6位;4、取款金额大于0.00
19、元,最多两位小数;5、通过网络把数据发送到服务器。1、如果用户输入的各项数据不正确,给用户一个友好提示,并要求用户重新输入。2、应答服务器的处理结果并输出。3、取款成功后打印账户明细信息,账户明细信息的格式请参考用户接口。4、密码输入错误三次后进入黑名单,将在三天之内无法使用该存折;4。6客户端转账功能引言:在客户端输入转账的基本信息(假设存折账户的密码也由银行职员输入),通过网络传送数据,在服务器处理后显示服务器端的处理结果。转账成功后打印本账户的明细信息并打印转账凭证.操作结束后返回主菜单界面。输入处理输出1、账户ID、2、存折密码3、转账金额4、对方账户ID1、输入的所有信息必填.2、验
20、证账户ID的长度5位;3、验证存折密码长度6位;4、转账金额大于0.00元,最多两位小数;5、通过网络把数据发送到服务器.1、如果用户输入的各项数据不正确,给用户一个友好提示,并要求用户重新输入。2、应答服务器的处理结果并输出。3、密码输入错误三次后进入黑名单,将在三天之内无法使用该存折;4、转账成功后打印本账户的明细信息并打印转账凭证.账户明细信息的格式和转账凭证格式请参考用户接口。4.7客户端余额查询功能引言:银行职员在客户端输入查询的基本信息(假设存折账户的密码也由银行职员输入),通过网络传送数据,在服务器处理后显示服务器端的处理结果。成功后如果之前有部分账户明细信息未打印的进行打印。操
21、作结束后返回主菜单界面.输入处理输出1、存折账户ID2、存折密码1、输入的所有信息必填。2、验证账户ID的长度5位;3、验证存折密码长度6位;4、通过网络把数据发送到服务器。1、如果用户输入的各项数据不正确,给用户一个友好提示,并要求用户重新输入。2、应答服务器的处理结果并输出.3、密码输入错误三次后进入黑名单,将在三天之内无法使用该存折;4、成功后打印之前未打印的账户明细信息。4.8客户端修改密码功能引言:银行职员在客户端输入修改密码的基本信息(假设存折账户的旧密码和新密码都由银行职员输入),通过网络传送数据,在服务器处理之后显示服务器端的处理结果。操作结束后返回主菜单界面。输入处理输出1、
22、账户ID2、密码3、新密码4、重复密码1、输入的所有信息必填。2、录入的数据去除左右空格。4、密码长度6位。5、新密码和重复密码一致6、通过网络把数据发送到服务器1、如果用户输入的各项数据不正确,给用户一个友好提示,并要求用户重新输入。2、应答服务器的处理结果并输出.4。9客户端交易报表统计功能引言:银行职员在客户端输入某个日期统计该日的交易报表,或者输入开始日期和结束日期统计两个日期内的交易报表,通过网络传送数据,在服务器处理之后显示服务器端的处理结果。操作结束后返回主菜单界面.4。10客户端销户功能引言:银行职员在客户端输入账户ID和密码信息(假设存折账户的密码也由银行职员输入),通过网络
23、传送数据,在服务器处理之后显示服务器端的处理结果。操作结束后返回主菜单界面.请参考客户端的取款功能,与客户端取款功能区别的地方是不用输入取款金额。客户端退出功能引言:给银行职员一个退出提示,银行职员确认后,退出整个客户端程序。输入处理输出4。11服务器端开户功能引言:接收客户端传送的数据,把数据保存到数据库中,经过服务器段的处理后把处理的结果传回给客户端.输入:1、 接收客户端传送过来的数据.处理:1、 自动生成账户ID,长度5位,从1开始编号,不足补0,例如00009、00103等。自动生成账户ID要求唯一。2、 账户所有信息将保存数据库的账户信息表中。3、 根据开户金额生成一条账户的存款记
24、录。输出:1、 把服务器端处理的结果返回给客户端。处理的结果包括开户是否成功,如果开户成功处理的结果中还包含生成的存款记录.4.12服务器端存款功能引言:接收客户端传送的数据,增加账户余额并修改相关的数据库信息,把结果传回给客户端.输入处理输出1、客户端传送的数据。1、验证账户ID是否存在.2、修改对应账户ID的数据库信息。1、把服务器端处理的结果返回给客户端。4.13服务器端取款功能引言:接收客户端传送的数据,减少账户余额并修改相关的数据库信息,把结果传回给客户端。输入处理输出1、客户端传送的数据。1、验证账户ID是否存在。2、验证密码是否正确.3、验证余额是否足够.2、修改对应账户ID的数
25、据库信息。1、把服务器端处理的结果返回给客户端。4。14服务器端转账功能引言:接收客户端传送的数据,分别处理取款和存款功能,把结果传回给客户端。输入处理输出1、客户端传送的数据.1、参考服务器端取款功能。2、参考服务器端存款功能.1、把服务器端处理的结果返回给客户端。4.15服务器端查询功能引言:接收客户端传送的数据,查找账户信息,把结果传回给客户端。输入处理输出1、客户端传送的数据。1、验证账户ID是否存在。2、验证密码是否正确。3、查找对应的账户信息。1、把服务器端处理的结果返回给客户端。4。16服务器端修改密码功能引言:接收客户端传送的数据,修改账户密码,把结果传回给客户端.输入处理输出
26、1、客户端传送的数据。1、验证账户ID是否存在。2、验证密码是否正确.3、查找对应的账户并修改密码。1、把服务器端处理的结果返回给客户端。4。17服务器端销户功能功能引言:接收客户端传送的数据,通过公式计算客户账户的利息,注销该客户账户.把结果传回给客户端。输入处理输出1、客户端传送的数据.1、验证账户ID是否存在.2、验证密码是否正确。3、计算利息,具体公式如下:利息 = 存款额 * 存款天数 年利率 / 360 需要注意的是,账户中的存款额在变化。4、修改对应账户ID的数据库。5、删除用户账户,不是做物理删除处理。1、把服务器端处理的结果返回给客户端。5 实现及测试5。1系统开发环境软件:
27、SQL Sever 2000,VS2010操作系统:Window 75。2主要功能模块的实现及测试 数据库创建过程及其连接(1)。进入企业管理器窗口,选择“新建SQL Sever注册”;(2)。选中“数据库”文件夹,单击鼠标右键,选择“新建数据库,输入数据库名Bank;(3)。单击“确定按钮,关闭对话框,数据库创建成功。 数据表的建立-储户表Create table account (CNo varchar(20) primary key,CName varchar(20) not null, CPassword char(6) not null,CID varchar(20) not nul
28、l,CSex char(2) not null, CBalance float(8) not null,CDate Datetime,CAddress varchar(30) not null)-活期存取款表Create table H_account(nID int primary key,CNo varchar(20) Foreign key References account(CNo) not null,CMoney Float(8) not null,CStyle varchar(10) not null,CDate Datetime Not null,CInterest Float
29、(8) not null,CBalance Float(8) not null)-定期取款表Create table D_quaccount(nID int primary key,CNo varchar(20) Foreign key References account(CNo) not null, CName varchar(10) not Null,CMoney Float(8) not null,CDate Datetime not null, CYear int not null,CRate Float(8) not null)定期定款表Create table D_cunacco
30、unt(nID int primary key,CNo varchar(20) Foreign key References D_quaccount(CNo) not null,CName varchar(10) not Null,CMoney Float(8) not null,CDate Datetime not null)-定期操作记录表Create table record(nID int primary key,CNo varchar(20) Foreign key References D_quaccount(CNo) not null,CName varchar(8) Not n
31、ull,CStyle char(4) not null,CMoney Float(8) not null, CYear int not null,CDate Datetime not null)主要功能界面的实现 图51主界面 图5-2开户界面图5-3存款图5-4修改密码图5-5注销帐号图56取款图5-7查询6 结论:这次数据库对我们来说是一个很大的考验,我们以前只是学习功能简单数据库代码编写,但是此次是头一次接触实际应用更能很强的“银行储蓄管理系统数据库设计”,首先需要总体的设计思想、系统构架。通过此次实验,我觉得我们实在是坐井观天,完全不知道外面的情况,固步自封,以为学好课本上那些东西就有
32、了,实则不然,现实是残酷的、严峻的,一个项目的完成是要讲究效率的,我们应该多接触实际,增强实际应用能力。7 参考文献1. 数据库设计教程 何玉洁 等 机械工业出版社2. 数据库应用系统开发技术 刘军 等 机械工业出版社3. 数据库系统概论 杨开英 武汉理工大学出版社设计过程中质疑(或答辩)记载:1. 存储过程与触发器的联系与区别?答:存储过程相当于打包好的sql语句,可以包含复杂的sql操作,在程序调用时只要执行该存储过程,一句话就可以完成复杂的数据库操作。触发器是也是打包好的sql语句,是一种特殊类型的存储过程,不由用户直接调用.存储过程是要你去执行它 ,它才会执行,而触发器则是满足一定的触发条件就自动执行,这是最根本的区别,要根据场合选择使用触发器还是存储过程。2. 数据库设计的步骤答:(1)需求分析(2)概念设计(3)逻辑设计(4)物理设计3. SQL数据库中建立表的关系有什么用?答:建立联系后,可以通过索引使用不同的表查询,比如一张表上有姓名、学号,另一张上有学号、成绩,查询时就通过姓名查到学号,再通过学号查到成绩。指导教师评语:签名:2012年 6 月29 日