数据库原理及应用课程设计文档.docx

上传人:b****0 文档编号:18128227 上传时间:2023-08-13 格式:DOCX 页数:38 大小:979.32KB
下载 相关 举报
数据库原理及应用课程设计文档.docx_第1页
第1页 / 共38页
数据库原理及应用课程设计文档.docx_第2页
第2页 / 共38页
数据库原理及应用课程设计文档.docx_第3页
第3页 / 共38页
数据库原理及应用课程设计文档.docx_第4页
第4页 / 共38页
数据库原理及应用课程设计文档.docx_第5页
第5页 / 共38页
数据库原理及应用课程设计文档.docx_第6页
第6页 / 共38页
数据库原理及应用课程设计文档.docx_第7页
第7页 / 共38页
数据库原理及应用课程设计文档.docx_第8页
第8页 / 共38页
数据库原理及应用课程设计文档.docx_第9页
第9页 / 共38页
数据库原理及应用课程设计文档.docx_第10页
第10页 / 共38页
数据库原理及应用课程设计文档.docx_第11页
第11页 / 共38页
数据库原理及应用课程设计文档.docx_第12页
第12页 / 共38页
数据库原理及应用课程设计文档.docx_第13页
第13页 / 共38页
数据库原理及应用课程设计文档.docx_第14页
第14页 / 共38页
数据库原理及应用课程设计文档.docx_第15页
第15页 / 共38页
数据库原理及应用课程设计文档.docx_第16页
第16页 / 共38页
数据库原理及应用课程设计文档.docx_第17页
第17页 / 共38页
数据库原理及应用课程设计文档.docx_第18页
第18页 / 共38页
数据库原理及应用课程设计文档.docx_第19页
第19页 / 共38页
数据库原理及应用课程设计文档.docx_第20页
第20页 / 共38页
亲,该文档总共38页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

数据库原理及应用课程设计文档.docx

《数据库原理及应用课程设计文档.docx》由会员分享,可在线阅读,更多相关《数据库原理及应用课程设计文档.docx(38页珍藏版)》请在冰点文库上搜索。

数据库原理及应用课程设计文档.docx

数据库原理及应用课程设计文档

<基于数据库的ATM机存取款系统>

数据库原理及应用课程设计文档

 

学号

姓名

专业班级

指导教师

日期

 

 

1概述

数据库设计是指对于一个给定的应用环境,构造(设计)优化的数据库逻辑模式和物理结构,并据此建立数据库及其应用系统,使之能够有效的存储和管理数据,满足各种用户的应用需求,包括信息管理要求和数据操作要求。

SQL数据库的安全性

①、计算机系统的三类安全性问题

1.所谓计算机系统安全性,是指为计算机系统建立和采用的各种安全保护措施,以保护计算机系统中的硬件、软件、及数据,防止其偶然或恶意的原因是系统遭到破坏,数据遭到更改或泄露等。

2.技术安全:

计算机系统中采用具有一定安全性的硬件、软件来实现对计算机系统及其所存数据的安全保护,当计算机系统受到无意或恶意的攻击时仍能保证系统正常运行,保证系统内的数据不增加、不丢失、不泄露。

3.管理安全:

由于管理不善导致的计算机设备和数据介质的物理破坏、丢失等软硬件意外故障以及场地的意外事故等安全问题。

4.政策法律:

政府部门建立的有关计算机犯罪、数据安全保密的法律准则和政策法规、法令。

②、数据库安全性控制

1.用户标识与鉴别:

用户标识、口令。

2.存取控制:

定义用户权限,并将用户权限登记到数据字典中、合法权限检查。

1.1课程设计目标

为用户和各种应用系统提供一个信息基础设施和高效率的运行环境

SQL数据库的实际应用

①、SQL包括了所有对数据库的操作,主要是由4个部分组成:

  

1.数据定义:

这一部分又称为“SQLDDL”,定义数据库的逻辑结构,包括定义数据库、基本表、视图和索引4部分。

  

2.数据操纵:

这一部分又称为“SQLDML”,其中包括数据查询和数据更新两大类操作,其中数据更新又包括插入、删除和更新三种操作。

  

3.数据控制:

对用户访问数据的控制有基本表和视图的授权、完整性规则的描述,事务控制语句等。

  

4.嵌入式SQL语言的使用规定:

规定SQL语句在宿主语言的程序中使用的规则。

②、在如今的互联网系统中主要存在B-S模式和C-S模式,B-S模式指的是浏览器服务器模式,C-S模式指的是客户服务器模式。

两者的相同部分就是SERVER服务器,SERVER服务器是指的专用计算机,它拥有大容量存储设备和高性能计算功能,用于存储复杂的用户数据,这些复杂臃繁的数据以关系模型存储也就是二维表的形式存储,各二维表之间以相同的字段形成联系,这样存储的好处是具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种用户共享。

在这些专用计算机运行着位于用户与操作系统之间的一层数据管理软件。

数据库管理系统和操作系统一样是计算机的基础软件,也是一个大型复杂的软件系统,其主要功能包括数据定义,数据组织、存储和管理,数据操纵功能,数据库的事务管理和运行管理,DBMS与另一个DBMS或文件系统的数据转换功能,异构数据库之间的互访和互操作功能等。

而数据库系统是指的在计算机系统中引入数据库后的系统,一般由数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员构成。

1.2课程设计要求

使用SqlServer2005和java语言等技术完成ATM存取款系统,具体要求如下:

1.能从信息需求,处理需求,安全性等方面对系统进行需要分析,并能分析出系统的功能模块

2能从需要分析里抽象出系统中主要的实体及关联关系,并画出对应的E-R图

3.能从E-R图里抽象出系统的数据库表,并对数据库表用规范化理论优化并评价,使得所有数据库表最低达到第三范式

4.设计并实现ATM机登录,存款,取款,转账以及查看余额功能,系统设计要实用,编程简练、规范,可用,功能全面

5.提交系统使用说明书

1.3项目人员分工

姓名

组员分工

AA

数据库的建立以及辅助组员完成各个模块(参与数据库设计的讨论)

BB

数据库转账、取款及修改密码存储过程的编写及前后台的链接(参与数据库设计的讨论)

CC

文档的实现及数据库中表的建立(参与数据库设计讨论)

DD

前台界面的设计及实现(参与数据库设计的讨论)

XX

PPT的制作及存款和查询存储过程的实现(参与数据库设计的讨论)

FXX

数据库中表约束及表关系的建立(参与数据库设计的讨论)

 

1.4参考资料

数据库系统概论(第四版)高等教育出版社

JAVA2实用教程(第四版)清华教育出版社

SqlServer2000管理与应用开发教程人民邮电出版社

2系统分析和设计

2.1开发背景

ATM机管理系统是银行业务流程过程中十分重要且必备的环节之一,在银行业务流程当中起着承上启下的作用,其重要性不言而喻。

但是,目前许多银行在具体的一些业务流程处理过程中仍然使用手工操作的方式来实施,不仅费时、费力,效率低下,而且无法达到理想的效果。

本文针对上述问题,采用软件工程的开发原理,依据软件流程过程规范,按照需求分析、概要设计、详细设计、程序编码、测试、软件应用、软件维护等过程开发了一个银行ATM机管理系统系统。

2.2需求分析

1.数据库设计:

对于一个给定的应用环境,构造(设计)优化的数据库逻辑模式和物理结构,并据此建立数据库及其应用系统,使之能够有效地存储和管理数据,满足各个用户的应用需求,包括信息管理要求和数据操作要求。

2.数据库设计的特点:

数据库建设的基本规律:

“三分技术,七分管理,十二分基础数据”;机构(数据)设计和行为(处理)设计相结合。

3.数据库设计方法:

计算机的基础知识,软件工程的原理和方法,程序设计的方法和技巧,数据库的基本知识,数据库设计技术,应用领域知识。

4.数据库设计的基本步骤:

需求分析,概念结构设计,逻辑结构设计,物理结构设计,数据库实施,数据库运行和维护。

4)SQL作为后台数据库与前台开发工具的结合

前台开发工具用于做前台页面,设计出可视化的图形界面,使不同权限的用户都便于操作整个系统。

而前台页面与后台数据库连接最关键的地方则在于SQL语句。

各种开发语言都提供了其连接数据库的类,通过这些类的相应方法实现连接数据库、对数据源的各种操作,包括查询、插入、删除、更新操作、返回操作结果等。

当点击图形界面相应的控件时,通过监听触发产生相应的SQL语句,然后执行SQL语句将返回的结构显示在图形界面上。

5)SQL查询命令的应用

SQL提供select语句进行数据库的查询,该语句具有灵活的使用方式和丰富的功能。

分为:

1.单表查询2.连接查询3.嵌套查询4.集合查询。

6)SQL在VB、ASP或其他自选语言中的实际应用

数据库安全性分析

1.用户标识与鉴别:

用户标识、口令。

2.存取分析:

定义用户权限,合法权限检查。

2.3系统总体结构

系统的模块划分为如图所示,分别为:

用户登录、ATM机存款、ATM机取款、ATM机查询余额、ATM转账功能(chat)5个模块。

每个模块负责相应的功能。

系统采用JAVA技术实现对数据库的访问操作,使用SQLServer2005作为后台数据库。

1用户登录模块

提供用户账号登录界面,输入用户账号,密码进行登录。

2ATM机存款模块

③ATM机取款模块

3数据库结构设计

3.1数据流图

3.2数据库E-R图

 

数据库逻辑设计

3.3.1用户表

用户表(用户编号,姓名,密码,身份证号,性别,地址,电话)

字段名

数据类型

长度

约束

能否为空

默认值

用户编号

int

主键

姓名

nvarchar

50

性别

nchar

2

身份证号

nvarchar

50

电话

varchar

50

地址

nvarchar

50

3.3.2银行卡表

银行卡信息(Account)(卡号,密码,货币类型,存款类型,开户日期,开户金额,余额,是否挂失,顾客编号)

字段名

数据类型

长度

约束

能否为空

默认值

卡号

varchar

20

主键

密码

varchar

6

货币类型

varchar

20

RMB

存款类型

varchar

2

活期

开户日期

timestamp

系统时间

开户金额

double

0

余额

Double

0

是否挂失

varchar

2

0(正常)

顾客编号

varchar

20

外键

 

3.3.3交易记录表

交易记录表(交易编码,卡号,目标卡号,操作类型号,时间,备注)

字段名

数据类型

长度

约束

能否为空

默认值

交易编号

int

主键

卡号

nvarchar

50

目标卡号

nvarchar

50

操作类型号

int

时间

nchar

10

系统时间

备注

nvarchar

50

3.3.4管理员表

管理员信息(管理员编号,姓名,类型号,操作类型)

字段名

数据类型

长度

约束

能否为空

默认值

管理员编号

integer

主键

姓名

varchar

20

类型号

int

操作类型

nvarchar

50

 

总结:

以上数据库表结构逻辑设计满足表结构三大范式,设计出合理的关系型数据库表结构,应用环境和现实世界的具体情况合理地选择数据库模式

4实施

4.1项目运行环境描述

前台——JAVA(Myeclipse)

后台——数据库(Sqlsever2005)

 

4.2主要功能实现代码

存储过程主代码:

创建用户

USE[ATM]

GO

/******Object:

StoredProcedure[dbo].[create_user]ScriptDate:

12/30/201312:

22:

14******/

SETANSI_NULLSON

GO

SETQUOTED_IDENTIFIERON

GO

ALTERproc[dbo].[create_user]

@timenvarchar(50),

@IDcardnvarchar(50),

@namenvarchar(50),

@passwordnvarchar(50),

@person_cardnvarchar(50),

@sexint,

@moneyfloat,

@addressnvarchar(50),

@telnvarchar(50)

as

insert用户表values(@IDcard,@name,@password,@person_card,@sex,@money,@address,@tel)

insert交易记录values(@IDcard,@IDcard,4,@time)

return1

登陆

USE[ATM]

GO

/******Object:

StoredProcedure[dbo].[log_in]ScriptDate:

12/30/201312:

23:

44******/

SETANSI_NULLSON

GO

SETQUOTED_IDENTIFIERON

GO

ALTERPROCEDURE[dbo].[log_in]

@idcardnvarchar(50),

@codenvarchar(50),

@passflagintOUTPUT

AS

DECLARE@numint

SET@num=0

SELECT@num=COUNT(*)FROM用户表where@idcard=卡号AND@code=密码

IF(@num>0)

BEGIN

SET@passflag=1

END

ELSE

BEGIN

SET@passflag=0

END

查询

USE[ATM]

GO

/******Object:

StoredProcedure[dbo].[quary]ScriptDate:

12/30/201312:

24:

23******/

SETANSI_NULLSON

GO

SETQUOTED_IDENTIFIERON

GO

ALTERprocedure[dbo].[quary]

@IDcardnvarchar(50)

as

select*from用户表

where卡号=@IDcard

存款

USE[ATM]

GO

/******Object:

StoredProcedure[dbo].[savemoney]ScriptDate:

12/30/201312:

24:

53******/

SETANSI_NULLSON

GO

SETQUOTED_IDENTIFIERON

GO

ALTERprocedure[dbo].[savemoney]

(@savemoneyfloat,

@IDcardnvarchar(50),

@timenvarchar(50)

as

begintransaction

declare@errorsumint

set@errorsum=0

update用户表set余额=余额+@savemoney

where卡号=@IDcard

set@errorsum=@errorsum+@@ERROR

insertinto交易记录values(@IDcard,@IDcard,2,@time)

set@errorsum=@errorsum+@@ERROR

if(@errorsum<>0)

begin

--print'交易失败,回滚事务'

rollbacktransaction

return-1

end

else

begin

--print'交易成功,提交事务,写入硬盘,永久的保存'

committransaction

return1

end

--print'查看存款后的余额'

select*from用户表

取款

USE[ATM]

GO

/******Object:

StoredProcedure[dbo].[take_money]ScriptDate:

12/30/201312:

25:

14******/

SETANSI_NULLSON

GO

SETQUOTED_IDENTIFIERON

GO

ALTERproc[dbo].[take_money]

--@output_valuenvarchar(50)OUTPUT,

@intput_moneyfloat,

@input_src_idnvarchar(50),

@input_aim_idnvarchar(50),

@savemoneyfloat,

@timenvarchar(50)

as

begintransaction

declare@errorsumint

set@errorsum=0

declare@tempnvarchar(50)

declare@select_moneynvarchar(50)

select@temp=卡号from用户表

where卡号=@input_aim_id

if(@tempisnotnull)

begin

select@select_money=余额from用户表

where卡号=@input_src_id

if(@select_money>=@intput_money)

begin

update用户表set余额=余额-@intput_money

where卡号=@input_src_id

set@errorsum=@errorsum+@@ERROR

insertinto交易记录values(@input_src_id,@input_aim_id,2,@time)

set@errorsum=@errorsum+@@ERROR

end

else

begin

set@errorsum=@errorsum+1

--print'余额不足'

end

end

else

begin

--print'用户不存在,交易失败,回滚事务'

return0

end

if@errorsum<>0

begin

--set@output_value='交易失败,回滚事务'

rollbacktransaction

return-1

end

else

begin

--set@output_value='交易成功,提交事务,写入硬盘,永久的保存'

--print'交易成功,提交事务,写入硬盘,永久的保存'

committransaction

return1

end

--print'查看转账后的余额'

--select*from用户表

转账

USE[ATM]

GO

/******Object:

StoredProcedure[dbo].[trans_money]ScriptDate:

12/30/201312:

25:

33******/

SETANSI_NULLSON

GO

SETQUOTED_IDENTIFIERON

GO

ALTERproc[dbo].[trans_money]

@intput_moneyfloat,

@input_src_idnvarchar(50),

@input_aim_idnvarchar(50),

@savemoneyfloat,

@timenvarchar(50)

as

begintransaction

declare@errorsumint

set@errorsum=0

declare@select_moneynvarchar(50)

select@select_money=余额from用户表

where卡号=@input_src_id

if(@select_money>=@intput_money)

begin

update用户表set余额=余额-@intput_money

where卡号=@input_src_id

set@errorsum=@errorsum+@@ERROR

update用户表set余额=余额+@intput_money

where卡号=@input_aim_id

set@errorsum=@errorsum+@@ERROR

insertinto交易记录values(@input_src_id,@input_aim_id,3,@time)

set@errorsum=@errorsum+@@ERROR

end

else

begin

return0

--print'余额不足'

end

if@errorsum<>0

begin

--print'交易失败,回滚事务'

rollbacktransaction

return-1

end

else

begin

--print'交易成功,提交事务,写入硬盘,永久的保存'

committransaction

return1

end

--print'查看转账后的余额'

--select*from用户表

修改密码

USE[ATM]

GO

/******Object:

StoredProcedure[dbo].[update_password]ScriptDate:

12/30/201312:

25:

52******/

SETANSI_NULLSON

GO

SETQUOTED_IDENTIFIERON

GO

ALTERproc[dbo].[update_password]

@passwordnvarchar(50),

@IDcardnvarchar(50)

as

update用户表

set密码=@password

where卡号=@Idcard

java登陆代码:

packagebankPack;

importjava.awt.Image;

importjava.awt.event.ActionEvent;

importjava.awt.event.ActionListener;

importjava.awt.event.MouseAdapter;

importjava.awt.event.MouseEvent;

importjava.sql.SQLException;

importjavax.swing.ImageIcon;

importjavax.swing.JButton;

importjavax.swing.JLabel;

importjavax.swing.JOptionPane;

importjavax.swing.JPasswordField;

importjavax.swing.JTextField;

importjavax.swing.WindowConstants;

importjavax.swing.SwingUtilities;

importjavax.swing.border.LineBorder;

importbankImpl.BankDao;

importbankentity.UserTbl;

/**

*ThiscodewaseditedorgeneratedusingCloudGarden'sJigloo

*SWT/SwingGUIBuilder,whichisfreefornon-commercial

*use.IfJiglooisbeingusedcommercially(ie,byacorporation,

*companyorbusinessforanypurposewhatever)thenyou

*shouldpurchasealicenseforeachdeveloperusingJigloo.

*Pleasevisitfordetails.

*Use

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2