数据库专题训练(2012)剖析(共31页).doc
精选优质文档-倾情为你奉上专题训练 科 目: 数据库专题训练题 目: 专 业: 指导教师: 学生姓名: 班级学号: 年 月 日 1 需求分析1.1 项目概述随着超市的出现,为实现超市管理的系统化、规范化和自动化,超市管理系统应运而生.它依靠现代化的计算机信息处理技术来管理超市,这能够快速反映出商品的进销存状况和各种反馈信息分析,使管理人员快速对市场的变化做出相应决策,加快超市的系统建立的技术基础;为超市提供方便,快捷的结账体系,准确,高效的库存和财务管理系统等;让顾客在超市购物更加快捷方便,让超市的管理和运行工作更加完善,方便。1.2 功能需求1.2.1 信息要求该系统由商品信息管理模块,员工信息管理模块,供应商信息管理模块,仓库信息管理模块等可以完成商品的进销存和查询,更改等的基本操作。并根据客户的要求完善系统的功能需求。系统功能有:(1)商品信息的管理包括商品基本信息的新建、修改和删除,商品的编号、商品名称、商品规格等(2)供货商信息管理:包括供货商信息的新建、修改和删除和供应商的名称、供应商代号、供应商地址等。(3)员工信息管理:系统管理员的添加、删除和修改密码和员工姓名、性别、职称、工号等。(4)仓库信息管理:仓库号、库存商品号、商品数量等1.2.2 处理要求(1)针对超市进销存管理系统,分别对采购部门、销售部门和库存保管部门进行详细的调研和分析,总结出如下的需求信息:商品按类管理,所以需要有一商品类型信息。如果一个商品类型存在商品,或存在下级商品类型,则该类型不可删除。需要记录供应商品信息。在涉及商品数量的地方,需要知道商品的库存地方。商品销售信息单中要包含登记商品销售数量、单价等信息。在进货信息中要包含商品供应商等信息。商品报损要有报损原因。进货、销售、报损操作要有相应信息管理员。只有管理员登录之后才可以使用系统。默认的管理员不可以删除。进货、销售、库存、报损信息都要可以添加、修改、删除、分类查找。当进行进货、销售和报损操作后,能相应更新库存。(2)经上述系统功能分析和需求总结,考虑到将来功能的扩展,设计如下的数据项和数据结构:商品类型信息,包括数据项有:商品信息,包括的数据项有:商品编号、商品名称、商品的的生产日期、库存量等。商供应商信息,包括供应商号、供应商名称、联系电话等。进货信息,包括进货商品号、数量、规格、单价等。销售信息,包括销售商品、数量、单价等。报损信息,包括报损商品、数量、原因、登记时间等。员工信息,包括员工号、姓名、职称等1.2.3 系统要求(1) 精度 价钱精确到分,时间精确到秒,响应时间在0.5秒内。数据录入精确,计算准确,同时与后台库存管理系统的数据保持一致性即可。(2) 时间特性要求 录入并更新数据的时间正常情况下少于2秒,与库存管理系统保持同步更新的时间越低越好,实现商品的销售和记录的高度统一 数据传送时间尽量缩短. (3) 灵活性 对于该系统,最大的问题在于当停电的时候如何解决销售和库存记录的同步性。其一:在停电销售未记录入数据库时,先由人工记录,然后等电来的时候再人工手动录入未存数据 其二:脱机处理,即当停电的时候,收银台能够正常工作,但后台库存管理系统失效,则由前台销售系统暂时代行记录任务,等库存管理系统恢复工作后,再向库存导入销售数据,实现更新(针对大规模,多个消费服务点的超市平台)可扩展性用JAVA进行实现,进而有良好的可扩展性,程序使用大量重载和多态,留有接口。对以后扩展留下丰富空间。安全性OS登陆、退出、换班与操作锁定等权限验证保护;断电自动保护最大限度防止意外及恶意非法操作。易用性针对销售员,执行简单,一切都是自动,提示。针对普通查询用户使用智能、便捷的方法操作系统;针对系统管理员,只要对其进行简单的培训操作,就能解决在操作超市管理系统实际中所遇到的问题。对于技术人员来说,有良好的扩展性和维护性。总体来说本系统是一个面向各个领域用户的简单的软件。输入信息错误或不满足条件时会给出错误提示信息,使各个管理员操作的十分简单。可维护性系统组成简单,各个模块间的独立性很高,易于维护。1.3 数据流图以下是超市管理系统的业务流程的分析(1) 超市管理系统业务流程图的符号解释 业务处理单位/个人 清单/报表 信息流程(2)超市管理系统进货业务流程图为图11为某超市进销存管理系统的进货业务流程图(3)超市管理系统销售业务流程图图12为某超市进销存管理系统的销售业务流程图根据上面业务流程图的描述,从系统的科学性、管理的合理性、实际运行的可行性角度出发,自顶向下对系统进行分解,导出了超市销售管理系统的顶层数据流程图、第二层数据流程图和第三层数据流程图。(1)某超市管理系统数据流程图符号解释 1、外部实体 2、处理 3、数据流 4、数据存储(2)某超市管理系统顶层数据流程图图13为某超市管理系统顶层数据流程图上图是超市管理系统的顶层数据流程图。由业务流程图确定系统开发的外部实体即系统数据的来源与去处,从而确定了整个系统的外部实体和数据流,在顶层数据流程图中,把超市管理系统作为一个处理环节,与实体间传递信息,简单的表达系统的各部分功能。(3)第一层数据流程图图为14为超市进销存管理系统第一层数据流图确定系统的主要处理功能,可以将系统分为进货管理、库存管理、销售管理等几部分。再确定各个输入和输出的数据流的以及与之相关的数据结构,为各个数据流、报表命名并编码,从而得到超市销售进销存系统的第一层数据流程图,如图上图所示 (4)第二层数据流程图图15为为再将第一层数据流程图分解就可得到第二层流程图。其中某些数据项处理可分解为多个处理过程。在本系统中有销售模块、进货管理。每一部分都可以分解为第二层流程图。具体的分解情1.4 数据字典数据项如表一数据项编号数据项名称简述类型及宽度取值范围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某供应商的产品代号Char(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商品的库存下限CharI25KPnum盘盈盘亏数量IntI26KPerson与定货发生联系的供应商负债人Char(8)数据结构如表二DS08-01:用户订单的数据结构DS08-02:订货单标识I1:定货单编号DS08-03:用户情况DS08-04:配件情况I2:日期I3:用户代码I10:配件代码I4:用户名称I11:配件名称I5:用户地址I12:配件规格I6:用户姓名I13:订货数量I7:电话I8:用户银行I9:帐号数据流编码如表三数据流编号数据流名称简述数据流来源数据流去向数据流组成数据流量高峰流量F1订货单公司向供应商订购商品的订货单验收货品模块供应商商品编码+商品名称+单位+数量+单价+交货日期+定单号份/月份/月F2发货单供应商发出的收货单供应商验收货品模块商品编码+商品名称+单位+数量+单价+订单号+供应商份/月份/月F3不合格单采购部验货不合格单验收货品模块退货模块商品编码+商品名称+单位+数量+单价+说明原因100份/月500份/月F4退货单库管员开出的退货单退货模块供应商商品编码+商品名称+单位+数量+单价+退货说明100份/月500份/月F5合格单采购部验货合格单验收货品模块进库模块商品编码+商品名称+单位+数量+单价+合格说明份/月份/月F6入库单库管员开出的入库单进库模块库存台帐商品编码+商品名称+单位+数量+单价+供应商份/月份/月外部实体编码如表四外部实体编号外部实体名称简述外部实体组成输入的数据流输出的数据流E1供应商提供商品的直接厂家供应商编码+单位全称+简称+地址+联系人+电话+帐号订货单发货单E2顾客购买商品的顾客编码+姓名+地址+电话+邮编销售单顾客订单E3仓库存放仓库的地方单位全称+地址+电话实物清单报损单 处理逻辑如表五处理逻辑编号处理逻辑名称简述输入的数据流处理输出的数据流处理频率P1.1验收货品采购部对来货进行检验F2收货单,来源于供应商发出的采购收货单据根据收货单验货,确定供应商提供货品的数据、质量等是否合格F1订货单,向工业商店订货:F3不合格单,向供应商退货:F5合格单,入库1500次/月P1.2进货采购的合格货品入库F5货物合格单,来源于库管员根据入库单桨采购货品入库,登记库存和流水账S2库存台帐、S1流水帐,每次入库都要有详细登记2000次/月P1.3退货办理退货手续F3不合格单,来源于货物验收人员根据不合格单办理退货,并登记流水账S1流水账,F4退货单将货物退还给供应商100次/月P2.1销售货物队顾客购物情况进行开单F7顾客订单,来源于顾客的购物请求:库存台帐以供查询根据数据流顾客订单,导购员进行为顾客选货物,消费记账等F8销售单,给顾客一份;F9出库单;同时根据出库单登记库存台帐及流水账5000次/天P2.2确定退货单对顾客请求的退货单进行退货确认F10顾客退单,来源于顾客的要求根据数据流顾客退单,主管就顾客提出原因进行退货确认F11确认后的顾客退货单,经销售主管批准后,为顾客办理退货100次/天P2.3退货根据已确认的退单进行退货F11已确认的顾客退单,来源于销售主管已批准的退货单根据批准退货单,允许顾客退货,并修改相关的库存记录F11库存台帐及流水账,修改库存台帐及流水账100次/天 数据存取如表六数据存取编号数据存储名称简述数据存储组成相关联的处理S1库存台帐商品入库、出库及退货后修改当前库存量商品编码+商品名称+单位+当前库存+商品下限+商品上限 P1.2、P1.3S2流水账入库、出库及退货的流水账记录类型+开单日期+单号+商品编号+商品名陈+单位+数量+单价P1.22 概念结构设计2.1 局部ER图设计2.1.1 分E-R图建立根据第二层数据流程图得到三个分E-R图图21为某超市进货的ER图图22为超市销售的ER图图23为超市存储ER图2.2 整体ER图设计2.1.2 系统ER图3 逻辑结构设计3.1 逻辑设计逻辑结构设计的任务就是把概念结构设计阶段设计好的基本ER图转换为与选用的DBMS产品所支持的数据模型相符合的逻辑结构。从理论上讲,设计逻辑结构应该选择最适合于相应概念结构的数据模型,然后对支持这种数据模型的各种DBMS进行比较,从中选出最合适的DBMS。但实际情况往往是已给定了某种DBMS,设计人员没有选择的余地。设计逻辑结构时一般要分3步进行:(1)将概念结构转换为一般的关系、网状、层次模型;(2)将转换来的关系、网状、层次模型向特定DBMS支持下的数据模型转换;(3)对数据模型进行优化。3.1.1 建立关系模式有一个超市管理系统数据库,包括T、S、Y、K、TY、SK、TSYK个关系模式:T(TID,Tname,TPrice,Tproducedate,TKeepdate,TWeight,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)、保质期(TKeepdate)、商品重量(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表是由存储商品的库存号(KNO),标识商品的代号(TID),某商品的数量(QTY)组成;6. YT由标识公司员工的代码(YID),标识商品的代号(TID),销售的商品数量(CQTY)组成;7. ST供应商商品表由某供应商的产品代号(SCodename),标识商品的代号(TID),8. TSYK供应商商品员工仓库表由商品编号(TID)、供应商名称(SName)、库存号(KNo)、员工编号(YID)实际的商品数量(WQTY)组成;3.1.2 关系模式规范化处理根据F,分析每一个关系模式是否满足3NF,对不满足3NF的关系模式要进行规范化处理。3.1.3 用户子模式建立对不同级别的用户定义不同的view,如下图用户对象视图描述作用管理员购买商品(商品编号,商品名称,商品价格)用于顾客和管理者对购买商品情况的查询管理员供应商(供应商编号,名称,地址,电话,交货日期)用于管理者对所有供应商信息的查询管理员存放(仓库号,商品现存量,商品最高数量,商品最低量)用于管理员查询商品的简要的信息管理员员工(员工姓名,年龄,职称)用于管理员查询员工的基本信息表1为视图表4 物理结构设计建立索引如下表:表2为索引表所在表名索引名称索引类型所在表的属性供应商SupInfo 唯一Pid商品信息表teleTwo聚簇Tprice仓库信息Storetele聚簇InTime+OutTime员工信息ADBuyInfo聚簇BuyDate+BuyNum建立存储过程如表:表4.2 为储存过程表存储过程名作用Telefind查询商品基本信息Sum_money统计商品销售情况CteleInfo顾客查询商品信息Spp查询供应商信息Up_TeleInfo更新商品信息表5 数据库的实施5.1 创建数据库商品信息表(Goods_Info)用于存储商品的信息。表中各字段功能定义如下表所示字段名字段类型长度主/外键字段值约束对应中文名GoodsIDint4PNot null商品编号GoodsNameVarchar50Not null商品名称GoodsPriceMoney4Not null价格GoodsNumInt4Not null库存数量CautionNumInt4Not null库存报警数量PlanNumInt4null计划进货数BarCodeVarchar50Not null条形码SalesProPriceMoney4Not null促销价格SalesProDateSDatetime8Not null促销起日期SalesProDateEDatetime8Not null促销止日期AllowAbateInt4Not null允许打折AllowSaleInt4Not null允许销售FactoryIDVarchar10FNot null厂商编号ProvideIDVarchar10FNot null供货商编号用户表(User)用于存储用户的基本登录信息。表中各字段功能定义如下表所示。字段名字段类型长度主/外键字段值约束对应中文名UserIDvarchar10PNot null用户编号UserNameVarchar25Not null用户名称UserPWVarchar50Not null用户密码UserStyleInt4Not null用户类型会员表(Menber)用于储存会员的各种信息,表中各字段功能定义如下表所示。字段名字段类型长度主/外键字段值约束对应中文名MemberIDVarchar10PNot null会员编号MemberCardVarchar20Not null会员卡号MemberCostMoney4Not null会员卡余额RegDateDatetime8Not null注册日期销售表(Sale) 用于存储销售信息。表中各字段功能定义如下表所示。字段名字段类型长度主/外键字段值约束对应中文名SaleIDVarchar10PNot null销售编号MerChIDVarchar10FNot null商品编号SaleDateDatetime8Not null销售日期SaleNumInt4Not null销售数量SalePriceMoney4Not null销售单额交易表(Dealing) 用于储存交易信息。表中各字段功能定义如下表所示。字段名字段类型长度主/外键字段值约束对应中文名DealingIDVarchar10PNot null交易编号DealingPriceMoney4Not null交易金额DealingDateMoney4Not null交易日期MemberIDVarchar10Not null会员卡号UserNameVarchar10FNot null用户名称字段名字段类型长度主/外键字段值约束对应中文名ProvideIDvarchar10PNot null供货商编号入库纪录表(Stock) 用于储存商品入库的详细信息。表中各字段功能定义如下表所示。字段名字段类型长度主/外键字段值约束对应中文名StockIDVarchar10PNot null入库编号MerchIDVarchar10FNot null入库商品编号MerchNumInt4Not null入库数量MerchPriceMoney4Not null单额TotalPriceMoney4Not null总额StockDateDatetime8Datetime入库日期PlanDateDatetime8Datetime计划进货日期StockStateInt4Not null入库状态供货商表(Provide) 用于存储供货商的信息。表中各字段功能定义如下表所示。字段名字段类型长度主/外键字段值约束对应中文名ProvideIDvarchar10PNot null供货商编号ProvideNameVarchar50Not null供货商名称ProvideAddressVarchar250Not null供货商地址ProvidePhoneVarchar25Not null供货商电话5.2 数据载入5.2.1基本表的查询测试如下5.2.1视图的测试如下5.2.3触发器的测试如图图1.3为商品表上的触发图1.4为商品表的触发图1.5为商品信息表的触发5.2.4存储过程的测试如下图1.6为商品信息的存储过程图1.7为库存信息的存储过程图1.8为供应商信息的存储过程 图1.9为员工信息的存储过程5.3 主要SQL脚本(1)创建数据库create database 超市管理系统数据库(2)创建基本表create table T(TID Char(8) primary key,TProducename Char(14),Tname Char(14),TPrice Int,Tproducedate Char(6),TKeepdate Char(2),TWeight Char(8),TNorms Char(12),)create table S(SCodename Char(8) primary key,SName Char(12),SAddress Char(16),SFax Char(11),STele Char(11),SDate Char(12),)create table Y(YID Char(6) primary key,Yname Char(6),YSex Char(1),YAge Char(2),YZhichen Char(6),)create table K(KNO char(2) primary key,KNum Char(4),KHnum Char(112),KDnum Char(12),KPnum Int,KPerson Char(8),)create table TY(KNO char(8),TID Char(8),QTY char(6),)create table ST(SCodename Char(8),TID Char(8),GQTY char(6),)create table KT(KNO char(2),TID Char(8),QTY int,)create table TSYK(SCodename Char(8),YID Char(6),KNO char(2),TID Char(8),WQTY int,)(3)创建视图购买商品信息视图CREATE VIEW VIEW_VTASSELECT TID,Tname,TPrice,FROM T供应商信息视图CREATE VIEW VIEW _VSASSELECT SName,SAddress,SCodename,Stele,SDateFROM S仓库信息视图CREATE VIEW VIEW _VCASSELECT KNO,KNum,KHnum,KDnumFROM K员工信息视图CREATE VIEW VIEW _DHASSELECT Yname,Yage,YzhichenFROM YWHERE YID=P006(4)创建触发器在商品信息表上创建触发器提醒信息管理员相应的操作create trigger tri_delete_teleon Tfor delete asprint '请在仓库中删除此商品'在仓库信息表上建立触发器create trigger tri_S_updateon Kfor update asif (select TName from Twhere TID = 'F650') = 0print '此商品存放仓库已满'在供应商信息表上建立触发器create trigger tri_update_Steleon Sfor updateasif (select TIDfrom Twhere TID= I112)<100print '存货不足 请及时进货'(5) 建立储存过程1、商品信息查询的存储过程:create procedure T_TT_ID char(15),T_name char(30),T_Pro char(18)asselect *from Twhere TID = T_ID2、员工信息查询的存储过程:create procedure Y_YY_ID Char(16),Y_name Char(16),Y_Sex Char(1),Y_Age Char(12),Y_Zhichen Char(6)asselect *from Ywhere YID= Y_ID3、供应商信息查询存储过程:create procedure S_SS_Codename Char(8),S_Name Char(12),S_Address Char(16),S_Fax Char(11),S_Tele Char(11)asselect *from Swhere SCodename= S_Codename4、库存信息查询的存储过程:create procedure K_KK_NO char(2) ,K_Num Char(4),K_Pnum Int,K_Person Char(8)asselect *from Kwhere KNO= K_NO5、员工信息插入:Insert into(YID ,Yname ,YSex ,YAge ,YZhichen )Values(P0018,马莉莉,女,20,营业员)6 结束语通过此次数据库的课程设计,真正达到了学与用的结合,增强了对数据库方面应用的理解,对自己今后参与开发数据库系统积累了不少经验,在实验过程中,从建立数据开始,对数据库设计理念及思想上有更高的认识,从需求分析,到概念设计和逻辑设计,E-R图的表示,数据字典的创建,懂得了不少有关数据库开发过程中的知识,在实验中建表,及其关系模式,关系代数的建立及理解,将SQL语言的查询语句用得淋漓尽致,增强了自己在数据库中应用SQL语言的灵活性,其中包括,插入、删除、修改、查询,牵涉表和表之间的联系,主键与外主键的定义,约束项的设置,使逻辑更严密。 在学习过程中,我也上网查了不少资料,也看了一些别人设计的小型超市信息系统的设计报告,学以致用,自我创新,独立完成了这份自己的报告,从中从学到用,从用又到学,不断修改,系统更新。虽然不能达到完善系统,但也做到了尽善尽美,加强理论学习对完善系统会有很多帮助,知识是无限的,我以后还会在这个领域不断的进行探索,掌握更多的知识。参考文献1 王珊,萨师煊. 数据库系统概论(第四版). 北京:高等教育出版社,2006专心-专注-专业