资源描述
数据库课程设计——任务书
编号:01
题目
ATM柜员机系统
设计目标:
1.要求达成熟练掌握关系数据库基础知识和技能;
2.能够利用所学基础知识和技能,进行简单数据库应用程序设计。
课程设计相关内容:
1.设计系统功效框图、数据库设计;
2.设计管理系统后台数据库,使用T-SQL语句创建数据库中多种对象;
3.上机调试;
4.答辩;
5.书写课程设计汇报。
课题背景:
某银行拟开发一套ATM柜员机系统,实现以下功效:
1、开户
2、取钱
3、存钱
4、查询余额
5、转账
6、交易统计
现要求对“ATM柜员机系统”进行数据库设计并实现,数据库保留在C:\ATM目录下。
功效模块:
一、创建数据库
要求:数据库全部文件存放在C盘ATM文件夹下,主数据文件初始化大小为3MB,增加方法为15%,最大值为100MB,辅助数据文件初始化大小为3mb,不限定最大值,增加方法为2mb每次,日志文件初始化大小为3mb,不限定最大值,增加方法为15%。
任务:
1)使用T-SQL语句创建数据库
二、创建数据表
用户信息以下:
用户编号:自动编号(标识列),从1开始,主键
开户名: 必填
身份证号:必填,只能是18位或15位,身份证号唯一约束,首位不能为0, 假如是18位,则7-12位必需是正当出生年月,末位为0-9或X;假如是15位,则7-10位必需是正当出生年月,末位为0-9。
联络电话:必填,格式为xxxx-xxxxxxxx(区号3位或4位,号码7-8位,区号、号码之间有分隔线,共13位)或手机号(手机号必需以1开头,第二位为3、5、8,共11位)
居住地址:可选输入
银行卡信息以下:
卡号: 必填,主健,银行卡号规则和电话号码一样,通常前8位代表特殊含义,如某总行某支行等。假定该行要求其营业厅卡号格式为:1010 3576 xxxx xxxx开始,每4位号码后有空格,卡号通常是随机产生,前八位为1010 3576,后八位每位数字在0-9之间。
货币种类:必填,默认为RMB(人民币),用户存款时只能存取JPY(日元)、GBP(英镑)、HKD(港币)、USD(美元)、EUR(欧元)。
存款类型:活期/定活两便/定时,默认活期
开户日期:必填,默认为系统目前日期
开户金额:必填,不低于1元
余额: 必填,不低于1元
密码: 必填,6位数字,开户时默认为6个“8”
是否挂失:必填,是/否值,默认为”否”
用户编号:外键,必填,表示该卡对应用户编号,一位用户许可办理多张卡号
交易信息以下:
交易日期:必填,默认为系统目前日期
卡号: 必填,外健
交易类型:必填,只能是存入/支取
交易金额:必填,大于0
备注: 可选输入,其它说明
任务:
1)依据以上实体及其属性创建数据表
2)依据表中每个属性要求为数据表添加对应约束
注意:创建表时除了null、not null,identity这多个约束能够直接定义外,其它约束全部需要经过alter table transInfo add constraint 语句单独添加。
三、插入测试数据
开户信息
张三开户,身份证:345,电话:,地址:北京海淀
开户金额:1000 活期 卡号:1010 3576 1234 5678
李四开户,身份证:3212458,电话:,
开户金额: 1 定时 卡号:1010 3576 1212 1134
王五开户,身份证:3212456,电话:,
开户金额: 10000 定时 卡号:1010 3576 1212 2092
交易信息:
张三卡号(1010 3576 1234 5678)取款900元
李四卡号(1010 3576 1212 1134)存款5000元
说明:当存钱或取钱(如300元)时候,会往交易信息表(transInfo)中添加一条交易统计,
同时应更新银行卡信息表(cardInfo)中现有余额(如增加或降低500元)
任务:
1)依据以上用户信息,将三个用户开户信息写到数据表中。
2)依据以上交易信息,将张三、李四交易信息写到数据表中。
四、常规业务操作
(一)修改帐户密码
任务:
1)、创建一个存放过程,依据卡号修改账户密码
2)、实施存放过程将张三密码修改为“123456”
3)、实施存放过程将李四密码修改为“123123”
(二)挂失帐号
王五银行卡丢失,将其挂失
任务:
1)、创建一个存放过程,依据卡号挂失帐号,创建一个触发器,当卡号挂失时,自动删除该卡号交易信息。
2)、实施存放过程将王五(帐号为1010 3576 1212 2092)帐号挂失
(三)数据查询
任务:
1)、创建一个能够依据存款类型和余额范围查询对应卡号信息存放过程
2)、调用存放过程查询余额在3000~6000之间定时卡号,显示该卡相关信息
3)、查询本周开户卡号,显示该卡相关信息
4)、查询挂失帐号用户信息
5)、查询用户帐上余额少于200元帐户信息
(四)数据统计
任务:
1)、统计银行资金流通余额(总流入-总流出)和盈利(总流出*利率-总流出*利率)结算,存款代表资金流入,取款代表资金流出.假定存款利率为千分之3,贷款利率为千分之8
2)、查询交易金额总额高于1000卡号,和该卡号所属用户姓名,该用户最高交易额,交易总额。
(五)高级应用
任务:
1)、创建索引:给交易表卡号cardID字段创建非聚集索引index_cardID
2)、按指定索引查询 张三(卡号为1010 3576 1212 1134)交易统计
3)、创建3个视图:为了向用户显示信息友好,查询各表要求字段全为汉字字段名,分别为用户信息视图view_userInfo、银行卡信息视图view_cardInfo、交易信息视view_transInfo。
4)、创建取款存放过程proc_takeMoney:取款金额为100整数倍,且每次不能大于5000,另外取款后余额不能低于1元,同时假如帐户处于挂失状态则不能够取款。
5)、调用存放过程取钱,张三分别取300和6000
6)、创建存款存放过程:存款金额为100整数倍,且每次存款不能大于10000,,同时假如帐户处于挂失状态则不能够存款。
7)、调用存放过程存钱李四存500和11000
8)、创建产生随机卡号存放过程proc_randCardID (通常见目前月份数\目前秒数\目前毫秒数乘以一定系数作为随机种子),卡号前八位为:1010 3576
9)、测试产生随机卡号存放过程
10)、创建开户存放过程proc_openAccount(开户时需要产生随机卡号)
11)、调用存放过程为赵六、陈七开户
12)、创建转帐带有事务存放过程:用户到银行ATM柜员机将用户自己帐户上钱转账到其它帐户上,转账后余额不能低于1元,且每次转账不能高于5000元。
13)、测试转账存放过程,从李四帐户转帐到张三帐户。
14)、为ATMDB数据库添加2个用户C1、C2
15)、为ATMDB数据库添加1个角色R1,R1包含组员C1和C2
16)、R1能够查询数据库中全部用户定义数据表、视图
17)、C1能够实施存款、取款存放过程、但被严禁实施转账存放过程
18)、将数据库全库备份到备份设备文件BKATMDB上。
七、关键说明
1、全部数据表、其它数据库对象设计全部要按规范实施,如数据表名称、字段名称全部用英文或英文简写描述,不能够用汉字,程序中注释能够用汉字表示。
2、设计时要尽可能联络日常所学C#或JAVA知识,怎样设计数据库对象才能让软件界面上操作最简单、最通用。
其它要求:
1.数据对象创建源代码要有合适注释,使程序轻易阅读
2.写出课程设计汇报,具体要求见相关说明文档
应提交材料:
1.数据库源文件;
2.课程设计汇报;
展开阅读全文