1、宁 波 工 程 学 院电 信 学 院试验汇报试验名称 Oracle仓库管理系统设计 专业、班级 计科111班 姓名 XXX 学号 XXXXXXXX 日期 .5.27 指导老师 XXX老师 一、 系统描述 仓库管理系统功效: 1)、进仓管理:在货物送到仓库时,对货物信息进行了解并将相关信息输入到数据库 中,同时更新数据库。 2)、出仓管理:在货物运出仓库时,进行货物信息统计并将数据保留到数据库中,同 时更新数据库。 3)仓库货物信息提醒:当货物少于某一要求值时,或货物保质期将至时将发出 提醒。 4)、仓库数据管理:当仓库中货物少于要出仓货物时不许可出仓;当仓库货物为 满时,不许可其它货物进仓。
2、5)、查询修改:管理员能够进行一系列查询:查询货物类别及货物信息、数量和货 物流动规则(对货物出仓进仓要求);并能够对以上查询进行修 改;能够查询某一天货物流动信息,和出仓及入仓具体信息。二、 系统需求分析利用用例图、类图、E-R图对系统进行需求分析。仓库管理系统能够实现对仓库货物信息、出仓货物管理、进仓货物管理、货物数量管理和货物出入仓限制规则,以下为其用例图、类图及E-R图。 仓库管理系统用例图 类图表1:产品信息表PRO字段名数据类型长度约束说明PROIDNUMBER11主码产品编号PRONAMEVARCHAR220NOT NULL产品名称PRODRESSVARCHAR250产品地址DR
3、EPHONENUMBER20产品地址号码BDATENUMBER5NOT NULL保质天数DEMOVARCHAR2100说明表2:产品信息管理PRO_MAN字段名数据类型长度约束说明PROIDNUMBER11主码,外码产品编号BIRDATEDATE主码产品生产日期ZNUMNUMBER20NOT NULL产品数量DEMOVARCHAR2100说明表3:产品出库管理C_PRO字段名数据类型长度约束说明PROIDNUMBER11主码,外码产品编号CDATEDATE主码出库日期BIRDATEDATENOT NULL生产日期CNUMNUMBER10NOT NULL出库数量DEMOVARCHAR2100说明
4、表4:产品入库日期R_PRO字段名数据类型长度约束说明PROIDNUMBER11主码,外码产品编号RDATEDATE主码入库日期BIRDATEDATENOT NULL生产日期RNUMNUMBER10NOT NULL入库数量DEMOVARCHAR2100说明表5:产品仓库限制规则字段名数据类型长度约束说明PROIDNUMBER11主码,外码产品编号BIRDATEDATE主码生产日期ZNUMNUMBER20NOT NULL产品数量DEMOVARCHAR2100说明表6:管理员表ADMIN字段名数据类型长度约束说明IDNUMBER11主码管理员编号USERNAMEVARCHAR210NOT NULL
5、管理员账号PASSORDVARCHAR211NOT NULL账号密码E-R图三、 数据库对象设计1、 表设计 经过对仓库管理系统业务分析及查询资料了解,设计该系统6个关系表,详情见上边类图部分。 2、序列设计 为了方便仓库产品管理,在数据库中用以下序列产生对应编号 C_R_VIEW:产生产品编号,起始值100。 3、视图设计 为了方便仓库管理员查询出入库情况、每个生产日期库存信息及产品总数量,创建下列视图。 (1)创建名为“C_R_PRO_VIEW”视图,用于查看产品出入库汇总情况,包 括出库产品编号,入库产品编号,产品名称,入库日期,出库日期,出库产品 生产日期,入库产品生产日期,出库数量,
6、入库数量。 (2)创建名为“SNUM”视图,用于查询一个产品总库存量,包含产品编号, 产品总数量。 (3)创建名为“ZNUM_PRO_VIEW”视图,用于查询产品库存信息,包含不一样 生产日期库存量。 4、PL/SQL功效模块设计 利用PL/SQL程序创建下列多种数据库对象。 (1)创建一个当仓库产品少于最少数量或大于最大数量时显示出产品数量、生产 日期及保质期函数。 (2)创建一个计算距保质期时间存放过程。 (3)创建一个计算出库后数量函数。 (4)创建一个计算入库后数量函数。四、 数据库对象创建描述数据库对象中表创建、序列创建、视图创建、存放过程创建,触发器创建等内容,实现系统基础功效。1
7、、 表创建 (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 NUMBE
8、R(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 , BIRDA
9、TE 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
10、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 , MINUMNUMBER(10) NOT NULL , MAXUM NUMBER(10) NOT NULL , LBIRDATE NUMBER(5)
11、 NOT NULL , DEMO VARCHAR2(100), PRIMARY KEY (PROID) VALIDATE , FOREIGN KEY (PROID) REFERENCES SYS.PRO (PROID) VALIDATE ) TABLESPACEUSERS (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 ) TABL
12、ESPACE USERS2、 序列创建 CREATE SEQUENCE C_R_VIEW NOCYCLE NOORDER NOCACHE NOMAXVALUE MINVALUE 100 INCREMENT BY 1 START WITH 100 3、视图创建 (1)产品出入库情况C_R_PRO_VIEWCREATE OR REPLACE VIEW C_R_PRO_VIEWAS SELECT CPROID,RPROID,PRONAME,RDATE,CDATE,CBIRDATE,RBIRDATE,CNUM,RNUM FROM PRO, (SELECT C_PRO.PROID AS CPROID,R
13、_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)产品总数量:SNUMCREATE OR REPLACE VIEW SNUMASSELECT PRO.PROID,SUM(ZNUM) S
14、NUM FROM PRO,PRO_MAN WHERE PRO.PROID=PRO_MAN.PROID GROUP BY PRO.PROID (3)产品库存信息:ZNUM_PRO_VIEWCREATE OR REPLACE VIEW ZNUM_PRO_VIEWASSELECT PRO_MAN.PROID,PRONAME,BIRDATE,BDATE,ZNUM FROMPRO,PRO_MAN WHER PRO.PROID=PRO_MAN.PROID4、 PL/SQL程序设计 (1)仓库产品少于最少数量或大于最大数量时显示出产品数量、生产日期及保质期来:CREATE OR REPLACE FUNCTI
15、ON 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
16、 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 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_M
17、AN 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 O
18、UT DATE)RETURN NUMBERAS 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 PR
19、OID=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 NUMBERAS 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
20、, 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; 五、 总结在这次数据库实践中,我学到了很多,也收获了很多经验。刚刚开始时因为认识不足和搜素资料不完善,将此数据库系统设计不完善,使系统无法实现。在老师教导下,我又重新将仓库管理系统进行分析,并找同学讨论,不停完善,经过一番努力后,将此系统完成,即使不是很复杂,功效也不是很多,不过这注入了我全部思想。由此次试验,我学会了做事情要循序渐进,不可能一次性就能将事情做到十全十美,在做过程中不停思索,将事情逐步完善。此次实践还让我数据库知识更扎实,在试验中利用了存放过程,视图等功效,让我学到知识能愈加熟练掌握。
©2010-2024 宁波自信网络信息技术有限公司 版权所有
客服电话:4008-655-100 投诉/维权电话:4009-655-100