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