数据库课程设计—某自来水公司收费系统

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

某自来水公司收费管理系统
目录:
问题描述
需求分析
需求分析
系统功能结构
数据流图
3.逻辑结构设计
局部E—R图
全局E—R图
数据字典
4.物理结构设计
5.代码
6.小结
问题描述(某自来水公司收费管理系统)
实现客户信息、用水类型(类别号、类别名、水价)及业务员管理;实现客户用电信息管理(客户号、月份、用水类别号、用水量);
实现客户费用管理(客户号、月份、费用、收费标志),收费标志的默认值为‘未收’;
实现收费登记(客户、月份、应收费用、实收费用、业务员),并自动修改收费标志(用触发器实现);
创建触发器,实现收费时自动更加应收费用和实收费用,计算本次结余,然后修改客户信息表中的结余金额;
创建存储过程统计指定月份应收费用和实收费用;
创建存储过程查询指定月份未交费的用户信息,以便崔费;
创建规则使得月份符合格式“××××年××月”,并邦定到表中相应字段;
建立表间关系。

需求分析
需求分析
随着人们生活水平的提高,传统的人工记录已经跟不上时代的发展,信息化的世界即将覆盖人们生活的点点滴滴。

针对各地供水公司的水费缴费在状况,设计了能够符合适应大多数城市的水费缴费系统,采用了分布式管理的模式,能够实现数据管理以及日常维护任务,具有较好的安全性稳定性适应性,为实现水费缴费提供技术及业务指导。

此自来水公司收费管理系统,遵循了科学高效/循序渐进/规划清
晰的原则,能够最大程度的减少营销信息化建设所遇到的风险问题。

系统功能结构
数据流图
3.逻辑设计结构局部E-R图
全局E-R图
数据字典
4.物理结构设计(1)图:
客户
客户号客户名地址
联系方式...numeric(8)
char(20)
varchar(50) numeric(11)
<pk>
用水类型
类型号类型名水价numeric(4)
char(20)
numeric(4)
<pk>
员工
员工号
姓名
性别
联系方式
...
numeric(4)
char(20)
char(10)
numeric(11)
<pk>
客户用水信息
月份
水价
收费标志
客户号
收费编号
...
char(20)
numeric(4)
char(20)
numeric(8)
numeric(8)
<pk>
<pk>
<fk>
收费登记
实收费用
应收费用
收费编号
员工号
...
char(20)
char(20)
<Undefined>
numeric(4)
<pk>
<fk>
客户费用管理
费用
收费标志
收费编号
月份
客户号
...
numeric(4)
char(20)
numeric(8)
char(20)
numeric(8)
<pk>
<fk>
<fk>选择
客户号类型号numeric(8)
numeric(4)
<pk,fk1>
<pk,fk2>
缴费
收费编号
客户号
<Undefined>
numeric(8)
<pk,fk1>
<pk,fk2>
使用
类型号
月份
客户号
numeric(4)
char(20)
numeric(8)
<pk,fk1>
<pk,fk2>
<pk,fk2>
(2)表格清单
(1)客户表
字段名数据类型可否为空键引用备注
客户号Number(8)否主键客户号客户名Char(20)否客户名地址varchar2(50)否地址
联系方式number(11)否联系方式(2)用水类型表
字段名数据类型可否为空键引用备注类型号number(4)否主键类型号类型名char(20)否类型名水价char(10)否水价
(3)员工表
字段名数据类型可否为空键引用备注
员工号Number(8)否主键员工号员工名Char(20)否员工名性别char(10)否性别
联系方式number(11)否联系方式
(4)客户用水信息表
字段名数据类型可否为空键引用备注
客户号Number(8)否主键/外键客户号
类型号number(4)否主键/外键类型号
月份char(20)否主键月份
用水量char(10)否用水量
(5)客户费用管理
字段名数据类型可否为空键引用备注
费用编号Number(4)否主键费用编号费用number(4)否费用
收费标志char(20)否收费标志
(6)收费登记
字段名数据类型可否为空键引用备注
收费编号Number(4)否主键收费编号月份char(20)否主键月份
应收费用Char(10)否外键所属专业实收费用Char(10)否外键所属学院代码
1.客户表
create table 客户表(
客户号number(8) constraint p_c primary key,
客户名char(20),
地址varchar2(50),
联系方式number(11));
插入数据:
insert into 插入数据:
insert into 客户表
values(,'张三','东北林业大学',00001);
insert into 客户表
values(,'张三','东北林业大学',00002);
insert into 客户表
values(,'小红','东北林业大学',00003);
insert into 客户表
values(,'小明','东北林业大学',00004);
2.用水类型
create table 用水类型(
类型号number(4) constraint p_w primary key,类型名char(20),
水价char(10));
插入数据:
insert into 用水类型values(01,'学校',''); insert into 用水类型values(02,'个人',''); insert into 用水类型values(03,'商店',''); insert into 用水类型values(04,'食堂','');
3.员工表
create table 员工表(
员工号number(10) constraint p_s primary key,
员工名char(20),
性别char(10),
联系方式number(11));
插入数据:
insert into 员工表values(0001,'小白','男',04510001);
insert into 员工表values(0002,'小白','女',04510002);
insert into 员工表values(0003,'小兰','女',04510003);
insert into 员工表values(0004,'小黑','男',04510004);
4.客户用水信息
create table 客户用水信息(
客户号number(8) constraint fk_c1 references 客户表(客户号),
类型号number(4) constraint fk_w1 references 用水类型(类型号),
月份char(20),
用水量char(10),
primary key(客户号,类型号,月份));
5.客户费用管理
create table 客户费用管理(
费用编号number(4) primary key,
费用number(4),
收费标志char(20) default('未收')
);
6.收费登记
create table 收费登记(
收费编号number(4) primary key,
月份char(20),
应收费用char(10),
实收费用char(10)
);
触发器1:计算收费
create or replace trigger
count
before
insert or update or delete
on 收费登记for each row
begin
if inserting or updating
then :new.结余费用=:new.实收费用-:new.应收费用;
end;
触发器2:未收标志
create trigger change1
before
update on 客户费用管理
begin
update 客户费用管理set 收费标志='未收';
end;
触发器3:计算结余费用
create or replace trigger JYcharge
Before
update on 收费登记for each row
begin
insert into JYcharge(实收费用,应收费用,JYcharge)
values(:old.实收用,:old.应收费用,:old.实收费用-:old.应收费用); end;
过程函数1:统计应收费用和实收费用
CREATE OR REPLACE PROCEDURE TJ
as
execute immediate 'create table JYcharge(应收费用number(10),实
收费用number(10))';
execute immediate 'insert into cony_emp
values (:old.应收费用,:old.实收费用)';
commit;
end TJ;
/
过程函数2.未交费
create or replace procedure WJF(Fno out number)
is
begin
select 收费编号into 费用编号from 收费登记
where 收费登记.实收费用=0 and 收费编号=费用编号;
end WJF;
小结
通过本次实习,我更加了解了利用数据库设计系统的流程,此次实习综合运用了《数据库系统原理》的理论知识和技能,深入理解《数据库系统原理》相关的理论知识,有了初步分析实际问题的能力。

初步掌握了用《数据库系统原理》的知识设计计算机应
用课题的思想和方法。

虽然我自己还不能很熟悉的完成整个系统的设计,但是这使我对这门课程有了更深入的理解,在今后的学习中我会加强理论与实践的结合,争取做到可以独立完成设计!。

相关文档
最新文档