资源描述
oracle课程设计
29
2020年4月19日
资料内容仅供参考,如有不当或者侵权,请联系本人改正或者删除。
湖南农业大学课程设计报告
学 院: 东方科技学院 班 级: 08级计算机一班
姓 名: 袁梦嫣 学 号: 41903120
课程论文题目: 广告业务管理系统
课程名称: Oracle数据库
评阅成绩:
成绩评定教师签名:
日期: 12月 5日
目录
1 可行性分析和需求分析 3
1.1 需求分析 3
1.1.1广告业务管理系统需要解决的问题 3
1.1.2广告业务管理系统业务流程图 3
1.1.3数据流图 4
1.1.4数据字典 5
2 系统总体设计 6
2.1广告业务管理系统总体设计的基本介绍 6
2.1.1广告业务管理系统功能模块图(HIPO图) 6
2.2数据库设计 7
2.2.1实体描述 7
2.2.3广告业务管理系统E-R图 8
2.2.4数据库实现 8
3 系统程序流程图 10
4 源代码 10
课程设计总结 16
参考文献 16
广告业务管理系统
学 生: 袁梦嫣
(东方科技学院08级计算机一班, 学号 41903120)
摘 要: 在科技发展的今天, 信息化浪潮席卷全球、 日益渗透到社会生活各个领域的今天,在中国, 广告业却还大部分停在手工作业的时代。随着行业不断发展壮大、 竞争的加剧, 客户也对广告代理商及媒体要求提供更专业的服务; 对竞争日益激烈的广告行业来说, 客户资源是公司非常宝贵的资产, 谁更了解客户, 更好地服务于客户, 谁就能占有市场的主导地位。为了给客户提供精细化和个性化的服务提高广告业效率的同时, 为了适应广告传媒体业信息化建设的需要, 本土广告公司的研究, 推出了广告业务管理系统的全套解决方案, 随着该系统在广告行业的成功应用, 必将带动该行业管理软件水平的提升, 极大地增加客户的业务竞争力。使公司在未来竞争中处于领先地位。
关键字: 信息化; 广告业务; 业务管理
1 可行性分析和需求分析
1.1 需求分析
1.1.1广告业务管理系统需要解决的问题
广告业务管理系统的用户可能是客户也可能是代理的公司, 根据角色的不同, 它的广告业务办理的费用也有所不同。对于广告客户而言, 因为需求比较明确, 因此能够考虑代理公司和一般个人用户区别。如何能更准确的获取用户的实际需求是很重要的。看用户的需求是怎样的来选择广告的类型及相关的信息。因为客户对所需的软件要求不够明确, 需要明确其目的, 进行设计, 为完成同一软件有的时候需要多名部门人员, 或是需要各部门之间进行合作才能完成一个业务。这就将无法明确各部门的折扣度, 需要明确各部门人员的权限分配。
1.1.2广告业务管理系统业务流程图
综合广告业务管理系统的实际需求, 需先建立一个角色的登录页面, 系统经过操作人员输入的角色来确定该人员是媒体还是客户或是工作人员。然后根据角色加载不同的页面及功能。
当客户输入了正确的用户名及密码后, 客户选择广告的类型并选择代理的广告公司, 然后对客户进行分配负责的部门及业务人员, 然后转向相应的界面。业务人员登录后需对客户的要求进行选择广告类型的版面价格及样式。管理员登录后要制定具体业务的具体人员的权限及完成此任务后的折扣额等信息。并对已完成的业务进行整理及归档工作。
在广告业务管理系统的业务流程图符号说明如下
系统中人员 文档 处理
数据流向 数据存储
图2-1广告业务管理系统业务流程图
1.1.3数据流图
图2-2 数据流图子图
图2-3 数据流图子图
1.1.4数据字典
数据字典是关于数据的信息的集合, 也就是对数据流图中包含的所有元素的定义的集合。
数据流图和数据字典共同构成系统的逻辑模型, 没有数据字典数据流图就不严格, 然而没有数据流图数据字典也难于发挥作用, 只有数据流图和对数据流图中每个元素的精确定义放在一起, 才能共同构成系统的规格说明。
以下为本系统数据字典。
(1) 广告类型表
数据流广告类型信息
数据流分量广告类型编号+广告类型样式
数据存储广告类型信息表
处理管理
(2) 代理公司表
数据流代理公司信息
数据流分量代理公司编号+代理公司名+代理公司地址+代理公司代理时间
数据存储代理公司信息表
处理管理
(3) 报刊表
数据流报刊信息
数据流分量报刊编号+报刊名+报社名
数据存储报刊信息表
处理管理
(4) 办理类型表
数据流办理类型信息
数据流分量办理类型编号+广告类型编号+版面编号+办理类型价格
数据存储办理类型表
处理管理
(5) 版面价格表
数据流版面价格信息
数据流分量版面编号+版面样式+版面价格+报刊编号
数据存储版面价格表
处理管理
(6) 客户类型表
数据流客户信息
数据流分量客户编号+客户类型
数据存储客户类型表
处理管理
(7) 客户人员表
数据流客户信息
数据流分量客户人员姓名+客户人员帐号+客户类型编号
数据存储客户人员表
处理管理
(8) 业务办理表
数据流业务信息
数据流分量代理公司编号+办理类型编号+业务办理单价+业务办理数量+业务办理总价
数据存储业务办理表
处理管理
(9) 具体业务办理表
数据流业务信息
数据流分量具体业务办理的编号+具体业务办理的姓名+业务办理编号+具体业务办理的折扣+具体业务办理的薪水
数据存储具体业务办理表
处理管理
(10) 业务人员表
数据流业务人员信息
数据流分量业务人员编号+业务人员职务+业务人员薪水
数据存储业务人员表
处理管理
2 系统总体设计
广告业管管理系统的总体构思是一个很重要的阶段, 在经过对系统的需求分析、 可行性分析后要进行具体的系统总体设计阶段。采集和分析系统的需求, 理解系统要解决的问题, 重点是充分考虑系统的实用性。对于广告客户而言, 因为需求比较明确, 因此能够考虑代理公司和一般个人用户区别。代理公司是指与报刊签订一段时间的特定类型广告代理合同, 该报刊广告经过代理公司这个渠道进入系统, 进行代理的广告涉及到与代理公司的协调情况; 而一般客户主要是指没有经过代理公司的企业或者个人广告客户, 其直接与报刊进行业务来往, 其业务规律有随机性特点, 因此对该类客户进行客户关系管理对报刊业务发展非常重要。特别有一点必须注意代理公司控制其具体广告客户的信息, 而报刊本身很难直接掌握这些客户的真实信息, 因此, 客户管理子系统主要是用于收集对报刊有用的客户信息, 特别是一些代理公司客户的信息。
我们采用结构化设计的方法来实现系统总体功能, 提高系统的各项指标, 即将整个系统合理的划分成各个功能模块, 正确地处理模块之间和模块内部的联系以及它们之间的调用关系和数据联系, 定义各模块的内部结构, 经过对模块的设计和模块之间关系的系统来实现整个系统的功能。
2.1广告业务管理系统总体设计的基本介绍
2.1.1广告业务管理系统功能模块图(HIPO图)
广告业务管理系统的功能模块如图3-1所示
广告业务管理系统统
媒体管理子系统
业务人员子系统
客户
客户管理子系统
业务人员种类
业务人员信息
版面样式
报刊类型
广告类型
具体办理种类
代理公司
客户类型
具体客户管理
图3-1 广告业务管理系统的功能模块
2.2数据库设计
2.2.1实体描述
在数据库设计中, 对数据字典中的数据结构、 数据流和数据存储进行分析, 参照数据流图抽取数据, 确定实体、 实体的属性及实体之间的关系, 得出系统的关系模式。采用实体-联系图, 既E-R图的方法进行数据结构分析, E-R图由实体、 属性、 联系三部分组成。
1) 关系模式的描述如下( 直线为主键)
广告类型(广告类型编号, 广告类型样式)
代理公司(代理公司编号, 代理公司名, 代理公司地址, 代理公司代理时间)
报刊(报刊编号, 报刊名, 报社名)
办理类型(办理类型编号, 广告类型编号, 版面编号, 办理类型价格)
版面价格(版面编号, 版面样式, 版面价格, 报刊编号)
客户类型(客户编号, 客户类型)
客户人员(客户人员姓名, 客户人员帐号, 客户类型编号)
业务办理(代理公司编号, 办理类型版号, 业务办理单价, 业务办理数量, 业务办理总价)
具体业务办理(具体业务办理的编号, 具体业务办理的姓名, 业务办理编号, 具体业务办理的折扣, 具体业务办理的薪水)
业务人员(业务人员编号, 业务人员职务, 业务人员薪水)
2.2.3广告业务管理系统E-R图
2.2.4数据库实现
由于数据库中所保存的数据是系统中非常重要的资源, 因此在数据库设计时一定要注意数据结构的安全性、 完整性, 并发控制与恢复, 而一般的数据库管理系统都提供了一定的数据保护功能。本系统中的数据库采用Oracle 10g数据库实现, 数共包括10个表, 其中几个主要的数据表结构的描述如下
表名ADLX: 数据来源广告类型
表3-1 ADLX
字段名
数据项名称
数据类型
长度
备注
ADLX_ID
广告编号
Varchar2
10
主键
ADLX_YS
广告样式
Varchar2
10
表名AGENCY: 数据来源代理公司
表3-2AGENCY
字段名
数据项名称
数据类型
长度
备注
AGENCY_ID
公司编号
Varchar2
10
主键
AGENCY_NAME
公司姓名
Varchar2
20
AGENCY_DD
公司地址
Varchar2
10
AGENCY_SJ
代理时间
DATE
8
表名BG: 数据来源报刊信息
表3-3 BG
字段名
数据项名称
数据类型
长度
备注
BG_ID
报刊编号
Varchar2
10
主键
BG_NAME
报刊名
Varchar2
20
BS_NAME
报社名
Varchar2
20
表名BLLX: 数据来源办理类型
表3-4 BLLX
字段名
数据项名称
数据类型
长度
备注
BLLX_ID
办理编号
Varchar2
10
主键
ADLX_ID
广告编号
Varchar2
10
外键
BM_ID
版面编号
Varchar2
10
外键
BLLX_JG
办理价格
NUMBER
8
表名BMJG: 数据来源版面价格
表3-5 BMJG
字段名
数据项名称
数据类型
长度
备注
BM_ID
版面编号
Varchar2
10
主键
BM_YS
版面样式
Varchar2
10
BM_JG
版面价格
NUMBER
8
BG_ID
报刊编号
Varchar2
10
外键
表名KHLX: 数据来源客户类型
表3-6 KHLX
字段名
数据项名称
数据类型
长度
备注
K_ID
客户编号
Varchar2
10
主键
K_LX
客户类型
Varchar2
10
表名KHRY: 数据来源客户人员
表3-7KHRY
字段名
数据项名称
数据类型
长度
备注
KR_ID
人员姓名
Varchar2
10
主键
KR_NAME
人员帐号
Varchar2
10
KR_ACOUNT
客户帐号
NUMBER
8
K_ID
客户类型编号
Varchar2
10
外键
表名YWBL: 数据来源业务办理
表3-8YWBL
字段名
数据项名称
数据类型
长度
备注
AGENCY_ID
公司编号
Varchar2
10
主键
BLLX_ID
办理类型编号
Varchar2
10
YWBL_DJ
办理单价
NUMBER
8
YWBL_SL
办理数量
NUMBER
8
YWBL_ZJ
办理总价
NUMBER
8
表名YWDETAIL: 数据来源具体业务办理
表3-9YWDETAIL
字段名
数据项名称
数据类型
长度
备注
DE_ID
办理编号
Varchar2
10
主键
DE_NAME
办理姓名
Varchar2
10
YWRY_ID
办理编号
Varchar2
10
外键
DE_ZK
办理折扣
NUMBER
8
DE_SAL
办理薪水
NUMBER
8
表名YWRYL: 数据来源业务人员
表3-10YWRY
字段名
数据项名称
数据类型
长度
备注
YERY_ID
人员编号
Varchar2
10
主键
YWRY_JOB
人员职务
Varchar2
10
YWRY_SAL
人员薪水
NUMBER
20
3 系统程序流程图
系统流程图是详细说明各角色的走向趋势, 广告业务管理系统程序流程图如下图所示
开 始
管理员身份验证
N
Y
修改广告类型
浏览客户信息
添加客户信息
删除客户信息
修改客户信息
客户验证
N
Y
广告类型
版面价格
代理公司
客户类型
业务办理
部门人员验证
N
Y
广告类型
版面信息
业务办理
结 束
图4-1 广告业务管理系统程序流程图
4 源代码
--创立数据用表空间
CREATE TABLESPACE DATASPACE DATAFILE 'D:\oracle\product\10.2.0\oradata\orcl\Data01.DBF' SIZE 200M;
CREATE TABLESPACE TOOLSPACE DATAFILE 'D:\oracle\product\10.2.0\oradata\orcl\TOOLS01.DBF' SIZE 50M;
--创立索引用表空间
CREATE TABLESPACE INDEXSPACE DATAFILE 'D:\oracle\product\10.2.0\oradata\orcl\INDEX01.DBF' SIZE 100M;
--设置默认表空间
ALTER USER SYSTEM DEFAULT TABLESPACE DATASPACE TEMPORARY TABLESPACE TEMP;
ALTER USER SYS DEFAULT TABLESPACE DATASPACE TEMPORARY TABLESPACE TEMP;
/****** 对象: 存储过程 sp_ChangeEmployeeDept ******/
CREATE OR REPLACE PROCEDURE sp_ChangeEmployeeDept
(
vempID NUMBER,
vdeptName VARCHAR2
)
AS
vdeptID NUMBER := 0;
BEGIN
select DeptID INTO vdeptID
from Department
where DeptName = vdeptName;
update Employee
set EDeptID = vdeptID
where EmployeeID = vempId;
EXCEPTION
WHEN PROGRAM_ERROR THEN
NULL;
WHEN OTHERS THEN
NULL;
END sp_ChangeEmployeeDept;
/
/****** 对象: 存储过程 sp_CreateDepartment ******/
CREATE OR REPLACE PROCEDURE sp_CreateDepartment
(
vdeptName VARCHAR2,
vdescription VARCHAR2,
vmanagerID NUMBER
)
AS
BEGIN
insert INTO Department
values (Department_sequence.NEXTVAL, vdeptName, vdescription, vmanagerID);
EXCEPTION
WHEN PROGRAM_ERROR THEN
NULL;
WHEN OTHERS THEN
NULL;
END sp_CreateDepartment;
/***************** 对象: 包 pkg_procedure, 在包中创立能返回多行结果集的存储过程 *************************************/
CREATE OR REPLACE PACKAGE pkg_procedure
AS
TYPE cursor_type IS REF CURSOR;
PROCEDURE sp_GetDeptAttendSummary
(
vdeptID NUMBER,
vstartTime DATE,
vendTime DATE,
cursor_value OUT cursor_type
);
PROCEDURE sp_GetDeptLvSummary
(
vdeptID NUMBER,
vstartTime DATE,
vendTime DATE,
cursor_value OUT cursor_type
);
PROCEDURE sp_GetDeptOTSummary
(
vdeptID NUMBER,
vtype NUMBER,
vstartTime DATE,
vendTime DATE,
cursor_value OUT cursor_type
);
PROCEDURE sp_GetDeptPerformSummary
(
vdeptID NUMBER,
vperformYear NUMBER,
cursor_value OUT cursor_type
);
PROCEDURE sp_BasicSalaryByEmpID
(
vempID NUMBER,
cursor_value OUT cursor_type
);
PROCEDURE sp_DeptAllEmployee
(
vdeptName VARCHAR2,
cursor_value OUT cursor_type
);
PROCEDURE sp_DeptLeave
(
vdeptID NUMBER,
cursor_value OUT cursor_type
);
PROCEDURE sp_EmpLeave
(
vempID NUMBER,
cursor_value OUT cursor_type
);
PROCEDURE sp_Login
(
vloginName VARCHAR2,
vpassword VARCHAR2,
cursor_value OUT cursor_type
);
PROCEDURE sp_QueryEventbyTime
(
vstartTime DATE,
vendTime DATE,
cursor_value OUT cursor_type
);
PROCEDURE sp_SalaryHistoryByEmpID
(
vempID NUMBER,
cursor_value OUT cursor_type
);
PROCEDURE sp_GetAllDepartment
(
cursor_value OUT cursor_type
);
PROCEDURE sp_GetEmpbyDeptName
(
vdeptName VARCHAR2,
cursor_value OUT cursor_type
);
PROCEDURE sp_OTbyGroup
(
vdeptID NUMBER,
cursor_value OUT cursor_type
);
PROCEDURE sp_GetDeptSalarySummary
(
vdeptID NUMBER,
vstartTime DATE,
vendTime DATE,
cursor_value OUT cursor_type
);
PROCEDURE sp_GetSubmittedPerform
(
vdeptID NUMBER,
vperformYear NUMBER,
vperformSeason NUMBER,
cursor_value OUT cursor_type
);
PROCEDURE sp_AttendanceQuery
(
vstartdate DATE,
venddate DATE,
cursor_value OUT cursor_type
);
END pkg_procedure;/
update Employee_TEMP
set LateCount= (
select count(t2.AttendID)
from Attendance t2
where Employee_TEMP.EmployeeID=t2.EmployeeID and t2.DateTime >= vstartTime and t2.DateTime <=vendTime and t2.type='迟到'
);
update Employee_TEMP
set EarlyCount= (
select count(t2.AttendID)
from Attendance t2
where Employee_TEMP.EmployeeID=t2.EmployeeID and t2.DateTime >= vstartTime and t2.DateTime <=vendTime and t2.type='早退'
);
update Employee_TEMP
set AbsenceCount= (
select count(t2.AttendID)
from Attendance t2
where Employee_TEMP.EmployeeID=t2.EmployeeID and t2.DateTime >= vstartTime and t2.DateTime <=vendTime and t2.type='缺勤'
);
OPEN cursor_value FOR 'SELECT * FROM Employee_TEMP';
END sp_GetDeptAttendSummary;
/****** 对象: 存储过程 sp_GetDeptLvSummary ******/
PROCEDURE sp_GetDeptLvSummary
(
vdeptID NUMBER,
vstartTime DATE,
vendTime DATE,
cursor_value OUT cursor_type
)
AS
sqlString VARCHAR2(1000);
BEGIN
sqlString := 'select EDeptID,t1.EmployeeID,EmployeeName,count(t2.LeaveID) as LeaveCount, sum(t2.Hours) as TotalHours,avg(EVacationRemain) as LeftHours
from Employee t1 left outer join Leave t2 on t1.EmployeeID = t2.EmployeeID and t2.SubmitTime >= vstartTime and t2.SubmitTime <= vendTime and t2.Status = 已批准
where EDeptID = ' || vdeptID || ' group by t1.EDeptID, t1.EmployeeID, t1.EmployeeName';
OPEN cursor_value FOR sqlString;
END sp_GetDeptLvSummary;
/****** 对象: 存储过程 sp_GetSubmittedPerform ******/
PROCEDURE sp_GetSubmittedPerform
(
vdeptID NUMBER,
vperformYear NUMBER,
vperformSeason NUMBER,
cursor_value OUT cursor_type
)
AS
sqlString VARCHAR2(1000);
BEGIN
sqlString := 'select t1.PerformID,t1.EmployeeID, t2.EmployeeName, t1.SubmitTime,t1.PerformYear,t1.PerformSeason,t3.Name as Status
from Performance t1 join Employee t2 on t1.EmployeeID = t2.EmployeeID join PerformStatus t3 on t1.Status = t3.Type
where t2.DeptID ' || vdeptID || ' and t1.PerformYear = ' || vperformYear
|| ' and t1.PerformSeason = ' || vperformSeason;
OPEN cursor_value FOR sqlString;
EXCEPTION
WHEN PROGRAM_ERROR THEN
cursor_value := NULL;
WHEN OTHERS THEN
cursor_value := NULL;
END sp_GetSubmittedPerform;
OPEN cursor_value FOR sqlString;
EXCEPTION
WHEN PROGRAM_ERROR THEN
cursor_value := NULL;
WHEN OTHERS THEN
cursor_value := NULL;
END sp_AttendanceQuery;
END pkg_procedure;/
END tRejectRequest;
课程设计总结
广告业务管理系统的发展方兴未艾, 当前正处于传统手工、 半手工管理向数字化过渡的阶段, 转变过程中需要应用和集成最新的信息技术, 以达到对网络信息资源最有效的利用和共享。传统的手工方法难以保证效率和质量, 应用于广告业务管理系统, 能够加速业务进程, 提高工作效率及 质量, 相信广告业务管理系统在实际应用中将会取得良好的效果。
参考文献
[1] 仇勇. ORACLE:出局棋子[J]. 中国新时代 , ,(54)
[2] 鱼明. 浅析Delphi数据录入与维护的三种方式[J]. 太原教育学院学报 , ,(32)
[3] 李斌. 欧洲论坛和Oracle的研制成果[J]. 管理科学文摘 , 1997,(14)
[4] 包伟芳. 让Access数据库文件更小[J]. 电脑迷 , ,(07)
[5] 金永涛. 窗口式数据库文件检索工具[J]. 电脑编程技巧与维护 , 1995,(15)
[6] 朱江宁. 基于ArcGIS的城市基础地理信息系统的应用研究[J]. 荆门职业技术学院学报 , ,(12)
[7] 罗春华, 唐诗华, 谭庆林, 李景文. LBS空间数据内容与管理方法[J]. 中国水运(学术版) , ,(11)
[8] 朱秀丽, 苗作华. 基于ArcGIS的基础地理空间数据库系统设计[J]. 山西建筑 , ,(06)
[9] 吴孟泉, 牛振国, 崔伟宏, 黄勇奇. ”数字烟草”中空间数据的集成与管理方法[J]. 遥感信息 , ,(04)
展开阅读全文