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

上传人:b****8 文档编号:9920752 上传时间:2023-02-07 格式:DOCX 页数:15 大小:204.32KB
下载 相关 举报
Oracle仓库管理系统课程设计报告数据库部分含Oracle代码.docx_第1页
第1页 / 共15页
Oracle仓库管理系统课程设计报告数据库部分含Oracle代码.docx_第2页
第2页 / 共15页
Oracle仓库管理系统课程设计报告数据库部分含Oracle代码.docx_第3页
第3页 / 共15页
Oracle仓库管理系统课程设计报告数据库部分含Oracle代码.docx_第4页
第4页 / 共15页
Oracle仓库管理系统课程设计报告数据库部分含Oracle代码.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

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

《Oracle仓库管理系统课程设计报告数据库部分含Oracle代码.docx》由会员分享,可在线阅读,更多相关《Oracle仓库管理系统课程设计报告数据库部分含Oracle代码.docx(15页珍藏版)》请在冰豆网上搜索。

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

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

宁波工程学院

电信学院

实验报告

 

实验名称Oracle仓库管理系统设计

专业、班级计科111班

姓名XXX学号XXXXXXXX

日期2014.5.27

指导教师XXX老师

 

一、系统描述

仓库管理系统的功能:

1)、进仓管理:

在货物送到仓库时,对货物信息进行了解并将相关信息输入到数据库

中,同时更新数据库。

2)、出仓管理:

在货物运出仓库时,进行货物信息统计并将数据保存到数据库中,同

时更新数据库。

3)仓库货物信息提醒:

当货物少于某一规定的值时,或者货物保质期将至时将发出

提醒。

4)、仓库数据管理:

当仓库中的货物少于要出仓的货物时不允许出仓;当仓库货物为

满时,不允许其他货物进仓。

5)、查询修改:

管理员可以进行一系列查询:

查询货物类别及货物的信息、数量和货

物流动的规则(对货物出仓进仓的要求);并可以对以上查询进行修

改;可以查询某一天货物流动的信息,以及出仓及入仓的详细信息。

二、系统需求分析

利用用例图、类图、E-R图对系统进行需求分析。

仓库管理系统可以实现对仓库货物信息、出仓货物管理、进仓货物管理、货物数量管理以及货物出入仓限制规则,以下为其用例图、类图及E-R图。

仓库管理系统用例图

类图

表1:

产品信息表PRO

字段名

数据类型

长度

约束

说明

PROID

NUMBER

11

主码

产品编号

PRONAME

VARCHAR2

20

NOTNULL

产品名称

PRODRESS

VARCHAR2

50

产品地址

DREPHONE

NUMBER

20

产品地址号码

BDATE

NUMBER

5

NOTNULL

保质天数

DEMO

VARCHAR2

100

说明

表2:

产品信息管理PRO_MAN

字段名

数据类型

长度

约束

说明

PROID

NUMBER

11

主码,外码

产品编号

BIRDATE

DATE

主码

产品生产日期

ZNUM

NUMBER

20

NOTNULL

产品数量

DEMO

VARCHAR2

100

说明

表3:

产品出库管理C_PRO

字段名

数据类型

长度

约束

说明

PROID

NUMBER

11

主码,外码

产品编号

CDATE

DATE

主码

出库日期

BIRDATE

DATE

NOTNULL

生产日期

CNUM

NUMBER

10

NOTNULL

出库数量

DEMO

VARCHAR2

100

说明

表4:

产品入库日期R_PRO

字段名

数据类型

长度

约束

说明

PROID

NUMBER

11

主码,外码

产品编号

RDATE

DATE

主码

入库日期

BIRDATE

DATE

NOTNULL

生产日期

RNUM

NUMBER

10

NOTNULL

入库数量

DEMO

VARCHAR2

100

说明

 

表5:

产品仓库限制规则

字段名

数据类型

长度

约束

说明

PROID

NUMBER

11

主码,外码

产品编号

BIRDATE

DATE

主码

生产日期

ZNUM

NUMBER

20

NOTNULL

产品数量

DEMO

VARCHAR2

100

说明

表6:

管理员表ADMIN

字段名

数据类型

长度

约束

说明

ID

NUMBER

11

主码

管理员编号

USERNAME

VARCHAR2

10

NOTNULL

管理员账号

PASSORD

VARCHAR2

11

NOTNULL

账号密码

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:

CREATETABLE"USERS"."PRO"(

"PROID"NUMBER(11)NOTNULL,

"PRONAME"VARCHAR2(20)NOTNULL,

"PRODRESS"VARCHAR2(50),

"DREPHONE"NUMBER(20),

"BDATE"NUMBER(5)NOTNULL,

"DEMO"VARCHAR2(100),

PRIMARYKEY("PROID")VALIDATE)

TABLESPACE"USERS"

(2)仓库产品管理PRO_MAN

CREATETABLE"USERS"."PRO_MAN"(

"PROID"NUMBER(11)NOTNULL,

"BIRDATE"DATENOTNULL,

"ZNUM"NUMBER(20)NOTNULL,

"DEMO"VARCHAR2(100),

PRIMARYKEY("PROID","BIRDATE")VALIDATE,

FOREIGNKEY("PROID")REFERENCES"SYS"."PRO"("PROID")VALIDATE)

TABLESPACE"USERS"

(3)创建入库管理表R_PRO

CREATETABLE"USERS"."R_PRO"(

"PROID"NUMBER(11)NOTNULL,

"RDATE"DATENOTNULL,

"BIRDATE"DATENOTNULL,

"RNUM"NUMBER(10)NOTNULL,

"DEMO"VARCHAR2(100),

PRIMARYKEY("PROID","RDATE")VALIDATE,

FOREIGNKEY("PROID")REFERENCES"SYS"."PRO"("PROID")VALIDATE)

TABLESPACE"USERS"

(4)出库产品管理C_PRO

CREATETABLE"USERS"."C_PRO"(

"PROID"NUMBER(11)NOTNULL,

"CDATE"DATENOTNULL,

"BIRDATE"DATENOTNULL,

"CNUM"NUMBER(10)NOTNULL,

"DEMO"VARCHAR2(100),

PRIMARYKEY("PROID","CDATE")VALIDATE,

FOREIGNKEY("PROID")REFERENCES"SYS"."PRO"("PROID")VALIDATE)

TABLESPACE"USERS"

(5)管理规则PRO_LIM

CREATETABLE"USERS"."PRO_LIM"(

"PROID"NUMBER(11)NOTNULL,

"MINUM"NUMBER(10)NOTNULL,

"MAXUM"NUMBER(10)NOTNULL,

"LBIRDATE"NUMBER(5)NOTNULL,

"DEMO"VARCHAR2(100),

PRIMARYKEY("PROID")VALIDATE,

FOREIGNKEY("PROID")REFERENCES"SYS"."PRO"("PROID")VALIDATE)

TABLESPACE"USERS"

(6)管理员表ADMIN

CREATETABLE"USERS"."ADMIN"(

"ID"NUMBER(11)NOTNULL,

"USERNAME"VARCHAR2(10)NOTNULL,

"PASSWORD"VARCHAR2(11)NOTNULL,

PRIMARYKEY("ID")VALIDATE)TABLESPACE"USERS"

2、序列的创建

CREATESEQUENCEC_R_VIEWNOCYCLENOORDERNOCACHENOMAXVALUEMINVALUE100INCREMENTBY1STARTWITH100

3、视图的创建

(1)产品的出入库情况C_R_PRO_VIEW

CREATEORREPLACEVIEWC_R_PRO_VIEW

AS

SELECTCPROID,RPROID,PRONAME,RDATE,CDATE,CBIRDATE,RBIRDATE,CNUM,RNUMFROMPRO,

(SELECT

C_PRO.PROIDASCPROID,R_PRO.PROIDASRPROID,RDATE,CDATE,C_PRO.BIRDATEASCBIRDATE,R_PRO.BIRDATEASRBIRDATE,CNUM,RNUMFROMC_PROFULLJOINR_PROONC_PRO.PROID=R_PRO.PROIDandCDATE=RDATEORDERBYRPROID)R_CWHEREPRO.PROID=CPROIDANDPRO.PROID=RPROID

(2)产品总数量:

SNUM

CREATEORREPLACEVIEWSNUM

AS

SELECTPRO.PROID,SUM(ZNUM)SNUMFROMPRO,PRO_MAN

WHEREPRO.PROID=PRO_MAN.PROIDGROUPBYPRO.PROID

(3)产品的库存信息:

ZNUM_PRO_VIEW

CREATEORREPLACEVIEWZNUM_PRO_VIEW

AS

SELECTPRO_MAN.PROID,PRONAME,BIRDATE,BDATE,ZNUMFROM

PRO,PRO_MANWHERPRO.PROID=PRO_MAN.PROID

4、PL/SQL程序设计

(1)仓库产品少于最少数量或者大于最大数量时显示出产品数量、生产日期及保质期来:

CREATEORREPLACEFUNCTIONMIN_MAX_NUM_SHOW(

V_PROIDNUMBER,V_BIRDATEOUTDATE,V_BDATEOUTNUMBER)

RETURNNUMBER

AS

V_SNUMNUMBER;V_MINUMNUMBER;V_MAXUMNUMBER;

BEGIN

SELECTSUM(ZNUM)INTOV_SNUMFROMPRO_MANWHEREPROID=V_PROID;

SELECTMINUM,MAXUMINTOV_MINUM,V_MAXUMFROMPRO_LIMWHEREPROID=V_PROID;

SELECTBIRDATEINTOV_BIRDATEFROMPRO_MANWHEREPROID=V_PROID;

SELECTBDATEINTOV_BDATEFROMPROWHEREPROID=V_PROID;

IFV_SNUM-V_MINUM<=0ORV_SNUM-V_MAXUM>=0THEN

RETURNV_SNUM;

ENDIF;

END;

(2)计算距保质期时间:

CREATEORREPLACEPROCEDUREPRO_B(

V_PROIDNUMBER)

AS

V_DAYSNUMBER;

V_LBIRDATENUMBER;

CURSORC_BIRDATEISSELECTBIRDATEFROM

PRO_MANWHEREPROID=V_PROID;

BEGIN

  SELECTLBIRDATEINTOV_LBIRDATEFROMPRO_LIM

WHEREPROID=V_PROID;

FORV_BIRDATEINC_BIRDATELOOP

IFV_DAYS:

=(SYSDATE-V_BIRDATE)>=V_LBIRDATETHEN

DBMS_OUTPUT.PUTLINE(V_DAYS);

ENDIF;

ENDLOOP;

END;

(3)计算出库后数量:

CREATEORREPLACEFUNCTIONA_C_NUM(

V_PROIDNUMBER,V_BIRDATEOUTDATE)

RETURNNUMBER

AS

V_CZNUMNUMBER;

BEGIN

SELECTBIRDATEINTOV_BIRDATEFROMC_PROWHEREPROID=V_PROID;

SELECTZNUM-CNUMINTOV_CZNUMFROM(

SELECTPRO_MAN.PROID,PRO_MAN.BIRDATECBIRDATE,CNUM,ZNUMFROM

C_PRO,PRO_MANWHERE

PRO_MAN.PROID=C_PRO.PROIDANDPRO_MAN.BIRDATE=C_PRO.BIRDATE)A_C

WHEREPROID=V_PROIDANDA_C.CBIRDATE=V_BIRDATE;

RETURNV_CZNUM;

END;

(4)计算入库后数量:

CREATEORREPLACEFUNCTIONA_R_NUM(

V_PROIDNUMBER,V_BIRDATEOUTDATE)

RETURNNUMBER

AS

V_RZNUMNUMBER;

BEGIN

SELECTBIRDATEINTOV_BIRDATEFROMR_PROWHEREPROID=V_PROID;

SELECTZNUM+RNUMINTOV_RZNUMFROM(

SELECTPRO_MAN.PROID,PRO_MAN.BIRDATERBIRDATE,RNUM,ZNUMFROM

R_PRO,PRO_MANWHERE

PRO_MAN.PROID=R_PRO.PROIDANDPRO_MAN.BIRDATE=R_PRO.BIRDATE)A_R

WHEREPROID=V_PROIDANDA_R.RBIRDATE=V_BIRDATE;

RETURNV_RZNUM;

END;

五、总结

在这次的数据库实践中,我学到了很多,也收获了很多经验。

刚刚开始时由于认识不足以及搜素资料不完善,将此数据库系统设计不完善,使系统无法实现。

在老师的教导下,我又重新将仓库管理系统进行分析,并找同学讨论,不断完善,经过一番努力后,将此系统完成,虽然不是很复杂,功能也不是很多,但是这注入了我全部的思想。

由此次试验,我学会了做事情要循序渐进,不可能一次性就能将事情做到十全十美,在做的过程中不断思考,将事情渐渐完善。

此次的实践还让我的数据库知识更扎实,在试验中运用了存储过程,视图等功能,让我学到的知识能更加熟练掌握。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1