《某公司自来水收费管理系统.docx》由会员分享,可在线阅读,更多相关《某公司自来水收费管理系统.docx(5页珍藏版)》请在三一办公上搜索。
1、某公司自来水收费管理系统一、课程设计的目的和要求 培养学生运用所学课程数据库系统原理的理论知识和技能,深入理 解数据库系统原理课程相关的理论知识,学会分析实际问题的能力。 培养学生掌握用数据库系统原理的知识设计计算机应用课题的思想 和方法。 培养学生调查研究、查阅技术文献、资料、手册以及编写技术文献的能 力。 通过课程课程设计的训练,要求学生在教师的指导下,独立完成大作业 要求的相关内容,包括: 通过调查研究和运用 Internet,收集和调查有关资料、最新技术信息。 基本掌握撰写小论文的基本步骤和写作方法。 根据课题的要求基本理解和掌握 E-R 图的设计方法和关系模式的转换。 根据课题的要求
2、基本理解和掌握数据流图和数据字典的设计方法。 根据 ER 图生成数据库表。 数据库完整性、安全性保证措施 数据库实施维护计划 二、课程设计题目 要求: 每组学生从下面题目中任选一个作为课程设计,调查分析一个具 体的或模拟的实例。选好题目后发给 班长或学习委员,产生选题冲突时,由班长和学习委员协调解决; 描述该实例的业务信息和管理工作的要求; 列出实体、联系; 指出实体和联系的属性; 画出 E-R 图; 将 E-R 图转换成关系模式,并注明主码和外码; 建立数据字典; 创建数据库; 根据题目的要求写查询、存储过程、触发器等。 某自来水公司收费管理系统 实现客户信息、用水类型及业务员管理; 实现客
3、户用电信息管理; 实现客户费用管理,收费标志的默 认值为未收; 实现收费登记,并自动 修改收费标志;创建触发器, 实现收费时自动更加应收费用和实收费用, 计算本次结余, 然后修改客户信息表中的结余金额; 创建存储过程统计指定月份应收费用和实收费用; 创建存储过程查询指定月份未交费的用户信息,以便崔费; 创建规则使得月份符合格式“年月”,并邦定到表中相应 字段; 建立表间关系。 一、问题描述 自来水公司收费管理系统 实现客户信息、用水类型及业务员管理; 实现客户用电信息管理; 实现客户费用管理; 实现收费登记并自动 修改收费标志; 创建触发器, 实现收费时自动更加应收费用和实收费用, 计算本次结
4、余, 然后修改客户信息表中的结余金额; 创建存储过程统计指定月份应收费用和实收费用; 创建存储过程查询指定月份未交费的用户信息,以便崔费; 创建规则使得月份符合格式“年月”,并邦定到表中相应 字段; 建立表间关系。 二、概念模型设计 1、自来水收费管理系统我设计了4张表 I、用水类型。 II、客户用水信息; III、客户费用 IV、收费登记 2、表之间对应的E-R图 水价 类别号 类别名 用水类型 客户号 月份 用水类型号 客户用电信息 用水量 客户号 月份 客户费用 费用 收费标志 业务员 客户 月份 收费登记 应收费用 实收费用 2、所有表之间的关系图 创建 用水类型表 CREATE TA
5、BLE Leixing ( shuijia Number(5), Leibie VARCHAR(20), Leiming VARCHAR(20) ); 创建用电信息表 CREATE TABLE Ydxinxi ( Kehao Number(10), mouth Int(2), LeibieVARCHAR(20), Shuiliang VARCHAR(5), ); 创建客户费用 CREATE TABLE Khfeiyong ( Kehao Number(10), mouth Int(2), Feiyong Number(5), Biao bool ); 创建收费登记表: CREATE TABLE
6、 Dji ( Kehao Number(10), mouth Int(2), Yewu Varchar, Yshou Number, Sshou Number, ); 自动修改客户费用 create trigger auto_update after insert on Dji for each ROW begin declare kehao varchar(20), declare mou int, declare remoney int declare hekumoney int set kehao =(select Feiyong from inserted); set mou = (s
7、elect mouth from tickets where Khfeiyong=kehao); set remoney= (select Sshou from Dji where Kehao=kehao); set kehumoney = (select Feiyong from Khfeiyong where kehao=kehao); if(remonrykehumoney) begin print余额不足; else update Khfeiyong set Feiyong=Feiyong-kehumoney where Kehao=kehao; end; end; 根据用水的类型修改
8、收费标准 create trigger shoufeibiaozhun after insert on Dji for each ROW begin declare kehao varchar(20), declare mou int, declare remoney int declare hekumoney int set kehao =(select Feiyong from inserted); set mou = (select mouth from tickets where Khfeiyong=kehao); set remoney= (select Sshou from Dji
9、 where Kehao=kehao); set kehumoney = (select Feiyong from Khfeiyong where kehao=kehao); update Khfeiyong set Feiyong=Feiyong-kehumoney where Kehao=kehao; end; 创建存储过程统计指定月份应收费用和实收费用 create PROCEDURE FeiY( in mou int in true int out should int out true int ) begin select sum(Feiyong) from khfeiyong where mouth=mou; select truemoney from khfeiyong where mouth=mou; end;