收藏 分销(赏)

Oracle仓库管理系统课程设计报告数据库部分含Oracle代码.doc

上传人:a199****6536 文档编号:9241438 上传时间:2025-03-18 格式:DOC 页数:19 大小:274.50KB
下载 相关 举报
Oracle仓库管理系统课程设计报告数据库部分含Oracle代码.doc_第1页
第1页 / 共19页
Oracle仓库管理系统课程设计报告数据库部分含Oracle代码.doc_第2页
第2页 / 共19页
点击查看更多>>
资源描述
Oracle仓库管理系统课程设计报告数据库部分含Oracle代码 19 2020年4月19日 文档仅供参考 宁 波 工 程 学 院 电 信 学 院 实验报告 实验名称 Oracle仓库管理系统设计 专业、班级 计科111班 姓名 XXX 学号 XXXXXXXX 日期 .5.27 指导教师 XXX老师 一、 系统描述 仓库管理系统的功能: 1)、进仓管理:在货物送到仓库时,对货物信息进行了解并将相关信息输入到数据库 中,同时更新数据库。 2)、出仓管理:在货物运出仓库时,进行货物信息统计并将数据保存到数据库中,同 时更新数据库。 3)仓库货物信息提醒:当货物少于某一规定的值时,或者货物保质期将至时将发出 提醒。 4)、仓库数据管理:当仓库中的货物少于要出仓的货物时不允许出仓;当仓库货物为 满时,不允许其它货物进仓。 5)、查询修改:管理员能够进行一系列查询:查询货物类别及货物的信息、数量和货 物流动的规则(对货物出仓进仓的要求);并能够对以上查询进行修 改;能够查询某一天货物流动的信息,以及出仓及入仓的详细信息。 二、 系统需求分析 利用用例图、类图、E-R图对系统进行需求分析。 仓库管理系统能够实现对仓库货物信息、出仓货物管理、进仓货物管理、货物数量管理以及货物出入仓限制规则,以下为其用例图、类图及E-R图。 仓库管理系统用例图 类图 表1:产品信息表PRO 字段名 数据类型 长度 约束 说明 PROID NUMBER 11 主码 产品编号 PRONAME VARCHAR2 20 NOT NULL 产品名称 PRODRESS VARCHAR2 50 产品地址 DREPHONE NUMBER 20 产品地址号码 BDATE NUMBER 5 NOT NULL 保质天数 DEMO VARCHAR2 100 说明 表2:产品信息管理PRO_MAN 字段名 数据类型 长度 约束 说明 PROID NUMBER 11 主码,外码 产品编号 BIRDATE DATE 主码 产品生产日期 ZNUM NUMBER 20 NOT NULL 产品数量 DEMO VARCHAR2 100 说明 表3:产品出库管理C_PRO 字段名 数据类型 长度 约束 说明 PROID NUMBER 11 主码,外码 产品编号 CDATE DATE 主码 出库日期 BIRDATE DATE NOT NULL 生产日期 CNUM NUMBER 10 NOT NULL 出库数量 DEMO VARCHAR2 100 说明 表4:产品入库日期R_PRO 字段名 数据类型 长度 约束 说明 PROID NUMBER 11 主码,外码 产品编号 RDATE DATE 主码 入库日期 BIRDATE DATE NOT NULL 生产日期 RNUM NUMBER 10 NOT NULL 入库数量 DEMO VARCHAR2 100 说明 表5:产品仓库限制规则 字段名 数据类型 长度 约束 说明 PROID NUMBER 11 主码,外码 产品编号 BIRDATE DATE 主码 生产日期 ZNUM NUMBER 20 NOT NULL 产品数量 DEMO VARCHAR2 100 说明 表6:管理员表ADMIN 字段名 数据类型 长度 约束 说明 ID NUMBER 11 主码 管理员编号 USERNAME VARCHAR2 10 NOT NULL 管理员账号 PASSORD VARCHAR2 11 NOT NULL 账号密码 E-R图 三、 数据库对象设计 1、 表设计 经过对仓库管理系统的业务分析及查询资料了解,设计该系统的6个关系表,详情见上边类图部分。 2、序列设计 为了方便仓库产品管理,在数据库中用以下序列产生相应编号 C_R_VIEW:产生产品编号,起始值100。 3、视图设计 为了方便仓库管理员查询出入库情况、每个生产日期的库存信息及产品的总数量,创立下列视图。 (1)创立名为“C_R_PRO_VIEW”的视图,用于查看产品的出入库汇总情况,包 括出库的产品编号,入库的产品编号,产品名称,入库日期,出库日期,出库产品 的生产日期,入库产品的生产日期,出库数量,入库数量。 (2)创立名为“SNUM”的视图,用于查询一种产品的总库存量,包括产品编号, 产品总数量。 (3)创立名为“ZNUM_PRO_VIEW”的视图,用于查询产品的库存信息,包括不同 生产日期的库存量。 4、PL/SQL功能模块设计 利用PL/SQL程序创立下列各种数据库对象。 (1)创立一个当仓库产品少于最少数量或者大于最大数量时显示出产品数量、生产 日期及保质期的函数。 (2)创立一个计算距保质期时间的存储过程。 (3)创立一个计算出库后数量的函数。 (4)创立一个计算入库后数量的函数。 四、 数据库对象创立 描述数据库对象中表的创立、序列的创立、视图的创立、存储过程的创立,触发器的创立等内容,实现系统的基本功能。 1、 表的创立 (1) 产品信息PRO: CREATE TABLE "USERS"."PRO" ( "PROID" NUMBER(11) NOT NULL , "PRONAME" VARCHAR2(20) NOT NULL , "PRODRESS" VARCHAR2(50), "DREPHONE" NUMBER(20), "BDATE" NUMBER(5) NOT NULL , "DEMO" VARCHAR2(100), PRIMARY KEY ("PROID") VALIDATE ) TABLESPACE "USERS" (2)仓库产品管理PRO_MAN CREATE TABLE "USERS"."PRO_MAN" ( "PROID" NUMBER(11) NOT NULL , "BIRDATE" DATE NOT NULL , "ZNUM" NUMBER(20) NOT NULL , "DEMO" VARCHAR2(100), PRIMARY KEY ("PROID", "BIRDATE") VALIDATE , FOREIGN KEY ("PROID") REFERENCES "SYS"."PRO" ("PROID") VALIDATE ) TABLESPACE "USERS" (3)创立入库管理表R_PRO CREATE TABLE "USERS"."R_PRO" ( "PROID" NUMBER(11) NOT NULL , "RDATE" DATE NOT NULL , "BIRDATE" DATE NOT NULL , "RNUM" NUMBER(10) NOT NULL , "DEMO" VARCHAR2(100), PRIMARY KEY ("PROID", "RDATE") VALIDATE , FOREIGN KEY ("PROID") REFERENCES "SYS"."PRO" ("PROID") VALIDATE ) TABLESPACE "USERS" (4)出库产品管理C_PRO CREATE TABLE "USERS"."C_PRO" ( "PROID" NUMBER(11) NOT NULL , "CDATE" DATE NOT NULL , "BIRDATE" DATE NOT NULL , "CNUM" NUMBER(10) NOT NULL , "DEMO" VARCHAR2(100), PRIMARY KEY ("PROID", "CDATE") VALIDATE , FOREIGN KEY ("PROID") REFERENCES "SYS"."PRO" ("PROID") VALIDATE ) TABLESPACE "USERS" (5)管理规则PRO_LIM CREATE TABLE "USERS"."PRO_LIM" ( "PROID" NUMBER(11) NOT NULL , "MINUM"NUMBER(10) NOT NULL , "MAXUM" NUMBER(10) NOT NULL , "LBIRDATE" NUMBER(5) NOT NULL , "DEMO" VARCHAR2(100), PRIMARY KEY ("PROID") VALIDATE , FOREIGN KEY ("PROID") REFERENCES "SYS"."PRO" ("PROID") VALIDATE ) TABLESPACE"USERS" (6)管理员表ADMIN CREATE TABLE "USERS"."ADMIN" ( "ID" NUMBER(11) NOT NULL , "USERNAME" VARCHAR2(10) NOT NULL , "PASSWORD" VARCHAR2(11) NOT NULL , PRIMARY KEY ("ID") VALIDATE ) TABLESPACE "USERS" 2、 序列的创立 CREATE SEQUENCE C_R_VIEW NOCYCLE NOORDER NOCACHE NOMAXVALUE MINVALUE 100 INCREMENT BY 1 START WITH 100 3、视图的创立 (1)产品的出入库情况C_R_PRO_VIEW CREATE OR REPLACE VIEW C_R_PRO_VIEW AS SELECT CPROID,RPROID,PRONAME,RDATE,CDATE,CBIRDATE,RBIRDATE,CNUM,RNUM FROM PRO, (SELECT C_PRO.PROID AS CPROID,R_PRO.PROID AS RPROID,RDATE,CDATE,C_PRO.BIRDATE AS CBIRDATE,R_PRO.BIRDATE AS RBIRDATE,CNUM,RNUM FROM C_PRO FULL JOIN R_PRO ON C_PRO.PROID=R_PRO.PROID and CDATE=RDATE ORDER BY RPROID) R_C WHERE PRO.PROID=CPROID AND PRO.PROID=RPROID (2)产品总数量:SNUM CREATE OR REPLACE VIEW SNUM AS SELECT PRO.PROID,SUM(ZNUM) SNUM FROM PRO,PRO_MAN WHERE PRO.PROID=PRO_MAN.PROID GROUP BY PRO.PROID (3)产品的库存信息:ZNUM_PRO_VIEW CREATE OR REPLACE VIEW ZNUM_PRO_VIEW AS SELECT PRO_MAN.PROID,PRONAME,BIRDATE,BDATE,ZNUM FROM PRO,PRO_MAN WHER PRO.PROID=PRO_MAN.PROID 4、 PL/SQL程序设计 (1)仓库产品少于最少数量或者大于最大数量时显示出产品数量、生产日期及保质期来: CREATE OR REPLACE FUNCTION MIN_MAX_NUM_SHOW ( V_PROID NUMBER,V_BIRDATE OUT DATE,V_BDATE OUT NUMBER) RETURN NUMBER AS V_SNUM NUMBER;V_MINUM NUMBER;V_MAXUM NUMBER; BEGIN SELECT SUM(ZNUM) INTO V_SNUM FROM PRO_MAN WHERE PROID=V_PROID; SELECT MINUM,MAXUM INTO V_MINUM,V_MAXUM FROM PRO_LIM WHERE PROID=V_PROID; SELECT BIRDATE INTO V_BIRDATE FROM PRO_MAN WHERE PROID=V_PROID; SELECT BDATE INTO V_BDATE FROM PRO WHERE PROID=V_PROID; IF V_SNUM-V_MINUM<=0 OR V_SNUM-V_MAXUM>=0 THEN RETURN V_SNUM; END IF; END; (2)计算距保质期时间: CREATE OR REPLACE PROCEDURE PRO_B( V_PROID NUMBER) AS V_DAYS NUMBER; V_LBIRDATE NUMBER; CURSOR C_BIRDATE IS SELECT BIRDATE FROM PRO_MAN WHERE PROID=V_PROID; BEGIN    SELECT LBIRDATE INTO V_LBIRDATE FROM PRO_LIM WHERE PROID=V_PROID; FOR V_BIRDATE IN C_BIRDATE LOOP IF V_DAYS:=(SYSDATE-V_BIRDATE)>=V_LBIRDATE THEN DBMS_OUTPUT.PUTLINE(V_DAYS); END IF; END LOOP; END; (3)计算出库后数量: CREATE OR REPLACE FUNCTION A_C_NUM( V_PROID NUMBER,V_BIRDATE OUT DATE) RETURN NUMBER AS V_CZNUM NUMBER; BEGIN SELECT BIRDATE INTO V_BIRDATE FROM C_PRO WHERE PROID=V_PROID; SELECT ZNUM-CNUM INTO V_CZNUM FROM ( SELECT PRO_MAN.PROID, PRO_MAN.BIRDATE CBIRDATE,CNUM,ZNUM FROM C_PRO,PRO_MAN WHERE PRO_MAN.PROID=C_PRO.PROID AND PRO_MAN.BIRDATE=C_PRO.BIRDATE) A_C WHERE PROID=V_PROID AND A_C.CBIRDATE=V_BIRDATE; RETURN V_CZNUM; END; (4)计算入库后数量: CREATE OR REPLACE FUNCTION A_R_NUM( V_PROID NUMBER,V_BIRDATE OUT DATE) RETURN NUMBER AS V_RZNUM NUMBER; BEGIN SELECT BIRDATE INTO V_BIRDATE FROM R_PRO WHERE PROID=V_PROID; SELECT ZNUM+RNUM INTO V_RZNUM FROM ( SELECT PRO_MAN.PROID, PRO_MAN.BIRDATE RBIRDATE,RNUM,ZNUM FROM R_PRO,PRO_MAN WHERE PRO_MAN.PROID=R_PRO.PROID AND PRO_MAN.BIRDATE=R_PRO.BIRDATE) A_R WHERE PROID=V_PROID AND A_R.RBIRDATE=V_BIRDATE; RETURN V_RZNUM; END; 五、 总结 在这次的数据库实践中,我学到了很多,也收获了很多经验。刚刚开始时由于认识不足以及搜素资料不完善,将此数据库系统设计不完善,使系统无法实现。在老师的教导下,我又重新将仓库管理系统进行分析,并找同学讨论,不断完善,经过一番努力后,将此系统完成,虽然不是很复杂,功能也不是很多,可是这注入了我全部的思想。 由此次试验,我学会了做事情要循序渐进,不可能一次性就能将事情做到十全十美,在做的过程中不断思考,将事情渐渐完善。 此次的实践还让我的数据库知识更扎实,在试验中运用了存储过程,视图等功能,让我学到的知识能更加熟练掌握。
展开阅读全文

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


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

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

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

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

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

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

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

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

客服