银行管理系统大数据库.docx
《银行管理系统大数据库.docx》由会员分享,可在线阅读,更多相关《银行管理系统大数据库.docx(26页珍藏版)》请在冰豆网上搜索。
银行管理系统大数据库
吉首大学
张家界学院
《数据库系统概念》课程设计
题目
学号
学生姓名
院系
专业
指导教师
二O一六年月日
学生选课系统的设计
一、绪论
1.1目的和意义
银行管理系统:
该系统要求建立的用户表并不是很多,完成的功能也相对有限,但其中各个表之间的联系很紧密,该系统对数据库表的设计要求会很高,所以完成这个题目,能更好的训练数据库设计和VC的编程能力,选择该题目就是充分训练数据库表设计的能力和运用VC的能力。
1.2内容和要求
用户管理模块:
建立新用户、删除老用户、更改用户操作;
账户操作模块:
账户信息、活期存取款操作、查询活期操作纪录、定期存款、定期取款、查询定期操作纪录;
数据库模块:
数据库备份、数据库恢复;
二、需求分析
2.1系统用户
对于用户部分,能够新建和删除用户,在操作过程中可以更改用户;对于账户部分,可以查询用户的信息,包括各种基本信息、活期余额、定期账单等;对于账户操作部分,有活期存取款、定期存取款操作,另外操作完成之后存储相应的操作纪录并能够查询操作纪录等功能。
银行帐目管理系统包括五个模块,分别为系统选项、帐目管理、查询统计、用户查询和帮助。
2.2系统主要功能
帐目管理模块:
主要处理用户的日常操作。
(1)开户:
新建一个帐户,为其指定一个唯一的帐号来标志该用户
(2)销户:
将指定用户的帐号删除。
用户输入密码经过验证成功后,把帐户的余额全部取出,最后删除该帐户。
(3)存款:
向指定的帐户中存入一笔钱,经用户输入密码确认后,方可存入。
(4)取款:
从指定的帐户中取出一笔钱。
取款前用户需要输入密码确认,取款后帐户余额不得少于帐户的最低存款额,否则不予处理。
(5)修改信息:
选择一个存在的帐户,然后输入密码经确认后进入用户信息窗口,可对里面的密码、联系电话和家庭住址进行修改,而帐号和帐户上的金额不能被用户修改。
查询模块:
按照指定方式进行查找帐户信息,包括按姓名、帐号和联系电话进行查找,也可以按照地址进行模糊查找。
统计模块:
对银行的数据进行统计,如对帐户数量的统计。
其系统功能模块如图2-1:
图2-1系统功能模块
2.3开发技术
开发工具:
MYSQL
开发语言:
SQL
开发技术:
数据库开发技术
面向对象:
需求者
MySQL是一个关系型数据库管理系统,由瑞典MySQLAB公司开发,目前属于Oracle旗下产品。
MySQL最流行的关系型数据库管理系统,在WEB应用方面MySQL是最好的RDBMS(RelationalDatabaseManagementSystem,关系数据库管理系统)应用软件之一。
本实验将设计出一个银行账目管理数据库系统,其要求简要如下:
三、概念结构设计
本章节主要包含概念设计、E-R图,以及如何将E-R图转换为实际的物理模型等内容。
3.1概念设计
在我们的数据库系统中共有5个实体:
储户、活期存取款、定期存款、定期取款、定期记录。
(1)储户的属性:
账号、姓名、密码、身份证号、性别、账户余额、开户日期、开户地址
(2)活期存取款的属性:
账号、金额、类型、办理日期、利息、账户余额
(3)定期存款的属性:
账号、存款人姓名、金额、存储年份、年利率、存储日期
(4)定期取款的属性:
账号、取款人姓名、取款金额、取款日期
(5)定期记录的属性:
账号、存取款人姓名、类型、操作金额、操作日期
3.2E-R图
图1银行基本信息实体图图2储户基本信息实体图
图3定期记录基本信息实体图
合并画出数据库系统的E-R图,如图3-7所示:
图3-7数据库系统E-R图
四、逻辑结构设计
4.1逻辑转换
根据3.2节中的E-R图可以将系统中的概念模型转换为具体的表(即关系)结构,共分为7个关系,详细信息如下所示:
(1)储户(账号、姓名、密码、身份证号、性别、账户余额、开户日期、开户地址)
(2)活期存取款(账号、金额、类型、办理日期、利息、账户余额)
(3)定期存款(账号、存款人姓名、金额、存储年份、年利率、存储日期)
(4)定期取款的(账号、取款人姓名、取款金额、取款日期)
(5)定期记录(账号、存取款人姓名、类型、操作金额、操作日期)
4.2细化表结构
为方便,根据上述文字描述,用英文简写为表和列取名,确定列的数据类型及必要的约束规则,给出如下所示数据库表的基本结构及说明:
(1)储户表
列名
字段描述
数据类型
约束
CNo
账号
varchar(20)
主码
CName
开户人姓名
varchar(20)
notnull,
CPassword
登录密码
char(6)
Notnull
CID
身份证号
varchar(20)
notnull,
CSex
性别
char
(2)
notnull
CBalance
账户余额
Float(8)
notnull,
CDate
开户日期
Datetime(8)
notnull,
CAddress
开户地址
varchar(30)
notnull,
(2)活期存取款表
列名
说明
数据类型
约束
nID
序号
int(4)
主码
CNo
账号
varchar(20)
notnull
CMoney
操作金额
Float(8)
notnull
CStyle
操作类型
varchar(10)
notnull”
CDate
操作日期
Datetime(8)
notnull
CInterest
利息
Float(8)
notnull
CBalance
账户余额
Float(8)
notnull,
(3)定期存款表
列名
说明
数据类型
约束
nID
序号
int(4)
主码
CNo
账号
varchar(20)
notnull
CName
存款人姓名
varchar(20)
notnull,
CMoney
存款金额
Float(8)
notnull
CDate
存款日期
Datetime(8)
notnull
CYear
存储年份
int(4)
notnull
CRate
存储利率
Float(8)
notnull
(4)定期取款表
列名
说明
数据类型
约束
nID
序号
int(4)
主码
CNo
账号
varchar(20)
notnull
CName
取款人姓名
varchar(20)
notnull,
CMoney
取款金额
Float(8)
notnull
CDate
取款日期
Datetime(8)
notnull
(6)定期操作记录表
列名
说明
数据类型
约束
nID
序号
Int(4)
主码
CNo
帐号
Varchar(20)
notnull
CName
存取款人姓名
Float (8 )
notnull
CStyle
操作类型
char(4)
notnul
CMoney
float 8
float (8)
notnul
CYear
存储年份
Int (4)
notnul
CDate
存取款日期
Datetime( 8)
notnul
五、数据库实施
本章节主要包含创建表、添加数据和创建必要的视图、触发器和存储过程等内容。
5.1创建表
提高查询速度,分别为各表经常查询的列建立索引。
(1)为chuhu(储户表)中的cno属性建立唯一索引cno:
CREATEUNIQUEINDEXcno_indexonchuhutable(cno);
(2)为Hcq(活期存取款表)中nid属性建立唯一索引nid:
CREATEUNIQUEINDEXnid_indexONHcq(nid);
(3)为dqcun(定期存款表)中nid属性建立降序唯一索引niddesc:
CREATEUNIQUEINDEXniddescONdqcun(niddesc);
(4)为dqqu(定期取款表)中nid属性建立升序唯一索引nidasc:
CREATEUNIQUEINDEXnidascONdqqu(nidasc);
(5)为dqjilu(定期记录表)中nid属性建立降序唯一索引niddesc:
CREATEUNIQUEINDEXniddescONdqjilun(niddesc);
数据的载入是一个非常繁杂和重要的过程需要很大的工作量,可分为人工输入与其它格式数据文件导入。
该系统只是一个简单的实验系统,所以采用手工输入少量的数据可满足实验要求即可。
分别给储户基本信息表,活期存取款基本信息表,定期存款基本信息表,定期取款基本信息表和定期操作记录基本信息表输入数据。
下面若干个表分别显示了所要求的表基本信息息的录入和显示的结果
(1)创建储户表
Createtablechuhu
(CNointprimarykey,
CNamechar(20)notnull,
CPasswordintnotnull,
CIDintnotnull,
CAddresschar(20)notnull,
CBalanceintnotnull,
CDatedatetimenotnull,
CSexchar
(2)notnull,
)
图5利用查询编辑器创建储户信息表
图6储户信息表
(2)创建活期存取款表
CreatetableHcq
(nIDintprimarykey,
CNointnotnull,
CMoneyintnotnull,
CBalanceintnotnull,
CDatedatetimenotnull,
CInterestintnotnull,
)
图7利用查询编辑器创建活期存取款表
图8利用查询编辑器插入活期存取款用户表
图8利用查询编辑器查询活期存取款用户表
图8活期存取款表
(3)创建定期存款表
Createtabledqcun
(nIDintprimarykey,
CNointnotnull,
CNamechar(10)notnull,
CMoneyintnotnull,
Cratefloatnotnull,
CYearintnotnull,
CDatedatetimenotnull,
)
图9利用查询编辑器创建定期存款表
图10定期存款表
(4)创建定期取款表
Createtabledqqu
(nIDintprimarykey,
CNointnotnull,
CDatedatetimenotnull,
CMoneyintnotnull,
CNamechar(20)notnull,
)
图11利用查询编辑器创建定期取款表
图12定期取款表
(5)定期操作记录表
Createtabledqjilu
(nIDintprimarykey,
CNointnotnull,
CDatedatetimenotnull