1、资料内容仅供您学习参考,如有不当之处,请联系改正或者删除。数据库原理及应用实验报告( 第 1学期) 题 目: 仓库管理系统的设计_专 业: 计算机科学与技术( 嵌入式) 班 级: 13计算机( 2) 班_ 姓名学号: 何雨虹 _ 黄成旺 _ 林国凤 _ 庄海隆 _指导教师: 柳玲 成 绩: _ 计算机科学与技术系 年 1月7日目录一、 需求分析31.1系统需求分析31.2系统功能基本要求和功能描述31.2.1基本信息管理31.2.2产品信息管理31.2.3仓库管理操作31.2.4仓库警示管理31.2.5查询管理功能31.3系统功能模型41.4数据分析41.4.1数据流图41.4.2数据字典5二
2、、 数据库概念结构设计6三、 数据库逻辑结构设计10四、 数据库物理结构设计12五、 数据库的实施15六、 数据库的运行17参考文献25附录1仓库管理系统部分程序代码25仓库管理系统的设计一、 需求分析1.1系统需求分析仓库管理系统主要用于仓库货品信息的管理, 系统包括仓库管理、 入库、 出库和一些统计查询等几部分组成。仓库管理系统实现对货品信息的管理和总体的统计等, 仓库信息, 供货单位和操作员信息的查看及维护。仓库管理人员能够浏览、 查询、 添加、 删除等产品的基本信息。 产品入库管理, 能够填写入库单, 确认产品入库; 产品出库管理, 能够填写出库单, 确认产品出库; 借出管理, 凭借条
3、借出, 然后能够还库; 初始库存设置, 设置库存的初始值, 库存的上下警戒限; 能够进行盘库, 反映每月、 年的库存情况; 能够查询产品入库情况、 出库情况、 当前库存情况, 能够按出库单、 入库单, 产品、 时间进行查询; 1.2 系统功能基本要求和功能描述 1.2.1 基本信息管理基本信息包括客户信息、 仓库信息和操作员信息。客户能够分为供应商和购货商两种类型。在产品入库时, 需要提供供应商的信息; 在产品出库和退货时, 需要提供购货商的信息。基本信息管理模块能够实现以下功能: 添加、 修改、 删除和查看客户信息; 添加、 修改、 删除和查看仓库信息; 添加、 修改、 删除和查看操作员信息
4、。1.2.2 产品信息管理产品信息管理模块能够实现以下功能: 添加产品信息; 修改产品信息; 删除产品信息; 查询产品信息; 1.2.3 仓库管理操作进行入库和出库操作。入库操作需要记录相关的产品信息、 仓库信息、 客户信息、 入库时间等信息; 出库操作需要记录相关的产品信息、 仓库信息、 客户信息、 出库时间等信息。1.2.4仓库警示管理仓库警示管理模块能够实现仓库产品数量报警和仓库容量报警。1.2.5查询管理功能查询管理模块能够对仓库产品进行各种类型的查询, 从而能够全面的了解仓库情况。1.3系统功能模型根据以上所介绍的功能, 能够设计出系统的总体功能模块, 如图1-1所示。仓库管理系统基
5、本信息管理操作员登陆产品信息管理仓库警示管理仓库管理操作客户信息管理查询产品信息入库操作管路修改产品信息删除产品信息添加产品信息仓库信息管理出库操作管理查询仓库信息图1-1 仓库管理系统功能模块示意图查询管理操作操作员信息管理查询产品信息查询客户信息填写入库单修改客户信息添加客户信息填写出库单删除客户信息产品数量报警仓库容量报警查询客户信息1.4 数据分析 1.4.1 数据流图经过进行系统调查,了解用户需求、 分析应用软件系统的功能需求。总结出了系统逻辑模型,即系统业务流程图、 数据流图。如 图1-2和图1-3所示。仓库管理系统产品操作员客户仓库入库出库查询操作返回结果进货出货供货购货图1-2
6、 系统业务流程图产品操作员注册返回信息产品信息管理仓库信息管理产品信息表入库表P1P2D1D2基本信息管理P4管理返回信息D5仓库信息D4操作员信息仓库信息管理P3查询返回信息出库表D3库存表D3仓库存储返回信息入库添加填表返回信息图1-3 仓库管理系统数据流图 1.4.2 数据字典 名字: 产品别名: 描述: 唯一的标识一个产品的信息集合定义: 产品=产品号+产品名+供应商号+类别+产品单价+产品数量位置: 存储在数据库名字: 仓库别名: 描述: 唯一的标识一个仓库的信息集合定义: 仓库=仓库号+仓库名+剩余容量+总容量位置: 存储在数据库名字: 客户别名: 描述: 唯一的标识一个客户特征的
7、信息集合定义: 客户=客户号+客户名+地址+电话 +客户类型位置: 存储在数据库名字: 操作员别名: 描述: 唯一的标识一个职工特征的信息集合定义: 操作员=操作员号+操作员名+密码位置: 存储在数据库名字: 库存表别名: 描述: 仓库存储物资的情况定义: 库存表=仓库号+产品号+产品总数量位置: 存储在数据库名字: 入库表别名: 描述: 物资的入库信息定义: 入库表=产品号+仓库号+入库时间+数量位置: 存储在数据库名字: 出库表别名: 描述: 物资的出库信息定义: 出库表=产品号+仓库号+出库时间+数量位置: 存储在数据库 二、 数据库概念结构设计 经考察和分析,本案例客房管理系统包括以下
8、实体: 客户实体、 客房实体、 操作员实体、 结算账单实体,它们的E-R图如以下所示。 产品产品名供应商号产品单价产品数量产品号图2-1产品及其属性库存表仓库号产品号产品总数量图2-2库存表及其属性入库表仓库号产品号入库时间数量图2-3入库表及其属性出库表仓库号产品号出库时间数量图2-4出库表及其属性仓库仓库号仓库名剩余容量总容量图2-5仓库及其属性客户客户号客户名客户类型联系地址联系电话邮政编号客户备注图2-6客户及其属性操作员操作员编号操作员名密码图2-7操作员及其属性产品供应商入库表仓库操作员购货商出库表管理提供取出存储返回库存表图2-8仓库管理系统E-R图n11mn1nn1n三、 数据
9、库逻辑结构设计根据E-R图, 数据库仓库管理系统包含以下8个表: 客户信息表”客户”、 仓库信息表”仓库”、 操作员信息表”操作员”、 产品类别表”产品类别”、 产品信息表”产品”、 入库操作信息表”入库”、 出库操作信息表”出库”和库存产品信息表”库存”。1. 客户信息表”客户”客户信息表”客户”主要是用来保存客户信息, 表”客户”结构如图表2-1所示。 表2-1 客户信息表”客户”编号字段名称数据结构说 明1客户号Int客户编号2客户名varchar(50)客户名称3客户类型tinyint客户类型, 供应商、 购货商4联系地址varchar(50)客户的联系地址5邮政编号varchar(1
10、0)邮政编码6联系电话varchar(30)联系电话7备注varchar(100)备注信息 2. 仓库信息表”仓库”仓库信息表”仓库”用来保存仓库信息, 表”仓库”的结构如表2-2所示。表2-2 仓库信息表”仓库”编号字段名称数据结构说 明1仓库号int仓库编号2仓库名varchar(50)仓库名称3仓库备注varchar(100)仓库说明3. 操作员表”操作员”操作员表”操作员”用来保存用户信息, 表”操作员”的结构如表2-3表示。表2-3操作员信息表”操作员”编号字段名称数据结构说 明1操作员号Int操作员的编号2操作员名varchar(40)用户名3密码varchar(40)密码4. 产
11、品信息表”产品”产品信息表”产品”用来保存产品的基本信息, 表”产品”的结构如表2-5表示。表2-5产品信息表”产品”编号字段名称数据结构说 明1产品号int产品编号2产品名varchar(50)产品名称3产品数量int产品的数量4产品单价Varchar(20)产品的每单位价格5客户号int供应商编号5. 入库操作信息表”入库表”入库操作信息表”入库表”用来保存入库操作的基本信息, 表”入库表”的结构如表2-6表示。表2-6入库操作信息表”入库表”编号字段名称数据结构说 明1产品号int入库产品编号2入库单价Varchar(20)入库产品单价3入库数量int入库产品数量4客户号int客户编号5
12、仓库号int仓库编号6入库时间char(10)入库日期6. 出库操作信息表”出库表”出库操作信息表”出库表”用来保存出库操作的基本信息。表”出库表”的结构如表2-7表示。 表2-7 出库操作信息表”出库表”编号字段名称数据结构说 明1产品号int出库产品编号2出库单价Varchar(20)出库产品单价3出库数量int出库产品数量4客户号int客户编号5仓库号int仓库编号6出库时间char(20)出库日期7. 库存产品信息表”库存表”库存产品信息表”库存表”用来保存库存产品的基本信息, 表”库存表”的结构如表2-8表示。 表2-8库存产品信息表”库存”e编号字段名称数据结构说 明1产品号int
13、产品编号2入库价格Varchar(20)产品入库单价3现存数量Int产品数量4仓库号Int仓库编号四、 数据库物理结构设计在进行了数据表的逻辑结构定义后,需要为每个数据表创立其物理结构,即在数据库系统中定义数据表具体存放的格式、 位置等。这里列出利用SQL Server 自带的数据库创立的数据表的物理结构。1.”客户”表的物理结构”客户”表的物理结构如图4-1所示,关键字为”客户号”。图4-1 ”客户”表2. ”产品”表的物理结构 ”产品”表的物理结构如图4-2所示,关键字为”产品号”。图4-2 ”产品”表3. ”仓库”表的物理结构”仓库”表的物理结构如图4-3所示,关键字为”仓库号”。图4-
14、3 ”仓库”表4. ”库存表”的物理结构 ”库存表”的物理结构如图4-4所示。图4-4”库存表”5. ”入库表”的物理结构 ”入库表”的物理结构如图4-5所示。图4-5”入库表”6. ”出库表”的物理结构 ”出库表”的物理结构如图4-6所示。图4-6”出库表”7. ”操作员”表的物理结构 ”操作员”表的物理结构如图4-7所示。图4-7”操作员”表8. ”产品视图”的物理结构”产品视图”的物理结构如图4-8所示。图4-8 ”产品视图”五、 数据库的实施根据以上所进行的调查、 设计和进行方案,建立并实施数据库。此系统运用SQL Server 进行数据库的开发。1.数据库建表语句 名称: 客户表”客
15、户” 标识: 客户建表语句如下: create table 客户 ( 客户号 int not null, 客户名 varchar(50) null, 客户类型 tinyint null, 联系地址 varchar(50) null, 邮政编号 varchar(10) null, 联系电话 varchar(30) null, 备注 varchar(100) null, constraint PK_客户 primary key (客户号)go(2) 名称: 产品表”产品” 标识: 产品号建表语句如下: create table 产品 ( 产品号 int not null, 产品名 varchar(
16、50) null, 产品数量 int null, 产品单价 varchar(20) null, 客户号 int null, constraint PK_产品 primary key (产品号)go(3) 名称: 仓库表”仓库” 标识: 仓库号建表语句如下: create table 仓库 ( 仓库号 int not null, 仓库名 varchar(50) null, 仓库备注 varchar(100) null, constraint PK_仓库 primary key (仓库号)go(4) 名称: ”入库表” 建表语句如下: create table 入库表 ( 产品号 int null
17、, 入库单价 varchar(20) null, 入库数量 int null, 客户号 int null, 仓库号 int null, 入库时间 varchar(10) null)go(5) 名称: ”出库表” 建表语句如下: create table 出库表 ( 产品号 int null, 出库单价 varchar(20) null, 出库数量 int null, 客户号 int null, 仓库号 int null, 出库时间 varchar(10) null)go(6) 名称: ”库存表” 建表语句如下: create table 库存表 ( 产品号 int null, 入库价格 var
18、char(20) null, 现存数量 int null, 仓库号 int null)go(7) 名称: ”操作员”表 建表语句如下: create table 操作员 ( 操作员号 int not null, 操作员名 varchar(40) null, 密码 varchar(40) null, constraint PK_操作员 primary key (操作员号)go2.数据库建视图语句(1) 名称: ”产品视图”建视图语句如下: CREATE VIEW dbo.产品视图ASSELECT dbo.产品.产品号, dbo.产品.产品名, dbo.产品.客户号, dbo.库存表.仓库号, d
19、bo.产品.产品数量, dbo.产品.产品单价, dbo.库存表.入库价格, dbo.库存表.现存数量FROM dbo.产品 INNER JOIN dbo.库存表 ON dbo.产品.产品号 = dbo.库存表.产品号六、 数据库的运行根据以上所做的准备以及SQL Server 建立好的表、 试图及各种关系, 运用Visual Basic 6.0 为前台开发工具, 开发出客户管理系统, 主要运用了ADODC控件和DataGrid控件。1. 系统登陆界填入用户名和密码后点击【登录】按钮,系统将自动从数据库中判断是否存在相同的用户名和密码,如果有则进入系统, 进入系统的主页面并出现欢迎使用系统的对
20、话框,不成功则显示错误信息页面。如果不存在则提示用户名和密码有错误信息。 系统登陆界面如图6-1所示 图6-1 系统登陆界面2. 系统主界面主界面包括系统的主要功能包括新建客户信息、 客房信息查询、 客户信息查询、 结算信息账单, 四个主要的功能。用户能够根据需要点击自己想使用的功能进入功能界面。系统主界面如图6-2所示。 图 6-2 系统主界面3. 管理界面图6-3 各信息管理界面4.添加界面 用于添加新的信息, 有添加客户信息、 添加仓库信息、 添加产品信息、 添加操作员信息, 各个添加界面如图4-4所示。图4-4-a 添加客户信息界面图4-4-b 添加仓库信息界面图4-4-c 添加产品信
21、息界面5.查询界面 用于查询各种信息, 有客户信息查询、 仓库信息查询、 产品信息查询、 操作员信息查询。各个查询界面如图4-5所示。图4-5-1仓库信息查询图4-5-2 产品信息查询图4-5-3 入库表信息查询图4-5-4 客户信息查询6. 删除界面 删除界面用于删除无用的、 过时的信息。包括删除客户信息、 删除仓库信息、 删除产品信息。各界面如下列图4-6所示。图4-6-1 删除客户信息界面图 4-6-2 删除仓库信息界面图4-6-3 删除产品信息界面参考文献1 王珊,陈红.数据库系统原理教程M.北京: 清华大学出版社,1998.7.2 王珊,萨师煊.数据库系统概论( 第四版) M.北京:
22、 高等教育出版社, .5.3 虞益诚,孙莉.SQL Server 数据库应用技术M.北京: 中国铁道出版社, .11.4 刘钢.Visual Basic 程序设计与应用案例M.北京: 高等教育出版社, .9.5 Abraham Silberschatz, Henry F.Korth ,S.Sudarshan.Database System Concepts( Fourth Edition) . Higher Education Press.6 罗运模.完全掌握SQL Server J.北京: 人民邮电出版社, .7 白尚旺.PowerDesigner软件工程技术M.北京: 电子工业出版社, .
23、附录仓库管理系统部分程序代码1. 登陆代码Private Sub Command1_Click()Dim cn As New ADODB.Connectioncn.ConnectionString = Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=仓库管理系统;Data Source=WWW-4FDE9FFEC01cn.OpenDim rs, rss As New ADODB.RecordsetSet rs = cn.Execute(select * from 操
24、作员 where 操作员名= & Text1.Text & )Set rss = cn.Execute(select * from 操作员 where 密码= & Text2.Text & )If rs.EOF Then MsgBox 用户名错误! Text1.Text = Text1.SetFocus Else If rss.EOF Then MsgBox 密码错误! Text2.Text = Text2.SetFocus Else Me.Hide Form2.Show MsgBox (Text1.Text + ,欢迎您使用冰舞奇迹仓库管理系统) End IfEnd IfEnd Sub2.
25、添加客户信息代码Private Sub Command1_Click()Dim cn As New ADODB.ConnectionDim sql As Stringcn.ConnectionString = Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=仓库管理系统;Data Source=WWW-4FDE9FFEC01cn.OpenDim a1, a2, a3, a4, a5, a6, a7 As Stringa1 = Text1.Texta2 = Text2
26、.Texta3 = Text3.Texta4 = Text4.Texta5 = Text5.Texta6 = Text6.Texta7 = Combo1.Textsql = insert into 客户 values( & a1 & , & a2 & , & a7 & , & a3 & , & a4 & , & a5 & , & a6 & )cn.Execute (sql)cn.CloseMsgBox 已添加客户信息End Sub3. 根据客户号查看、 删除客户代码Private Sub Command1_Click()Dim kehuhao As Stringkehuhao = Text8.
27、TextAdodc1.Recordset.Find 客户号= & Val(kehuhao)End SubPrivate Sub Command2_Click()Dim cn As New ADODB.ConnectionDim sql As StringDim kehuhao As Stringkehuhao = Text8.Textcn.ConnectionString = Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=仓库管理系统;Data Source=WW
28、W-4FDE9FFEC01cn.Opensql = delete from 客户 where 客户号= & kehuhao & cn.Execute (sql)MsgBox 已删除编号为 & kehuhao & 的客户信息End Sub4. 查看客户信息代码Private Sub Command1_Click()Dim cn As New ADODB.ConnectionDim rs As New ADODB.RecordsetDim sql As Stringcn.ConnectionString = Provider=SQLOLEDB.1;Integrated Security=SSPI;
29、Persist Security Info=False;Initial Catalog=仓库管理系统;Data Source=WWW-4FDE9FFEC01cn.OpenIf Combo1.Text = 供应商 Thenrs.Open select * from 客户 where 客户类型=供应商, cn, adOpenKeyset, adLockBatchOptimistic, adCmdTextSet DataGrid1.DataSource = rsDataGrid1.Refresh Else If Combo1.Text = 购货商 Then rs.Open select * from
30、 客户 where 客户类型=购货商, cn, adOpenKeyset, adLockBatchOptimistic, adCmdTextSet DataGrid1.DataSource = rsDataGrid1.Refresh Else rs.Open select * from 客户, cn, adOpenKeyset, adLockBatchOptimistic, adCmdText Set DataGrid1.DataSource = rsDataGrid1.RefreshEnd IfEnd IfEnd SubPrivate Sub Command2_Click()Dim cn A
31、s New ADODB.ConnectionDim rs As New ADODB.RecordsetDim sql As Stringcn.ConnectionString = Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=仓库管理系统;Data Source=WWW-4FDE9FFEC01cn.Openrs.Open select * from 客户 where 客户号= & Text1.Text & , cn, adOpenKeyset, adLockBat
32、chOptimistic, adCmdTextSet DataGrid1.DataSource = rsDataGrid1.RefreshEnd SubPrivate Sub Command3_Click()Dim cn As New ADODB.ConnectionDim rs As New ADODB.RecordsetDim sql As Stringcn.ConnectionString = Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=仓库管理系统;Da
33、ta Source=WWW-4FDE9FFEC01cn.Openrs.Open select * from 客户 where 客户名= & Text2.Text & , cn, adOpenKeyset, adLockBatchOptimistic, adCmdTextSet DataGrid1.DataSource = rsDataGrid1.RefreshEnd Sub5. 查询仓库信息Dim sql As Stringcn.ConnectionString = Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security In
34、fo=False;Initial Catalog=仓库管理系统;Data Source=WWW-4FDE9FFEC01cn.Openrs.Open select * from 仓库 where 仓库号= & Text1.Text & , cn, adOpenKeyset, adLockBatchOptimistic, adCmdTextSet DataGrid1.DataSource = rsDataGrid1.RefreshEnd SubPrivate Sub Command2_Click()Dim cn As New ADODB.ConnectionDim rs As New ADODB.
35、RecordsetDim sql As Stringcn.ConnectionString = Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=仓库管理系统;Data Source=WWW-4FDE9FFEC01cn.Openrs.Open select * from 仓库 where 仓库名= & Text2.Text & , cn, adOpenKeyset, adLockBatchOptimistic, adCmdTextSet DataGrid1.DataS
36、ource = rsDataGrid1.RefreshEnd Sub6. 添加仓库信息Private Sub Command1_Click()Dim cn As New ADODB.ConnectionDim sql As Stringcn.ConnectionString = Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=仓库管理系统;Data Source=WWW-4FDE9FFEC01cn.OpenDim a1, a2, a3 As Stringa1 = T
37、ext1.Texta2 = Text2.Texta3 = Text3.Textsql = insert into 仓库 values( & a1 & , & a2 & , & a3 & )cn.Execute (sql)cn.CloseMsgBox 已添加仓库信息End Sub7. 查看删除仓库信息Private Sub Command1_Click()Dim cangkuhao As Stringcangkuhao = Text1.TextAdodc1.Recordset.Find 产品号= & Val(cangkuhao)End SubPrivate Sub Command2_Click()Dim cn As New ADODB.ConnectionDim sql As StringDim cangkuhao As Stringcangkuhao = Text1.Textcn.ConnectionString = Provider=SQLOLEDB.1;Integrated Security=SSPI;