银行储蓄管理系统数据库设计总23页.docx
《银行储蓄管理系统数据库设计总23页.docx》由会员分享,可在线阅读,更多相关《银行储蓄管理系统数据库设计总23页.docx(22页珍藏版)》请在冰豆网上搜索。
![银行储蓄管理系统数据库设计总23页.docx](https://file1.bdocx.com/fileroot1/2022-12/30/de1ffe49-d9bc-41c5-b506-0429612aeaaa/de1ffe49-d9bc-41c5-b506-0429612aeaaa1.gif)
银行储蓄管理系统数据库设计总23页
银行储蓄管理系统数据库设计(总23页)
课程设计报告书
课程名称:
《数据库系统原理》课程设计
题目:
银行储蓄管理系统数据库设计
系名:
信息工程系
专业班级:
姓名:
学号:
1
指导教师:
2012年6月29日
课程设计任务书
学生姓名:
专业班级:
指导教师:
工作单位:
信息工程系
设计题目:
银行储蓄管理系统数据库设计
初始条件:
本课程的设计的目的是通过实践使同学们经历数据库设计开发的全过程和受到一次综合训练,以便能较全面地理解、掌握和综合运用所学的知识。
结合具体的开发案例,理解并初步掌握系统分析、系统设计、系统实施的主要环节和步骤以及软件文档的制作能力。
要求完成的主要任务:
要求学生根据所学的数据库原理与程序设计的知识,能够针对一个小型的银行储蓄管理系统,进行数据库系统的需求分析,概念结构设计、逻辑结构设计、物理结构设计,数据录入及测试等,完成题目要求的功能。
主要任务:
用户有以下需求:
建立用户;建立账户档案,建立账户索引;完成日常交易信息检索、进行存款、转账、取款等工作,对取款、转账等操作,必需进行身份验证。
具体要求如下:
1.存折信息
数据包括:
存折的基本信息包括:
户名、帐号、开户银行名称、开户日期、取款密码等。
2.账户存取明细
数据包括:
日期、摘要(现存、现支、转存、利息)、交易金额、余额、操作柜员编号。
3.检索系统
能根据户名、账号、交易日期、金额等进行查询。
4.取款
输入账号和密码后,能根据密码判断用户是否合法,能判断取款金额是否超过了账户余额,如果取款金额合法,就对该账号的余额信息进行更新。
5、存款
输入账号和存款金额后,能更新该账号的余额。
6、转账
输入账号和密码后,能根据密码判断用户是否合法,然后再输入对方的转账账户,并判断对方的转账账户是否合法,如果合法,再输入转账的金额,并能判断转账金额是否超过了账户余额,如果转账金额合法,就对该账号的余额信息以及对方的账户余额信息进行更新。
设计报告撰写格式要求:
要求层次清楚、整洁规范、不得相互抄袭,凡正文内容有整段完全相同者一律以抄袭论处。
设计报告正文字数不少于万字(不包括附录)
第1级(章)题序和题名用黑体三号字,
第2级(目)题序和题名用黑体小四号字,
第3级(条)题序和题名用黑体小四号字,
正文内容用宋体五号字(英文用新罗马体),多倍行距。
报告内容一律使用A4打印纸计算机打印,页码在页下居中标明。
必须使用国家公布的规范字。
页面设置:
上空cm,下空cm,左空cm,右空(左装订)。
插图图面要整齐、美观,插图应与正文呼应,不能脱节。
每幅插图应有图序与图题,图序编号要连续,图序与图题间空一格且要放在插图下方居中处。
时间安排:
消化资料、系统调查?
1天
系统分析、总体设计,实施计划、撰写报告?
3天
演示、验收 1天
指导教师签字:
凌伟2012年6月25日
系主任签字:
2012年6月25日
目的---------------------------------------------------------------------------------------------14
运行界面------------------------------------------------------------------------------------14
运行代码------------------------------------------------------------------------------------16
数据库设计要------------------------------------------------------------------------------28
系统测试与护------------------------------------------------------------------------------29
第1章需求分析
1.1编写目的
帮助学员了解项目的功能,明确需求功能中用户对系统要做什么的要求,了解需求中的各种业务规则。
1.1.1范围
软件系统的名称:
某某银行活期储蓄系统。
本软件主要实现银行的活期储蓄的相关业务。
说明:
a.待开发的软件系统的名称;
b.说明软件将干什么,如果需要的话,还要说明软件产品不干什么;
c.描述所说明的软件的应用。
应当:
1)尽可能精确地描述所有相关的利益、目的、以及最终目标。
2)如果有一个较高层次的说明存在,则应该使其和高层次说明中的类似的陈述相一致(例如,系统的需求规格说明)。
1.1.2定义
列出本文件中用到的专门术语的定义和缩写词的原词组。
1.1.3参考资料
列出要用到的参考资料,如:
a.<数据库原理及应用—SQLServer2000>作者夏冰冰出版社国防工业出版社;
b.<软件需求工程>作者梁正平出版社机械工业出版社;
c.作者马骏出版社人民邮电出版社;
1.2项目概述
1.2.1产品描述
本软件实现银行的活期储蓄存款业务。
整套软件由客户端程序和服务器端程序构成,客户端运行在面向个人业务的银行柜台的电脑上,银行职员输入相关信息并通过网络通讯向服务器发送请求,并接受服务器端程序的应答显示处理的结果。
服务器端处理客户端的各种业务请求。
主要实现银行开户、销户、取款、存款、余额查询、转账、修改密码、等功能。
1.2.2产品功能
软件功能表
模块
功能
说明
客户端程序
登录
主菜单
取款
开户
销户
转帐
余额查询
打印账户明细记录
修改密码
服务器端程序
存款
取款
开户
销户
转帐
余额查询
计算利息
修改密码
1.2.3一般约束
下面对设计系统时限制开发者选择的其他一些项作一般性描述。
而这些项将限定开发者在设计系统时的任选项。
这些包括:
a.管理方针;
b.硬件的限制:
终端电脑性能较差,无法支持图形化界面;
c.与其他应用间的接口;
d.并行操作:
支持10个终端同时操作;
e.审查功能;
f.控制功能;
g.所需的高级语言:
标准C++语言;
h.通信协议:
TCP/IP;
i.应用的临界点;
j.安全和保密方面的考虑:
各种密码输入后用‘*’显示。
通过网络传送的数据在传送前需要简单加密,接收后在处理前需要简单解密。
服务器端对接收到的数据需要进行第二次数据有效性验证。
1.2.4假设和依据
本条列出影响需求说明中陈述的需求的每一个因素。
这些因素不是软件的设计约束,但是它们的改变可能影响到需求说明中的需求。
例如:
假定一个特定的操作系统是在被软件产品指定的硬件上使用的,然而,事实上这个操作系统是不可能使用的,于是,需求说明就要进行相应的改变。
1.3具体需求
1.3.1功能需求
1.3.1.1客户端登录功能
引言:
客户端程序运行时,首先进行用户(银行职员)的合法性验证。
银行职员输入正确的用户名和密码后,进入系统主菜单界面。
用户有三次验证机会,超过三次程序直接退出。
用户名和密码需事先保存在程序的配置文件中,并且密码需进行加密保存。
输入
处理
输出
1、用户名
2、密码
1、用户名长度10位
2、密码长度6位
3、用户名及密码正确后进入主菜单界面。
1、如果用户名或者密码不正确,给用户一个友好提示并提示还有几次机会
2、密码用‘*’输出
1.3.1.2客户端主菜单功能
引言:
显示银行的基本信息,例如银行支行的名称,地址,登录的银行职员的ID号等。
以上这些数据银行职员可以手工对相关的文本文件进行修改。
输出主菜单(包括开户、存款、取款、查询、转账、修改密码、销户、退出等功能)供操作用户选择,然后根据用户的输入选择进入不同的系统功能界面。
输入
处理
输出
1、菜单项编号
1、根据用户的选择进入不同的功能界面。
1,根据用户的选择弹出不同的界面。
1.3.1.3客户端开户功能
引言:
银行职员在客户端输入开户的基本信息,通过网络传送数据,在服务器处理后显示服务器端的处理结果。
开户成功后打印存折相关信息。
操作结束后返回主菜单界面。
存折的基本信息包括:
户名、帐号、开户银行名称、开户日期等。
账户存取明细信息包括:
日期、摘要(现存、现支、转存、利息)、交易金额、余额、操作柜员编号。
输入
处理
输出
1、用户姓名
2、身份证号码
3、密码
4、重复密码
5、开户金额
1、开户的所有信息必填。
2、录入的数据去除左右空格。
3、用户姓名最大长度1-20位,只允许数字。
4、身份证号码长度18位,全部数字或者前17位数字最后一位为‘X’。
从第7位开始必须是合法的8位日期
5、密码长度6位,只能是数字。
6、密码和重复密码一致。
7、开户金额大于等于0,小数位最多2位。
1、如果用户输入的各项数据不正确,给用户一个友好提示,并要求用户重新输入。
2
应答服务器的处理结果并输出。
4、开户成功后打印存折基本信息以及账户明细信息,存折的格式请参考用户接口。
1.3.1.4客户端存款功能
引言:
银行职员在客户端输入存款的基本信息,通过网络传送数据,在服务器处理后显示服务器端的处理结果。
存款成功后打印账户明细。
操作结束后返回主菜单界面。
输入
处理
输出
1、存折账户ID
2、存款金额
1、输入的所有信息必填。
2、验证存折账户ID的长度5位;
3、存款金额大于元,最多两位小数;
1、如果用户输入的各项数据不正确,给用户一个友好提示,并要求用户重新输入。
2、应答服务器的处理结果并输出。
3、存款成功后打印账户明细信息,账户明细信息的格式请参考用户接口。
1.3.1.5客户端取款功能
引言:
银行职员在客户端输入取款的基本信息(假设存折账户的密码也由银行职员输入),通过网络传送数据,在服务器处理之后显示服务器端的处理结果。
操作结束后返回主菜单界面。
输入
处理
输出
1、存折账户ID、
2、存折密码
3、取款金额
1、输入的所有信息必填。
2、验证账户ID的长度5位;
3、验证存折密码长度6位;
4、取款金额大于元,最多两位小数;
1、如果用户输入的各项数据不正确,给用户一个友好提示,并要求用户重新输入。
2、应答服务器的处理结果并输出。
3、取款成功后打印账户明细信息,账户明细信息的格式请参考用户接口。
4、密码输入错误三次后进入黑名单,将在三天之内无法使用该存折;
1.3.1.6客户端转账功能
引言:
在客户端输入转账的基本信息(假设存折账户的密码也由银行职员输入),通过网络传送数据,在服务器处理后显示服务器端的处理结果。
转账成功后打印本账户的明细信息并打印转账凭证。
操作结束后返回主菜单界面。
1.3.1.7客户端余额查询功能
1.3.1.8引言:
银行职员在客户端输入查询的基本信息(假设存折账户的密码也由银行职员输入),通过网络传送数据,在服务器处理后显示服务器端的处理结果。
成功后如果之前有部分账户明细信息未打印的进行打印。
操作结束后返回主菜单界面。
输入
处理
输出
1、存折账户ID
2、存折密码
1、输入的所有信息必填。
2、验证账户ID的长度5位;
3、验证存折密码长度6位;
4、通过网络把数据发送到服务器。
1、如果用户输入的各项数据不正确,给用户一个友好提示,并要求用户重新输入。
2、应答服务器的处理结果并输出。
3、密码输入错误三次后进入黑名单,将在三天之内无法使用该存折;
4、成功后打印之前未打印的账户明细信息。
1.3.1.9客户端修改密码功能
引言:
银行职员在客户端输入修改密码的基本信息(假设存折账户的旧密码和新密码都由银行职员输入),通过网络传送数据,在服务器处理之后显示服务器端的处理结果。
操作结束后返回主菜单界面。
输入
处理
输出
1、账户ID
2、密码
3、新密码
4、重复密码
1、输入的所有信息必填。
2、录入的数据去除左右空格。
4、密码长度6位。
5、新密码和重复密码一致
6、通过网络把数据发送到服务器
1、如果用户输入的各项数据不正确,给用户一个友好提示,并要求用户重新输入。
2、应答服务器的处理结果并输出。
引客户端销户功能
引言:
银行职员在客户端输入账户ID和密码信息(假设存折账户的密码也由银行职员输入),通过网络传送数据,在服务器处理之后显示服务器端的处理结果。
操作结束后返回主菜单界面。
请参考客户端的取款功能,与客户端取款功能区别的地方是不用输入取款金额。
1.3.1.10客户销户功能
引客户端销户功能
引言:
银行职员在客户端输入账户ID和密码信息(假设存折账户的密码也由银行职员输入),通过网络传送数据,在服务器处理之后显示服务器端的处理结果。
操作结束后返回主菜单界面。
请参考客户端的取款功能,与客户端取款功能区别的地方是不用输入取款金额。
1.3.1.11服务器端开户功能
引言:
接收客户端传送的数据,把数据保存到数据库中,经过服务器段的处理后把处理的结果传回给客户端。
输入:
1、接收客户端传送过来的数据。
处理:
1、自动生成账户ID,长度5位,从1开始编号,不足补0,例如00009、00103等。
自动生成账户ID要求唯一。
2、账户所有信息将保存数据库的账户信息表中。
3、根据开户金额生成一条账户的存款记录。
输出:
1、把服务器端处理的结果返回给客户端。
处理的结果包括开户是否成功,如果开户成功处理的结果中还包含生成的存款记录。
1.3.1.12服务器端存款功能
引言:
接收客户端传送的数据,增加账户余额并修改相关的数据库信息,把结果传回给客户端。
输入
处理
输出
1、客户端传送的数据。
1、验证账户ID是否存在。
2、修改对应账户ID的数据库信息。
1、把服务器端处理的结果返回给客户端。
1.3.1.13服务器端取款功能
引言:
接收客户端传送的数据,减少账户余额并修改相关的数据库信息,把结果传回给客户端。
输入
处理
输出
1、客户端传送的数据。
1、验证账户ID是否存在。
2、验证密码是否正确。
3、验证余额是否足够。
2、修改对应账户ID的数据库信息。
1、把服务器端处理的结果返回给客户端。
1.3.1.14服务器端转账功能
引言:
接收客户端传送的数据,分别处理取款和存款功能,把结果传回给客户端。
输入
处理
输出
1、客户端传送的数据。
1、参考服务器端取款功能。
2、参考服务器端存款功能。
1、把服务器端处理的结果返回给客户端。
1.3.1.15服务器端查询功能
引言:
接收客户端传送的数据,查找账户信息,把结果传回给客户端。
输入
处理
输出
1、客户端传送的数据。
1、验证账户ID是否存在。
2、验证密码是否正确。
3、查找对应的账户信息。
1、把服务器端处理的结果返回给客户端。
1.3.1.16服务器端修改密码功能
引言:
接收客户端传送的数据,修改账户密码,把结果传回给客户端。
输入
处理
输出
1、客户端传送的数据。
1、验证账户ID是否存在。
2、验证密码是否正确。
3、查找对应的账户并修改密码。
1、把服务器端处理的结果返回给客户端。
1.3.1.17服务器端销户功能功能
引言:
接收客户端传送的数据,通过公式计算客户账户的利息,注销该客户账户。
把结果传回给客户端。
输入
处理
输出
1、客户端传送的数据。
1、验证账户ID是否存在。
2、验证密码是否正确。
3、计算利息,具体公式如下:
利息=存款额*存款天数*年利率/360需要注意的是,账户中的存款额在变化。
4、修改对应账户ID的数据库。
5、删除用户账户,不是做物理删除处理。
1、把服务器端处理的结果返回给客户端。
1.3.2外部接口需求
1.3.2.1用户接口
提供用户使用软件产品时的接口需求。
例如,如果系统的用户通过显示终端进行操作,就必须指定如下要求:
a.对屏幕格式的要求:
用户操作的终端使用标准控制台界面,每行80个字符(中文40),总共25行。
b.交易报表统计格式
c.存折第一页的输出格式
d.存折明细的输出格式
e.转帐存款回单格式
户名:
帐号:
币种:
交易金额:
摘要:
f.程序功能键的可用性:
在客户端的程序中任意一个功能的输入过程中都可以使用ESC键返回到主菜单。
数据浏览时的相关功能键请参考C语言的项目要求。
1.3.2.2硬件接口
要指出软件产品和系统硬部件之间每一个接口的逻辑特点。
还可能包括如下事宜:
支撑什么样的设备,如何支撑这些设备,有何约定。
1.3.3性能需求
从整体来说,本条应具体说明软件、或人与软件交互的静态或动态数值需求。
A.静态数值需求可能包括:
1)支持的终端数;
2)支持并行操作的用户数;
3)处理的文卷和记录数;
4)表和文卷的大小。
B.动态数值需求可能包括:
欲处理的事务和任务的数量,以及在正常情况下和峰值工作条件下一定时间周期中处理的数据总量。
所有这些需求都必须用可以度量的术语来叙述。
例如,95%的事务必须在小于1s时间内处理完,不然,操作员将不等待处理的完成。
1.3.4设计约束
设计约束受其他标准、硬件限制等方面的影响。
1.3.4.1硬件的约束
本项包括在各种硬件约束下运行的软件要求,例如,应该包括:
a.硬件配置的特点(接口数,指令系统等);
b.内存储器和辅助存储器的容量。
1.3.5属性
在软件的需求之中有若干个属性,以下指出其中的几个(注意:
对这些决不应理解为是一个完整的清单)。
1.3.5.1可用性
可以指定一些因素,如检查点、恢复和再启动等,以保证整个系统有一个确定的可用性级别。
1.3.5.2安全性
指的是保护软件的要素,以防止各种非法的访问、使用、修改、破坏或者泄密。
这个领域的具体需求必须包括:
利用可靠的密码技术;掌握特定的记录或历史数据集;给不同的模块分配不同的功能;限定一个程序中某些区域的通信;计算临界值的检查和。
1.3.5.3可维护性
规定若干需求以确保软件是可维护的。
例如:
a.软件模块所需要的特殊的耦合矩阵;
b.为微型装置指定特殊的数据\程序分割要求。
1.3.6其他需求
根据软件和用户组织的特性等,某些需求放在下面各项中描述。
1.3.6.1数据库
本项对作为产品的一部分进行开发的数据库规定一些需求,它们可能包括:
a.在功能需求中标识的信息类别;b,使用的频率;c.存取能力;
e.数据元素和文卷描述符;g.数据元素、记录和文卷的关系;
n.静态和动态的组织;f.数据保存要求。
.操作
这里说明用户要求的常规的和特殊的操作。
A.在用户组织之中各种方式的操作。
例如,用户初始化操作;
B.交互作用操作的周期和无人操作的周期;C.数据处理运行功能;
D.后援和恢复操作。
总体设计
系统结构图
需求规定
说明对本系统的主要的输入输出项目、处理的功能性能要求,详细的说明可参见《需求分析说明书》。
运行界面及代码
登陆界面图2—1
登陆界面2—1
2.输入用户登陆后进入主菜单界面图2-2
2
图2—2主菜单界面
开户界面图2—3
图2—3开户界面
存款界面图2—4
图2—4存款界面
取款界面图2—5
图2—5取款界面
查询银行存款
转账界面图2—6
图2—6转账界面
更改密码图2—7
图2—7更改密码
销户界面图2—8
图2—8销户界面
1.代码如下
2.#ifndef _DB_STRUCT_H_
3.#define _DB_STRUCT_H_
4./typedef struct account_
5.{
6.char acc_name[21]; #include ""
7. << endl;
8.exit(0);
9.return 0;}
10.#include
11.using namespace std;
12.#include ""
13.#include <>
14.#pragma comment(lib,"")
15.
《更锋利的C#代码》包善东编著清华大学出版社
4.《数据库系统原理教程》王珊陈红编著清华大学出版
设计过程中质疑(或答辩)记载:
1.如何在ORANQ中创建表的脚本?
答:
打开“开始”点击“运行”输入“cmd”确定进入ORANQ输入“sqlplus/assysdba”在输入:
“editD:
/sql”即可创建。
2.如何在ORANQ中删除已建的表如表名为“Open”
答:
在ORANQ中输入“droptableOpen;”即可删除表“Open”。
3,如何在ORANQ中查看已生成的表(如表名为destroy)
答:
在ORANQ中输入“descdestroy”即可查看destroy表。
指导教师评语:
签名:
2012年6月29日