《数据库课程设计—某自来水公司收费系统.docx》由会员分享,可在线阅读,更多相关《数据库课程设计—某自来水公司收费系统.docx(6页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、数据库课程设计某自来水公司收费系统 某自来水公司收费管理系统 书目: 1. 问题描述 2. 需求分析 2.1需求分析 2.2系统功能结构 2.3数据流图 3.逻辑结构设计 3.1局部ER图 3.2全局ER图 3.3数据字典 4.物理结构设计 5.代码 6.小结 1. 问题描述(某自来水公司收费管理系统) l 实现客户信息、用水类型(类别名、类别名、水价)及业务员管理; l 实现客户用电信息管理(客户号、月份、用水类别名、用水量); l 实现客户费用管理(客户号、月份、费用、收费标记),收费标记的默认值为未收; 实现收费登记(客户、月份、应收费用、实收费用、业务员),并自动修改收费标记(用触发器
2、实现); l 创建触发器,实现收费时自动更加应收费用和实收费用,计算本次结余,然后修改客户信息表中的结余金额; l 创建存储过程统计指定月份应收费用和实收费用; l 创建存储过程查询指定月份未交费的用户信息,以便崔费; l 创建规则使得月份符合格式“年月”,并邦定到表中相应字段; l 建立表间关系。 2. 需求分析 2.1需求分析 随着人们生活水平的提高,传统的人工记录已经跟不上时代的发展,信息化的世界即将覆盖人们生活的点点滴滴。针对各地供水公司的水费缴费在状况,设计了能够符合适应大多数城市的水费缴费系统,采纳了分布式管理的模式,能够实现数据管理以及日常维护任务,具有较好的平安性稳定性适应性,
3、为实现水费缴费供应技术及业务指导。此自来水公司收费管理系统,遵循了科学高效/按部就班/规划清楚的原则,能够最大程度的削减营销信息化建设所遇到的风险问题。2.2系统功能结构 2.3数据流图 3.逻辑设计结构 3.1局部E-R图 3.2全局E-R图 3.3数据字典 名字:客户 描述:自来水公司的客户,运用者 定义:客户=客户号+客户名+地址+联系方式 名字:员工 描述:负责收缴客户的水费 定义:员工=员工号+员工名+联系方式+性别 名字:用水类型 描述:不同用途的水价不同 定义:用水类型=类型号+类型名+水价 名字:客户用水信息 描述:每一位客户的详细信息 定义:客户用水信息=客户号+月份+类型号
4、+用水量 名字:客户费用管理 描述:每一个客户费用的详细信息 定义:客户费用管理=费用编号+费用+收费标记 名字:收费登记 描述:每一位用户收费的详细信息 定义:收费登记=收费编号+月份+实收费用+应收费用 4.物理结构设计 (1)图: (2)表格清单 (1)客户表 字段名 数据类型 可否为空 键引用 备注 客户号 Number(8) 否 主键 客户号 客户名 Char(20) 否 客户名 地址 varchar2(50) 否 地址 联系方式 number(11) 否 联系方式 (2)用水类型表 字段名 数据类型 可否为空 键引用 备注 类型号 number(4) 否 主键 类型号 类型名 ch
5、ar(20) 否 类型名 水价 char(10) 否 水价 (3)员工表 字段名 数据类型 可否为空 键引用 备注 员工号 Number(8) 否 主键 员工号 员工名 Char(20) 否 员工名 性别 char(10) 否 性别 联系方式 number(11) 否 联系方式 (4)客户用水信息表 字段名 数据类型 可否为空 键引用 备注 客户号 Number(8) 否 主键/外键 客户号 类型号 number(4) 否 主键/外键 类型号 月份 char(20) 否 主键 月份 用水量 char(10) 否 用水量 (5)客户费用管理 字段名 数据类型 可否为空 键引用 备注 费用编号 N
6、umber(4) 否 主键 费用编号 费用 number(4) 否 费用 收费标记 char(20) 否 收费标记 (6)收费登记 字段名 数据类型 可否为空 键引用 备注 收费编号 Number(4) 否 主键 收费编号 月份 char(20) 否 主键 月份 应收费用 Char(10) 否 外键 所属专业 实收费用 Char(10) 否 外键 所属学院 5. 代码 1.客户表 create table 客户表( 客户号 number(8) constraint p_c primary key, 客户名 char(20), 地址 varchar2(50), 联系方式 number(11);
7、插入数据: insert into 插入数据: insert into 客户表 values(20130001,张三,东北林业高校,00001); insert into 客户表 values(20130002,张三,东北林业高校,00002); insert into 客户表 values(20130003,小红,东北林业高校,00003); insert into 客户表 values(20130004,小明,东北林业高校,00004); 2.用水类型 create table 用水类型( 类型号 number(4) constraint p_w primary key, 类型名 char
8、(20), 水价 char(10); 插入数据: insert into 用水类型 values(01,学校,0.5); insert into 用水类型 values(02,个人,1.0); insert into 用水类型 values(03,商店,2.0); insert into 用水类型 values(04,食堂,1.5); 3.员工表 create table 员工表( 员工号 number(10) constraint p_s primary key, 员工名 char(20), 性别 char(10), 联系方式 number(11); 插入数据: insert into 员工
9、表 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 用水类型(类型号), 月份
10、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 in
11、sert or update or delete on 收费登记 for each row begin if inserting or updating then :new.结余费用=:new.实收费用-:new.应收费用; end if; end; 触发器2:未收标记 create trigger change1 before update on 客户费用管理 begin update 客户费用管理 set 收费标记=未收; end; 触发器3:计算结余费用 create or replace trigger JYcharge Before update on 收费登记 for each r
12、ow begin insert into JYcharge(实收费用,应收费用,JYcharge) values(:old.实收用,:old.应收费用,:old.实收费用-:old.应收费用); end; 过程函数1:统计应收费用和实收费用 CREATE OR REPLACE PROCEDURE TJ as begin execute immediate create table JYcharge(应收费用number(10),实 收费用 number(10); execute immediate insert into cony_emp values (:old.应收费用,:old.实收费用
13、); commit; end TJ; / 过程函数2.未交费 create or replace procedure WJF(Fno out number) is begin select 收费编号 into 费用编号 from 收费登记 where 收费登记.实收费用=0 and 收费编号=费用编号; end WJF; 6 小结 通过本次实习,我更加了解了利用数据库设计系统的流程,此次实习综合运用了数据库系统原理的理论学问和技能,深化理解数据库系统原理相关的理论学问,有了初步分析实际问题的实力。初步驾驭了用数据库系统原理的学问设计计算机应用课题的思想和方法。虽然我自己还不能很熟识的完成整个系统的设计,但是这使我对这门课程有了更深化的理解,在今后的学习中我会加强理论与实践的结合,争取做到可以独立完成设计!