收藏 分销(赏)

oracle课程设计.doc

上传人:丰**** 文档编号:3583789 上传时间:2024-07-10 格式:DOC 页数:30 大小:388KB 下载积分:12 金币
下载 相关 举报
oracle课程设计.doc_第1页
第1页 / 共30页
oracle课程设计.doc_第2页
第2页 / 共30页


点击查看更多>>
资源描述
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)
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 学术论文 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服