物流系统数据管理

50
院院院院院院 院院院院院院 院院院 院院院院 院院院 院院院院

description

物流系统数据管理. 学习任务:. 1 、根据企业内部物流系统的实际进行需求分析、简单介绍相关知识背景 2 、创建企业内部物流系统所需要数据库和数据表 3 、创建表与表之间的关联、查询、存储过程等. 学习目标:. 1 、通过创建数据库简单回顾 SQL SERVER 数据库基础知识、创建数据库的方法; 2 、通过创建数据表回顾创建表的方法、表内各字段的属性设置方法以及一些约束条件的创建方法; 3 、通过创建表之间的关联回顾数据库中表与表之间关联的建立方法、创建查询、创建触发器等,掌握数据一致性和完整性。. 需求分析. - PowerPoint PPT Presentation

Transcript of 物流系统数据管理

Page 1: 物流系统数据管理

院级精品课程院级精品课程

物流系统数据管理 物流系统数据管理 物流系统数据管理 物流系统数据管理

Page 2: 物流系统数据管理

学习任务:学习任务:学习任务:学习任务:

1 、根据企业内部物流系统的实际进行需求分析、简单介绍相关知识背景

2 、创建企业内部物流系统所需要数据库和数据表

3 、创建表与表之间的关联、查询、存储过程等

Page 3: 物流系统数据管理

学习目标:学习目标:学习目标:学习目标:

1 、通过创建数据库简单回顾 SQL SERVER 数据库基础知识、创建数据库的方法;

2 、通过创建数据表回顾创建表的方法、表内各字段的属性设置方法以及一些约束条件的创建方法;

3 、通过创建表之间的关联回顾数据库中表与表之间关联的建立方法、创建查询、创建触发器等,掌握数据一致性和完整性。

Page 4: 物流系统数据管理

需求分析需求分析需求分析需求分析

需求收集和分析是数据库设计的起点,要创建一个企业内部的物流系统所需要的数据库,首先应该进行需求分析。确定用户最终的需求其实是一件很困难的事,这是因为用户缺少计算机知识,开始时无法确定计算机究竟能为自己做什么,不能做什么,因此无法一下子准确地表达自己的需求,他们所提出的需求往往不断地变化。另一方面设计人员也缺少用户的专业知识,如财务知识和物流管理的知识等,不易理解用户的真正需求,甚至误解用户的需求。因此,为了很好的完成调查的任务,我们与用户不断输深入地进行交流,才能逐步得以确定用户的实际需求。

Page 5: 物流系统数据管理

具体做法: 1 、用户需求的调查与初步分析 经过可行性分析和初步调查,我们抽象出物流系

统的基础数据管理包括仓库表、材料表、出入库凭证表、往来单位、合同表等等。

方法

Page 6: 物流系统数据管理

1 )了解该企业的组织结构情况。通过调查,我们了解该企业由管理部门、财务部门、计划部门、仓库部门、生产车间等组成,并了解各部门的职责。

2 )了解各部分的业务活动情况,调查各部门输入和使用的数据、如何加工处理这些数据、输出什么信息、输出到什么部门、输出结果的格式是什么。

3 )在熟悉业务活动的基础上,协助用户明确对系统的各种要求,包括信息要求、处理要求、安全性与完整性要求。

4 )对前面调查的结果进行初步分析,确定哪些功能是由计算机完成或将来准备让计算机完成的,哪些活动是由人工完成的,由计算机完成的功能就是系统应该实现的功能。

Page 7: 物流系统数据管理

深入调查后,我们明确了这个系统的主要功能是进行出库、入库、移库、盘点管理等。用到的方法是:

1 )深入现场,跟班作业,通过亲身参加业务工作了解业务活动的情况,能比较准确地理解用户的需求,但比较耗时;

2 )开调查会,通过与用户座谈来了解业务活动情况及用户需求;

3 )请业务专家和技术专家介绍; 4 )询问,对某些调查中的问题,可以找专人询问; 5 )设计调查表请用户填写,如果调查表设计合理,则很有效,且易于被用户接受。

22 、深入调查、深入调查22 、深入调查、深入调查

Page 8: 物流系统数据管理

33 、进一步分析和表达用户、进一步分析和表达用户33 、进一步分析和表达用户、进一步分析和表达用户

对用户需求进一步分析与表达后,必须提交给用户,征得用户的认可后,才能进行下一步工作。

Page 9: 物流系统数据管理

创建物流系统数据库创建物流系统数据库创建物流系统数据库创建物流系统数据库

1 、打开 SQL SERVER 企业管理器,新建一个数据库,名称为物流系统数据库,如下图所示。

Page 10: 物流系统数据管理

利用 SQL语句来创建数据库,并保存成建库脚本,这样若有异常情况,我们可以直接利用建库脚本来直接恢复数据库。方法为:在 SQL SERVER 企业管理器窗口中,从工具栏中选择工具— SQL 查询分析器,如下图所示。

Page 11: 物流系统数据管理

在其中输入创建数据库的 SQL语句: Create database 物流系统数据库 on (name= 物流系统数据库, filename=’e:\sql\ 物流系统数据库 .mdf’, size=2, filegrowth=10%) log on (name= 物流系统数据库 _log , filename=’e:\sql\ 物流系统数据库 .ldf’, size=5, filegrowth=10%)

Page 12: 物流系统数据管理

2 、通过分析,物流系统数据库需要的表如下所示:

材料表

Page 13: 物流系统数据管理

仓库表

出入库凭证表

Page 14: 物流系统数据管理

1 )创建“材料表”的 SQL脚本为: USE 物流系统数据库 go CREATE TABLE dbo. 材料表 ( 材料编码 nvarchar(9) NOT NULL UNIQUE PRIMARY KEY, 材料名称 nvarchar(10) NULL, 材质 nvarchar(10) NULL, 规格型号 nvarchar(10) NULL, 计量单位 nvarchar(10) NULL, 计划价格 numeric(10, 2) NULL, 当前库存量 numeric(10, 2) NULL, 当前库存金额 numeric(10, 2) NULL, 缩略码 nvarchar(4) NULL )

Page 15: 物流系统数据管理

2 )创建“仓库”表的 SQL脚本为: USE 物流系统数据库 go CREATE TABLE dbo. 仓库表 ( 仓库编码 nvarchar(2) NOT NULL UNIQUE PRIMARY KEY, 仓库名称 nvarchar(10) NULL, 保管员 nvarchar(8) NULL, 库存金额 numeric(10, 2) NULL, 待估金额 numeric(10, 2) NULL, 借用金额 numeric(10, 2) NULL, 本地标记 numeric(1, 0) NULL )

Page 16: 物流系统数据管理

需方 nvarchar(8) NULL,需方单位名称 nvarchar(30)

NULL,计划价 numeric(10, 2) NULL,采购限价 numeric(10, 2) NULL,合同号 nvarchar(10) NULL,合同价 numeric(10, 2) NULL,入库数量 numeric(10, 2) NULL,入库单价 numeric(10, 2) NULL,入库金额 numeric(10, 2) NULL,出库数量 numeric(10, 2) NULL,出库单价 numeric(10, 2) NULL,出库金额 numeric(10, 2) NULL,出库日期 smalldatetime NULL,记录人 nvarchar(8) NULL)

3 )创建“出入库凭证”脚本 USE 物流系统数据库 go CREATE TABLE dbo. 出入库凭

证表(凭证号 nvarchar(6) NOT NULL

UNIQUE PRIMARY KEY,凭证日期 smalldatetime NULL,凭证类别 numeric(1, 0) NULL,凭证编号 numeric(1, 0) NULL,材料编码 nvarchar(9) NULL,仓库编码 nvarchar(2) NULL,产地品牌 nvarchar(16) NULL,供方所在地 nvarchar(8) NULL,供方单位名称 nvarchar(30)

NULL,

Page 17: 物流系统数据管理

4 )创建其他数据表 企业内部物流系统数据库中还包含一些其他的表

如往来单位、进货单、销售单等等,在此我们不再详细介绍,由同学们自己参照以上各表分析创建完成。

Page 18: 物流系统数据管理

创建脚本代码为: ——外部关键字关联字段 Alter Table dbo. 材料表 ADD CONSTRAINT 材料表 _出入库凭证 _fk FOREIGN KEY ( 材料编码 ) REFERENCES dbo. 入库表 ( 材料编码 ) GO Alter Table dbo. 仓库 ADD CONSTRAINT 仓库 _出入库凭证 _fk FOREIGN KEY ( 仓库编码 ) REFERENCES dbo. 仓库 ( 仓库编码 ) GO

33 、创建外部关键字、创建外部关键字33 、创建外部关键字、创建外部关键字

Page 19: 物流系统数据管理

44 、创建存储过程、创建存储过程44 、创建存储过程、创建存储过程

物流系统数据库使用了两个存储过程,分别实现入库时加大库存和出库时减少库存的功能。

Page 20: 物流系统数据管理

代码为:—— 存储过程 CREATE PROCEDURE sf_ 出入库凭证 @ 记录人 char(10) = NULL AS Begin transaction—— 库存库中没有,加记录 INSERT INTO 库存库(材料编码,仓库编码,库存数量,库存单价,库存金额) SELECT DISTINCT J. 材料编码, J. 仓库编码 ,0,0,0 FROM 出入库凭证 AS J LEFT JOIN 库存库 AS K ON (J. 仓库编码=K. 仓库编码 AND J. 材料编码=K. 材料编码 )

WHERE K. 材料编码 is null——修改库存信息 UPDATE 库存库 SET 库存单价=CASE WHEN 库存数量<=0 or ( 库存数量 +

数量 ALL)<=0 then 进价 Else (库存金额 + 税价合计 ALL ) /( 库存数量 + 数量 ALL) END , 最新进价 =

进价 FROM (SELECT 仓库编码,材料编码,’数量 ALL’=sum( 入库数量 ),’进价’=sum(税价合计 )/sum( 入库数量 ),’税价合计 ALL’=sum(税价合计 ) FROM 出入库凭证 GROUP BY 仓库编码,材料编码 ) AS LSJ

WHERE 库存库 .仓库编码=LSJ. 仓库编码 AND 库存库 .材料编码=LSJ. 材料编码

GO

Page 21: 物流系统数据管理

代码为: CREATE PROCEDURE SF_ 出入库凭证 @ 记录人 CHAR(10)

= NULL AS BEGIN TRANSACTION ——修改库存信息 UPDATE 库存库 SET 库存数量 = 库存数量 -数量 ALL ,库存金额 = 库存单价 *(库存数量 -数量 ALL )

FROM (SELECT 仓库编码,材料编码,’数量 ALL’=SUM(出库数量 ) FROM 出入库凭证

GROUP BY 仓库编码,材料编码 ) AS LSJ WHERE 库存库 .仓库编码=LSJ. 仓库编码 AND 库存库 .材料编码=LSJ. 材料编码

GO

Page 22: 物流系统数据管理

小结小结小结小结

首先,根据企业内部物流系统的实际进行了简单的需求分析

其次,通过创建数据库简单回顾 SQL SERVER 数据库基础知识、创建数据库和数据表的方法以及表内各字段的属性设置方法以及一些约束条件的创建方法

最后,通过创建表之间的外键在数据库中创建查询、创建触发器等,掌握数据一致性和完整性。

Page 23: 物流系统数据管理

数据访问模型的选择 数据访问模型的选择 数据访问模型的选择 数据访问模型的选择

Page 24: 物流系统数据管理

学习任务:学习任务:学习任务:学习任务:

1 、选择物流系统使用的数据模型—— ADO.NET 2 、使用 ADO.NET

Page 25: 物流系统数据管理

学习目标:学习目标:学习目标:学习目标:

1 、通过选择项目使用的数据访问模型讲解几种常用的数据访问方式,比较各种访问模型之间的不同,选择出适用于本项目的数据访问模型——ADO.NET

2 、通过使用 ADO.NET 对其进行简单介绍,讲解 ADO.NET 的连接、 ADO.NET 数据适配器和ADO.NET 数据集等内容

Page 26: 物流系统数据管理

选择数据访问模型选择数据访问模型 选择数据访问模型选择数据访问模型

常用的数据访问方式有: DAO 、 RDO 、 ODBC 、OLE DB 、 ADO 、 ADO.NET 以及支持跨平台的JDBC 。下表对当前流行的几种技术进行了比较,从中可以看出几种访问技术的性能特点。

ODBC 、 OLE DB 、 ADO 和 ADO.NET 的性能特点比较

通过比较,物流系统采用了 ADO.NET 数据库连接技术。

Page 27: 物流系统数据管理

ADO.NET 数据提供者 下表概括了组成 .NET 数据提供程序的四个核心

对象

使用使用 ADO.NETADO.NET 使用使用 ADO.NETADO.NET

对象 说明 Connection

建立与特定数据源的连接。

Command 对数据源执行命令。公开Parameters ,并且可以从Connection 在 Transaction 的范围内执行。

DataReader

从数据源中读取只进且只读的数据流。

DataAdapter

用数据源填充 DataSet 并解析更新。

Page 28: 物流系统数据管理

SQL Server .NET 数据提供程序 SQL Server .NET 数据提供程序和 OLE

DB .NET 数据提供程序之间的比较

Page 29: 物流系统数据管理

OLE DB .NET 数据提供程序 下表显示已经用 ADO.NET 进行测试的提供程序。

驱动程序 提供程序 SQLOLEDB 用于 SQL Server 的

Microsoft OLE DB 提供程序

MSDAORA 用于 Oracle 的 Microsoft OLE DB 提供程序

Microsoft.Jet.OLEDB.4.0

用于 Microsoft Jet 的 OLE DB 提供程序

Page 30: 物流系统数据管理

选择 .NET 数据提供程序 使用 ADO.NET 连接到数据源 OleDbConnection 类 一个 OleDbConnection 对象,表示到数据

源的一个唯一的连接 . 连接实例 SqlConnection 类 SqlConnection 对象表示与 SQL Server 数

据源的一个唯一的会话。

Page 31: 物流系统数据管理

ADO.NETADO.NET 对象模型对象模型 ADO.NETADO.NET 对象模型对象模型

DataReaders 对象 DataReaders 对象的主要属性 FieldCount :获取当前行中的列数。 IsClosed :指示是否可关闭数据读取器。 Item :获取以本机格式表示的列的值。 RecordsAffected :通过执行 SQL 语句获

取更改、插入或删除的行数。

Page 32: 物流系统数据管理

DataReaders 对象的主要方法 使用 DataReaders 对象的基本步骤 使用 Connection 对象创建数据连接。 使用 Command 对象对数据源执行命令并返回结果。 创建 Command 对象的格式是: Dim myCommand As New

OleDbCommand(CmdText, myConnection) Dim myCommand As New

SQLCommand(CmdText, myConnection) 使用 DataReaders 对象读取数据源,并显示结果

Page 33: 物流系统数据管理

DataSet 对象 DataSet 对象的结构

Page 34: 物流系统数据管理

DataSet 对象的主要属性、方法和事件 A. 主要属性 B. 主要方法 C. 主要事件 Disposed :添加事件处理程序以侦听组件上的

Disposed 事件。 MergeFailed :当目标和源 DataRow 的主

键值相同且 EnforceConstraints 设置为真时发生。

Page 35: 物流系统数据管理

使用 DataSets 下面主要谈谈通过编程实现 DataSet 的步骤编程实现 DataSet A. 使用 DataSet() 创建器创立一个 DataSet 对

象 B.增加一个 DataTable 到 DataSet 中。 C. 设置表间的关系 D. 在关系表间的浏览 E. 数据约束的使用 F. 处理 DataSet 的事件

Page 36: 物流系统数据管理

在在 C#C# 环境下访问、连接和管环境下访问、连接和管理数据库理数据库

在在 C#C# 环境下访问、连接和管环境下访问、连接和管理数据库理数据库

Page 37: 物流系统数据管理

学习任务:学习任务:学习任务:学习任务:

1 、创建数据绑定控件 2 、管理和使用数据库数据

Page 38: 物流系统数据管理

学习目标:学习目标:学习目标:学习目标:

1 、通过创建数据绑定控件讲解数据绑定的类型、使用数据绑定的常见方案、创建绑定控件显示数据及更新数据库等;

2 、通过管理和使用数据库数据讲解管理数据的5 种常见类:DataSet 、 DataTable 、 DataRow 、 DataColumn 、 DataRelation ,讲解在数据集内筛选和排序,数据集的更新(插入、删除和更新等)以及将数据集更改写入数据源等,讲解将数据导入 EXCEL 中并打印等。

Page 39: 物流系统数据管理

DataViewDataView 对象对象 DataViewDataView 对象对象

DataView 对象的主要属性 DataView 对象的主要方法和事件 DataView 事件主要有两个: Disposed :添加事件处理程序以侦听组件上的

Disposed 事件。 ListChanged :在 DataView 管理的列表发生更改时发生

使用 DataView 对数据排序和筛选 利用 DataView 实现数据筛选—在程序中指定筛选

字段 DataView 的应用—在窗体中指定排序字段

Page 40: 物流系统数据管理

DataGrid 控件 DataGrid Web 服务器控件是一个多列数据绑

定网格,呈现表格式数据绑定网格 DataGrid 控件的使用格式 格式 1 :自动指定字段的 DataGrid 控件的使用

格式 格式 2 :手动指定字段的 DataGrid 控件的使用

格式

与数据库操作相关控件 与数据库操作相关控件

Page 41: 物流系统数据管理

DataGrid控件的主要属性 AllowPaging , AllowSorting ,

AlternatingItemStyle , AutoGenerateColumns , BackImageUrl , HorizontalAlign , VirtualItemCount 等

Page 42: 物流系统数据管理

DataGrid控件的事件 DataGrid控件的公共字段 DataGrid控件的应用实例 基本的 DataGrid 的使用 DataGrid 的数据浏览及翻页功能的使用 用 DataGrid 实现查询、翻页和排序等集成多操作运算 手动指定 DataGrid控件的字段和 BoundColumn 字段的使用。 手动指定 DataGrid控件的字段 -- ButtonColumn 字段的使用 利用 EditCommandColumn 字段实现数据的修改 HyperLinkColumn 字段的使用 利用 TemplateColumn 实现数据的修改 利用 DataGrid读写 XML文件

Page 43: 物流系统数据管理

RepeaterRepeater 控件控件 RepeaterRepeater 控件控件 格式 Repeater 控件的声明语法如下: <Asp:Repeater Runat="Server" Id="…"

DataSource="<%# … %>" DataMember="…"…> <HeaderTemplate> 页眉模板 </HeaderTemplate> <ItemTemplate> 奇数行数据模板 </ItemTemplate>

<AlternatingItemTemplate> 偶数行数据模板 </AlternatingItemTemplate>

<SeparatorTemplate> 分隔模板 </SeparatorTemplate> <FooterTemplate> 页脚模板 </FooterTemplate> </Asp:Repeater>

Page 44: 物流系统数据管理

Repeater 控件的主要属性 主要事件 ItemCommand : 当单击 Repeater 控件

中的按钮时发生。 ItemCreated :当在 Repeater 控件中创建

一项时发生。 ItemDataBound :在 Repeater 中的某项

被数据绑定之后,但在呈现于页面上之前发生。 Repeater 控件的应用

Page 45: 物流系统数据管理

DataList控件的使用格式DataList控件的主要属性 DataList 控件的使用方法允许用户编辑 DataList 控件中的项 允许用户删除 DataList 控件中的项允许用户选择 DataList 控件中的项

DataListDataList 控件控件DataListDataList 控件控件

Page 46: 物流系统数据管理

数据的处理数据的处理 数据的处理数据的处理

结构化查询语言 SQL SQL 具有下面的特点 ( 1 ) SQL 能够完成定义关系模式、建立数据库、插入数据、查询数据、更新数据、删除数据、安全性控制等功能。具有集 DDL 、 DML 、 DCL 为一体的特点。

SQL 的使用有两种形式,一种是直接用于操作数据库。比如,在一些数据库管理系统中,提供了直接用 SQL语句操作数据库的功能。还有一种使用方式是嵌入一种程序设计语言中,如常用的开发工具 VB.NET 、 VFP 等。

( 2 )在使用 SQL语句时,只需要指出“干什么”,而无需关心“怎么干”。用户不必考虑存取路径等问题。该语言是一种高度非过程化的语言。

( 3 ) SQL语言使用类似于英语的语法,易于使用和看懂。 SQL语言只是使用了有限的几个动词,易于掌握。

Page 47: 物流系统数据管理

查询语句的使用格式 SELECT field1,field2……FROM TableName

WHERE Condition GROUP BY GroupColumn HAVING FilterCondition ORDER BY Order_Item [ASC | DESC]

其中: field1,field2 :字段列表 TableName :数据表名 Condition :查询条件 GroupColumn :分组依据 FilterCondition :筛选条件 Order_Item :排序方式。

Page 48: 物流系统数据管理

查询的几个实例 查询所有字段 查询个别字段 查询不重复的记录 查询指定范围的记录 查询结果排序 简单的计算查询 分组与计算查询 使用 Select Top 语句设置最多返回的记录数

Page 49: 物流系统数据管理

SQL 的数据操作功能 数据更新 数据插入 数据删除 数据处理 查询数据 插入数据 修改数据 删除数据

Page 50: 物流系统数据管理

小结小结小结小结

ASP 或 ASP.NET 应用程序这所以十分流行,除可设计动态网页外,另一个重要原因就是后台数据库的支持,无论是个人数据 库(如 ACCESS )还是 企 业级关 系 数 据 库 (如SQLServer )都可以通过 Server端组件 ADO.NET 让程序可以轻易访问数据库。本章首先介绍了 ADO.NET 对象模型,重点讲解 DataSet 对象和 DataView 对象的主要属性、方法和事件。接着介绍了在 ASP.NET 中连接数据库的方法。与数据库操作相关对象及控件介绍了一个多列数据绑定网格,呈现 表 格 式 数 据绑定网格 的 DataGrid Web 服务 器控件、 Repeater控件和 DataList控件。并通过大量的实例介绍来说明这些控件的使用方法。最后介绍了结构化查询语言SQL 及数据处理中数据插入、数据修改、数据更新、数据删除的方法及实现,本章是 ASP.NET 程序开发中的重点,也是很多WEB 应用程序开发的必修课。