物资管理系统数据分析报告

目     录

1.需求分析

1.1系统目标与要求

1.2系统分析

1.3业务流程图

2.系统逻辑方案

2.1数据流程图(DFD):

2.2数据字典(简称DD)

3系统总体结构设计

3.1软件系统总体结构设计

3.2数据存储的总体设计

3.3系统功能模块设计

4数据库详细设计

4.1数据库设计

4.2数据库的完整性和安全性

5.数据库操作(SQL Server2000语句完成)

5.1创建仓储物资管理系统

5.2创建各类别索引信息表

5.3建立存储过程向表中插入、修改、删除数据

5.3.1插入数据的存储过程

5.4建立存储过程实现查询

5.5视图建立

5.6建立触发器

6课程设计小结

7参考文献

仓储物资管理系统    

1.需求分析

1.1系统目标与要求

要求本系统能够投入实际的使用并且满足基本的功能要求。要求具有较高的可靠性、安全性和易维护性,具有较高的可移植性。

本系统实现了以下的功能:

基本信息模块:包括商品信息、员工信息、客户信息、供应商信息四个子模块

(1)仓库管理模块:仓库编号、仓库名称、仓库负责人。

(2)供应商管理模块:包括供应商个人(企业)信息、供应商供应货物信息查询两个子模块。

(3)客户管理模块:包括客户个人(企业)信息、订货信息查询两个子模块。

(4)员工管理模块:包括员工个人信息查询、员工薪资查询、员工值勤查询三个子模块。

(5)物资信息模块:商品信息查询、入库登记查询、出库登记查询、退货查询、库存查询五个个子模块。

(6)报表管理:财务报表查询、报表打印两个子模块。

(7)系统维护模块:包括数据安全管理、操作员管理、权限设置三个模块

说明:根据对现实仓储物资管理业务,将用户分为二类超级管理员(经理)、普通管理员(操作员)。

1.2系统分析

用户活动及活动图

(1)供应商主要参与活动有:

①提供产品资料;

②提供供应商个人(企业)资料;

③记录供应商品的信息;

(2)员工主要活动有:

①值勤信息;

②记录入库、出库信息;

③记录退货信息;

现金收支是指对进出帐目的记录统计。

(3)顾客主要活动:

①查询商品信息;

②选购商品。

③提供客户个人信息;

(4)仓库负责人主要活动:

①管理员工信息;

②选购商品商品库存信息查询;

③财务状况管理;

1.3业务流程图

2.系统逻辑方案

系统分析的主要成果是系统的逻辑模型。本系统的逻辑模型主要是以系统的数据流图和数据字典为主要描述工具。即在无纸化网络考试系统管理方式和业务流程进行认真分析和研究的基础上,排除现有组织机构和业务分工所造成的信息障碍。

2.1数据流程图(DFD):

数据流图是组织中信息运动的抽象。是在调研的基础上,从系统的科学性、管理的合理性、实际运动的可行性角度出发。将信息处理功能和彼此之间的联系自顶向下,逐层分解,从逻辑上精确地描述系统应具有的数据加工功能、数据输入、数据输出、数据存储及数据来源和去向(外部实体)等项目。

图2.1 数据流程图

在数据流程图中可以很清楚的看到数据的流向,商品信息的数据分别能够流向经理、员工和顾客。商品销售信息的信息也流经理。商品销售信息记录的是商品销售和退还的信息。顾客表信息从顾客流出又可以流回到顾客和员工、经理。

2.2数据字典(简称DD)

绘制DFD,只是对数据处理和彼此之间的联系进行了说明。为进一步明确数据的详细内容和数据加工过程,应将数据流图中的全部数据流及其组成部分的数据元素,数据存储,数据加工,通过数据字典描述清楚,以便于此后系统设计的进行。这就需要开发人员编写详细的数据字典,来描述系统开发过程的细节。

下面列出本系统中的数据项、数据流、数据存储、加工处理和数据结构的数据字典。数据字典可采用图表格式或较紧凑的记录格式描述,本文采用的是图表格式。

数据项的DD表列举如下:

表2.1  商品编号的数据字典

                            数  据  项

系统名:仓储物资管理系统   编号:I001 名称:商品编码 别名: 

数据项值:    类型:字符型      长度:6个字节        取值范围:

简述:每种商品都具有唯一的编号,它是某种商品的唯一标识符,每种商品都有唯一的编号,如“011976”通常用前两位数字表示入库的年份,中间两位表示类别,最后两位表示该商的序号。如果该类商数超过100种时,可用“0119A0”表示第100种商。

修改记录:

编写

日期

审核

日期

表2.2 商品名称

                            数  据  项

系统名:仓储物资管理系统   编号:I002  名称:商品名称  别名:

数据项值:    类型:字符型      长度:32个字节        取值范围:

简述:每种商品都具有唯一商品标识。

修改记录:

编写

日期

审核

日期

表2.3 密码

                            数  据  项

系统名:仓储物资管理系统    编号:I003  名称:售价  别名:

数据项值:    类型:数值型      长度:8个字节        取值范围:

简述:每种商品都要设置一个销售价格。

修改记录:

编写

日期

审核

日期

注:因限于篇幅,其余数据项的DD表在此略过。

3系统总体结构设计

3.1软件系统总体结构设计

软件系统总体结构设计的主要任务就是将整个系统合理的划分成各个功能模块,正确处理模块之间与模块内部的联系及它们之间的调用关系和数据联系,定义各模块的内部结构等,本系统的软件总体结构按分解-协调的原则,信息隐蔽抽象的原则,自顶向下的原则,一致性原则,面向用户的原则进行设计。

3.2数据存储的总体设计

   按用途分类可把本系统文件分成以下几种:

  1. 主文件:系统中的主文件是最重要的共享文件,主要存放具有固定值属性的数据。它需要长期保存,并不断更新。
  2. 处理文件:处理文件包含下一次更新文件所需要的全部记录,本系统中的处理文件如新闻登录日志文件、待审核项目信息文件。

3.3系统功能模块设计

通过对系统的数据流图进行分析,进一步进行功能分解,直到分解成含义明确,功能单一的功能模块,从而得到系统的功能模块结构图。

图3.1系统的功能模块结构

4数据库详细设计

4.1数据库设计

数据库的设计是指对一个给定的应用环境,构造数据库模式,建立数据库及其应用系统,满足各种用户需求。作为信息资源开发、管理和服务的一种有效的手段,数据库技术的应用已越来越广泛,从小型的单项事务处理系统到大型的信息系统大都用先进的数据库技术来保持系统数据的安全性、完整性和共享性。对一个实际的系统来说,数据库表的设计在遵循数据库理论的同时,必须能用开发工具来实现用户在各方面提出的功能要求。

4.1.1E-R图:

在系统的数据库设计中,先要对系统分析得到的数据字典中的数据存储进行分析,分析各数据存储之间的关系,然后才能得出系统的关系模式。可以采用E-R图的方法来进行数据结构分析,E-R设计方法是一种通过E-R图来描述现实世界信息结构的DB设计方法。E-R图由实体、属性、联系三部分组成。

各分E-R图说明如下:

  1. 仓库负责人E-R图:

  1. 供应商E-R图:

  1. 员工E-R图:

  1. 商品销售清单E-R图:

  1. 客户E-R图:

  1. 商品E-R图:

(7)供应E-R图:

(8)查询E-R图:

(9)整体E-R图:

图3.2整体E-R图

4.1.2关系模式与码:

商品信息(商品编号,商品名称,商品类别代号,售价,进价,库存量,供应商,有效期)  外码:商品类别代号、 供应商

员工信息(员工号,姓名,用户名,密码,职位,权限)

客户信息(客户号,客户名称,联系人,联系方式,客户所在城市)

供应商信息(供应商号,供应商名称,联系人,联系方式,供应商所在城市)

供应信息(供应商编号,商品编号,供应日期,供应数量)

查询信息(客户编号,商品编号,查询日期)

商品销售信息(销售编码,出库日期,入库日期,商品编码,商品名称,单价,入库数量,出库数量,供应商编码,销售员编码)  外码:销售员编码、商品编码

4.1.3关系模式优化:

      在上述关系模式中,每一个分量都是不可分割的数据项所以都符合第一范式;而且前四个关系模式都是单个属性作为码,没有任何非主属性对码部分函数依赖,在商品销售信息内虽由三个属性作为码,但也不存在非主性对码的部分函数依赖,所以上都符合第二范式;商品信息、商品类别索引、客户信息、供应商信息四个关系模式中都不存在非主属性对码的传递函数依赖,都属于第三范式。

在员工信息关系模式中,员工是按照权限分类的,职位不同权限也不同,这样该关系模式就存在了非主属性对码的传递依赖:职工号->职位,职位->权限,所以就将用员工信息分解为如下现个模式:

①员工信息(员工号,姓名,用户名,用户口令,职位)

②职位权限信息(职位,权限)

本系统不考虑职工信息的管理,为了使销售员编号与销售员的职工号连系起来,并能通过职工姓名和职位来修改用户信息所以把员工的部分信息(职工号,姓名,职位)和经理(用户名,密码)合成了员工信息(员工号,姓名,用户名,密码,职位,权限)以便系统功能的实现,所以在此不采用模式分解。

商品销售信息中有大量的数据冗余,表达不明确,将其分解为如下两个模式:

①商品销售主表(销售编码,出库入库日期,销售员编号,总金额)

②商品销售子表(销售编码,出库入库日期,商品编码,商品名称,单价,数量,供应商)

4.1.4数据库设计

对上述E-R图所需的实体需要的几个关键表的设计如下:

表4.1:商品信息表

merchandiseCode

merchandiseName

MerKindeCode

Price

ListPrice

Number

FirmName

Userfulllife

1001

电扇

001

140

180

1435

唔亥

2010-12-5

2002

沙发

004

1500

1700

4255

湘西

2010-12-12

2003

铁锅

002

120

145

4235

蜀汉

2012-10-6

2004

拖把

003

154

165

53532

梁林

2010-6-5

3001

文曲星

005

100

108

355

杜恒

2012-9-16

表4.2:顾客信息表

GuestCode

GuestName

GLINK

GLinkTell

CITY

015112

杨洋

杨希希

668401

嘉兴

065114

林丹

胡浩那

614425

广东

052114

易会挺

郝东天

659024

温州

043115

华怀起

陈建东

615874

上虞

014221

熙引

何钦娜

651283

大连

025471

蓝强

胡海少

691472

上海

表4.3:供应商信息表

FirmCODE

FirmNAME

LINK

LinkTell

CITY

015

唔亥

肖扬

681472

湖州

014

湘西

吴江

658421

杭州

051

蜀汉

林枫

65417

温州

052

梁林

林楠

68417

南湖

051

杜恒

吴枫

65917

宁波

表4.4:商品销售主表

SaleNo

WorkNo

SaleDate

Amount

13

075101

2009-01-05 00:00:00.000

1000.0000

15

075201

2009-01-07 00:00:00.000

1500.0000

20

075215

2009-06-01 00:00:00.000

800.0000

表4.5:商品销售子表

SaleNo

merchandiseCode

merchandiseName

Price

number

Amount

13

1001

电扇

140

20

300.0000

15

2002

沙发

1500

15

1200.0000

20

3001

文曲星

100

20

300.0000

表4.6:商品类别索引信息表

MerKindCode

KindExplanation

001

电器类

002

厨房用品

003

清洁用品

004

家具类

005

文具类

WorkNo  

WNAME

UserRegName

Password

Position

WPower

075101   

美美

zkl01

456789

员工  

查询

075201

娜娜

zjm01

123789

员工  

查询

075215  

佳佳

wmx05

147258

员工  

查询

075120

冉冉

zzm20

123456  

员工

查询

075201

肖捷

ffqff

124567

员工

查询

表4.7:员工信息表

表4.8:供应信息表

FirmCode

MerchandiseCode

number

FirmDate

015

1001

1435

2009-7-1

014

20002

4255

2009-3-2

051

2003

4235

2008-8-24

052

2004

53532

2009-5-28

051

3001

355

2010-1-9

表4.9:查询信息表

GuestCode

MerchandiseCode

SearchDate

015112

1001

2010-2-11

065114

2002

2009-3-27

052114

2003

2008-8-24

043115

2004

2009-5-28

014221

3001

2010-1-9

数据库的完整性和安全性

4.2.1数据库的完整性

数据库的完整性是指数据的正确性和相容性。数据库管理系统(DBMS)用一定的机制来检查数据库中的数据是否满足规定的条件——完整性约束条件,数据的约束条件是语义的体现,将作为模式的一部分存入数据库中。

本系统中定义了表与表之间的联系有助于实现完整性规则,一般在程序中实现具体的完整性控制。

实体完整性:要求主键属性的值不为空。

例如:create table MerInfor/*创建商品信息表*/

      (MerchandiseCode char(6) constraint M_PRIM PRIMARY KEY,

       MerchandiseName varchar(8) NOT NULL,

       MerKindeCode char(10)  FOREIGN KEY REFERENCES MerID(MerKindeCode),

       Price Money,

       ListPrice Money,

       Number Int,

       FirmCode char(10) FOREIGN KEY REFERENCES FirmInfor(FirmCode),

       Userfulllife Datetime)

参照完整性:维护实体间的联系,保证关系模式间属性的正确引用。

例如:create table sellMain/*创建商品销售主表*/

       (SaleNo int constraint SM_PRIM PRIMARY KEY,

        WorkNo char(10) FOREIGN KEY REFERENCES WorkInfor(WorkNo),

        SaleDate DateTime,

        Amount Money)

4.2.2数据库的安全性

数据库的安全性是指保护数据库以防止不合法的使用所造成的数据泄漏、更改或破坏。在数据库系统中,大量的数据集中存放,而且为许多用户直接共享,是宝贵的信息资源,系统的安全保护措施就显得更为重要,它保护数据库防止恶意的破坏和非法的存取。

本系统包括数据库的安全和服务器的安全。采用管理员表示和鉴定的方法实现数据库的安全,此安全管理措施并不在前台开发工具中实现,而是在后台数据库中实现。在登录数据库时,系统让管理员户表示自己的身份,不同的管理员权限不同,系统进行核实,鉴别此管理员是否为合法用户,若是,系统进一步核实用户,通常要求用户输入口令,系统和对用户口令以鉴别用户身份。服务器的安全也是通过用户在登录服务器时输入合法的用户名和密码来实现的。这是一种简单可行的方法,实现起来比较方便。没有采用更加复杂的系统安全管理措施是因为本管理系统一般是应用在校园网中,采用安全管理措施主要是为了防止没有修改权限的用户无意间修改了数据,因此采用用户标识和鉴定的安全管理措施就能够保障数据库的安全性。

5.数据库操作(SQL Server2000语句完成)

数据库的选择和部分重要SQL代码

5.1创建仓储物资管理系统

create database StoragematerialsSystem/*创建仓储物资管理系统*/

use StoragematerialsSystem

5.2创建各类别索引信息表

create table  MerInfor/*创建商品信息表*/

(merchandiseCode VARCHAR (6) constraint M_PRIM PRIMARY KEY,

merchandiseName varchar(8) NOT NULL,

MerKindeCode varchar(10) ,

       Price Money,

       ListPrice Money,

       Number Int,

       FirmCode  char(10),  

       Userfulllife Datetime )

create table GueInfor/*创建顾客信息表*/

(GuestCODE VARCHAR(10) NOT NULL,

GuestNAME VARCHAR(16) NOT NULL,

GLINK varchar(12),

GLinkTell VARCHAR(11),

CITY VARCHAR(8))

create table sellMain/*创建商品销售主表*/

(SaleNo VARCHAR(4) NOT NULL,

WorkNo VARCHAR(10) NOT NULL,

 SaleDate  DateTime ,

Amount Money)

create table sellChild/*创建商品销售子表*/

(SaleNo int constraint SC_PRIM PRIMARY KEY,

merchandiseCode VARCHAR(6) NOT NULL,

merchandiseName VARCHAR (32) NOT NULL,

Price  money,

number int,

Amount Money )

 create table MerID/*创建商品类别索引信息*/

(MerKindeCode CHAR(10)constraint MI_PRI PRIMARY KEY,

KindExplanation VARCHAR(10) NOT NULL)

create table  WorkInfor/*创建员工表*/

(WorkNo VARCHAR(10) NOT NULL,  

WNAME VARCHAR(12),

 UserRegName VARCHAR (6) NOT NULL,

Password VARCHAR(10) NOT NULL ,

Position VARCHAR(10),

WPower VARCHAR (4))

create table FInfor/*创建供应信息表*/

(FirmCODE VARCHAR(10) NOT NULL,

 merchandiseCode VARCHAR(16) NOT NULL,

number int,

FirmDate  DateTime)

create table SearchInfor/*创建查询信息表*/

(GuestCODE VARCHAR(10) NOT NULL,

 merchandiseCode VARCHAR(16) NOT NULL,

SearchDate  DateTime)

5.3建立存储过程向表中插入、修改、删除数据

5.3.1插入数据的存储过程

create proc MerInfor_proc

@merchandiseCode varchar(6),@merchandiseName varchar(8),@MerKindeCode char(10),@Price money,@ListPrice money,

@Number int,@FirmName  char(10),@Userfulllife Datetime

as

insert into MerInfor(merchandisecode ,merchandiseName,MerKindeCode,Price,ListPrice,

Number,FirmName,Userfulllife) values(@merchandiseCode,@merchandiseName,@MerKindeCode,@Price,@ListPrice,

@Number,@FirmName,@Userfulllife)

exec MerInfor_proc  '1001','电扇','001',140,180,'1435','唔亥','2010-12-5'

exec MerInfor_proc  '2002','沙发','004',1500,1700,'4255','湘西','2010-12-12'

exec MerInfor_proc  '2003','铁锅','002', 120,145,'4235','蜀汉','2012-10-6'

exec MerInfor_proc  '2004','拖把','003',154,165,'53532', '梁林','2010-6-5'

exec MerInfor_proc  '3001','文曲星','005',100,108,'355','杜恒','2012-9-16'

create proc  GueInfor_proc

@GuestCode char(10),@GuestName varchar(16),@GLink varchar(12),@GLinkTell varchar(11),

@City varchar(8)

as

insert into GueInfor(GuestCode,GuestName,GLink,GLinkTell,

City) values(@GuestCode,@GuestName,@GLink,@GLinkTell,@City)

exec GueInfor_proc '015112','杨洋','杨希希','668401','嘉兴'

exec GueInfor_proc '065114','林丹','胡浩那','614425','广东'

exec GueInfor_proc '052114','易会挺','郝东天','659024','温州'

exec GueInfor_proc '043115','华怀起','陈建东','615874','上虞'

exec GueInfor_proc '014221','熙引','何钦娜','651283','大连'

exec GueInfor_proc '025471','蓝强','胡海少','691472','上海'

create proc sellMain_proc

@SaleNo VARCHAR(4),@WorkNo VARCHAR(10),@SaleDate DateTime,@Amount Money

as

insert into sellMain(SaleNo,WorkNo,SaleDate,Amount)

values(@SaleNo,@WorkNo,@SaleDate,@Amount)

exec sellMain_proc '13','075101','2009-1-5',1000

exec sellMain_proc '15','075201','2009-1-7',1500

exec sellMain_proc '20','075215','2009-6-1',800

create proc sellChild_proc

@SaleNo int,@MerchandiseCode char(6),@MerchandiseName varchar(32),@Price Money,@Number Int,@Amount Money

as

insert into sellChild(SaleNo,MerchandiseCode,MerchandiseName,Price,number,Amount)

values(@SaleNo,@MerchandiseCode,@MerchandiseName,@Price,@Number,@Amount)

exec sellChild_proc '13','1001','电扇',140,'20',300

exec sellChild_proc '15','2002','沙发',1500,'15',1200

exec sellChild_proc '20','3001','文曲星',100,'20',300

create proc MerID_proc

@MerKindeCode char(10),@KindExplanation varchar(12)

as

insert into MerID (MerKindeCode,KindExplanation) values(@MerKindeCode ,@KindExplanation )

exec MerID_proc '001','电器类'

exec MerID_proc '002','厨房用品'

exec MerID_proc '003','清洁用品'

exec MerID_proc '004','家具类'

exec MerID_proc '005' ,'文具类'

create proc WorkInfor_proc

@WorkNo char(10),@WName varchar(12),@UserRegName char(6),@Password char(10),@Position char(10),@Power VARCHAR(4)

as

insert into WorkInfor(WorkNo,WName,UserRegName,Password,Position,wPower)

values(@WorkNo,@WName,@UserRegName,@Password,@Position,@Power)

exec WorkInfor_proc '075101','美美','zkl01','456789','员工','查询'

exec WorkInfor_proc '075201','娜娜','zjm01','123789','员工','查询'

exec WorkInfor_proc '075215','佳佳','wmx05','147258','员工','查询'

exec WorkInfor_proc '075120','冉冉','zzm20','123456','员工','查询'

exec workInfor_proc '075201','肖捷','ffqff','124567','员工','查询'

create proc FInfor_proc

@FirmCode char(10),@MerchandiseCode varchar(16),@number int,@FirmDate  DateTime

as

insert into FInfor(FirmCode,MerchandiseCode,number,FirmDate)

values(@FirmCode,@MerchandiseCode,@number,@FirmDate)

exec FInfor_proc '015','1001','1435','2009-7-1'

exec FInfor_proc '014','2002','4255','2009-3-2'

exec FInfor_proc '051','2003','4235','2008-8-24'

exec FInfor_proc '052','2004','53532','2009-5-28'

exec FInfor_proc '051','3001','355','2010-1-9'

create proc SearchInfor_proc

@GuestCode char(10),@MerchandiseCode varchar(16),@SearchDate  DateTime

as

insert into SearchInfor(GuestCode,MerchandiseCode,SearchDate)

values(@GuestCode,@MerchandiseCode,@SearchDate)

exec SearchInfor_proc '015112','1001','2010-2-1'

exec SearchInfor_proc '065114','2002','2009-3-27'

exec SearchInfor_proc '052114','2003','2008-8-24'

exec SearchInfor_proc '043115','2004','2009-5-28'

exec SearchInfor_proc '014221','3001','2010-1-9'

5.3.2删除数据的存储过程

create proc MerID_delete_proc

@MerKindeCode char(10)

as

delete from MerId

   where MerkindeCode=@MerKindeCode

exec MerID_delete_proc '002'

create proc MerInfor_delete_proc

@MerchandiseName varchar(8)

as

delete from MerInfor

 where MerchandiseName=@MerchandiseName

create proc GueInfor_delete_proc

@GuestCode char(10)

as

delete from GueInfor

where GuestCode=@GuestCode

create proc FirmInfor_delete_proc

@FirmCode char(10)

as

delete from FirmInfor

where FirmCode=@FirmCode

create proc WorkInfor_delete_proc

@WorkNo char(10)

as

delete from WorkInfor

where WorkNo=@WorkNo

create proc sellMain_delete_proc

@SaleNo int

as

delete from sellMain

where SaleNo=@SaleNo

create proc sellChild_delete_proc

@SaleNo int

as

delete from sellChild

create proc FInfor_delete_proc

@FirmCode char(10)

as

delete from FInfor

where FirmCode=@FirmCode

create proc SearchInfor_delete_proc

@GuestCODE char(10)

as

delete from SearchInfor

where GuestCODE=@GuestCODE

5.3.3修改数据的存储过程

create proc MerID_update_proc

@MerKindeCode char(10),@KindExplanation varchar(12),@MerKindeCode1 char(10)

as

update  MerID

   set MerKindeCode=@MerKindeCode,KindExplanation=@KindExplanation

   where MerKindeCode=@MerKindeCode1

exec MerID_update_proc '004','家具类','001'

create proc MerInfor_update_proc

@MerchandiseCode1 char(6),@MerchandiseName varchar(8),@MerKindeCode char(10),@Price money,@ListPrice money,

@Number int,@FirmCode char(10),@Userfulllife Datetime,@MerchandiseCode char(6)

as

update MerInfor

set MerchandiseCode=@MerchandiseCode1,MerchandiseName=@MerchandiseName,MerKindeCode=@MerKindeCode,Price=@Price,

ListPrice=@ListPrice,Number=@Number,FirmCode=@FirmCode,Userfulllife=@Userfulllife,MerchandiseCode=@MerchandiseCode

where MerKindeCode=@MerKindeCode  

create proc GueInfor_update_proc

@GuestCode1 char(10),@GuestName varchar(16),@GLink varchar(12),@GLinkTell varchar(11),

@City varchar(8),@GuestCode char(10)

as

update GueInfor

set GuestCode=@GuestCode1,GuestName=@GuestName,GLink=@GLink,GLinkTell=@GLinkTell,

City=@City

where GuestCode=@GuestCode

create proc FirmInfor_update_proc

@FirmCode1 char(10),@FirmName varchar(16),@Link varchar(12),@LinkTell varchar(11),@City varchar(8),

@FirmCode char(10)

as

update  FirmInfor

set FirmCode=@FirmCode1,FirmName=@FirmName,Link=@Link,LinkTell=@LinkTell,City=@City

where FirmCode=@FirmCode

create proc WorkInfor_update_proc

@WorkNo1 char(10),@WName varchar(12),@UserRegName char(6),@Password char(10),@Position char(10),@WPower Int,

@WorkNo char(10)

as

update WorkInfor

set WorkNo=@WorkNo1,WName=@WName,UserRegName=@UserRegName,Password=@Password,Position=@Position,WPower=@WPower

where WorkNo=@WorkNo

create proc sellMain_update_proc

@SaleNo1 int,@WorkNo char(10),@SaleDate DateTime,@Amount Money,@SaleNo int

as

update sellMain

set SaleNo=@SaleNo1,WorkNo=@WorkNo,SaleDate=@SaleDate,Amount=@Amount

where SaleNo=@SaleNo

create proc sellChild_update_proc

@SaleNo1 int,@MerchandiseCode char(6),@MerchandiseName varchar(32),@Price Money,@Number Int,@Uint char(8),@Amount Money,

@SaleNo int

as

update sellChild

set SaleNo=@SaleNo1,MerchandiseCode=@MerchandiseCode,MerchandiseName=@MerchandiseName,Price=@Price,Number=@Number,Amount=@Amount

where SaleNo=@SaleNo

create proc FInfor_update_proc

@FirmCODE1 VARCHAR(10),@merchandiseCode VARCHAR(16),@number int,@FirmDate  DateTime

as

update  FInfor

set FirmCODE=@FirmCODE1,merchandiseCode=@merchandiseCode,number=@number,FirmDate=@FirmDate

where FirmCODE=@FirmCODE

create proc SearchInfor_update_proc

@GuestCODE VARCHAR(10),@merchandiseCode VARCHAR(16),@SearchDate  DateTime

as

update  SearchInfor

set GuestCODE=@GuestCODE1,merchandiseCode=@merchandiseCode,SearchDate=@SearchDate

where GuestCODE=@GuestCODE

5.4建立存储过程实现查询 

(1) 建立存储过程实现单表查询

/*建立名为“单表查询1”的存储过程,用来查询某种商品的信息*/

create proc 单表查询1

@MerchandiseCode char(6)

AS

select *

from MerInfor

  where MerchandiseCode=@MerchandiseCode  

/*建立名为“单表查询2”的存储过程,用来查询某个客户的信息*/

create proc 单表查询2

@ GuestName char(11)

AS

select *

from GueInfor

  where GuestName =@ GuestName  

/*建立名为“单表查询3”的存储过程,用来查询某个员工的信息*/

create proc 单表查询3

@WorkNo char(10)

AS

select *

from WorkInfor

  where WorkNo=@WorkNo

/*建立名为“单表查询4”的存储过程,用来查询某个供应商的供应信息*/

create proc 单表查询4

@ FirmCode varchar(1)

AS

select *

from  FInfor

  where FirmCode =@ FirmCode 

/*建立名为“单表查询5”的存储过程,用来查询某个商品编号对应的查询信息*/

create proc 单表查询5

@ MerchandiseCode char(10)

AS

select *

from SearchInfor

  where MerchandiseCode =@ MerchandiseCode

(2)建立存储过程实现连接查询

/*建立名为“连接查询1”的存储过程,用来查询某个商品名称对应的商品类型的信息*/

create proc 连接查询1

@MerchandiseName varchar(8)

as

select MerchandiseName ,KindExplanation

from MerInfor,MerID

where MerID.MerKindeCode=MerInfor.MerKindeCode and

      MerchandiseName=@MerchandiseName

/*建立名为“连接查询2”的存储过程,用来查询某类商品的销售量*/

create proc 连接查询2

@KindExplanation varchar(12)

as

select KindExplanation,sellChild.Number

from sellChild,MerID,MedInfor

  where MerID.MerKindeCode=MerInfor.MerKindeCode and

        MerInfor.MerchandiseCode=sellChild.MericineCode and

        KindExplanation=@KindExplanation

/*建立名为“连接查询3”的存储过程,用来查询某个销售员销售某种商品的数量*/

create proc 连接查询3

@WName varchar(12),@MerchandiseName varchar(8)

as

select Wname ,MerInfor.MerchandiseName,sellChild.Number

from WorkInfor,sellChild,MerInfor,sellMain

where WorkInfor.WorkNo=sellMain.WorkNo and

      sellMain.SaleNo=sellChild.SaleNo and

      sellChild.MerchandiseCode=MerInfor.MerchandiseCode and

      Wname=@WName and

      MerInfor.MerchandiseName=@MerchandiseName      

/*建立名为“连接查询4”的存储过程,用来查询某个员工销售的商品类型*/

create proc 连接查询4

@Name varchar(12)

as

select Name,KindExplanation

from sellChild,MerID,MedInfor,sellMain,WorkInfor

  where MerInfor.MerchandiseCode=sellChild.MerchandiseCode and

        MerID.MerKindeCode=MerInfor.MerKindeCode and

        WorkInfor.WorkNo=sellMain.WorkNo and

        sellMain.SaleNo=sellChild.SaleNo and

        Name=@Name

/*建立名为“连接查询5”的存储过程,用来查询某个供应商提供的商品类型*/

create proc 连接查询5

@FirmName varchar(16)

as

select FirmName,KindExplanation

from MerInfor,MerID,FirmInfor

where MerID.MerKindeCode=MerInfor.MerKindeCode and

      MerInfor.FirmCode=FirmInfor.FirmCode and

      FirmName=@FirmName

(3)建立存储过程实现嵌套查询

/*建立名为“嵌套查询1”的存储过错,用来查询某类商品的销售量*/

create proc 嵌套查询1

@KindExplanation varchar(12)

as

select Number

 from sellChild

  where MerchandiseCode In(select MerchandiseCode

                            from MerID

                              where KindExplanation=@KindExplanation) /*建立名为“嵌套查询2”的存储过错,用来查询某个供应商提供的商品*/

create proc 嵌套查询2

@FirmName varchar(16)

as

select MerchandiseName

  from MerInfor

  where FirmCode In (select FirmCode

                       from FirmInfor

                       where FirmName=@FirmName)

(4)建立存储过程实现集合查询

/*建立名为“集合查询1”的存储过程,用来查询提供某类商品的供应商数*/

create proc 集合查询1

@MerchandiseName varchar(8)

as

select avg(FirmCode)

  from FrimInfor

   where FirmCode in(select FirmCode

                      from MerInfor,FrimInfor

                           where MerInfor.FirmCode=FrimInfor.FirmCode and MerchandiseName=@MerchandiseName)

/*建立名为“集合查询2”的存储过错,用来查询商品种类数*/

create proc 集合查询2

as

select count(MerKindeCode)

  from MerID

5.5视图建立

/*1,由商品类别表“MerID”建立一个视图,该视图由商品类别表的所有列构成*/

create view 商品类别(商品类别代码,类别说明)

as

select* from MerID

/*2,由客户信息表“GueInfor”建立一个视图,该视图由客户信息表的所有列构成*/

create view 客户信息(客户编码,客户名称,联系人,联系电话,所在城市)

as

select* from GueInfor

/*3,由供应商信息表“FirmInfor”建立一个视图,该视图由供应商信息表的所有列构成*/

create view 供应商信息(供应商编码,供应商名称,联系人,联系电话,所在城市)

as

select* from FirmInfor

5.6建立触发器

/*建立INSERT触发器*/

create trigger MerID_insert on MerID

for insert

as if(select count(*)

from MerID_Mer,inserted

where MerID_Mer.MerKindeCode=inserted.MerKindeCode)=0

rollback transaction

/*建立DELETE触发器*/    

create trigger delete_MerID on MerID

for delete

as

select* from MerID

declare @MerKindeCode char(10)

select @MerKindeCode=MerKindeCode from deleted

delete from MerID

where MerKindeCode=@MerKindeCode

select*from MerID

*/建立UPDATE触发器*/     

create trigger MerID_update on MerID

for update

as

if update(MerKindeCode)

begin

raiserror('you can not modify this column',16,1)

rollback transaction

end

6课程设计小结

    本次课程设计调查了一些商品销售、供应等,根据其具体情况,设计仓储物资管理系统。加深了对数据库课程知识的理解。由于时间仓促,软件还有很多不足之处,如:商品信息查询部分不够完善,软件代码交冗余、效率不高等等,都相关功能缺乏认识造成的。在今后的学习中我们会加强理论的实践的结合,通过不断摸索来弥补自己在软件制作方面的差距。

在这一个星期的课程设计中,我们回顾了很多以前的东西,也发现了很多的问题,以前都没遇见过的,收获很大,在对不同的功能代码是不一定可以完整的执行的,不过大概都是一样的,只有一些小的细节。我们觉得每一次的课程设计,都是让我们对原有的知识从了解表面到深入本质,从个体学习到整体把握的跳跃,对新知识的汲取,更是让我们把课本的知识应用到实际中,让我们了解了我们的学习有什么用,能够解决什么样的问题,增加我们的自信和学习的动力。在学习过程中,我也能过上网查了不少资料,也看了一些别人设计的图书馆管理信息系统的设计报告,学以致用,自我创新,独立完成了这份自己的报告,从中在学到用,从用又到学,不断修改,系统更新。虽然不能达到完善系统,但也做到了尽善尽美,加强理论学习对完善系统会有很多帮助,不管怎么说,对这次做的课程设计自己觉得还算满意。

通过这次课程设计,我们进一步掌握了数据库知识,也让我们知道了学这门课的作用是什么,会应用于哪些,不会再迷茫。并且还拓展了一些知识,让我们学到了很多课本上学不到的知识,也学会了遇到问题时,如何去解决它,攻克它,而不是以为依赖别人。这次课程设计,我们收获很大。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/130529.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Mac端交互式原型设计 Axure RP 8 for Mac汉化

Axure RP 8是一款专业的交互原型设计工具,它被广泛应用于用户体验设计、界面设计和产品原型制作等领域。该软件提供了丰富的功能和工具,使用户能够创建出具有高度交互性和可视化效果的原型。 Axure RP 8的主要特点和功能包括: 1. 快速原型&a…

【广州华锐互动】智能变电站AR仿真实训系统大大提高培训的效率和质量

随着电力行业的不断发展,变电站的建设和运维变得越来越重要。传统的变电站运维培训方式存在着诸多问题,如难以真实模拟变电站运行环境、信息传递不及时、难以掌握实际操作技能等问题。而智能变电站AR仿真实训系统可以为变电站运维人员带来全新的培训方式…

023-从零搭建微服务-推送服务(三)

原【短信服务】更名【推送服务】 写在最前 如果这个项目让你有所收获,记得 Star 关注哦,这对我是非常不错的鼓励与支持。 源码地址(后端):https://gitee.com/csps/mingyue 源码地址(前端)&a…

免费小程序商城搭建之b2b2c o2o 多商家入驻商城 直播带货商城 电子商务b2b2c o2o 多商家入驻商城 直播带货商城 电子商务

1. 涉及平台 平台管理、商家端(PC端、手机端)、买家平台(H5/公众号、小程序、APP端(IOS/Android)、微服务平台(业务服务) 2. 核心架构 Spring Cloud、Spring Boot、Mybatis、Redis 3. 前端框架…

Android发布依赖到 Jitpack

前言 我们在日常开发中,经常会用到第三方开源的库文件,有的来自JCenter,Maven Central,google等。但是随着JCenter的弃用,现在用的最多的还是Maven Central,google。今天我们就自己亲自发布一个依赖。 现…

IDEA新建的Moudle失效显示为灰色

现象:IDEA新建的Moudle失效显示为灰色!!! 解决方案: 1. 右键点击父模块,选择Open Moudle Settings: 2. 点击加号,选择Import Moudle - 导入模块: 3. 找到对应模块的po…

Fultter学习日志(2)-构建第一个flutter应用

依照上一篇中我们新建的flutter应用 让我们更改pubspec.yaml中的内容为 name: namer_app description: A new Flutter project.publish_to: none # Remove this line if you wish to publish to pub.devversion: 0.0.11environment:sdk: >2.19.4 <4.0.0dependencies:fl…

SQL 注入漏洞攻击

文章目录 1. 介绍2. 无密码登录3. 无用户名无密码登录4. 合并表获取用户名密码 1. 介绍 假设你用自己的用户名和密码登录了一个付费网站&#xff0c;网站服务器就会查询一下你是不是 VIP 用户&#xff0c;而用户数据都是放在数据库中的&#xff0c;服务器通常都会向数据库进行查…

最新IDE流行度最新排名(每月更新)

2023年09月IDE流行度最新排名 顶级IDE排名是通过分析在谷歌上搜索IDE下载页面的频率而创建的 一个IDE被搜索的次数越多&#xff0c;这个IDE就被认为越受欢迎。原始数据来自谷歌Trends 如果您相信集体智慧&#xff0c;Top IDE索引可以帮助您决定在软件开发项目中使用哪个IDE …

【初阶C语言】操作符2---表达式求值

前言&#xff1a;本节重点介绍操作符的使用&#xff0c;如&#xff0c;优先级高低、类型转换等 一、逻辑操作符 前言&#xff1a;逻辑操作符包括逻辑与&#xff08;&&&#xff09;和逻辑或&#xff08;||&#xff09;&#xff0c;操作对象&#xff1a;两个 1.逻辑与&…

一文了解数据科学Notebook

编者按&#xff1a; 主要介绍什么是Notebook&#xff0c;Notebook在数据科学领域的应用的重要性与优势&#xff0c;以及数据科学家/算法团队在选择Notebook时需考虑哪些关键因素。同时&#xff0c;基于Notebook的筛选考量维度&#xff0c;对常见的Notebook进初步对比分析&#…

2023-9-11 台阶-Nim游戏

题目链接&#xff1a;台阶-Nim游戏 #include <iostream> #include <algorithm>using namespace std;int main() {int n;cin >> n;int res 0;for(int i 1;i < n; i){int x;cin >> x;if(i % 2) res ^ x; }if(res) cout << "Yes" &l…

MyBatis-Plus深入 —— 条件构造器与插件管理

前言 在前面的文章中&#xff0c;荔枝梳理了一个MyBatis-Plus的基本使用、配置和通用Service接口&#xff0c;我们发现在MyBatis-Plus的辅助增强下我们不再需要通过配置xml文件中的sql语句来实现基本的sql操作了&#xff0c;不愧是最佳搭档&#xff01;在这篇文章中&#xff0c…

Linux:工具(vim,gcc/g++,make/Makefile,yum,git,gdb)

目录 ---工具功能 1. vim 1.1 vim的模式 1.2 vim常见指令 2. gcc/g 2.1 预备知识 2.2 gcc的使用 3.make,Makefile make.Makefile的使用 4.yum --yum三板斧 5.git --git三板斧 --Linux下提交代码到远程仓库 6.gdb 6.1 gdb的常用指令 学习目标&#xff1a; 1.知道…

[构建自己的 Vue 组件库] 小尾巴 UI 组件库

文章归档于&#xff1a;https://www.yuque.com/u27599042/row3c6 组件库地址 npm&#xff1a;https://www.npmjs.com/package/xwb-ui?activeTabreadme小尾巴 UI 组件库源码 gitee&#xff1a;https://gitee.com/tongchaowei/xwb-ui小尾巴 UI 组件库测试代码 gitee&#xff1a…

2023年世界机器人大会回顾

1、前记&#xff1a; 本次记录是我自己去世界机器人博览会参观的一些感受&#xff0c;所有回顾为个人感兴趣部分的机器人产品分享。整个参观下来最大的感受就是科学技术、特别是机器人技术和人工智能毫无疑问地、广泛的应用在我们日常生活的方方面面&#xff0c;在安全巡检、特…

Vue 报错error:0308010C:digital envelope routines::unsupported 解决方案(三种)

新换的电脑&#xff0c;系统装的win11&#xff0c;node也是18的版本。 跑了一下老项目&#xff0c;我用的是HbuilderX&#xff0c;点击运行和发行时&#xff0c;都会报错&#xff1a; Error: error:0308010C:digital envelope routines::unsupported 出现这个错误是因为 node.j…

数学建模B多波束测线问题B

数学建模多波束测线问题 完整思路和代码请私信~~~~ 1.问题重述&#xff1a; 单波束测深是一种利用声波在水中传播的技术来测量水深的方法。它通过测量从船上发送声波到声波返回所用的时间来计算水深。然而&#xff0c;由于它是在单一点上连续测量的&#xff0c;因此数据在航…

从 算力云 零开始部署ChatGLM2-6B 教程

硬件最低需求&#xff0c;显存13G以上 基本环境&#xff1a; 1.autodl-tmp 目录下 git clone https://github.com/THUDM/ChatGLM2-6B.git然后使用 pip 安装依赖&#xff1a; pip install -r requirements.txtpip 使用pip 阿里的 再执行git clone之前&#xff0c;要先在命令行…

【笔试强训选择题】Day40.习题(错题)解析

作者简介&#xff1a;大家好&#xff0c;我是未央&#xff1b; 博客首页&#xff1a;未央.303 系列专栏&#xff1a;笔试强训选择题 每日一句&#xff1a;人的一生&#xff0c;可以有所作为的时机只有一次&#xff0c;那就是现在&#xff01;&#xff01;&#xff01; 文章目录…