
数据库应用系统设计与开发
5星
- 浏览量: 0
- 大小:None
- 文件类型:SQL
简介:
数据库应用系统设计与实验
实验类型:设计性实验
实验地点:2楼312室
实验时间:12月14日、21日,周五,上午1:00-下午7:00
实验内容:
系统概述:
某银行计划开发一款ATM存取款机系统,该系统需具备以下功能:
1) 开户业务:用户需填写开户申请单,系统将自动生成卡号。
2) 取款功能。
3) 存款操作。
4) 查询余额服务。
题目要求:
一、数据库设计与构建
1、利用SQL语言创建数据库表结构。具体表包括:
客户信息表 (userinfo):包含以下字段及说明:
* customerID (顾客编号):自动编号(标识列),从1开始,作为主键。通过序列sequence实现,其属性为nextval。
* customerName (开户名):必填字段。
* PID (身份证号):必填字段,验证身份证号码的有效性(长度约束 check约束length()函数)。身份证号码应符合18位或15位的格式。
* telephone (联系电话):必填字段,要求为符合规范的手机号码(长度约束 check约束,仅允许数字)。
银行卡信息表 `cardinfo`
字段名称 | 说明
------- | --------
`cardID` | 卡号,必填,主键。该卡号遵循银行的规定,以及电话号码的格式是否一致。通常前8位数字代表特殊含义,例如某综合某支行的标识。假设该行要求其营业厅的卡号格式为10103576**** ***开始,每4位号码后有空格。卡号通常是随机生成的。
`curType` | 货币种类,必填。默认值为RMB。
`savingTate` | 存款类型,包含活期、定期和两便存两种类型。
`openDate` | 开户日期,必填。默认值为系统当前日期。
`openMoney` | 开户金额,必填。必须不低于1元。
`balance` | 余额,必填。必须不低于1元;否则将导致账户注销。
`pass` | 密码,必填。为6位数字,开户时默认为“6”六个“6”。
`IsReportloss` | 是否挂失,必填。指示该卡是否被挂失的状态(真/假),默认值为“否”。
`customerID` | 顾客编号,外键,必填。表示与该卡相关的顾客编号;一位顾客可以办理多张卡号记录.
交易信息表 `transinfo`
字段名称 | 说明
------- | --------
`transDate` | 交易日期, 必填. 默认值为系统当前日期.
`cardID` | 卡号, 必填. 作为外键关联到银行卡信息表.
`transType` | 交易类型, 必填. 只能是存入或支取两种类型.
`transMoney`| 交易金额, 必填. 必须大于0的数值.
`remark`| 备注, 可选. 用于记录其他相关说明或信息.
2、通过SQL语言在数据库的每个表中实施相应的约束条件。具体包括主键约束、外键约束、校验约束、默认约束以及非空约束。
二、向每个表内填充至少三条测试数据,采用SQL语言进行插入。
三、模拟典型的日常业务流程:
1) 修改客户的密码;
2) 处理银行卡丢失或被盗的情况;
3) 统计银行资金的流动余额,并进行盈利结算。银行资金流动余额计算公式为:总存入金额减去总支取金额。盈利结算的计算方法是:总支取金额乘以0.008,再减去总存入金额乘以0.003。
4) 查询本周新增开户的卡号,并显示与该卡相关的详细信息。
5) 查询本月交易金额最高的卡号。
6) 查询被挂失账户的客户信息。
四、运用视图技术来优化数据查询操作:
1) 为客户提供三个视图,以便他们能够便捷地查询其个人数据。这些视图包括:客户基本信息视图(vw_userInfo)、银行卡信息视图(vw_cardInfo)和银行卡交易信息视图(vw_transInfo)。
2) 设计用户友好的界面,确保所有列的名称都采用中文描述,以方便用户理解和使用。
3) 通过调用创建的视图来获取最终的查询结果。
五、借助存储过程来实现各种业务处理逻辑:
1) 完成开户业务流程;
2) 实现取款或存款业务的处理;
3) 根据指定的卡号打印出详细的对账单;
4) 查询并统计在特定时间段内没有发生交易的账户信息。
全部评论 (0)


