SQL实训报告非常详细.docx

上传人:b****5 文档编号:6337256 上传时间:2023-01-05 格式:DOCX 页数:15 大小:282.29KB
下载 相关 举报
SQL实训报告非常详细.docx_第1页
第1页 / 共15页
SQL实训报告非常详细.docx_第2页
第2页 / 共15页
SQL实训报告非常详细.docx_第3页
第3页 / 共15页
SQL实训报告非常详细.docx_第4页
第4页 / 共15页
SQL实训报告非常详细.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

SQL实训报告非常详细.docx

《SQL实训报告非常详细.docx》由会员分享,可在线阅读,更多相关《SQL实训报告非常详细.docx(15页珍藏版)》请在冰豆网上搜索。

SQL实训报告非常详细.docx

SQL实训报告非常详细

武汉理工大学xxxx

课程设计报告书

课程名称:

项目需求(ATM)

 

题目:

ATM项目设计

系名:

信息工程系

专业班级:

软件1092

姓名:

学号:

指导教师:

 

2011年12月30日

 

目录

1.课程设计任务书1

1.1任务2

1.2要求2

2.方案图表设计3

2.1E-R图3

2.2数据字典3

3.数据库5

3.1数据库实体完整性5

3.2数据库参照完整性5

4.项目设计5

4.1需求6

4.2常规业务7

4.3创建视图与索引8

4.4创建触发器9

4.5创建存储过程9

5.总结11

课程设计任务书

学生姓名:

专业班级:

软件1092

指导教师:

工作单位:

信息工程系

设计题目:

ATM柜员机系统的数据库设计

要求完成的主要任务:

(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)

一、创建数据库BankTS,数据表(用户表,银行卡信息表,交易信息表)并建立主外键、约束、建立UserInfo、CardInfo表测试数据;[如:

张三、李四两个用户]

二、创建索引与视图

(1)为交易表的卡号cardID字段创建索引;

(2)创建视图[查询各表要求字段全为中文字段名]

卡号/开户名/开户日期/余额/存款类型/身份证号/电话号码/居住地址

三、实现以下功能:

(1)统计银行的资金流通余额和盈利结算(资金流通余额=总存入金额-总支出金额

盈利结算=总支出金额*8‰-总存入金额*3‰)

(2)查询本周开户的卡号,显示该卡相关信息;

(3)查询本月交易金额最高的卡号(子查询)

(4)创建触发器

实现发生交易时,根据是存入或是支出执行余额的相应更新,如果是支出,余额不足的情况,向用户报告错误消息.并输出相应的提示信息及卡号与所对应的余额;

(5)创建存储过程

实现存钱或取钱业务。

要求:

参数有卡号、金额、交易类型、密码如果密码不正确,或取钱时余额不足,需向用户报告错误消息

设计报告撰写格式要求:

1、明确课程设计的目的和重要性,认真领会课程设计的题目,读懂课程设计指导书的要求,学会设计的基本方法与步骤,学会如何运用前修知识与收集、归纳相关资料解决具体问题的方法。

严格要求自己,要独立思考,按时、独立完成课程设计任务。

2、设计报告:

要求层次清楚、整洁规范、不得相互抄袭,凡正文内容有整段完全相同者一律以抄袭论处。

设计报告正文字数不少于0.2万字(不包括附录)

时间安排:

消化资料、系统调查 1天

系统分析、总体设计,实施计划、撰写报告 3天

演示、验收            1天

指导教师签字:

2011年12月22日

系主任签字:

2011年12月22日

2.方案图表设计

2.1E-R图

M

N

2.2数据字典

CustomerIdchar(20),

CustomerNamechar(50)notnull,

PIDvarchar(20)unique,

Telephonevarchar(20),

Addresschar(50),

cardIDchar(50)notnull,

curTypevarchar(10)default'RMB'notnull,

savingTypevarchar(10),

openDatedatetimedefaultgetdate()

openMoneybigintnotnull,

balancebigintnotnull,

passchar(50)default'888888'notnull

IsReportLosschar(50)default'否'notnull

transDatedatetimedefault'getdate()'notnull

transTypechar(10)notnull

transMoneybigintnotnull

remarkchar(20),

IDintidentity(1,1)notnull)

3.数据库完整性

3.1实体完整性定义

单属性构成的码有两种说明方法:

定义为列级约束条件;定义为表级约束条件。

对多个属性构成的码只有一种说明方法:

定义为表级约束条件。

插入或对主码列进行更新操作时,RDBMS按照实体完整性规则自动进行检查。

包括:

.检查主码值是否唯一,如果不唯一则拒绝插入或修改。

.检查主码的各个属性是否为空,只要有一个为空就拒绝插入或修改。

3.2参照完整性定义

在CREATETABLE中用FOREIGNKEY短语定义哪些列为外码,用REFERENCES短语指明这些外码参照哪些表的主码。

参照完整性违约处理:

.拒绝(NOACTION)执行----默认策略

.级联(CASCADE)操作

.设置为空值(SET-NULL)

对于参照完整性,除了应该定义外码,还应定义外码列是否允许空值。

 

4.项目设计

v某银行拟开发一套ATM取款机系统,实现如下功能:

1、开户(到银行填写开户申请单,卡号自动生成)

2、取钱

3、存钱

4、查询余额

5、转账(如使用一卡通代缴手机话费、个人股票交易等)

现要求对“ATM柜员机系统”进行数据库的设计并实现

注*本文档数据字典以及需求均为参考,可按自己需求分析后做改动,根据需求做表的设计,对表的设计熟透之后才开始实现存储过程、触发器等。

UserInfo用户表表

(1)

CustomerId顾客编号

CustomerName开户名<必填>

PID身份证号<18位或15位,唯一约束>

Telephone联系电话<格式为xxxx-xxxxxxxx或手机号11位>

Address居住地址(可选输入)

CardInfo银行卡信息表表

(2)

cardID

卡号

必填,主健,银行的卡号规则和电话号码一样,一般前8位代表特殊含义,如某总行某支行等。

假定该行要求其营业厅的卡号格式为:

10103576xxxxxxx开始,每4位号码后有空格,卡号一般是随机产生[可选]

curType

货币种类

必填,默认为RMB

savingType

存款类型

活期/定活两便/定期

openDate

开户日期

必填,默认为系统当前日期

openMoney

开户金额

必填,不低于1元

balance

余额

必填,不低于1元,否则将销户

pass

密码

必填,6位数字,开户时默认为6个“8”

IsReportLoss

是否挂失

必填,是/否值,默认为”否”

customerID

顾客编号

外键,必填,表示该卡对应的顾客编号,一位顾客允许办理多张卡号

TransInfo交易信息表表(3)

transDate

交易日期

必填,默认为系统当前日期

cardID

卡号

必填,外健,可重复索引

transType

交易类型

必填,只能是’存入/支取’

transMoney

交易金额

必填,大于0

remark

备注

可选输入,其他说明

4.1需求:

4.1.1创建数据库BankTS

4.1.2创建表、建立主外键、约束、建立UserInfo、CardInfo表测试数据;

4.2常规业务:

4.2.1使用事务处理完成:

张三的卡号取款900元,李四的卡号存款5000元

4.2.2统计银行的资金流通余额和盈利结算

资金流通余额=总存入金额-总支出金额

盈利结算=总支出金额*8‰-总存入金额*3‰

4.2.3查询本周开户的卡号,显示该卡相关信息;

4.2.4查询本月交易金额最高的卡号(子查询)

4.3创建索引与视图

4..3.1为交易表的卡号cardID字段创建索引;

4.3.2创建视图[查询各表要求字段全为中文字段名]

卡号/开户名/开户日期/余额/存款类型/身份证号/电话号码/居住地址

4.4创建触发器

实现发生交易时,根据是存入或是支出执行余额的相应更新,如果是支出,余额不足的情况,向用户报告错误消息.并输出相应的提示信息及卡号与所对应的余额;

 

4.5创建存储过程

4.5.1实现存钱或取钱业务

要求:

参数有卡号、金额、交易类型、密码

如果密码不正确,或取钱时余额不足,需向用户报告错误消息

4.5.2转帐事务的存储过程

要求:

参数有卡号1、卡号2、金额

5.总结

经过一周的课程设计,我的收获颇多。

刚开始的时候我感到无从下手,很多问题都没有头绪,对于课程的理解不够,想了很久都没什么思路,甚至想到放弃或者抄袭,但想想自己这样做那就一点收获都没有了,所以还是硬着头皮往下做。

后来经过老师的帮助和自己专研看书,在查阅了一些资料之后终于有了一些想法,并且逐步逐步的向下设计,慢慢完成要求,完善系统。

其实数据库是一项很有用的技术,现代社会凡是用到计算机的地方几乎都有数据库的存在,我想我们作为一个学习通讯的学生对于数据库的知识是必须掌握的,这对于我们未来是至关重要的,这是将来很多工作的基础。

课程设计作为一个实践环节,对于我们更好的掌握课本知识是很有利的,如果少了这个环节,我们仅仅是学理论,纸上谈兵,华而无实,无法体会到数据库的应用,这是很糟糕的,同时也不利于我们掌握书本上的理论知识。

因为课程设计我教学环节所必须的一部分希望今后能多增加一些这样的环节,让我们更好的应用所学的理论,同时也让我们体会到知识的强大,因为我们用自己所学的东西亲手做一些东西并实现一些功能是相当有成就感的。

设计过程中质疑(或答辩)记载:

1.存钱、取钱的动作是怎么完成的?

答:

在我的数据库系统里面,存取钱是依靠存储过程来完成的,存钱和取钱这两个动作分别有对应的存储过程,执行就可以了!

 

2.取钱的时候要是余额不够,取不出来怎么办?

答:

在数据库的cardinfo表上有一个INSTEADOF触发器,它会判断你取钱的时候你账户的余额够不够1元。

如果不够,则会提示你的cardid和balance通知用户。

 

3.数据库课程设计中遇到的问题是怎么解决的?

答:

设计过程中遇到很多问题,触发器问题是通过上网查资料解决的,其他的小问题都是通过看书和查看帮助文档解决的,当然还有请教同学!

 

指导教师评语:

 

签名:

11年12月30日

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

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1