数据库课程设计报告——银行管理系统
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
8
金额
float
*
银行卡
9
透支功能
Bool(bit)
*
银行卡
10
透支额度
int
*
银行卡
11
贷款额度
int
*
银行卡
12
转账号
int
*
转账
13
转向卡号
int
*
转账
14
转账金额
int
*
转账
15
手续费
float
*
转账
16
转账利率
float
*
转账
17
贷款号
int
*
贷款
18
贷款金额
int
*
贷款
19
贷款日期
datetime
透支
1.2.3数据库概念结构设计(E-R模型)
、
SQL关系截图:
二.整体设计
1.1选用程序语言
本系统是用C#语言,选用这个语言的原因有以下几点:
1.C#与C/C++具有极大的相似性,我们之前认真学习过C语言和c++语言,c#是这两个语言的高效率版本,更易于上手。
2.C#语言完美支持.NET平台,可以在Microsoft .NET平台上事半功倍的构建应用程序的扩展框架(即与数据库的连接非常易于实现,对数据可以直接进行操作。)
透支(卡号,透支金额,透支号,透支开始时间,透支还清时间)
1.2.2数据项具体设置
编号
标识符
类型
长度
所属表名
1
用户名
nchar
10
用户,银行卡
2
密码
int
*
用户
3
用户类型
nchar
10
用户
4
信誉度
int
*
用户
5
用户收入
int
*
用户
6
卡号
int
*
银行卡,转账,贷款,还贷,透支
7
卡类型
nchar
10
银行卡
*
贷款,还贷
20
贷款利率
float
*
贷款,还贷
21
是否有贷款
Bool(bit)
*
贷款
22
利息
float
*
贷款,还贷
23
应还金额
float
*
贷款,还贷
24
还款时间
datatime
*
还贷
25
透支金额
int
*
透支
26
透支号
int
*
透支
27
透支开始时间
datatime
*
透支
28
透支还清时间
datatime
*
银行卡(用户名,卡号,卡类型,金额,透支功能,透支额度,贷款额度)卡号是主键。
转账表:转账表主要用于处理用户的转账操作。转账号是又程序生成的随机数字,转向卡号是由用户自主确定的,转账金额是由用户确定但是不超过当前卡金额的数字,手续费和转账利率是FLOAT型的由转向卡和当前卡的类型决定的。
3.贷款:对卡号以及密码进行验证以后,进行贷款操作。每张卡具有一定的贷款额度,具体贷款额度由该用户的收入决定。贷款可以随时进行,即使该用户具有透支也可以贷款。贷款以后用户需要在一定时间内还清,否则将不能进行该银行卡的相关操作。
4.转账:对卡号以及密码进行验证以后,进行转账操作。判断转账卡号存在以后,判断主卡号和转向卡号的卡类型,如果相等则收取0.02的手续费,如果不等则收取0.05的手续费。
4.模糊查询:即对不完全的给出数据进行查询(例如名字只给出第一个字,或者时间只给出月份)。《该功能在本系统中暂时还没有实现》
B)用户功能:
1.存款:对卡号以及密码进行验证以后,进行存款操作。
2.取款:对卡号以及密码进行验证以后,进行取款作。不具有透支功能的卡不可以取出比当前卡金额多的钱,具有透支功能的卡可以取出不超过透支额度的额外的钱。与此同时,该卡进入透支阶段,必须还清透支以后才可以再次进行取款。透支额度根据用户的收入和信誉度共同决定。
一.需求分析
需求分析是只收集和分析用户对系统的信息需求和处理要求,得到设计所需的需求信息。这些信息是是选择了对数据库设计直接有用的信息,一般包括实体类、联系类、数据的使用要求及冲突表等方面的内容。
下面我们从程序设计过程中分别对程序的需求分析和数据库的需求分析结合进行讨论。
1.1系统需求与功能分析
A)管理员功能:
用户(用户名,密码,用户类型,信誉度,用户收入)用户名是主键。
银行卡表:银行卡表是本数据库的核心,所有的服务都参照本表进行。卡号是程序自动生成的不重复的随机数字,卡类型是用户开户的时候确定的,金额即卡上的现金,透支功能是布尔型表示本卡是否具有透支功能,贷款额度和透支额度是由用户表中的用户收入确定的。
3.全界面人性化操作,实现代码简单易懂,适合初学者学习。
1.2选用MSSQL数据库
经过几天的学习和思考以及结合本系统的实际应用,最后选择使用Microsoft SQL2008作为本系统的数据库。和其他的数据库软件相比MicrsoftSQL2008具有以下的优点:
1.MSSQL具有广泛的可移植性,尤其MS2008更是强化了这个优点,由于所有主要的关系数据库管理系统都支持SQL语言,用户可将使用SQL的技能从一个RDBMS转到另一个。所有用SQL编写的程序都是可以移植的。
2.MSSQL语言具有简单实用,一眼明了的特点,所有SQL语句使用查询优化器,它是RDBMS的一部分,由它决定对指定数据存取的最快速度的手段。这种特性使用户更易集中精力于要得到的结果。
3.MSSQL使我们数据库课程学习的主要语言,选用MSSQL可以锻炼我们对MSSQL实际操作的能力。
1.3程序流程图
用户(用户名,密码,用户类型,信誉度,用户收入)
银行卡(用户名,卡号,卡类型,金额,透支功能,透支额度,贷款额度)
转账(转账号,卡号,转向卡号,转账金额,手续费,转账利率)
贷款(卡号,贷款号,贷款金额,贷款日期,贷款利率,是否有贷款,利息,应还金额)
还贷(卡号,贷款日期,还款时间,贷款利率,贷款金额,利息,应还金额)
转账金额不能超过该卡的当前存款。
5.还贷:只有在用户存在贷款的时候有效,理论上要求分期付款,但是本系统现阶段只支持一次性还清。
6.还透支:只有在用户存在透支的时候有效,本系统暂时不支持还透支功能。
7.查看贷款,透支信息:点击按钮可以对当前卡的贷款和透支信息进行查看。
1.2数据库需求和分析。
1.2.1数据结构(数据库中表的设计)
1.开户:开户即让用户填写相关信息并要求开户存款至少存入十元,开户后用户获得一张新的银行卡。
2.销户:销户即首先计算该用户该卡的所有存款,贷款以及透支并计算最近结果,让用户先取出剩余金额或者还清金额后,对该银行卡进行删除操作。
3.精确查询:即组合查询,要求根据输入的条件(具体条件如:日期,用户名)进行查询。
三.具体设计以及程序实现
3.1数据库设计以及列表信息<具体列名以及类型设置请参照1.2.2数据项具体设计>
用户表:用户表主要用于登陆信息校验,因为程序使用的先验证用户名和密码然后再进行卡号选择的模式,因此在用户表中没有卡号这个列。结合开户的程序设计,还要在用户表中添加用户信誉度和用户收入来计算用户的透支额度以及贷款额度。
金额
float
*
银行卡
9
透支功能
Bool(bit)
*
银行卡
10
透支额度
int
*
银行卡
11
贷款额度
int
*
银行卡
12
转账号
int
*
转账
13
转向卡号
int
*
转账
14
转账金额
int
*
转账
15
手续费
float
*
转账
16
转账利率
float
*
转账
17
贷款号
int
*
贷款
18
贷款金额
int
*
贷款
19
贷款日期
datetime
透支
1.2.3数据库概念结构设计(E-R模型)
、
SQL关系截图:
二.整体设计
1.1选用程序语言
本系统是用C#语言,选用这个语言的原因有以下几点:
1.C#与C/C++具有极大的相似性,我们之前认真学习过C语言和c++语言,c#是这两个语言的高效率版本,更易于上手。
2.C#语言完美支持.NET平台,可以在Microsoft .NET平台上事半功倍的构建应用程序的扩展框架(即与数据库的连接非常易于实现,对数据可以直接进行操作。)
透支(卡号,透支金额,透支号,透支开始时间,透支还清时间)
1.2.2数据项具体设置
编号
标识符
类型
长度
所属表名
1
用户名
nchar
10
用户,银行卡
2
密码
int
*
用户
3
用户类型
nchar
10
用户
4
信誉度
int
*
用户
5
用户收入
int
*
用户
6
卡号
int
*
银行卡,转账,贷款,还贷,透支
7
卡类型
nchar
10
银行卡
*
贷款,还贷
20
贷款利率
float
*
贷款,还贷
21
是否有贷款
Bool(bit)
*
贷款
22
利息
float
*
贷款,还贷
23
应还金额
float
*
贷款,还贷
24
还款时间
datatime
*
还贷
25
透支金额
int
*
透支
26
透支号
int
*
透支
27
透支开始时间
datatime
*
透支
28
透支还清时间
datatime
*
银行卡(用户名,卡号,卡类型,金额,透支功能,透支额度,贷款额度)卡号是主键。
转账表:转账表主要用于处理用户的转账操作。转账号是又程序生成的随机数字,转向卡号是由用户自主确定的,转账金额是由用户确定但是不超过当前卡金额的数字,手续费和转账利率是FLOAT型的由转向卡和当前卡的类型决定的。
3.贷款:对卡号以及密码进行验证以后,进行贷款操作。每张卡具有一定的贷款额度,具体贷款额度由该用户的收入决定。贷款可以随时进行,即使该用户具有透支也可以贷款。贷款以后用户需要在一定时间内还清,否则将不能进行该银行卡的相关操作。
4.转账:对卡号以及密码进行验证以后,进行转账操作。判断转账卡号存在以后,判断主卡号和转向卡号的卡类型,如果相等则收取0.02的手续费,如果不等则收取0.05的手续费。
4.模糊查询:即对不完全的给出数据进行查询(例如名字只给出第一个字,或者时间只给出月份)。《该功能在本系统中暂时还没有实现》
B)用户功能:
1.存款:对卡号以及密码进行验证以后,进行存款操作。
2.取款:对卡号以及密码进行验证以后,进行取款作。不具有透支功能的卡不可以取出比当前卡金额多的钱,具有透支功能的卡可以取出不超过透支额度的额外的钱。与此同时,该卡进入透支阶段,必须还清透支以后才可以再次进行取款。透支额度根据用户的收入和信誉度共同决定。
一.需求分析
需求分析是只收集和分析用户对系统的信息需求和处理要求,得到设计所需的需求信息。这些信息是是选择了对数据库设计直接有用的信息,一般包括实体类、联系类、数据的使用要求及冲突表等方面的内容。
下面我们从程序设计过程中分别对程序的需求分析和数据库的需求分析结合进行讨论。
1.1系统需求与功能分析
A)管理员功能:
用户(用户名,密码,用户类型,信誉度,用户收入)用户名是主键。
银行卡表:银行卡表是本数据库的核心,所有的服务都参照本表进行。卡号是程序自动生成的不重复的随机数字,卡类型是用户开户的时候确定的,金额即卡上的现金,透支功能是布尔型表示本卡是否具有透支功能,贷款额度和透支额度是由用户表中的用户收入确定的。
3.全界面人性化操作,实现代码简单易懂,适合初学者学习。
1.2选用MSSQL数据库
经过几天的学习和思考以及结合本系统的实际应用,最后选择使用Microsoft SQL2008作为本系统的数据库。和其他的数据库软件相比MicrsoftSQL2008具有以下的优点:
1.MSSQL具有广泛的可移植性,尤其MS2008更是强化了这个优点,由于所有主要的关系数据库管理系统都支持SQL语言,用户可将使用SQL的技能从一个RDBMS转到另一个。所有用SQL编写的程序都是可以移植的。
2.MSSQL语言具有简单实用,一眼明了的特点,所有SQL语句使用查询优化器,它是RDBMS的一部分,由它决定对指定数据存取的最快速度的手段。这种特性使用户更易集中精力于要得到的结果。
3.MSSQL使我们数据库课程学习的主要语言,选用MSSQL可以锻炼我们对MSSQL实际操作的能力。
1.3程序流程图
用户(用户名,密码,用户类型,信誉度,用户收入)
银行卡(用户名,卡号,卡类型,金额,透支功能,透支额度,贷款额度)
转账(转账号,卡号,转向卡号,转账金额,手续费,转账利率)
贷款(卡号,贷款号,贷款金额,贷款日期,贷款利率,是否有贷款,利息,应还金额)
还贷(卡号,贷款日期,还款时间,贷款利率,贷款金额,利息,应还金额)
转账金额不能超过该卡的当前存款。
5.还贷:只有在用户存在贷款的时候有效,理论上要求分期付款,但是本系统现阶段只支持一次性还清。
6.还透支:只有在用户存在透支的时候有效,本系统暂时不支持还透支功能。
7.查看贷款,透支信息:点击按钮可以对当前卡的贷款和透支信息进行查看。
1.2数据库需求和分析。
1.2.1数据结构(数据库中表的设计)
1.开户:开户即让用户填写相关信息并要求开户存款至少存入十元,开户后用户获得一张新的银行卡。
2.销户:销户即首先计算该用户该卡的所有存款,贷款以及透支并计算最近结果,让用户先取出剩余金额或者还清金额后,对该银行卡进行删除操作。
3.精确查询:即组合查询,要求根据输入的条件(具体条件如:日期,用户名)进行查询。
三.具体设计以及程序实现
3.1数据库设计以及列表信息<具体列名以及类型设置请参照1.2.2数据项具体设计>
用户表:用户表主要用于登陆信息校验,因为程序使用的先验证用户名和密码然后再进行卡号选择的模式,因此在用户表中没有卡号这个列。结合开户的程序设计,还要在用户表中添加用户信誉度和用户收入来计算用户的透支额度以及贷款额度。