还剩50页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
信息工程学院《数据库课程设计》论文题目__管理系统数据库设计目录TOC\o1-3\h\z\u《数据库课程设计》论文1摘要-1-引言-2-1需求分析-2-
1.1任务-2-
1.
1.1处理对象-2-
1.
1.2处理功能要求-2-
1.
1.3安全性和完整性要求-4-
1.2结果-4-
1.
2.1顶层数据流程图-4-
1.
2.2第一层流程图-5-
1.
2.3第二层流程图-6-
1.
2.4数据字典-7-2概念结构设计-8-
2.1具体任务-8-
2.2阶段结果-8-
2.
2.1各个实体的E-R图-8-
2.
2.2分E-R图-9-
2.
2.3全局E-R图-10-3逻辑结构设计-10-
3.1任务-10-
3.
3.1将E-R模型转换为关系模型-10-
3.2结果-12-
3.
2.1将ER图转化为关系模式汇总-12-
3.
2.2外模式汇总-12-
3.
2.3系统功能模块图-14-4物理结构设计-14-5数据库实施-14-
5.1任务-14-
5.2结果-15-
5.
2.1存储过程汇总-15-
5.
2.2触发器汇总-15-6调试与测试-16-附录1数据字典说明-16-附录
1.1数据项说明-16-附录
1.2数据结构-18-附录
1.3数据流-19-附录
1.4数据处理-21-附录
1.5数据存储-22-附录2关系模式说明-22-附录3数据定义语句-26-附录
3.1基本表-26-附录
3.2视图-29-附录
3.3存储过程-31-附录
3.4触发器-32-附录4数据操纵验证-34-
4.1在SQLServer__nagementstudio中验证-34-
4.2在PLSQLDeveloper中进行验证-36-附录5存储过程与触发器功能的验证-36-
5.1在SQLServer__nagementstudio中-36-
5.
1.1触发器验证-36-
5.
1.2存储过程的验证-40-
5.2在PLSQLDeveloper中进行验证-44-
5.
2.1存储过程的验证-44-
5.
2.2触发器的验证-48-摘要随着__规模的发展不断扩大,商品数量急剧增加,有关商品的各种信息量也成倍增长__时时刻刻都需要对商品各种信息进行统计分析而大型的__管理系统功能过于强大而造成操作繁琐降低了小__的工作效率__管理系统是市场上最流行的__上常用的系统之一,它主要包含以下几个模块系统权限的设定、原始数据录入、数据的汇总及查询等从而,实现对进货、销售及员工信息等实现全面、动态、及时的管理本次实习的题目是__进销存管理系统,主要的目的是在__进销存模块的基础上对__的经营,管理进行研究和探讨根据系统所需功能,决定以windowsXP为__平台,采用选择功能强大的MicrosoftSQLServer为__工具,利用软件工程思想和方法,__该系统的所需要的功能本系统由商品信息管理模块,员工信息管理模块,供应商信息管理模块等的组成,对__中的各种信息进行分类管理,统筹规划功能较为全面关键字__,进销存管理,数据库,MicrosoftSQLServer__管理系统数据库设计引言目前,无论是__还是公司企业对于货物都实行了信息化管理,以提高管理水平和工作效率,同时也可以最大限度地减少手工操作带来的错误于是,进销存管理信息系统便应运而生在工厂中,产品的进销存涉及产品原料的采购,库存,投入生产,报损,甚至有时涉及到销售,同时,对于产品也有相应的生产,库存,销售,和报损等环节在其他非生产性单位,如__,商店等,则主要涉及到进货,库存,销售和报损4个方面__进销存管理的对象是很多的,广而言之,它可以包括商业,企业__的商品,图书馆__的图书,博物馆__的展品等等在这里本文仅涉及工业企业的产品____进销存管理系统按分类,分级的模式对仓库进行全面的管理和监控,缩短了__信息流转时间,使企业的物资管理层次分明,井然有序,为采购,销售提供依据;智能化的预警功能可自动提示存货的短缺,超储等异常状况;系统还可进行材料__ABC分类汇总,减少资金积压完善的__管理功能,可对企业的存货进行全面的控制和管理,降低__成本,增强企业的市场竞争力1需求分析
1.1任务
1.
1.1处理对象涉及哪些方面的数据,数据之间的关系(计算格式转换等);商品商品编号,商品类型,商品名称,商品单价,生产日期,保质期,商品重量,商品规格供应商供应商号,名称,地址,供应商__,帐号仓库库存号,现有库存,最高库存,最低库存职工职工号,职工姓名,性别,生日,职称,进厂日期,备注信息会员会员号,姓名,性别,生日,积分信息
1.
1.2处理功能要求该系统由商品信息管理模块,员工信息管理模块,供应商信息管理模块,仓库信息管理模块等可以完成商品的进销存和查询,更改等的基本操作并根据客户的要求完善系统的功能需求系统功能有1进货业务进货管理是企业生产经营活动中及其重要的一环,它关系到产品质量能否得到保证,生产是否能够顺利进行,采购成本能否得到有效控制等问题企业现代管理理念中对企业的进货管理提出新的要求;企业进货时对供货商的选择更见慎重,双方不再是讨价还价的买卖关系,而是一种相互依存的合作伙伴关系,并且还需要认识到企业产品质量要从采购抓起,这就关系到供方的供货、服务质量下面是进货业务程序的主要内容供货商的情况调查在实施采购之前,__首先就要对市场上各大商品供货商进行详细的调查,了解公司的具体情况,评定企业的信誉级别和公司的市场口碑,做到准确无误,采购顺利采购计划的编制__根据自身的资金条件和销售状况,综合分析市场规律,拟定采购计划表实施进货计划根据供货商档案及评审结果,选定供货商;生成订货单给选定的供货商;双方就__、数量、质量等方面洽谈磋商,直至签订合同;跟踪合同执行,安排供货进度和货物运输,做好验收入库工作2库存业务库存管理是指在上产经营中为销售和耗用而存储的各种资产企业存货不当都会增加不必要的费用存货过多将导致物资的积压、存储费用增加、流动____不利,并且过量的库存会掩盖管理不善的问题存货不足则影响企业的正常销售活动库存管理的目标是需求最佳存货数量,使库存的成本总额最小化其主要业务如下产品入库、出库、盘库等日常处理科学合理地确定某库存物资的库存控制参数如最佳订货批量、最大库存量、最佳缺货量、最佳订购周期等,进行严格的库存控制工作汇总统计各类库存数据,反应和监督储备资金占用及采购资金使用情况3销售业务销售对一个企业的生存和发展是至关重要的,它不再是传统意义上的“卖东西”,它对外关系到企业产品、服务和企业形象等多方面因素,对内涉及到销售、库存、财务等信息此外信息化的高速发展为企业的销售工作提出了新的挑战,封闭意味着__,__要抓住时机,引入现代化的销售管理模式,实施企业的信息化、智能化销售管理,才能使__在激烈的市场竞争中立于不败之地
1.
1.3安全性和完整性要求
(1)各个实体的编号不能重复
(2)每个订单都要求有订单号,这样不会导致同一个人顾客__同一个东西插入不到销售表中,或者向同一个供应商采购同一个商品插入不到采购商品表中
(3)销售单CS的属性顾客编号Cno不能设置为外码,如果说Cno来自于会员表C中的Cno,那么导致普通顾客无法__
(4)要求采购信息、采购退货信息,以及销售信息和顾客退货信息改变时,库存信息也作相应的改变即,采购信息增加时,库存信息也要相应的增加有采购退货时,库存信息做相应的减少销售除商品时,库存信息要做相应的减少顾客退货是,库存信息增加当有损坏商品时,即报损详单增加商品信息时,库存信息相应的减少
1.2结果
1.
2.1顶层数据流程图图表1顶层流程图
1.
2.2第一层流程图图表2第一层数据流程图
1.
2.3第二层流程图图表3采购流程图图表4销售流程图图表5报损流程图
1.
2.4数据字典数据字典的意义数据流程图表达了数据和处理的关系,数据字典则是系统中各类数据描述的__,是进行详细的数据收集和数据分析所获得的主要成果数据字典在数据库设计中占有很重要的地位数据字典通常包括数据项,数据结构,数据流,数据存储和处理过程五个部分其中数据项是数据的最小组成单位,若干个数据项可以组成一个数据结构,数据字典通过对数据项和数据结构的定义来描述数据流,数据存储的逻辑内容制作数据字典,详见附录一2概念结构设计
2.1具体任务
(1)选择中层数据流为切入点,通常选择实际系统中的子系统;
(2)设计分E-R图,即各子模块的E-R图;
(3)生成初步E-R图,通过合并方法,做到各子系统实体,属性,__统一;
(4)生成全局E-R图,通过消除冲突等方面
2.2阶段结果
2.
2.1各个实体的E-R图图表6各个实体的E-R图
2.
2.2分E-R图图表7销售,退货E-R图图表8采购,退货E-R图图表11存储E-R图
2.
2.3全局E-R图图表12全局E-R图3逻辑结构设计
3.1任务
3.
3.1将E-R模型转换为关系模型E—R图转换为关系模型实际上就是要将实体性,实体的属性和实体性之间的__转换为关系模式,这种转换一般遵循如下规则一个实体型转换为一个关系模式实体的属性就是关系的属性,实体的码就是关系的码对于实体型常见的__则有以下不同的情况
(1)一个1:1的__可以转换为一个__的关系模式,也可以与任意一端对应的关系模式合并如果转换为一个__的关系模式,则与该__相连的各实体的码以及__本身的属性均转换为关系的属性,每个实体的码均是该关系的候选码如果与某一端实体对应的关系模式合并,则需要在该关系模式的属性中加入另一个关系模式的码和__本身的属性
(2)一个1:n__可以转换为一个__的关系模式看,也可以与n端对应的关系模式合并如果转换为一个__的关系模式,则与该__相连的各实体的码以及__本身的属性均转换为关系的属性,而关系的码味n端实体的码
(3)一个m:n__转换为一个关系模式与该__相连的各实体的码以及__本身的属性均转换为关系的属性,各实体的码组成关系的码或关系吗的一部分根据以上规则将本系统的E—R图转换为关系模式(关系的码用下划线标出)__管理系统数据库,包括T,S,E,W,C,TS,PO,PB,CS,CB,SW,D共12个关系模式商品信息表T(Tno,Ttype,Tname,TPpri__,TSpri__,TproDateTkeepDate,Tweight,Tunit);供应商信息表S(Sno,Saddress,Saddress,Sphone,Scount);职工信息表E(Eno,Ename,Ephone,Esalary);仓库信息表W(Wno,WHs__e,WDs__e,W__nanger);顾客信息表C(Cno,Cname,Cgender,Cbirth,Ccredit);商品与供应商之间的供应信息表ST(Tno,Sno,QTY);采购信息表PO(POno,Tno,Sno,POnum,POtime,Eno);注此处的采购信息表仅为采购数量,并为减去采购退货部分采购退货信息表PB(PBno,Tno,PBnum,PBtime,PBreason);销售信息表CS(CSno,Cno,Tno,Eno,CStime,CSnum);注此处的销售信息表并为减去顾客退货部分顾客退货表CB(CBno,Tno,Cno,CBtime,CBnumCBreason);库存信息表TW(Tno,WnoWs__e);报损信息表D(Dno,Tno,Wno,Dnum,Dreason);
3.2结果
3.
2.1将ER图转化为关系模式汇总表1-3(__管理系统系统)关系模式汇总编号关系名称模式说明T-1T(详见附录2-1)(详见附录2-1)T-2S(详见附录2-2)(详见附录2-2)T-3E(详见附录2-3)(详见附录2-3)T-4W(详见附录2-4)(详见附录2-4)T-5C(详见附录2-5)(详见附录2-5)T-6ST(详见附录2-6)(详见附录2-6)T-7PO(详见附录2-7)(详见附录2-7)T-8PB(详见附录2-8)(详见附录2-8)T-9CS(详见附录2-9)(详见附录2-9)T-10CB(详见附录2-10)(详见附录2-10)T-11TW(详见附录2-11)(详见附录2-11)T-12D(详见附录2-12)(详见附录2-12)
3.
2.2外模式汇总表1-4(__管理系统系统)关系外模式汇总序号视图名称作用备注1enter-W入库单,采购数量减去采购退货数量记录入库商品数Enter_W(Tno,POnum指减去退货数量后的采购记录)2Enter_detail入库详单,入库单enter_W与商品信息T的自然连接记录入库商品详细信息Enter_detailTnoPOnumTnameTPpri__TSpri__TkeepDateTunit3P_back采购退货详单,来自采购退货PB与商品信息T的自然连接P_back(TnoPBnumTnameTPpri__TkeepDateTunitPBreason4Sale销售记录表,来自销售数量和顾客退货数量记录销售出的商品数量SaleTnoCSnum减去顾客退货后的商品数5Sale_detail销售商品详单,销售记录表sale和商品信息T的自然连接Sale_detailTnoCSnumTnameTSpri__TkeepDateTunit6CB-detail顾客退货表,来自顾客退货CB与商品信息T自然连接.记录退货详细信息CB_detailTnoCBnumTnameTSpri__TkeepDateTunitCBreason7W-s__e库存记录表,来自现有库存TW与商品信息T的自然连接记录详细库存记录W_s__e(WnoTnoTnameWs__eTPpri__TSpri__TkeeepDateTunit8D-detail报损详单,来自报损单D与商品信息T的自然连接方便管理者查询报损商品报损信息,进而计算此__亏损数D_detail(WnoTnoTnameDnumTPpri__TSpri__TkeeepDateTunit,Dreason)9T_detail商品详细信息,可供顾客查询T_detail(TnoTnameTtype,TSpri__tproDateTkeepDateSnameSaddressSphone)10T_sale商品的销售情况,销售量和销售利润T_saleTnototal_numprofit
3.
2.3系统功能模块图图表9__管理系统功能4物理结构设计本次设计数据库中数据的存取方式,存放位置等按照Oracle10g的默认设置,如需要建立索引,请说明理由和采用的索引方式如果索引较多,可以表格形式展示5数据库实施
5.1任务
(1)建立数据库,数据表,视图,索引等存储过程等DDL定义,并完成完整性,安全性等要求定义;可用DDL语言或SQL脚本任意一种形式表现具体的语句见附录3
(2)数据入库(每个基本表数据不少于20条记录)
(3)完成简单的处理过程,系统主要功能(查询,更新,简单统计等),应建立相应的存储过程,对有参考完整性要求的数据更新
5.2结果
5.
2.1存储过程汇总表5-1存储过程汇总编号存储过程名称定义作用P-1No_sales详见附录3-3输入商品号,查询该商品的销售情况P-2No_s__e输入商品号,查询该商品的库存量p-3Name_detail输入商品名,查询商品的详细信息,供应商、关于地址等p-4Delete_E输入职工号查询职工号,删除相应的记录p-5Delete_C输入顾客号,删除顾客信息p-6T_destory输入商品号,查看该商品的损坏情况P7Select_credit输入顾客号,查询该顾客的积分P8Select_sale输入商品号,查询某商品在某一段时间的销售情况
5.
2.2触发器汇总表5-2触发器汇总编号触发器名称定义作用T-1T1详见附录3-4当销售出商品时,就修改库存商品信息T-2T2当销售出商品时,对顾客号进行查询,如果是会员则对会员的积分进行修改,普通顾客则不予以处理t-3T3当采购进货物时向PO增加一条记录,修改库存信息(TW增加一条信息)t-4T4当采购退货时向PB增加一条记录,修改库存信息(TW减少一条信息)t-5T5顾客退货(CB增加一条记录),修改库存记录(库存信息增加)t-6T6当报损信息D增加信息时,对库存记录作更改
5.
2.3实__结1)数据库设计是一个反反复复修改的过程,在这个过程中不仅巩固以前所学习的知识,而且磨练了我的耐心,可谓是一个可谓是才智于身心共同成长的过程2)通过本次实习,我对oracle有了初步的了解,学习了Pl/SQL的编程,包括建表、建视图、建触发器、建存储过程,以及学习了oracle数据的导入导出通过与T/SQL语言对比,发现PL/SQL建表和建视图的过程基本一样,PL/SQl建存储过程不如T/SQL那么方便,但PL/SQL建触发器的过程及其简单3)在本次实习中,发现自己对Ex__l、Word、PowerPoint的操作还不是很熟练,即使经常使用如Ex__l中生成随机数和随机日期、Word中如何从指定的页开始插入页码、生成目录、如何制作出很精美的PPT,对microsoft软件的学习必须的加强4)之前学习数据库时,只是做一些很简单的操作,学习了一些理论的数据库知识,根本就不知道如何使用,通过这次实习对数据库的功能有了更深的了解,认识到数据库的伟大之处5)学习过程中必须注重理论与实际的__,比如在实际____中普通顾客没有编号,只有会员有,但在数据库设计中顾客是一个实体,必须可区分,这就要求必须每个顾客必须有一个顾客号,会员属于顾客,若是会员则属性姓名、生日、积分不为空对于普通顾客给随机分配一个数即可又如在数据库实施过程中,发现对销售单CS的属性设置存在问题,将Cno设置为外码,也就是说Cno只能来自于会员表C中的Cno,那么导致普通顾客无法__解决方法为取消对CS表中Cno的外码设置,普通顾客的顾客号在会员以外随机赋值还有在销售表中我设置的主属性为商品号和顾客号,这样就导致同一个人无法再次__同一个商品,这是不合理的,解决方法为给每一个销售记录都赋一个销售单号,这样就可以将每一条销售记录唯一的区分开6调试与测试执行数据操纵语句对相应的功能进行验证和测试(查询,插入,修改和删除)测试结果见附录4和5附录1数据字典说明附录
1.1数据项说明表1-1__管理系统数据项说明(汇总统计)数据向编号数据项名数据项含义类型长度取值范围DI-1Tno商品号varchar10DI-2Ttype商品类型VarcharDI-3Tname商品名称varchar20DI-4TPpri__商品进价FloatDI-5TSpri__商品售价FloatDI-6TproDate生产日期DateDI-7TkeepDate保质期Varchar10DI-9Tunit商品单位Varchar10DI-10Sno供应商号Varchar10DI-11Sname供应商名称Varchar20DI-12Saddress供应商地址Varchar30DI-13Sphone供应商__Varchar15DI-14QTY供应数量intDI-15Scount帐号Varchar30DI-16Eno职工号Varchar20DI-17Ename职工姓名Varchar20DI-18Ephone职工____Varchar20DI-19Ejob职称Varchar30DI-20Esalary薪水FloatDI-21Wno仓库号Vatchar10DI-22Ws__e现有库存IntDI-23WHs__e最高库存IntDI-24WDs__e最低库存IntDI-25W__nager仓库管理者Varchar20DI-26Cno会员号Varchar10DI-27Cname会员姓名Varchar20DI-28Cgender会员性别Varchar10DI-29Cbirth会员生日Varchar20DI-30Ccredit积分IntDI-31PBreason采购退货原因Varchar100DI-32CBreason顾客退货原因Varchar100DI-33POno采购订货单号Varchar30DI-34POtime采购时间DateDI-35POnum采购数量IntDI-36PIno发货单号Varchar30DI-37PItime发货时间DateDI-38PInum发货数量IntDI-39PBno采购退单号Varchar30DI-40PBtime采购退货时间DateDI-41PBnum采购退货数量IntDI-42COno顾客订货单Varchar30DI-43COtime顾客订货时间DateDI-44COnum顾客订货数量IntDI-45CSno销售单号Varchar30DI-46CStime销售时间DateDI-47CSnum销售数量IntDI-48CBno顾客退单号Varchar30DI-49CBtime顾客退货时间DateDI-50CBnum顾客退货数量IntDI-51Dnum报损数量IntDI-52Dreason报损原因varchar100DI-53Dno报损单号Varchar10附录
1.2数据结构表1-2__管理系统(汇总统计)数据结构编号数据结构名数据结构含义组成DS-1T商品信息Tno,Ttype,Tname,TPpri__,YSPri__,TproDateTkeepDate,Tweight,TunitDS-2S供应商信息Sno,Sname,Saddress,Sphone,Scount,DS-3W仓库信息Wno,Ws__e,WHs__e,WDs__e,W__nangerDS-4C会员信息Cno,Cname,Cgender,Cbirth,CcreditDS-5PO采购订货单POno,POtime,POnum,Eno,TnoDS-6PI发货单PIno,PItime,PInum,Tno,SnoDS-7PB采购退货单PBno,PBnum,PBtime,PBreason,Tno,EnoDS-8CO顾客订单COno,COtime,COnum,Tno,CnoDS-9CS销售单CSno,CStime,CSnum,,Tno,Cno,EnoDS-10CB顾客退单CBno,CBtime,CBnum,Tno,CnoDS-11D报损信息Dno,Dnum,Dreason,TnoDS-12E职工信息Eno,Ename,Ephone,Esalary注
(1)订货详单可由订货单,商品信息和供应商信息自然连接得到同理发货详单,销售详单,退货详单也由此得到
(2)验货合格货单为采购订货详单/采购退货详单,验货不合格详单与采购退货详单里的商品信息一样
(1)缺货信息实质上与订货单信息的商品信息是一样的附录
1.3数据流表1-3__管理系统数据流(汇总统计)数据流编号数据流名称简述数据流来源数据流去向数据流组成数据流量高峰流量F1订货单公司向供应商订购商品的订货单缺货处理开出的订货单供应商采购订货单550000份/月950000份/月F2发货单供应商发出的__单供应商验__物发货单550000份/月950000份/月F3退货单管员开出的退货单退货供应商采购退货单100份/月500份/月F4缺货信息登记缺少的货物缺货表缺货处理采购订货单F5库存信息查询库存记录库存记录缺货处理,销售商品号+商品名称+数量+单价F6合格货单采购货物中合格货物登记验货库存记录,采购记录,入库发货单-采购退货单F7不合格货单对采购商品不合格的记录并处理验货退货采购退货单F8顾客订货单顾客发出的订货单顾客销售顾客订单5550000份/月500000份/月F9销售单由__给顾客开出的销售单销售顾客销售单500000份/月5550000份/月F10顾客退单顾客不满意的货物单顾客验货售后服务,退货记录顾客退单100份/月300份/月F11销售记录对销售出商品的记录销售或存记录,货物出库,销售表,出库记录销售详单500000份/月5550000份/月F11退货记录顾客不满意的商品售后服务库存记录顾客退详单100份/月500份/月F12会员信息会员信息记录会员信息表,销售顾客信息F13存货记录仓库货物的记录仓库货物货物清查商品号+商品名称+数量+单位+商品进价F14盘点清单对仓库货物的记录制定盘点清单库存记录商品号+商品名称+数量+单位+商品进价F15账单不符单核对不符合账单货物清查制定盘点清单商品号+商品名称+数量+单位+商品进价+不符合原因100份/月500份/月F16报损记录报损货物记录货物清查制定盘点清单,报损详单报损信息注缺货信息和采购订单的商品信息一样附录
1.4数据处理表1-4__管理系统数据处理(汇总统计)处理逻辑编号处理逻辑名称简述输入的数据流处理输出的数据流处理频率P
1.1缺货处理采购部对缺少的货物进行清点F4缺货单来源于缺货表,F5库存信息来源于库存记录对缺少的货物进行采购F1订货单向供应商__1500次/月P
1.2验货采购部对来货进行检验F2__单,来源于供应商发出的采购__单据根据__单验货,确定供应商提供货品的数据,质量等是否合格F6合格货单入库,登记采购记录,修改库存记录F7不合格货单,退货处理1500次/月P
1.3退货不合格商品的处理F7不合格单来源于验货处理通过验货员的检验把不合格商品退回给供应商F3退货单,退回给供应商P
1.4入库采购的合格货品入库F6合格货单根据入库单桨采购货品入库,登记库存和流水账合格货单记入入库单2000次/月P
2.1货物清查仓库货物清查F13存货信息查看那有无损坏商品并进行登记F5账单不符单,F16报损记录100次/月P
2.2制定盘点清单制作盘点清单F5账单不符单,F16报损记录对报损商品进行处理F14盘点清单,记录入库存记录100次/月P
3.1销售服务对顾客购物情况进行开单F4顾客订单F9会员信息F5库存信息根据数据流顾客订单,导购员进行为顾客选货物,消费记账等F4缺货记录,F11销售记录F5销售单5000次/天P
3.2货物出库货物卖出则出库F11销售记录根据卖出货物修改货存信息F11销售记录,修改商品出库记录5000次/天P
3.3售后服务对顾客请求的退货单进行退货确认F10顾客退货单根据数据流顾客退单,主管就顾客提出原因进行退货确认,并修改库存信息F10顾客退货单,对库存记录和退货记录做修改20次/天附录
1.5数据存储表1-5__管理系统数据存储(汇总统计)数据存储编号数据存储名称简述数据存储组成相关联的处理S1采购详单采购商品的详细记录供应商号+商品号+采购数量+采购日期P
1.2S2库存记录商品入库,商品出库,顾客退货及报损后修改当前库存量商品号+仓库号+存储量P
1.1,P
1.2,P
2.2,P
3.1,P
3.3S3销售表商品入库,商品出库及顾客退货的流水帐记录销售日期+定单号+商品号+商品名+数量+单价P
3.1S4缺货表对销售中出现的缺少商品的记录和根据看库存中商品的数量来决定是否增加其昂商品号+商品名称+数量+单价P
1.1,P
3.1S5入库单对检验合格的商品进行入库处理商品号+商品名称+数量+单价P
1.4S6退货记录顾客对商品不满,若同意退货,则记录相应信息并修改库存信息商品号+商品名称+数量+单价+退货原因P
3.3S7出库记录对以__商品进行出库处理,并记录,修改库存信息商品号+商品名称+数量+单价P
3.2S8报损详单对报损的商品记录并修改库存记录商品号+商品名称+数量+单价P
2.1S8会员信息表对顾客信息的记录,判断是否为会员会员号+会员姓名+会员生日+积分P
3.1附录2关系模式说明表2-1商品关系模式说明属性名属性含义数据类型取值范围是否为主属性是否为外键完整性要求Tno商品号varchar10是NotnullTtype商品类型varchar20Tname商品名varchar40NotnullTPpri__商品进价FloatNotnullTSPri__商品售价FloatNotnullTproDate生产日期DateNotnullTkeepDate保质期Varchar10NotnullTunit单位Varchar10Notnull注词关系模式用来存储商品的详细信息表2-2供应商关系模式说明属性名属性含义数据类型取值范围是否为主属性是否为外键完整性要求Sno供应商号varchar10是NotnullSname供应商姓名varchar40NotnullSadress地址varchar50NotnullSphone__Varchar15Scount帐号Varchar30Notnull注词关系模式用来存放供应商的基本信息表2-3职工关系模式说明属性名属性含义数据类型取值范围是否为主属性是否为外键完整性要求Eno职工号Varchar10是NotnullEname职工姓名Varchar20NotnullEphone职工__Varchar15Esalary职工工资Float注词关系模式用来存放职工的基本信息表2-4顾客关系模式说明属性名属性含义数据类型取值范围是否为主属性是否为外键完整性要求Cno会员号Varchar10是NotnullCname会员姓名Varcha20rCgender性别Varchar10男、女Cbirth生日DateCcredit积分Int注此关系模式用来存放顾客的基本信息表2-5仓库关系模式说明属性名属性含义数据类型取值范围是否为主属性是否为外键完整性要求Wno仓库号Vatcha10是NotnullWHs__e最高库存量IntWDs__e最低库存量IntW__nager仓库___Varchar10注;词关系模式用来存放仓库的基本信息表2-6供应商与商品之间的供应关系模式说明属性名属性含义数据类型取值范围是否为主属性是否为外键完整性要求Sno供应商号Varchar10是是NotnullTno商品号Varchar10是NotnullQTY供应数量Int注此关系模式用来存放供应商与商品之间的供应关系表2-7采购关系模式说明属性名属性含义数据类型取值范围是否为主属性是否为外键完整性要求POno订单号Varchar10是NotnullTno商品号Varchar10是NotnullSno供应商号Varchar10是NotnullPOnum采购数IntPOtime采购时间DateEno职工号Varchar10是注此关系模式模式存放采购商品信息表2-8退货关系模式说明属性名属性含义数据类型取值范围是否为主属性是否为外键完整性要求PBno退单号Varchar10是NotnullTno商品号Varchar10是NotnullPBnum退货数IntPBtime退货时间DatePBreason退货原因Varchar50是注此关系模式存放采购退货的商品信息表2-9销售关系模式说明属性名属性含义数据类型取值范围是否为主属性是否为外键完整性要求CSno销售单Varchar10是NotnullCno顾客号Varchar10不是NotnullTno商品号Varchar10是NotnullCSnum销售数量IntCStime销售时间DateEno职工Varchar10是注词关系模式存放销售商品的信息销售关系中顾客号Cno不能设置为外键,因为顾客中只有会员信息,如果设置为外码,那么普通顾客无法__表2-10顾客退货关系模式说明属性名属性含义数据类型取值范围是否为主属性是否为外键完整性要求CBno退货单Varchar10是NotnullTno商品号Varchar10是NotnullCno顾客号Varchar10是NotnullCBnum退货数IntNotnullCBtime退货时间DateNotnullCBreason退货原因Varchar50注此关系模式存放顾客退货的商品信息表2-11库存关系模式说明属性名属性含义数据类型取值范围是否为主属性是否为外键完整性要求Tno商品号Varchar10是是NotnullWno仓库号Varchar10是NotnullWs__e库存量IntNotnull注此关系模式存放商品于仓库之间的存放信息表2-12报损关系模式说明属性名属性含义数据类型取值范围是否为主属性是否为外键完整性要求Dno报损单号Varchar10是Tno商品号Varchar10是NotnullWno仓库号Varchar10是NotnullDnum报损数量IntNotnullDreason报损原因Varchar
(100)注此关系模式存放报损商品信息附录3数据定义语句附录
3.1基本表--建数据库createdatabasesuper__rket--
1、建商品信息表createtableTTnovarchar10pri__rykeyTtypevarchar20Tnamevarchar40notnullTPpri__floatnotnullTSpri__floatnotnullTprodatedatenotnullTkeepDatevarchar10notnullTunitvarchar10notnullcheckTSpri__TPpri__--
2、建供应商信息表createtableSSnovarchar10pri__rykeySnamevarchar40notnullSaddressvarchar100notnullSphonevarchar15Scountvarchar30notnull--
3、建职工信息表createtableEEnovarchar10pri__rykeyEnamevarchar20notnullEphonevarchar15Esalaryfloat--
4、建顾客信息表createtableCCnovarchar10pri__rykeyCnamevarchar20Cgendervarchar2checkCgender=男orCgender=女CbirthdateCcreditint--
5、建仓库信息表createtableWWnovarchar10pri__rykeyWHs__eintWDs__eintW__nagervarchar10checkWHs__eWDs__e--checkWHs__eWDs__e涉及表的俩行信息故为表级约束--
6、建供应商与商品之间供应信息表createtableSTSnovarchar10Tnovarchar10QTYintpri__rykeySnoTnoforeignkeySnoreferen__sSSnoforeignkeyTnoreferen__sTTno--
7、建采购信息表createtablePOPOnovarchar10Tnovarchar10Snovarchar10POnumIntPOtimedateEnovarchar10pri__rykeyPOnoTnoSnoforeignkeySnoreferen__sSSnoforeignkeyTnoreferen__sTTno--
8、采购退货信息表createtablePBPBnovarchar10Tnovarchar10PBnumintPBtimedatePBreasonvarchar50pri__rykeyPBnoTnoforeignkeyTnoreferen__sTTno--
9、建销售信息表createtableCSCSnovarchar10Cnovarchar10Tnovarchar10CSnumintCStimedateEnovarchar10pri__rykeyCSnoCnoTnoforeignkeyTnoreferen__sTTno--
10、顾客退货信息表createtableCBCBnovarchar10Cnovarchar10Tnovarchar10CBtimedateCBnumintCBreasonvarchar50pri__rykeyCBnoCnoTnoforeignkeyTnoreferen__sTTnoforeignkeyCnoreferen__sCCno--
11、商品与仓库之间的库存信息表createtableTWTnovarchar10Wnovarchar10Ws__eintpri__rykeyTnoWnoforeignkeyTnoreferen__sTTnoforeignkeyWnoreferen__sWWno--
12、报损商品信息表createtableDDnovarchar10Tnovarchar10Wnovarchar10DnumintDreasonvarchar50pri__rykeyDnoTnoWnoforeignkeyTnoreferen__sTTnoforeignkeyWnoreferen__sWWno附录
3.2视图--
1、入库商品信息表,来自采购商品减去退货部分的商品createviewenter_WTnoPOnumasselectPB.TnoPOnum=POnum-PBnumfromPBPOwherePO.Tno=PB.Tno--
2、入库商品详细信息表createviewenter_detailTnoPOnumTnameTPpri__TSpri__TkeepDateTunitasselectT.TnoPOnumTnameTPpri__TSpri__TkeepDateTunitfromenter_WTwhereenter_W.Tno=T.Tno--
3、采购退货详单createviewP_backTnoPBnumTnameTPpri__TkeepDateTunitPBreasonasselectT.TnoPBnumTnameTPpri__TkeepDateTunitPBreasonfromPBTwherePB.Tno=T.Tno--
4、销售商品信息,来自销售部分减去顾客退货部分createviewsaleTnoCSnumasselectCS.TnoCSnum=CSnum-CBnumfromCSCBwhereCS.Tno=CB.Tno--
5、销售商品详细信息createviewsale_detailTnoCSnumTnameTSpri__TkeepDateTunitasselectT.TnoCSnumTnameTSpri__TkeepDateTunitfromTsalewhereT.Tno=sale.Tno--
6、顾客退货详单createviewCB_detailTnoCBnumTnameTSpri__TkeepDateTunitCBreasonasselectT.TnoCBnumTnameTSpri__TkeepDateTunitCBreasonfromCBTwhereCB.Tno=T.Tno--
7、库存商品详情,商品与库存信息的自然连接createviewW_s__eWnoTnoTnameWs__eTPpri__TSpri__TkeepDateTunitasselectWnoT.TnoTnameWs__eTPpri__TSpri__TkeepDateTunitfromTWTwhereTW.Tno=T.Tno--
8、报损详单,商品信息与报损记录的自然连接createviewD_detailWnoTnoTnameDnumTPpri__TSpri__TkeepDateTunitDreasonasselectWnoT.TnoTnameDnumTPpri__TSpri__TkeepDateTunitDreasonfromDTwhereT.Tno=D.Tno--
9、商品信息createviewT_detailasselectT.TnoTnameTtypeTSpri__tproDateTkeepDateSnameSaddressSphonefromTSSTwhereT.Tno=ST.TnoandS.Sno=ST.SnodropviewT_detail--
10、商品的销售量、销售利润gocreateviewT_saleTnototal_numprofitasselecttop100per__ntTno=T.Tnototal=SUMCSnumprofit=SUMCSnum*T.TSpri__-TPpri__fromsaleTwhereT.Tno=sale.TnogroupbyT.Tno附录
3.3存储过程--
1、输入商品号,查询该商品的销售情况createpro__dureno_sales@Tnovarchar40asselectT.Tno商品号sumCSnum销售量SUMCSnum*T.TSpri__销售总额SUMCSnum*T.TSpri__-TPpri__利润fromsale_detailTwhereT.Tno=sale_detail.TnogroupbyT.Tnoh__ing@Tno=T.Tnodroppro__dureno_sales--
2、输入商品号,查询该商品的库存量droppro__dureno_s__ecreatepro__dureno_s__e@Tnovarchar10asselectWno库存号Tname商品名Ws__e库存量Tunit单位TSpri__售价fromW_s__ewhereTno=@Tnoexecno_s__eSPFG000008--
3、输入商品名,查询商品的详细信息,供应商、关于地址等createpro__durename_detail@Tnamevarchar40asselectT.Tno商品号TSpri__商品售价TSpri__商品tproDate生产日期TkeepDate保质期Sname供应商Saddress地址Sphone供应商__fromTSSTwhereT.Tno=ST.TnoandS.Sno=ST.Snoand@Tname=Tnamedroppro__durename_detailexecname_detail潘婷洗发水--
4、输入职工号查询职工号,删除相应的记录createpro__duredelete_E@Enovarchar40asdeletefromEwhere@Eno=Enodropprocdelete_Eexecdelete_E20013301--
5、输入顾客号,删除顾客信息createprocdelete_C@Cnovarchar40asdeletefromCwhere@Cno=Cnoexecdelete_C1001--
6、输入商品号,查看该商品的损坏情况createprocT_destory@Tnovarchar10asselectTno商品号SUMDnum损坏数fromD_detailgroupbyTnoh__ing@Tno=Tno--
7、输入顾客号,查询该顾客的积分createprocselect_cridit@Cnovarchar10asselectCnoCnameCcreditfromCwhereCno=@Cno--
8、输入商品号查询该商品在某一时期的销售情况dropprocselect_salecreateprocselect_sale@Tnovarchar10@starTimedate@endTimedateasselectTno商品号sumCSnum销售量SUMCSnum*TSpri__销售总额fromsale_detailwhereTnoinselectTnofromCSwhereCStimebetween@starTimeand@endTimegroupbyTnoh__ingTno=@Tno附录
3.4触发器--
1、当销售出商品时,就修改库存商品信息CREATETRIGGERt1ONCSFORINSERTASdeclare@Tnovarchar10@CSnumintselect@Tno=Tno@CSnum=CSnumfrominsertedupdateTWsetWs__e=Ws__e-@CSnumwhereTno=@Tnodroptriggert1--
2、当销售出商品时,对顾客号进行查询,如果是会员则对会员的积分进行修改,普通顾客则不予以处理CREATETRIGGERt2ONCSFORINSERTASdeclare@Cnovarchar10@Tnovarchar10@TSpri__float@CSnumintselect@Tno=sale_detail.Tno@TSpri__=TSpri__@CSnum=sale_detail.CSnum@Cno=Cnofrominsertedsale_detailwhereinserted.Tno=sale_detail.TnoupdateCsetCcredit=Ccredit+@Tspri__*@CSnumwhereCno=@Cnodroptriggert2--
3、当采购进货物时向PO增加一条记录,修改库存信息(TW增加一条信息)createtriggert3onPOforinsertasdeclare@Tnovarchar10@POnumintselect@Tno=Tno@POnum=POnumfrominsertedupdateTWsetWs__e=Ws__e+@POnumwhereTno=@Tnodroptriggert3--
4、当采购退货时向PB增加一条记录,修改库存信息(TW减少一条信息)createtriggert4onPBforinsertasdeclare@Tnovarchar10@PBnumintselect@Tno=Tno@PBnum=PBnumfrominsertedupdateTWsetWs__e=Ws__e-@PBnumwhereTno=@Tnodroptriggert4--
5、顾客退货(CB增加一条记录),修改库存记录(库存信息增加)createtriggert5onCBforinsertasdeclare@Tnovarchar10@CBnumintselect@Tno=Tno@CBnum=CBnumfrominsertedupdateTWsetWs__e=Ws__e+@CBnumwhereTno=@Tnodroptriggert5--
6、当报损信息D增加信息时,对库存记录作更改createtriggert6onDforinsertasdeclare@Tnovarchar10@Dnumintselect@Tno=Tno@Dnum=DnumfrominsertedupdateTWsetWs__e=Ws__e-@DnumwhereTno=@Tno附录4数据操纵验证分为数据插入,数据删除,数据更新和数据查询四类
4.1在SQLServer__nagementstudio中验证--
1、增加销售记录CSinsertintoCSvalues00000000000000SPFG000001102013-7-5200013304--
2、增加会员信息CinsertintoCvalues1085是李红光男1988-2-30--
3、更新员工信息updateEsetEsalary=4000whereEno=20013302--
4、删除员工信息deletefromEwhereEno=20013302--
5、查询潘婷洗发水的损坏情况select*fromD_detailwhereTname=潘婷洗发水
4.2在PLSQLDeveloper中进行验证--
1、查询SPFG000001号商品的销售详情select*fromsale_detailwhereTno=SPFG000001;附录5存储过程与触发器功能的验证
5.1在SQLServer__nagementstudio中
5.
1.1触发器验证--验证触发器t1insertintoCSvalues0000000021001SPFG00000192012-12-1220013301销售前库存信息销售后库存信息增加销售信息--验证触发器t2insertintoCSvalues000000005_____0SPFG00000192012-12-1220013301买东西前买东西后--验证触发器t3insertintoPOvalues000000005SPFG00000188800092012-12-1220013301采购后库存信息采购记录--验证触发器t4insertintoPBvalues000000001SPFG00000192012-12-12简直糟糕透了!退货后:退货记录:--验证触发器t5insertintoCBvalues0000021003SPFG0000012012-12-129糟糕,尺码太大!执行结果:顾客退货后的库存记录:顾客退货记录:--验证触发器t6insertintoDvaluesSPFG00000189放太久,过期了!增加后的库存记录增加的报损信息
5.
1.2存储过程的验证--
1、验证存储过程no_salesexecno_salesSPFG000001--
2、验证存储过程no_s__erexecno_s__eSPFG000008--
3、验证存储过程name_detailexecname_detail潘婷洗发水--
4、验证存储过程delete_Eexecdelete_E20013305--
5、验证存储过程delete_Cexecdelete_C1008--
6、验证存储过程T_destoryexecT_destorySPFG000001--
7、验证存储过程select_criditexecselect_cridit1008--
8、验证存储过程select_saleexecselect_saleSPFG0000012012-12-122013-7-
55.2在PLSQLDeveloper中进行验证
5.
2.1存储过程的验证--
1、输入商品号,查询该商品的销售情况、利润createorrepla__pro__dureno_salesTnoinT.Tno%typeTnumoutnumberTsaleoutnumberTprofitoutnumberisbeginselectsumCSnum销售量SUMCSnum*T.TSpri__销售总额SUMCSnum*T.TSpri__-TPpri__利润intoTnumTsaleTprofitfromsale_detailTwhereT.Tno=sale_detail.Tno;dbms_output.put_lineTno||---||Tnum||---||Tsale||---||Tprofit;end;验证declareTnoT.Tno%type:=SPFG000001;Tnumnumber;Tsalenumber;Tprofitnumber;beginno_salesTnoTnumTsaleTprofit;end;验证结果--
2、输入商品号,查询该商品的库存量createorrepla__pro__dureno_s__etTnoinW_s__e.Tno%typeWnooutW_s__e.Wno%typeTnameoutW_s__e.Tname%typeWs__eoutW_s__e.ws__e%typeTunitoutW_s__e.Tunit%typeTSpri__outW_s__e.TSpri__%typeisbeginselectWnoTnameWs__eTunitTSpri__intoWnoTnameWs__eTunitTSpri__fromW_s__ewhereTno=tTno;dbms_output.put_linetTno||---||Wno||---||Tname||---||Ws__e||---||Tunit||---||TSpri__;end;验证declaretTnoW_s__e.Tno%type:=SPFG000001;WnoW_s__e.Wno%type;TnameW_s__e.Tname%type;Ts__eW_s__e.ws__e%type;TunitW_s__e.Tunit%type;TSpri__W_s__e.TSpri__%type;beginno_s__etTnoWnoTnameTs__eTunitTSpri__;end;验证结果--
3、输入商品名,查询商品的详细信息,供应商、关于地址等createorrepla__pro__durename_detatTnoinT.TNO%typetTnameoutT.Tname%typetTSpri__outT.Tspri__%typetTprodateoutT.TPRODATE%typetTkeepDateoutT.Tkeepdate%typetSnameoutS.SNAME%typetSaddressoutS.SADDRESS%typetSphoneoutS.SPHONE%typeisbeginselectT.TnameTSpri__TproDateTkeepDateSnameSaddressSphoneintotTnametTSpri__tTproDatetTkeepDatetSnametSaddresstSphonefromTSSTwhereT.Tno=ST.TnoandS.Sno=ST.SnoandtTno=T.TNO;dbms_output.put_linetTno||---||tTname||---||tTSpri__||---||to_chartTproDate||---||tTkeepDate||---||tSname||---||tSaddress||---||tSphone;end;declaretTnoT.TNO%type:=SPFG000001;tTnameT.Tname%type;tTSpri__T.Tspri__%type;tTprodateT.TPRODATE%type;tTkeepDateT.Tkeepdate%type;tSnameS.SNAME%type;tSaddressS.SADDRESS%type;tSphoneS.SPHONE%type;beginname_detatTnotTnametTSpri__tTproDatetTkeepDatetSnametSaddresstSphone;end;验证结果--
4、创建存储过程,查询类型为“生活用品”的商品信息以及库存信息createorrepla__pro__durep3istTnoT.TNO%type;tTnameT.TNAME%type;tTSpri__T.TSPRI__%type;tTunitT.TUNIT%type;tWs__eTW.WS__E%type;cursorc1isselectT.TnoTnameTSpri__TunitWs__efromTTWwhereT.Tno=TW.TnoandTtype=生活用品;beginopenc1;loopfetchc1intotTnotTnametTSpri__tTunittWs__e;exitwhenc1%notfound;dbms_output.put_linetTno||---||tTname||---||tTSpri__||---||tTunit||---||tWs__e;endloop;closec1;end;验证declaretTnoT.TNO%type;tTnameT.TNAME%type;tTSpri__T.TSPRI__%type;tTunitT.TUNIT%type;tWs__eTW.WS__E%type;beginp3;end;验证结果--
5、给出商品号,查询在某一时期商品的销售情况createorrepla__pro__dureselect_salettnoT.TNO%typestartTimedateendTimedateistsumnumber;salenumber;beginselectsumCSnumintotsumfromsale_detailwhereTno=ttnoandTnoinselectTnofromCSwhereCStimebetweenstartTimeandendTimegroupbyTno;selecttsum*TSpri__intosalefromTwhereTno=ttno;dbms_output.put_linetTno||---||tsum||---||sale;end;验证declarettnoT.TNO%type:=SPFG000001;startTimedate:=to_date2012-12-12yyyy-mm-dd;endTimedate:=to_date2013-7-5yyyy-mm-dd;tsumnumber;salenumber;ttspri__number;beginselect_salettnostartTimeendTime;end;验证结果
5.
2.2触发器的验证--
1、当销售出商品时,就修改库存商品信息createorrepla__triggert1afterinsertonCSforeachrowbeginupdateTWsetWs__e=Ws__e-:new.CSnumwhereTW.Tno=:new.Tno;end;验证begininsertintoCSvalues0000000171008SPFG00000115to_date2013-7-10yyyy-mm-dd200013305;commit;end;验证结果--
2、当销售出商品时,对顾客号进行查询,如果是会员则对会员的积分进行修改,普通顾客则不予以处理createorrepla__triggert2afterinsertonCSforeachrowdeclaretTSpri__T.TSPRI__%type;beginselectTSpri__intotTSpri__fromTwhereT.TNO=:new.Tno;updateCsetCcredit=Ccredit+tTspri__*:new.CSnumwhereCno=:new.Cno;end;begininsertintoCSvalues0000000191008SPFG00000110to_date2013-7-11yyyy-mm-dd200013305;commit;end;验证结果触发前C表触发后。