某公司自来水收费管理系统
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
某公司自来水收费管理系统
一、课程设计的目的和要求
(1)培养学生运用所学课程《数据库系统原理》的理论知识和技能,深入理解《数据库系统原理》课程相关的理论知识,学会分析实际问题的能力。
(2)培养学生掌握用《数据库系统原理》的知识设计计算机应用课题的思想和方法。
(3)培养学生调查研究、查阅技术文献、资料、手册以及编写技术文献的能力。
(4)通过课程课程设计的训练,要求学生在教师的指导下,独立完成大作业要求的相关内容,包括:
①通过调查研究和运用 Internet,收集和调查有关资料、最新技术信息。
②基本掌握撰写小论文的基本步骤和写作方法。
③根据课题的要求基本理解和掌握 E-R 图的
设计方法和关系模式的转换。
④根据课题的要求基本理解和掌握数据流图(DFD)和数据字典(DD)的设计方法。
⑤根据 ER 图生成数据库表。
⑥数据库完整性、安全性保证措施
一、问题描述
自来水公司收费管理系统实现客户信息、用水类型及业务员管理;
实现客户用电信息管理;
实现客户费用管理;
实现收费登记并自动修改收费标志(用触发器实现);
创建触发器,实现收费时自动更加应收费用和实收费用,计算本次结余,然后修改客户信息表中的结余金额;
创建存储过程统计指定月份应收费用和实收费用;
创建存储过程查询指定月份未交费的用户信息,以便崔费;
创建规则使得月份符合格式“××××年××月”,并邦定到表中相应字段;建立表间关系。
二、概念模型设计
1、自来水收费管理系统我设计了4张表
I、用水类型(类别号、类别名、水价)。
II、客户用水信息(客户、月份、用水类别号、用水量);
III、客户费用(客户号、月份、费用、收费标志)
IV、收费登记(客户、月份、应收费用、实收费用、业务员)
2、表之间对应的E-R图
2、所有表之间的关系图
创建用水类型表
CREATE TABLE Leixing ( shuijia Number(5),
Leibie V ARCHAR(20), Leiming V ARCHAR(20)
);
创建用电信息表
CREATE TABLE Ydxinxi ( Kehao Number(10),
mouth Int(2),
LeibieV ARCHAR(20), Shuiliang V ARCHAR(5), );
创建客户费用
CREATE TABLE Khfeiyong ( Kehao Number(10),
mouth Int(2),
Feiyong Number(5),
Biao bool(1)
);
创建收费登记表:
CREATE TABLE Dji (
Kehao Number(10),
mouth Int(2),
Yewu Varchar(10),
Yshou Number(5),
Sshou Number(5),
);
自动修改客户费用
create trigger auto_update after insert on Dji for each ROW
begin
d eclar
e @kehao varchar(20),
d eclar
e @mou int,
declare @remoney int
declare @hekumoney int
s et @kehao =(select Feiyong from inserted);
set @mou = (select mouth from tickets where Khfeiyong=@kehao);
set @remoney= (select Sshou from Dji where Kehao=@kehao);
set @kehumoney = (select Feiyong from Khfeiyong where kehao=@kehao);
i f(@remonry b egin print"余额不足"; e lse update Khfeiyong set Feiyong=Feiyong-kehumoney where Kehao=@kehao; e nd; end; 根据用水的类型修改收费标准 create trigger shoufeibiaozhun after insert on Dji for each ROW begin d eclar e @kehao varchar(20), d eclar e @mou int, declare @remoney int declare @hekumoney int s et @kehao =(select Feiyong from inserted); set @mou = (select mouth from tickets where Khfeiyong=@kehao); set @remoney= (select Sshou from Dji 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( i n mou int in true int out should int o ut true int )