1、33数据库课程设计报告主要内容:(1)管理和统计库存商品(2)查询销售、库存和进货情况,并能打印详细信息基本要求:本系统采用C/S模式作为开发模式(1)大大提高超市的运作效率;(2)通过全面的信息采集和处理,辅助提高超市的决策水平;(3)使用本系统,可以迅速提升超市的管理水平,为降低经营成本, 提高效益,增强主要参考资料等:数据库系统概论 作者:王珊 萨师煊 出版社:高等教育出版社SQL Server2005中文版关系数据库基础与实践教程作者:周峰 出版社:电子工业出版社。SQL Server数据库开发实例精粹 作者:徐国智 汪孝宜 等 出版社:电子工业出版社。目 录1、开发背景42、功能描述
2、43、业务流程分析54、数据流程分析74.1、数据流程图74.2、数据字典97.1、数据项的描述.77.1、销售收银处理数据字典.77.1、进货管理数据字典.77.1、库存管理数据字典.75、概念模型设计206. 逻辑模型设计和优化227. 物理设计和实施247.1、创建基本表.257.1、创建视图.307.1、创建存储过程.328、课程设计心得体会34参考文献341、开发背景90年代中期,由于Internet 的迅速普及,使Intranet成为Internet技术在企业管理信息系统中的应用和延伸,形成了集计算机,计算机网络、数据库、分布式计算等于一体的信息技术综合体,它打破了时间和地域的界限
3、使信息交流变得快捷、准确,为建立现代企业管理信息系统提供了充足的条件。企业信息管理系统在此基础上延伸、扩展,使之上下、内外全面贯通。引入Internet后,形成了新型的浏览器/服务器(Browser/Server)结构,而传统的客户机/服务器(Client/Server)结构在这方面就远不及B/S结构。21世纪,商店的竞争也进入到了一个全新的领域,竞争已不再是规模的竞争,而是技术的竞争、管理的竞争、人才的竞争。技术的提升和管理的升级是超市业的竞争核心。零售领域目前呈多元发展趋势,多种业态:超市、仓储店、便利店、特许加盟店、专卖店、货仓等相互并存。如何在激烈的竞争中扩大销售额、降低经营成本、扩
4、大经营规模,成为超市营业者努力追求的目标。2、功能描述针对超市的特点,为了帮助超市解决现在面临的问题,提高小型超市的竞争力,我们将开发以下系统:小商店管理系统(基本功能)1.进货管理: 根据销售情况及库存情况,自动制定进货计划(亦可手工制定修改),可以避免盲目进货造成商品积压。 按计划单有选择性地进行自动入库登记。 综合查询打印计划进货与入库记录及金额。2.销售管理: 商品正常销售、促销与限量、限期及禁止销售控制。 综合查询各种销售明细记录、各地收银员收银记录以及交结账情况等。 按多种方式统计生成销售排行榜,灵活察看和打印商品销售日、月、年报表。3.库存管理: 综合查询库存明细记录。 库存状态
5、自动告警提示。如库存过剩、少货、缺货等。软件为您预警,避免库存商品积压损失和缺货。 库存自动盘点计算。3、业务流程分析(业务流程图)业务流程图模块子系统结构商品录入快速商品录入支持条形码扫描功能描述:商品录入子系统要求能快速录入商品,因此必须支持条形码扫描。收银业务交易总额计算打印交易清单支持会员卡打折功能描述:收银业务子系统能计算交易总额,打印交易清单,并根据会员卡打折。进货管理自动制定进货计划自动入库登记查询打印计划进货与入库记录功能描述:进货管理子系统可以根据库存自动指定进货计划,进货时自动等级,以及提供查询和打印计划进货与入库记录的功能。销售管理商品销售控制查询打印销售情况生成销售排行
6、榜功能描述:销售管理子系统可以控制某商品是否允许销售,查询每种商品的销售情况并产生年、月、日报表,同时可以生成销售排行榜。查询库存明细记录库存状态自动告警提示库存管理自动盘点计算功能描述:库存管理子系统提供查询库存明细记录的基本功能,并根据库存的状态报警,以及自动盘点计算。4、数据流程分析4.1、数据流程图小商店管理系统第0层图图1 销售收银处理数据流程图图2 进货管理流程图图3库存管理流程图4.2、数据字典描述(0) 数据项的描述中文名字段名 字段类型长度 主/外键字段值约束商品编号 Goods_Idint4PNot null商品名称 GoodsNameVarchar50Not null价格
7、 GoodsPriceMoney4Not null库存数量 GoodsNumInt4Not null 库存报警数量 CautionNumInt4Not null计划进货数 PlanNumInt4null条形码 BarCodeVarchar50Not null促销价格 SalesProPriceMoney4促销起日期 SalesProDateSDatetime8促销止日期 SalesProDateEDatetime8允许打折 AllowAbateInt4Not null允许销售 AllowSaleInt4Not null厂商编号 FactoryIDVarchar10FNot null供货商编号
8、ProvideIDVarchar10FNot null用户编号 UserIDvarchar10PNot null用户名称 UserNameVarchar25Not null用户密码 UserPWVarchar50Not null用户类型 UserStyleInt4Not null会员编号 MemberIDVarchar10PNot null会员卡号 MemberCardVarchar20Not null累积消费金额 TotalCostMoney4Not null注册日期 RegDateDatetime8Not null销售编号 SaleIDVarchar10PNot null商品编号 Good
9、s_IdVarchar10FNot null销售日期 SaleDateDatetime8Not null销售数量 SaleNumInt4Not null销售单额 SalePriceMoney4Not null交易编号DealingIDVarchar10PNot null交易金额DealingPriceMoney4Not null交易日期DealingDateMoney4Not null会员卡号MemberIDVarchar10用户名称UserNameVarchar10FNot null入库编号StockIDVarchar10PNot null入库商品编号Goods_IdVarchar10FNo
10、t null入库数量GoodsNumInt4Not null单额GoodsPriceMoney4Not null总额TotalPriceMoney4Not null入库日期StockDateDatetime8Datetime计划进货日期PlanDateDatetime8Datetime入库状态StockStateInt4Not null供货商编号ProvideIDvarchar10PNot null供货商名称ProvideNameVarchar50Not null供货商地址ProvideAddressVarchar250供货商电话ProvidePhoneVarchar25联系人ContactP
11、ersonnvarchar8Not null开户行OpeningBanknvarchar10null银行帐号AccountIDvarchar15null厂商编号FactoryIDvarchar10PNot null厂商名称FactoryNameVarchar50Not null厂商地址FactoryAddressVarchar250厂商电话FactoryPhoneVarchar25(1) 数据流的描述图1 销售收银处理数据流程图数据流编号:D001数据流名称:交易信息 简述:顾客所购买的商品的消费信息单数据流来源:顾客数据流去向:会员信息判断数据流组成:会员编号,会员卡号,累积消费金额,注册日
12、期 数据流量:100/天 高峰流量:500/天数据流编号: D002数据流名称:无效或非会员 简述:会员卡或此顾客非会员数据流来源:会员信息判断数据流去向:顾客数据流组成:会员编号,会员卡号等 数据流量:100/天 高峰流量:500/天数据流编号: D003数据流名称:该商品空缺 简述:顾客所购买的商品空缺数据流来源:商品库存信息查询数据流去向:顾客数据流组成:会员编号,会员卡号,商品编号,商品名称,价格等 数据流量:100/天 高峰流量:500/天数据流编号: D004数据流名称:会员信息 简述:会员卡信息和消费信息数据流来源:会员信息数据流去向:会员信息判断数据流组成:会员编号,会员卡号,
13、累积消费金额,注册日期 数据流量:100/天 高峰流量:500/天数据流编号: D005数据流名称:销售信息 简述:会员卡信息和消费信息数据流来源:顾客消费数据流去向:商品库存信息,顾客消费记录数据流组成:会员编号,会员卡号,累积消费金额,注册日期 数据流量:100/天 高峰流量:500/天数据流编号: D006数据流名称:库存信息 简述:会员卡信息和消费信息数据流来源:商品库存信息数据流去向:商品库存查询数据流组成:商品编号,商品名称,价格,条形码,库存数量,厂商编号,供货商编号等 数据流量:100/天 高峰流量:500/天(2)处理逻辑的描述 处理逻辑编号:P001处理逻辑名称:会员信息判
14、断 简述:判断顾客信息的合法性输入的数据流:D001交易信息,D004会员信息处理描述:根据顾客的会员卡信息,验证会员信息,验证通过则打折,验证不通过则不打折和指明顾客为非会员。输出的数据流:D001商品信息,D002无效或非会员处理频率:10次/天处理逻辑编号:P002处理逻辑名称:商品库存查询 简述:查询读者所要借的图书是否有库存 输入的数据流:D001商品信息,D006库存信息处理描述:根据顾客提供的商品信息,到仓库中查找是否有该商品,有则进行借书处理,如没有则返回顾客该商品无库存信息。输出的数据流:D003该商品空缺,D001商品信息处理频率:1000次/天处理逻辑编号:P003处理逻
15、辑名称:顾客消费 简述:顾客所购商品的名称,价格等输入的数据流:D001交易信息处理描述:将顾客的消费记录作为的销售信息存入商品库存信息输出的数据流:D005销售信息处理频率:1000次/天(3)数据存储的描述数据存储编号:F001数据存储名称:商品清单 简述:商品的基本信息数据存储组成:商品编号+供货商号+名称+条形码+计量单位+类别+产地+单价+备注关键字:商品编号相关联的处理:P002数据存储编号:F002数据存储名称:库存清单 简述:商品的库存信息数据存储组成:商品编号+库存数量关键字:商品编号相关联的处理:P002数据存储编号:F003数据存储名称:销售清单 简述:商品的销售信息数据
16、存储组成:销售单号+商品编号+销售数量+销售日期关键字:销售单号相关联的处理:P002数据存储编号:F004数据存储名称:进货清单 简述:商品的进货信息数据存储组成:进货单号+商品编号+供货商号+进货单价+数量+金额+进货日期+备注关键字:进货单号相关联的处理:P002数据存储编号:F005数据存储名称:职工清单 简述:商品的职工信息数据存储组成:职工编号+姓名+性别+籍贯+学历+类别+工资+联系电话+联系地址+身份证号+聘用日期+编制日期+备注关键字:职工编号相关联的处理:P002(4)外部实体的描述外部实体编号:S001外部实体名称:商品简 述:用来交换的劳动产品输入的数据流:D002,D
17、003输出的数据流:D001外部实体编号:S002外部实体名称:库存简 述:仓库中实际储存的商品数量输入的数据流:D002,D003输出的数据流:D001 外部实体编号:S003外部实体名称:销售简 述:仓库中实际储存的商品和数量输入的数据流:D002,D003输出的数据流:D001外部实体编号:S004外部实体名称:进货简 述:商店为销售而购进货物输入的数据流:D002,D003输出的数据流:D001外部实体编号:S005外部实体名称:职工简 述:与商店订立劳动合同的所有人员输入的数据流:D002,D003输出的数据流:D001 (1)数据流的描述图2 进货管理流程图数据流编号:D001数据
18、流名称:供货信息 简述:供货商提供给商店的商品信息单数据流来源:供货商数据流去向:商品库存查询数据流组成:商品编号,商品名称,库存数量等 数据流量:100/天 高峰流量:500/天数据流编号:D002数据流名称:该商品已满 简述:该商品不需要进货数据流来源:商品库存查询数据流去向:供货商数据流组成:商品编号,商品名称,库存数量等 数据流量:100/天 高峰流量:500/天数据流编号: D003数据流名称:进货信息 简述:商店需要进货的商品信息数据流来源:商品进货数据流去向:商品库存信息,进货记录数据流组成:商品编号,商品名称,价格,条形码,库存数量,厂商编号,供货商编号等 数据流量:100/天
19、 高峰流量:500/天数据流编号: D004数据流名称:库存信息 简述:进货后仓库里存放的商品信息数据流来源:商品库存信息数据流去向:商品库存查询数据流组成:商品编号,商品名称,价格,条形码,库存数量,厂商编号,供货商编号等 数据流量:100/天 高峰流量:500/天(2)处理逻辑的描述 处理逻辑编号:P001处理逻辑名称:商品库存查询 简述:查询需要进货的商品和数量输入的数据流:D001供货信息,D004库存信息处理描述:根据仓库的库存信息,确定商店需要进货的商品信息,需要则进货,不需要则不进货。输出的数据流:D001商品信息,D002该商品已满处理频率:10次/天处理逻辑编号:P002处理
20、逻辑名称:商品进货 简述:查询读者所要借的图书是否有库存 输入的数据流:D001供货信息处理描述:根据需要进货的商品信息,找供货商进货。输出的数据流:D003进货信息处理频率:10次/天(3)数据存储的描述数据存储编号:F001数据存储名称:商品库存信息 简述:库存商品的基本信息数据存储组成:商品编号,商品名称,库存数量,厂商编号,供货商编号等关键字:商品编号相关联的处理:P001 ,P002数据存储编号:F002数据存储名称:进货记录 简述:每次进货的商品信息数据存储组成:商品编号+供货商号+名称+条形码+计量单位+类别+产地+单价+备注关键字:商品编号相关联的处理:P002(4)外部实体的
21、描述外部实体编号:S001外部实体名称:供货商简 述:为商店供货商品的经销商或制造商输入的数据流:D002输出的数据流:D001(1)数据流的描述图3库存管理流程图数据流编号:D001数据流名称:查找库存信息 简述:总经理查找库存商品信息数据流来源:总经理数据流去向:商品库存查询数据流组成:商品编号,商品名称,库存数量等 数据流量:100/天 高峰流量:500/天数据流编号:D002数据流名称:库存信息 简述:库存商品信息数据流来源:商品库存信息数据流去向:商品库存查询数据流组成:商品编号,商品名称,库存数量等 数据流量:100/天 高峰流量:500/天数据流编号: D003数据流名称:销售信
22、息 简述:商店已经销售的商品信息数据流来源:商品销售信息数据流去向:商品库存信息数据流组成:商品编号,商品名称,价格,条形码,库存数量,厂商编号,供货商编号等 数据流量:100/天 高峰流量:500/天数据流编号: D004数据流名称:已进货信息 简述:已进货的商品信息数据流来源:商品进货信息数据流去向:商品库存信息数据流组成:商品编号,商品名称,价格,条形码,库存数量,厂商编号,供货商编号等 数据流量:100/天 高峰流量:500/天(2)处理逻辑的描述 处理逻辑编号:P001处理逻辑名称:商品库存查询 简述:查询库存的商品和数量输入的数据流:D001查找库存信息,D002库存信息处理描述:
23、查询和输出仓库库存的商品信息输出的数据流:D001库存信息记录处理频率:10次/天(3)数据存储的描述数据存储编号:F001数据存储名称:商品库存信息 简述:库存商品的基本信息数据存储组成:商品编号,商品名称,库存数量,厂商编号,供货商编号等关键字:商品编号相关联的处理:P001数据存储编号:F002数据存储名称:商品进货信息 简述:每次进货的商品信息数据存储组成:商品编号+供货商号+名称+条形码+计量单位+类别+产地+单价+备注关键字:商品编号相关联的处理:数据存储编号:F003数据存储名称:商品销售信息 简述:每次进货的商品信息数据存储组成:商品编号+供货商号+名称+条形码+计量单位+类别
24、产地+单价+备注关键字:销售单号相关联的处理:(4)外部实体的描述外部实体编号:S001外部实体名称:总经理简 述:商店的负责人输入的数据流:D002输出的数据流:D0015、概念模型设计(画实体关系图)根据系统数据流图和数据字典,得出系统的总体概念模型(E-R)如图2所示。购买日期消费金额会员卡号厂商厂商ID厂商名称厂商地址厂商电话供应商名称mn生产m1注册时间会员ID累计金额用户用户ID用户密码m供货金额供货日期销售日期供应商电话供应商地址供应商ID供应商销售销售ID商品ID商品名称价格促销价格消费m图2 系统的总体概念模型(2)、系统E-R图说明1) 商店中的所有用户(员工)可以销售多
25、种商品,每种商品可由不同用户(员工)销售;2) 每个顾客可以购买多种商品,不同商品可由不同顾客购买;3) 每个供货商可以供应多种不同商品,每种商品可由多个供货商供应。(3)、视图设计1) 交易视图(v_Dealing)用于查询交易情况的视图;2) 计划进货视图(v_PlanStock)用于查询进货计划的视图;3) 销售视图(v_Sale)用于查询销售明细记录的视图;4) 入库视图(v_Stock)用于查询入库情况的视图。6. 逻辑模型设计和优化根据系统的总体概念设计模型、E-R图向关系模式的转化规则和数据库的范式理论,得到系统优化后的逻辑模型,如表1表9所示。(1)系统关系模型a)商品信息表(
26、商品编号,商品名称,价格,条形码,促销价格,促销起日期,促销止日期,允许打折,库存数量,库存报警数量,计划进货数,允许销售,厂商编号,供货商编号)b)用户表(用户编号,用户名称,用户密码,用户类型)c)会员表(会员编号,会员卡号,累积消费金额,注册日期)d)销售表(销售编号,商品编号,销售数量,销售金额,销售日期)e)交易表(交易编号,用户名称,交易金额,会员卡号,交易日期)f)进货入库表(入库编号,入库商品编号,入库数量,单额,总额,入库日期,计划进货日期,入库状态)g)供货商表(供货商编号,供货商名称,供货商地址,供货商电话)h)厂商表(厂商编号,厂商名称,厂商地址,厂商电话)(2)、系统
27、数据库表结构由数据模型利用SQL Server 2000进行数据库的详细设计,其基本表的设计如下:(1) 供货商清单(Provide_Bill)中文字段名英文字段名字段类型长度主键/外键字段值约束供货商号ProvideIDchar6PNOT NULL名称FullNamenvarchar50NOT NULL联系人ContactPersonnvarchar8NOT NULL联系电话Phonevarchar12NOT NULL联系地址Addressnvarchar50NOT NULL开户行OpeningBanknvarchar10NULL银行帐号 AccountIDvarchar15NULL备注Ot
28、hersntext50NULL说明:此表存放供货商信息(2) 库存清单(Store)中文字段名英文字段名字段类型长度主键/外键字段值约束商品编号Goods_Idchar6P/FNOT NULL库存数量StoreNumint4NOT NULL说明:此表存放库存商品信息(3) 进货清单(Goods_In)中文字段名英文字段名字段类型长度主键/外键字段值约束进货单号In_Idchar6PNOT NULL商品编号Goods_Idchar6P/FNOT NULL供货商号ProfferIDchar6FNOT NULL进货单价In_Pricemoney4NOT NULL进货数量In_Sumint4NOT N
29、ULL金额TotalMoneymoney4NOT NULL进货日期ImportDatedatetime8NOT NULL备注Othersntext50NULL说明:此表存放进货信息。(4) 商品清单(Goods)中文字段名英文字段名字段类型长度主键/外键字段值约束商品编号Goods_Idchar6PNOT NULL商品名称GoodsNamechar6NOT NULL供货商号ProvideIDchar6FNOT NULL名称FullNamenvarchar80NOT NULL条形码BarCodechar15NOT NULL计量单位MetricUnitvarchar4NOT NULL类别Kindn
30、varchar8NULL产地BirthPlacenvarchar50NULL商品单价UnitPricemoney4NOT NULL备注Othersntext50NULL说明:此表存放商品信息。 (5) 销售清单(Sale_Bill)中文字段名英文字段名字段类型长度主键/外键字段值约束销售单号SaleBillIDchar6PNOT NULL商品名称GoodsNamechar6NOT NULL商品编号Goods_Idchar6P/FNOT NULL销售数量SaleNumint4NOT NULL销售日期SaleDatedatetime8NOT NULL说明:此表存放销售信息。(6)厂商表(Provi
31、de)中文名字段名字段类型长度主/外键字段值约束厂商编号FactoryIDvarchar10PNot null厂商名称FactoryNameVarchar50Not null厂商地址FactoryAddressVarchar250厂商电话FactoryPhoneVarchar25说明:此表存放厂商信息。(7)会员表(Member)中文名字段名字段类型长度主/外键字段值约束会员编号MemberIDVarchar10PNot null会员卡号MemberCardVarchar20Not null累积消费金额TotalCostMoney4Not null注册日期RegDateDatetime8Not
32、 null说明:此表存放会员信息。(8)交易表(Dealing)中文名字段名字段类型长度主/外键字段值约束交易编号DealingIDVarchar10PNot null交易金额DealingPriceMoney4Not null交易日期DealingDateMoney4Not null会员卡号MemberIDVarchar10用户名称UserNameVarchar10FNot null说明:此表存放交易信息。7. 物理设计和实施(根据第6部分优化后的逻辑模式使用create table语句写出各关系模式的创建语句,写出实现增加、修改、删除、查询、统计等功能的 存储过程)/*-创建数据库-*/*
33、创建了一个数据库名字为“SmollShopdb”,路径为“C:Program FilesMicrosoft SQL ServerXXX”其他不做解释。*/create database SmollShopdbon primary(name=SmollShopdb_mdf,filename=C:Program FilesMicrosoft SQL ServerMSSQLDataSmollShopdb_data.mdf,size=100MB,maxsize=200MB,filegrowth=20MB)log on(name=SmollShopdb_mdf,filename=C:Program Fi
34、lesMicrosoft SQL ServerMSSQLDataSmollShopdb_data.ldf,size=60MB,maxsize=200MB,filegrowth=20MB)go/*创建备份文件*/sp-addumpdevice disk,Backup1,d:sql小商店管理系统backup1.datgoBackup Databae 小商店管理系统 To Backup1/*-开始使用数据库-*/use SmollShopdbgo/*-一开始创建基本表-*/*1创建供货商表*/CREATE TABLE Provide_Bill (ProvideID varchar(10) Prima
35、ry key ,ProvideName varchar(50) NOT NULL ,ProvideAddress varchar(250) NULL ,ProvidePhone varchar(25) NULL ,ContactPerson nvarchar(8) NOT NULL ,OpeningBank nvarchar(10) NULL ,AccountID varchar(15) NULL ,)GO/*2创建库存表*/CREATE TABLE Store(Goods_Id varchar(6) Primary key ,StoreNum varchar(4) NOT NULL ,)GO
36、/*3创建进货表*/CREATE TABLE Goods_In(In_Id varchar(6) Primary key ,Goods_Id varchar(6) NOT NULL ,ProfferID varchar(6) Primary key ,In_Price varchar(4) NOT NULL ,In_Sum varchar(4) Primary key ,TotalMoney varchar(4) NOT NULL ,ImportDate varchar(8) Primary key ,Others varchar(5) NOT NULL ,)GO/*4创建商品信息表*/CRE
37、ATE TABLE Goods (Goods_Id char(6) Primary key ,ProvideID char(6) NOT NULL ,FullName nvarchar(80)NOT NULLBarCode int(15) NOT NULL ,MetricUnit varchar(4) NOT NULL ,Kind nvarchar(8) NULL , BirthPlace nvarchar(50) NULL ,UnitPrice money(4) NOT NULL ,Others ntext(50) NULL ) GO/*5创建销售表*/CREATE TABLE Sale_Bill (SaleBillID char(6) Primary key ,Goods_Id char(6) NOT NULL ,SaleNum int(4)NOT NULLSaleDate datetime(8) NOT NULL ) GO/*6创建厂商表*/CREATE TABLE Factory (FactoryID varchar(10) Primary key ,FactoryName varchar(50) NOT NULL ,