1、超市商品进销存管理系统数据库设计杭州电子科技大学数据库课程设计课程设计手册超市进销存管理系统数据库设计姓名学号设计小组长其他设计小组成员指导教师设计时间至杭州电子科技大学管理学院编制引言目前,无论是超市还是公司企业对于货物都实行了信息化管理,以提高管理水平和工作效率,同时也可以最大限度地减少手工操作带来的错误。于是,进销存管理信息系统便应运而生。在工厂中,产品的进销存涉及产品原料的采购、库存、投入生产、报损,甚至有时涉及到销售,同时,对于产品也有相应的生产、库存、销售、和报损等环节。在其他非生产性单位,如超市、商店等,则主要涉及到进货、库存、销售和报损4个方面。超市进销存管理的对象是很多的,广
2、而言之,它可以包括:商业、企业超市的商品,图书馆超市的图书,博物馆超市的展品等等。在这里本文仅涉及工业企业的产品超市。超市进销存管理系统按分类、分级的模式对仓库进行全面的管理和监控,缩短了超市信息流转时间,使企业的物资管理层次分明、井然有序,为采购、销售提供依据;智能化的预警功能可自动提示存货的短缺、超储等异常状况;系统还可进行材料超市ABC分类汇总,减少资金积压。完善的超市管理功能,可对企业的存货进行全面的控制和管理,降低超市成本,增强企业的市场竞争力。一、需求分析1.1处理对象及组织如下:商品:商品编号、商品名称、商品单价、生产日期、保质期、商品重量、商品规格供应商:应商名称、供应商地址、
3、供应商帐号、供应商传真、供应商电话、交货日期、订单号进销存:库存号、现有库存、最高库存、最低库存、盈亏数量、联系人(1)针对超市进销存管理系统,分别对采购部门、销售部门和库存保管部门进行详细的调研和分析,总结出如下的需求信息:商品按类管理,所以需要有一商品类型信息。如果一个商品类型存在商品,或存在下级商品类型,则该类型不可删除。需要记录供应商品信息。在涉及商品数量的地方,需要知道商品的库存地方。商品销售信息单中要包含登记商品销售数量、单价等信息。在进货信息中要包含商品供应商等信息。商品报损要有报损原因。进货、销售、报损操作要有相应信息管理员。只有管理员登录之后才可以使用系统。默认的管理员不可以
4、删除。进货、销售、库存、报损信息都要可以添加、修改、删除、分类查找。当进行进货、销售和报损操作后,能相应更新库存。(2)经上述系统功能分析和需求总结,考虑到将来功能的扩展,设计如下的数据项和数据结构:商品类型信息,包括数据项有:商品信息,包括的数据项有:商品编号、商品名称、商品的的生产日期、库存量等。商供应商信息,包括供应商号、供应商名称、联系电话等。进货信息,包括进货商品号、数量、规格、单价等。销售信息,包括销售商品、数量、单价等。报损信息,包括报损商品、数量、原因、登记时间等。员工信息,包括员工号、姓名、职称等1.2信息处理及系统功能该系统由商品信息管理模块,员工信息管理模块,供应商信息管
5、理模块,仓库信息管理模块等可以完成商品的进销存和查询,更改等的基本操作。并根据客户的要求完善系统的功能需求。系统功能有:(1)商品信息的管理包括商品基本信息的新建、修改和删除,商品的编号、商品名称、商品规格等(2)供货商信息管理:包括供货商信息的新建、修改和删除和供应商的名称、供应商代号、供应商地址等。(3)员工信息管理:系统管理员的添加、删除和修改密码和员工姓名、性别、职称、工号等。(4)仓库信息管理:仓库号、库存商品号、商品数量等1.3数据库系统开发环境数据库系统开发环境需求决定以windowsXP为开发平台,采用选择功能强大的MicrosoftSQLServer为开发工具。1.4该业务的
6、流程图通过对超市管理系统的要求和分析、处理,弄清楚了进销存各个系统的环节需求。清楚了环节所需要的信息内容、流向、处理、提供信息的信息表形态等,把分析系统的相关用“业务流程图”表示出来。具体分为进货业务,销售业务,业务流程图如下:以下是某超市管理系统的业务流程的分析(1)某超市管理系统进货业务流程图为(2)某超市管理系统销售业务流程图图12为某超市进销存管理系统的销售业务流程图1.5某超市管理系统数据流i程图分析数据流程图是一种能全面地描述信息系统逻辑模型的主要工具,它可以用少数几种符号综合地反映出信息在系统中的流动、处理和存储情况。根据上面业务流程图的描述,从系统的科学性、管理的合理性、实际运
7、行的可行性角度出发,自顶向下对系统进行分解,导出了超市销售管理系统的顶层数据流程图、第二层数据流程图和第三层数据流程图。(1)某超市管理系统顶层数据流程图图13为某超市管理系统顶层数据流程图上图是超市管理系统的顶层数据流程图。由业务流程图确定系统开发的外部实体即系统数据的来源与去处,从而确定了整个系统的外部实体和数据流,在顶层数据流程图中,把超市管理系统作为一个处理环节,与实体间传递信息,简单的表达系统的各部分功能。(1) 第一层数据流程确定系统的主要处理功能,可以将系统分为进货管理、库存管理、销售管理等几部分。再确定各个输入和输出的数据流的以及与之相关的数据结构,为各个数据流、报表命名并编码
8、,从而得到超市销售进销存系统的第一层数据流程图,如图上图所示(2)第二层数据流程图再将第一层数据流程图分解就可得到第二层流程图。其中某些数据项处理可分解为多个处理过程。在本系统中有销售模块、进货管理。每一部分都可以分解为第二层流程图。具体的分解情况如下(5)数据字典数据流程图表达了数据和处理的关系,数据字典则是系统中各类数据描述的集合,是进行详细的数据收集和数据分析所获得的主要成果。数据字典在数据库设计中占有很重要的地位。数据字典通常包括数据项、数据结构、数据流、数据存储和处理过程五个部分。其中数据项是数据的最小组成单位,若干个数据项可以组成一个数据结构,数据字典通过对数据项和数据结构的定义来
9、描述数据流、数据存储的逻辑内容数据项如表一数据项编号数据项名称备注类型及宽度完整性约束I1TID标识商品的代号Char(8)I2Tname某商品的名称Char(14)I3TPrice某商品的价值IntI4Tproducedate某商品生产的时间Char(6)I5TKeepdate某商品的保存时间Char(2)I6TWeight某商品的重量Char(8)I7TProducename某商品的生产公司Char(14)I8TNorms某商品长宽Char(6)I9SName某商品的公司名称Char(12)I10SAddress某商品生产的地方Char(16)I11SCodename某供应商的产品代号Ch
10、ar(8)I12SFax与供应商的传真联系方式Char(11)I13STele联系供应商的电话方式Char(11)I14SDate定货单位要求的供货日期Char(12)I15SOrder发出订单的单据号Char(8)I16YID标识公司员工的代码Char(6)I17Yname公司员工的姓名Char(6)I18YSex公司员工的性别Char(1)I19YAge公司员工的年龄Char(2)I20YZhichen公司的员工的职位名称Char(6)I21KNO存储商品的库存号char(2)I22KNum某种商品当前的库存量Char(4)I23KHnum商品的库存上限CharI24KDnum商品的库存下
11、限CharI25KPnum盘盈盘亏数量IntI26KPerson与定货发生联系的供应商负债人Char(8)二、概念设计2.1.1分E-R图建立根据第二层数据流程图得到三个分E-R图图21为某超市进货的ER图2.1.2全局/整体E-R图通过各个分E-R图之间的联系,合成全局E-R图。由于在做局部ER图时,只是针对局部的ER图考虑,导致各个ER图之间有很多不一致的地方,造成在合并局部ER图生成全局ER图时有很多的冲突发生。而在编写商品信息时,考虑商品的数目很多,如果只用数字标号不好区分也不容易查询,就用的字母加数字来编号,所以在合并的时候造成的冲突,最后把订单中的商品编号也改成了字符型的,消除了冲
12、突。如图下所示图24为全局/整体E-R图三、逻辑设计2.2.1建立关系模式ER图转换为关系模型实际上就是要将实体性、实体的属性和实体性之间的联系转换为关系模式,这种转换一般遵循如下规则:一个实体型转换为一个关系模式。实体的属性就是关系的属性,实体的码就是关系的码。对于实体型见的联系则有以下不同的情况:(1)一个1:1的联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。如果转换为一个独立的关系模式,则与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,每个实体的码均是该关系的候选码。如果与某一端实体对应的关系模式合并,则需要在该关系模式的属性中加入另一个关系模式的码
13、和联系本身的属性。(2)一个1:n联系可以转换为一个独立的关系模式看,也可以与n端对应的关系模式合并。如果转换为一个独立的关系模式,则与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码味n端实体的码。(3)一个m:n联系转换为一个关系模式。与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,各实体的码组成关系的码或关系吗的一部分。根据以上规则将本系统的ER图转换为关系模式(关系的码用下划线标出)有一个超市管理系统数据库,包括T、S、Y、K、kt、TY、SK、TSYK个关系模式:T(TID,Tname,TPrice,Tproducedate,TKeepdate,T
14、Weight,TNorms,TProducename);S(SCodename,SName,SAddress,SFax,Stele,SDate,SOrder);Y(YID,YName,YSex,YAge,YZhichen);K(KNo,KNum,KHnum,KDnum,KPnum,KPerson);KT(KNo,TID,QTY)TY(TID,YID,QTY);SK(SNo,KNo,CQTY);TSYK(TID,SName,YID,KNo,WQTY)1. 商品信息表T由商品编号(TID)、商品名称(Tname)、商品单价(TPrice)、生产日期(Tproducedate)、保质期(TKeepd
15、ate)、商品重量(TWeight)、商品规格(TNorms)组成;2. 供应商信息表S由供应商名称(SName)、供应商地址(SAddress)、供应商帐号(SCodename)、供应商传真(SFax)、供应商电话(Stele)、交货日期(SDate)、订单号(SOrder);3. 员工信息表Y由员工编号(YID)、员工姓名(YName)、员工的性别(YSex)、员工的年龄(YAge)、员工的职称(YZhichen);4. 库存信息表K由库存号(KNo)现有库存(KNum)、最高库存(KHnum)、最低库存(KDnum)、盈亏数量(KPnum)、联系人(KPerson)组成;5. KT表是由
16、存储商品的库存号(KNO),标识商品的代号(TID),某商品的数量(QTY)组成;6. YT由标识公司员工的代码(YID ),标识商品的代号(TID),销售的商品数量(CQTY)组成;7. ST供应商商品表由某供应商的产品代号(SCodename),标识商品的代号(TID),8. TSYK供应商商品员工仓库表由商品编号(TID)、供应商名称(SName)、库存号(KNo)、员工编号(YID)实际的商品数量(WQTY)组成;商品关系模式表数据项名称类型长度(精度)完整性约束备注TIDChar8NOTNULL标识商品的代号PrimarykeyTnameChar14NOTNULL某商品的名称TPri
17、ceIntNOTNULL某商品的价值TproducedateChar6NOTNULL某商品生产的时间TKeepdateChar2NOTNULL某商品的保存时间TWeightChar8NOTNULL某商品的重量TNormsChar12某商品长宽TProducenameChar14NOTNULL某商品的生产公司供应商关系模式表数据项名称类型长度(精度)完整性约束备注SCodenameChar8NOTNULL某供应商的产品代号PrimarykeySNameChar12NOTNULL某商品的公司名称SAddressChar16NOTNULL某商品生产的地方SFaxChar11NOTNULL与供应商的传
18、真联系方式STeleChar11NOTNULL联系供应商的电话方式SDateChar12NOTNULL定货单位要求的供货日期SOrderChar8NOTNULL发出订单的单据号员工关系模式表数据项名称类型长度(精度)完整性约束备注YIDchar6NOTNULL标识公司员工的代码primarykeyYnamechar6NOTNULL公司员工的姓名YSexchar1NOTNULL公司员工的性别YAgechar2NOTNULL公司员工的年龄YZhichenchar6NOTNULL公司的员工的职位名称仓库关系模式表数据项名称类型长度(精度)完整性约束备注KNOchar2NOTNULL存储商品的库存号p
19、rimarykeyKNumChar4NOTNULL某种商品当前的库存量KHnumCharNOTNULL商品的库存上限KDnumCharNOTNULL商品的库存下限KPnumIntNOTNULL盘盈盘亏数量KPersonChar8NOTNULL与定货发生联系的供应商负债人仓库商品关系模式数据项名称类型长度(精度)完整性约束备注KNOchar2NOTNULL存储商品的库存号TIDchar8NOTNULL标识商品的代号QTYintNOTNULL某商品的数量员工商品关系模式数据项名称类型长度(精度)完整性约束备注YIDChar6NOTNULL标识公司员工的代码TIDChar12NOTNULL标识商品的
20、代号CQTYintNOTNULL销售的商品数量供应商商品表数据项名称类型长度(精度)完整性约束备注SCodenameChar8NOTNULL某供应商的产品代号TIDChar8NOTNULL标识商品的代号GQTYChar6NOTNULL供应商品数量供应商商品员工仓库表数据项名称类型长度(精度)完整性约束备注SCodenameChar8NOTNULL某供应商的产品代号YIDChar6NOTNULL标识公司员工的代码KNOchar2NOTNULL存储商品的库存号TIDChar8NOTNULL标识商品的代号WQTYintNOTNULL实际的商品数量四、物理结构设计通常关系数据库物理设计的内容主要包括:
21、(1)为关系模式选择存取方法;(2)设计关系、索引等数据库文件的物理存储结构。物理设计的方法:(1)首先对要运行的事物进行详细分析,获得选择物理结构设计所需要的参数。(2)其次,要充分了解所用RDBMS的内容特征,特别是系统提供的存取方法和存取结构。建立索引的原则:(1)如果一个(或)一组属性经常在查询条件中出现,则考虑在这个(或这组)属性上建立索引(或则会索引);(2)如果一个属性经常作为最大值和最小值等聚集函数的参数,则考虑在这个属性上建立索引;(3)如果一个(或一组)属性经常在连接操作的连接条件中出现,则考虑在这个(或这组)属性上建立索引;五、数据实施和维护1. 创建表(1)创建数据库c
22、reatedatabase超市管理系统数据库(2)创建基本表createtableT(TIDChar(8)primarykey,TProducenameChar(14)NOTNULL,TnameChar(14)NOTNULL,TPriceIntNOTNULL,TproducedateChar(6)NOTNULL,TKeepdateChar(2)NOTNULL,TWeightChar(8)NOTNULL,TNormsChar(12),)createtableS(SCodenameChar(8)primarykey,SNameChar(12)NOTNULL,SAddressChar(16)NOTN
23、ULL,SFaxChar(11)NOTNULL,STeleChar(11)NOTNULL,SDateChar(12)NOTNULL,)createtableY(YIDChar(6)primarykey,YnameChar(6)NOTNULL,YSexChar(1)NOTNULL,YAgeChar(2)NOTNULL,YZhichenChar(6)NOTNULL,)createtableK(KNOchar(2)primarykey,KNumChar(4)NOTNULL,KHnumChar(112)NOTNULL,KDnumChar(12)NOTNULL,KPnumIntNOTNULL,KPers
24、onChar(8)NOTNULL,)createtableTY(KNOchar(8)NOTNULL,TIDChar(8)NOTNULL,QTYchar(6)NOTNULL,)createtableST(SCodenameChar(8)NOTNULL,TIDChar(8)NOTNULL,GQTYchar(6)NOTNULL,)createtableKT(KNOchar(2)NOTNULL,TIDChar(8)NOTNULL,QTYintNOTNULL,)createtableTSYK(SCodenameChar(8)NOTNULL,YIDChar(6)NOTNULL,KNOchar(2)NOTN
25、ULL,TIDChar(8)NOTNULL,WQTYintNOTNULL,)(3)创建视图购买商品信息视图CREATEVIEWVIEW_VTASSELECTTID,Tname,TPriceFROMT供应商信息视图CREATEVIEWVIEW_VSASSELECTSName,SAddress,SCodename,Stele,SDateFROMS仓库信息视图CREATEVIEWVIEW_VCASSELECTKNO,KNum,KHnum,KDnumFROMK员工信息视图CREATEVIEWVIEW_DHASSELECTYname,Yage,YzhichenFROMYWHEREYID=P006(4)创
26、建触发器在商品信息表上创建触发器提醒信息管理员相应的操作createtriggertri_delete_teleonTfordeleteasprint请在仓库中删除此商品在仓库信息表上建立触发器createtriggertri_S_updateonKforupdateasif(selectTNamefromTwhereTID=F650)=0print此商品存放仓库已满在供应商信息表上建立触发器createtriggertri_update_SteleonSforupdateas if(selectTIDfromTwhereTID=I112)100print存货不足请及时进货(5)建立索引Cre
27、ateuniqueindexIX_TIDonT(TID);CreateuniqueindexIX_SCodenameonS(SCodename);CreateuniqueindexIX_YIDonY(YID);CreateuniqueindexIX_KNOonK(KNO);(6)建立储存过程1、商品信息查询的存储过程:createprocedureT_TT_IDchar(15),T_namechar(30),T_Prochar(18)asselect*fromTwhereTID=T_ID2、员工信息查询的存储过程:createprocedureY_YY_IDChar(16),Y_nameCha
28、r(16),Y_SexChar(1),Y_AgeChar(12),Y_ZhichenChar(6)asselect*fromYwhereYID=Y_ID3、供应商信息查询存储过程:createprocedureS_SS_CodenameChar(8),S_NameChar(12),S_AddressChar(16),S_FaxChar(11),S_TeleChar(11)asselect*fromSwhereSCodename=S_Codename4、库存信息查询的存储过程:createprocedureK_KK_NOchar(2),K_NumChar(4),K_PnumInt,K_PersonChar(8)asselect*fromKwhereKNO=K_NO六、总结(心得)(写出本次设计中遇到的问题以及解决的方法;进一步设想等)