数据库课程设计某自来水公司收费系统.docx
《数据库课程设计某自来水公司收费系统.docx》由会员分享,可在线阅读,更多相关《数据库课程设计某自来水公司收费系统.docx(6页珍藏版)》请在冰点文库上搜索。
数据库课程设计—某自来水公司收费系统
某自来水公司收费管理系统目录:
1.问题描述
2.需求分析
2.1需求分析
2.2系统功能结构
2.3数据流图
3.逻辑结构设计
3.1局部E—R图
3.2全局E—R图
3.3数据字典
4.物理结构设计
5.代码
6.小结
1.问题描述
l实现客户信息、用水类型及业务员管理;
l实现客户用电信息管理;
l实现客户费用管理,收费标志的默认值为‘未收’;
实现收费登记,并自动修改收费标志;
l创建触发器,实现收费时自动更加应收费用和实收费用,计算本次结余,然后修改客户信息表中的结余金额;
l创建存储过程统计指定月份应收费用和实收费用;
l创建存储过程查询指定月份未交费的用户信息,以便崔费;
表中相应字段;
l建立表间关系。
2.需求分析
2.1需求分析
随着人们生活水平的提高,传
统的人工记录已经跟不上时代的发展,信息化的世界即将覆盖人们生
活的点点滴滴。
针对各地供水公司的水费缴费在状况,设计了能够符
合适应大多数城市的水费缴费系统,采用了分布式管理的模式,能够
实现数据管理以及日常维护任务,具有较好的安全性稳定性适应性,为实现水费缴费提供技术及业务指导。
此自来水公司收费管理系统,遵循了科学高效/循序渐进/规划清晰的原则,能够最大程度的减少营
销信息化建设所遇到的风险问题。
2.2系统功能结构
2.3数据流图
3.逻辑设计结构
3.1
局部E-R图
3.2全局E-R图
3.3数据字典名字:
客户描述:
自来水公司的客户,使用者定义:
客户=客户号+客户名
+地址+联系方式名字:
员工描述:
负责收缴客户的水费定义:
员
工=员工号+员工名+联系方式+性别名字:
用水类型描述:
不同用途
的水价不同定义:
用水类型=类型号+类型名+水价名字:
客户用水
信息描述:
每一位客户的具体信息定义:
客户用水信息=客户号+
月份+类型号+用水量名字:
客户费用管理描述:
每一个客户费用的
具体信息定义:
客户费用管理=费用编号+费用+收费标志名字:
收
费登记描述:
每一位用户收费的具体信息定义:
收费登记=收费编
号+月份+实收费用+应收费用
4.物理结构设计图:
表格清单客户表字段名数据类型可否为空键引用备注客户号Number否主键客户号客户名Char否客户名地址varchar2否地址联系方式number否联系方式用水类型表字段名数据类型可否为空键引用备注类型号number否主键类型号类型名char否类型名水价char否水价员工表字段名数据类型可否为空键引用备注员工号Number否主键员工号员工名Char否员工名性别char否性别联系方式number否联系方式客户用水信息表字段名数据类型可否为空键引用备注客户号Number否主键/外键客户号类型号number否主键/外键类型号月份char否主键月份用水量char否用水量客户费用管理字段名数据类型可否为空键引用备注费用编号Number否主键费用编号费用number否费用收费标志char否收费标志收费登记字段名数据类型可否为空键引用备注收费编号Number否主键收费编号月份char否主键月份应收费用Char否外键所属专业实收费用Char否外键所属学院
5.代码
1.客户表createtable客户表constraintp_cprimarykey,客户名char,地址varchar2,联系方式number);
插入数据:
insertinto插入数据:
insertinto客户表values;
insertinto客户表values;
insertinto客户表values;
insertinto客户表values;
2.用水类型createtable用水类型constraintp_wprimarykey,类型名char,水价char);
插入数据:
insertinto用水类型values;
insertinto用水类型values;
insertinto用水类型values;
insertinto用水类型values;
3.员工表createtable员工表constraintp_sprimarykey,员工名char,性别char,联系方式number);
插入数据:
insertinto员工表values;
insertinto员工表values;
insertinto员工表values;
insertinto员工表values;
4.客户用水信息createtable客户用水信息constraintfk_c1references客户表,类型号numberconstraintfk_w1references用水类型,月份char,用水量char,primarykey);
5.客户费用管理createtable客户费用管理primarykey,费用number,收费标志chardefault);
6.收费登记createtable收费登记primarykey,月份char,应收费用char,实收费用char);
触发器1:
计算收费createorreplacetriggercountbeforeinsertorupdateordeleteon收费登记foreachrowbeginifinsertingorupdatingthen:
new.结余费用=:
new.实收费用-:
new.应收费用;
endif;
end;
触发器2:
未收标志createtriggerchange1beforeupdateon客户费用管理beginupdate客户费用管理set收费标志='未收';
end;
触发器3:
计算结余费用createorreplacetriggerJYchargeBeforeupdateon收费登记foreachrowbegininsertintoJYchargevalues;
end;
过程函数1:
统计应收费用和实收费用CREATEORREPLACEPROCEDURETJasbeginexecuteimmediate'createtableJYcharge,实收费用number)';
executeimmediate'insertintocony_empvalues';
commit;
endTJ;
/过程函数
2.未交费createorreplaceprocedureWJFisbeginselect收费编号into费用编号from收费登记where收费登记.实收费用=0and收费编号=费用编号;
endWJF;
6.小结通过本次实习,我更加了解了利用数据库设计系统的流程,此次实习综合运用了《数据库系统原理》的理论知识和技能,深入理解《数据库系统原理》相关的理论知识,有了初步分析实际问题的能力。
初步掌握了用《数据库系统原理》的知识设计计算机应用课题的思想和方法。
虽然我自己还不能很熟悉的完成整个系统的设计,但是这使我对这门课程有了更深入的理解,在今后的学习中我会加强理论与实践的结合,争取做到可以独立完成设计!