您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > 82oracle三级项目
项目名称:超市管理系统的设计与实现1.需求描述通过超市管理系统主要来实现对超市信息管理,商品信息管理,收银员信息管理,小票信息管理等。超市信息管理主要实现超市信息的增删改查,商品信息管理主要实现对商品信息的增删改查,收银员信息管理主要实现对收银员信息的增删改查,小票信息管理主要实现对小票信息的查询。2.概念结构设计SHOPRESERVRASSISTANTBILLENOADDRESSSANMEPRICEPROFESSINALCANMECNOANMESEXSALARYANOCNAMEPRICETOTALCNOANOQUANTITYBNOIncludeEmployChargeCorresponding11nnmnmn3.逻辑结构设计表结构设计(1)超市表SHOP列名含义长度类型约束ENO企业编号10Char()PRIMARYKEYSNAME店名30Char()NOTNULLADDRESS地址30Char()NOTNULLCreatetableSHOP(ENOvarchar(10)primarykey,SNAMEvarchar(30)notnull,ADDRESSvarchar(30)notnull);(2)收银员表ASSISANT列名含义长度类型NULLANO收银员编号10Char()PRIMARYKEYANAME姓名6Char()NOTNULLSEX性别2Char()NOTNULLSALARY工资8NumberNOTNULLCreatetableASSISANT(ANOvarchar(10)primarykey,ANAMEvarchar(6)notnull,SEXvarchar(2)notnull,SALARYnumber(8)notnull);(3)收银小票表BILL列名含义长度类型NULLBNO小票编号20Char()PRIMARYKEYCNO商品编号8Char()FOREIGNKEYANO收银员编号8Char()FOREIGNKEYCNAME商品名称8Char()NOTNULLPRICE单价8NumberNOTNULLQUANTITY个数3NumberNOTNULLTOTAL总价10NumberNOTNULLCreatetableBILL(BNOvarchar(20)PRIMARYKEY,CNOvarchar(8)foreignkey,ANOvarchar(8)foreignkey,CNAMEvarchar(8)notnull,PRICEnumber(8)notnull,QUANTITYnumber(3)notnull,TOTALnumber(10)notnull);(4)商品库存表RESERVRCreatetableRESERVR(CNOvarchar(8)primarykey,CNAMEvarchar(8)notnull,PRICEfloat(8)notnull,LISTnumber(8)notnull,PROFESSINALvarchar(20));列名含义长度类型NULLCNO商品编号8Char()PRIMARYKEYCNAME商品名称8Char()NOTNULLPRICE单价8Float()NOTNULLLIST库存量8NumberNOTNULLPROFESSINAL供货商名20Char()序列设计(1)企业编号序列CREATESEQUENCEENO-SEQINCREMENTBY1STARTWITH1NOMAXVALUENOCYCLECACHE10;(2)收银员编号序列CREATESEQUENCEANO-SEQINCREMENTBY1STARTWITH1NOMAXVALUENOCYCLECACHE10;(3)小票编号序列CREATESEQUENCEBNO-SEQINCREMENTBY1STARTWITH1--NOMAXVALUENOCYCLECACHE10;(4)商品编号序列CREATESEQUENCECNO-SEQINCREMENTBY1STARTWITH1NOMAXVALUENOCYCLE-CACHE10;视图设计某种商品的销售量和库存量的视图GREATEVIEWCOMMODITY(CNO,CNAME,MARKET,LIST)ASSELECTRESERVR.CNO,RESERVR.CNAME,SUM(QUANTITY),LISTFROMRESERVR,BILLGROUPBYBILL.CNO索引设计(1)商品库存表商品编号索引CREATEUNIQUEINDEXCRESERVEONRESERVE(CNO);(2)收银小票表小票编号索引CREATEUNIQUEINDEXBBILLONBILL(BNO);(3)收银员表中收银员编号索引CREATEUNIQUEINDEXAASSISTANTONASSISTANT(ANO);4.数据库实施创建用户,并给用户授权Createuserwangindentifiedby123;GrandDBAtowang;Grandselectanytabletowang;创建表创建超市表CreatetableSHOP(ENOvarchar(10)primarykey,SNAMEvarchar(30)notnull,ADDRESSvarchar(30)notnull);创建收银员表CreatetableASSISANT(ANOvarchar(10)primarykey,ANAMEvarchar(6)notnull,SEXvarchar(2)notnull,SALARYnumber(8)notnull);收银小票表CreatetableBILL(BNOvarchar(20)PRIMARYKEY,CNOvarchar(8)foreignkey,ANOvarchar(8)foreignkey,CNAMEvarchar(8)notnull,PRICEnumber(8)notnull,QUANTITYnumber(3)notnull,TOTALnumber(10)notnull);创建商品库存表CreatetableRESERVR(CNOvarchar(8)primarykey,CNAMEvarchar(8)notnull,PRICEfloat(8)notnull,LISTnumber(8)notnull,PROFESSINALvarchar(20));创建序列企业编号序列CREATESEQUENCEENO-SEQINCREMENTBY1STARTWITH1NOMAXVALUENOCYCLECACHE10;收银员编号序列CREATESEQUENCEANO-SEQINCREMENTBY1STARTWITH1NOMAXVALUENOCYCLECACHE10;小票编号序列CREATESEQUENCEBNO-SEQINCREMENTBY1STARTWITH1--NOMAXVALUENOCYCLECACHE10;商品编号序列CREATESEQUENCECNO-SEQINCREMENTBY1STARTWITH1NOMAXVALUENOCYCLE-CACHE10;创建索引(1)商品库存表商品编号索引CREATEUNIQUEINDEXCRESERVEONRESERVE(CNO);(2)收银小票表小票编号索引CREATEUNIQUEINDEXBBILLONBILL(BNO);(3)收银员表中收银员编号索引CREATEUNIQUEINDEXAASSISTANTONASSISTANT(ANO);创建视图某种商品的销售量和库存量的视图GREATEVIEWCOMMODITY(CNO,CNAME,MARKET,LIST)ASSELECTRESERVR.CNO,RESERVR.CNAME,SUM(QUANTITY),LISTFROMRESERVR,BILLGROUPBYBILL.CNO5.PL/SQL程序设计储存过程设计利用存储过程来实现,当某商品卖出时,它的商品库存量相应的减少.CREATEPROCEDURESELL(BCNOCHAR,QLISTINT)ASDECLAREBEGINSELECTTISTFROMRESERVEWHEREBCNO=RESERVE.CNO;IFLISTISNULLTHENROLLBACK;RETURN;ENDIF;IFLISTQUANTITYTHENROLLBACK;RETURN;ENDIF;UPDATERESERVESETLIST=LIST-QLISTWHEREBCNO=RESERVE.CNO;COMMIT;END;以店号为参数返回该店地址以及店名Createorreplaceprocedureproc_return_SNAME(p_ENOshop.eno%type,p_SNAMEoutshop.sname%type,p_ADDRESSoutshop.address%type)ASBEGINSelect*intop_SNAME,p_ADDRESSfromshopwheresno=p_SNO;ExceptionWhenNO_DATA_FOUNDTHENDBMS_OUTPUT.PUT_LINE(‘Theshopdon’’texist!’);Endproc_return_SNAME;以商品编号为参数返回产品信息Createorreplaceprocedureproc_return_SNAME(P_CNORESERVR.cno%type,P_CNAMEoutRESERVR.cname%type,P_PRICEoutRESERVR.price%type,P_PROFESSINALoutRESERVR.professinal%type)AsBeginSelect*intop_CNAME,p_price,professinalfromRESERVRwherecno=p_CNO;ExceptionWhenNO_DATA_FOUNDTHENDBMS_OUTPUT.PUT_LINE(‘Thereservrdon’’texist!’);Endproc_return_SNAME;以员工编号为参数返回员工信息Createorreplaceprocedureproc_return_ANAME(p_ANOASSISANT.ano%type,p_ANAMEoutASSISANT.aname%type,p_SALARYoutASSISANT.salary%type)ASBEGINSelect*intop_ANAME,p_SALARYfromASSISANTwhereano=p_ANO;ExceptionWhenNO_DATA_FOUNDTHENDBMS_OUTPUT.PUT_LINE(‘TheASSISANTdon’’texist!’);Endproc_return_ANAME;以小票编号为参数返回小票信息Createorreplaceprocedureproc_return_BNO(p_BNOBILL.bno%type,p_CNOoutBILL.cno%type,p_ANOoutBILL.ano%typep_CNAMEoutBILL.cname%typep_PRICEoutBILL.price%typep_QUANTITYoutBILL.quantity%typep_TOTALoutBILL.total%type)ASBEGINSelect*intop_BNO,p_CNO,p_ANO,p_CNAME,p_PRICE,p_QUATITY,p_TOTALfromBILLwherebno=p_BNO;ExceptionWhenNO_DATA_FOUNDTHENDBMS_OUTPUT.PUT_LINE(‘TheBILLdon’’texist!’);Endproc_return_BNO;函数设计创建函数,返回收银员最高工资CREATEORREPLACEFUNCTIONASSISANT_MAXSALRETURNASSISANT.SALARY%TYPEASA_MAXSALASSISANT..salary%type;BEGINSEL
本文标题:82oracle三级项目
链接地址:https://www.777doc.com/doc-4185553 .html