数据库应用课程设计报告书小型超市信息管理系统成绩:学号:姓名:指导教师:2010年1月20日三峡大学课程设计任务书学年学期课题名称指导教师姓名学号专业信息管理课题概述:数据库的开发与设计是管理信息系统的重要组成部分,数据库设计的好坏直接影响到系统的开发进度和功能的实现。本课程主要应用已经学到的数据库系统和应用的知识,通过调查分析设计一个小系统的数据库,来提高学生对所学的知识和数据库开发过程的理解和掌握,提高分析问题、解决问题的能力,并为接下来的管理信息系统的课程设计打下基础。在数据库物理实现阶段主要使用微软的SQLSERVER数据库管理系统。设计要求:1、进行认真、完整的系统调查分析,取得所开发系统的第一手资料。2、原则上要求一人一个课题。3、设计报告书要求详细具体,对设计的全部内容都要进行详细的说明,并按照要求的格式打印。主要参考资料:1、《数据库系统概论》,高等教育出版社,萨师煊、王珊编著,第三版2、《SQLSERVER2000教程》,北京希望电子出版社,龚波等译。设计成果要求:1、课程设计报告书2、设计的数据库文件及代码设计内容及进度计划安排起止日期要求完成的内容19周星期一收集资料,进行系统分析和调查19周星期二概念结构设计19周星期三逻辑结构设计19周星期四数据库物理设计19周星期五数据库实施审核(教研室主任)小型超市信息管理系统摘要:随着技术发展,电脑操作及管理日趋简化,电脑知识日趋普及,同时市场经济快速多变,竞争激烈,因此企业采用电脑管理进货、库存、销售等诸多环节也已成为趋势及必然,可以解决企业账目混乱,库存不准,信息反馈不及时等问题。小型超市引进数据库系统进行管理远优于传统的手工管理。1需求调查、分析1.1企业介绍该超市是一个面向生活小区的独家经营的小型自选超市,没有连锁店,超市老板即是超市管理人员。该超市经营各种类别的商品,如服装、家庭日用杂品、家用电器、玩具、家具、蔬菜水果等。该小型超市有自己的仓库,和一定的供应商保持联系,顾客以个人为主,没有预定、赊账、折扣等复杂的财务信息,工作人员也比较固定,没有复杂的人事调动、福利津贴等职工信息。原来的收款方式是使用两台旧式收款机,由收款员按商品价格标签收款。整个超市员工人数并不多。主要管理工作包括进货、填写入库单并记入入库流水帐、定价、印制并粘贴价格标签、商品上架和整理、收款开票并记入销售流水帐、每日收市后作营业结算、每月月末作盘点统计并编制营业报告表。由于是手工管理,并且收款方式落后,因此效率低,劳动强度大,商品流失也比较严重。超市的业务量是:平均每周进货一次,每次可能有不同的货源进货。平均每天顾客数目是1000人。平均每个顾客购买3种商品。按管理规章制度要求,收市后统计分析人员还要根据商品购入流水帐和商品销售流水帐,按商品编号分别累计汇总各种商品当日累计购入入库量、累计销售量和库存结余量等数据,然后把这些数据填入库存台帐。1.2需求调查及分析用户需求:该超市管理人员是主要用户,使用频率最高,其他人员也会使用到,但不经常使用,管理人员能看到所有的供应商信息、商品信息、销售信息、职工信息、库存信息、财务信息等。该超市管理人员希望看到商品进货、存入仓库、由仓库到货架、最后销售的一系列活动以便于其管理。超市管理人员能看到商品的各种基本信息及销售好坏和盈利情况以便其决策如何进行销售活动,当一种商品不再销售时应该有相关的历史销售记录,能看到商品的库存量以决定是否进货及进货的种类数量,货架上商品少于一定数目时有工作人员从仓库补充。超市老板能知道一段时间内的盈利情况。顾客能看到商品的大部分基本信息,但不能看到商品的进价信息。收银员要记录销售信息。仓库管理员要能看到库存信息。功能实现:该系统包含供应商信息,商品信息,库存信息,人事信息,销售信息,财务信息,能够实现用户需求的绝大部分,而货架上如果商品数量不足则由售货员或巡视员通知工作人员从仓库搬运,此过程由人工完成,不由计算机参与。当管理人员决定进一种新商品时必须先录入商品基本信息,然后其它工作人员才能录入进货、库存、财务等其它信息2面向对象分析和设计2.1用例分析管理人员进行管理的用例1.查询、添加、删除、修改供应商信息2.查询进货信息3.查询、添加、删除、修改商品的所有信息4.查询、添加、删除、修改仓库基本信息5.查询商品入库、库存、出库信息6.查询、添加、删除、修改人事信息7.查询销售信息8.查询财务信息查询销售信息增删改查商品信息查询信息管理人员增删改查库存信息查询进货信息增删改查人事信息增删改查供应商信息收银员使用的用例1.登陆系统2.添加商品的销售记录3.添加销售商品的财务记录仓库管理员使用的用例1.登陆系统2.查询仓库基本信息3.查询、添加、修改商品的入库信息4.查询、添加、修改商品的库存信息5.查询、添加、修改商品的出库信息收银员添加销售商品的财务记录登陆系统添加商品的销售记录useextend仓库管理员查询仓库信息登陆系统增删改查商品库存信息增删改查商品出库信息增删改查商品入库信息useuseuseuse采购员使用的用例1.登陆系统2.查询供应商基本信息3.添加进货信息4.添加进货的财务信息顾客使用的用例1.登陆系统2.查询商品信息采购员添加进货财务信息登陆系统添加进货信息useextend查询供货商信息use顾客登陆系统查询商品信息use2.2类和对象设计进货FK商品号FK供应商号数量日期查询添加商品库存信息FK商品号FK仓库号数量查询添加仓库基本信息PK仓库号FK管理员职工号面积查询入库信息FK商品号FK仓库号数量日期查询添加职工基本信息PK职工号姓名职务性别生日电话居住地址工资身份证号查询添加修改删除出库信息FK商品号FK仓库号数量日期查询添加商品基本信息PK商品号商品名进价售价单位类别是否销售说明查询添加修改删除商品销售记录FK商品号数量日期查询添加供应商基本信息PK供应商号名称地址电话E_mail联系人查询添加修改删除供应商品信息表FK供应商号FK供应商品号查询添加3逻辑结构设计3.1类和对象向关系模式转换1.商品基本信息表(商品号,商品名,进价,售价,单位,类别,是否销售,说明)2商品销售记录表(商品号,商品名,销售时间,售价,数量)3商品库存信息表(商品号,商品名,仓库号,数量)4入库信息表(商品号,商品名,日期,仓库号,数量)5出库信息表(商品号,商品名,日期,仓库号,数量)6仓库基本信息表(仓库号,管理员职工号,面积)7进货表(商品号,商品名,供应商号,供应商名,日期,数量)8供应商基本信息表(供应商号,名称,地址,电话,E_mail,联系人)9供应商品信息表(供应商号,供应商名,供应商品号,商品名)10职工基本信息表(职工号,姓名,职务,性别,生日,电话,居住地址,工资,身份证号)3.2关系模式优化1.商品基本信息表(商品号,商品名,进价,售价,单位,类别,是否销售,说明)注:若商品正在销售,则属性“说明”记录该商品销售的好坏盈利情况以供超市管理人员决策是否继续销售及如何销售,若商品不再销售,则属性“说明”记录该商品的停售原因,若无特殊说明,则该字段可为空。属性“是否销售”默认值为“是”。2商品销售记录表(商品号,销售时间,数量)3商品库存信息表(商品号,仓库号,数量)注:同种商品都存放在同一个仓库里,仓库号可以表示商品存放位置4入库信息表(商品号,日期,仓库号,数量)5出库信息表(商品号,日期,仓库号,数量)6仓库基本信息表(仓库号,管理员职工号,面积)7进货表(商品号,供应商号,日期,数量)注:当要进一种新商品时先在商品基本信息表中添加信息。8供应商基本信息表(供应商号,名称,地址,电话,E_mail,联系人)9供应商品信息表(供应商号,供应商品号)注:一个供应商可提供不同的商品,一种商品可从不同的供应商处购买,并且各供应商供应商品价格即进价都相等。10职工基本信息表(职工号,姓名,职务,性别,生日,电话,居住地址,工资,身份证号)财务信息中的记录都可其他基本表导出,所以不另建财务表,财务信息用视图表示。4数据库物理结构设计4.1存取方法设计根据系统需求和各关系模式中属性的特征,为了加快查询的速度,可以建立如下索引:1.商品基本信息表,商品库存信息表中的商品号都是唯一的,可以建立唯一索引以提高查询效率。(createuniqueindexAon商品基本信息表(商品号),createuniqueindexBon商品基本信息表(商品号))2.仓库基本信息表中的仓库号唯一,可以建立唯一索引以提高查询效率。(createuniqueindexCon仓库基本信息表(仓库号))3.职工基本信息表中的职工号唯一,可以建立唯一索引以提高查询效率。(createuniqueindexDon职工基本信息表(职工号))4.供应商基本信息表中的供应商号唯一,可以建立唯一索引以提高查询效率。(createuniqueindexEon供应商基本信息表(供应商号))5.商品销售记录表,商品库存信息表,入库信息表,出库信息表,进货表,供应商品信息表中,商品号是经常查询的列,在查询和连接中经常出现,且不常更新,可以建立索引以提高查询效率。(createindexFon商品销售记录表(商品号),createindexGon商品库存信息表(商品号),createindexHon入库信息表(商品号),createindexIon出库信息表(商品号),createindexJon进货表(商品号),createindexKon供应商品信息表(商品号))6.商品库存信息表,入库信息表,出库信息表中,仓库号是经常查询的列,在查询和连接中经常出现,且不常更新,就可以建立索引以提高查询效率。(createindexLon商品库存信息表(仓库号),createindexMon入库信息表(仓库号),createindexNon出库信息表(仓库号))7.进货表,供应商品信息表中,供应商号是经常查询的列,在查询和连接中经常出现,且不常更新,就可以建立索引以提高查询效率。(createindexOon进货表(供应商号),createindexPon供应商品信息表(供应商号))4.2存储结构设计数据库的存储结构不同于一般文件系统的存储结构。数据库数据的特点是各种记录型之间彼此有联系,数据是结构化的。数据的存储结构不仅涉及每种记录型的记录如何存储,而且要使数据的存储反映各种记录型之间的联系。在DB多级模式中引入内模式(存储模式)的主要目的是使模式的数据结构的描述同它的存储表示的描述分开,以致DBA为了协调数据库性能而对数据库数据的存储方法进行修改时,可不必修改模式,以提高数据库的物理独立性。在各个数据库管理系统中,对内模式的定义功能各不相同。在关系数据库管理系统中有些DDL语句可影响数据库的存储结构。在DBMS中各级模式的存储结构是恒定的或唯一的,而数据库内容(或其记录)的存储方式是不唯一的。数据库存储结构设计的好坏直接影响系统的性能。在存储结构中主要是涉及存储记录的设计。存储记录与概念记录之间具有对应关系,如果存储记录与概念记录之间具有一一对应关系,在这种情况下存储记录的设计就比较简单,不需要进一步讨论。概念记录是指在逻辑结构中的记录。但当一个概念记录对应多个不同类型的存储记录时,存在如何设计存储记录的问题。在次关键字索引中,由于一个次关键字值对应于多个记录值,它们的个数是不固定的,所以对应的指针数目是可变的。这种可变性给管理带来困难,为了解决这个困难,引入了多表组织。多表组织的实现思想比较简单,在索引中多个指针分散存放在每个记录值中,索引项中的指针指向第一个记录,在第一个记录中的指针指向第二个记录等等。5数据库完整性设计5.1主键及唯一性索引唯一性索引是指索引值必须是唯一的,而在创建表时,如果建立主键则SQLServer2005就会默认建立一个唯一索引数据表名称:商品基本信息表字段名字段类型描述商品号nchar(10)PK,notnull商品名nchar