1 / 50

物流系统数据管理

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

howell
Download Presentation

物流系统数据管理

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 物流系统数据管理

  2. 学习任务: • 1、根据企业内部物流系统的实际进行需求分析、简单介绍相关知识背景 • 2、创建企业内部物流系统所需要数据库和数据表 • 3、创建表与表之间的关联、查询、存储过程等

  3. 学习目标: • 1、通过创建数据库简单回顾SQL SERVER数据库基础知识、创建数据库的方法; • 2、通过创建数据表回顾创建表的方法、表内各字段的属性设置方法以及一些约束条件的创建方法; • 3、通过创建表之间的关联回顾数据库中表与表之间关联的建立方法、创建查询、创建触发器等,掌握数据一致性和完整性。

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

  5. 具体做法: • 1、用户需求的调查与初步分析 • 经过可行性分析和初步调查,我们抽象出物流系统的基础数据管理包括仓库表、材料表、出入库凭证表、往来单位、合同表等等。 方法

  6. 1)了解该企业的组织结构情况。通过调查,我们了解该企业由管理部门、财务部门、计划部门、仓库部门、生产车间等组成,并了解各部门的职责。1)了解该企业的组织结构情况。通过调查,我们了解该企业由管理部门、财务部门、计划部门、仓库部门、生产车间等组成,并了解各部门的职责。 • 2)了解各部分的业务活动情况,调查各部门输入和使用的数据、如何加工处理这些数据、输出什么信息、输出到什么部门、输出结果的格式是什么。 • 3)在熟悉业务活动的基础上,协助用户明确对系统的各种要求,包括信息要求、处理要求、安全性与完整性要求。 • 4)对前面调查的结果进行初步分析,确定哪些功能是由计算机完成或将来准备让计算机完成的,哪些活动是由人工完成的,由计算机完成的功能就是系统应该实现的功能。

  7. 2、深入调查 • 深入调查后,我们明确了这个系统的主要功能是进行出库、入库、移库、盘点管理等。用到的方法是: • 1)深入现场,跟班作业,通过亲身参加业务工作了解业务活动的情况,能比较准确地理解用户的需求,但比较耗时; • 2)开调查会,通过与用户座谈来了解业务活动情况及用户需求; • 3)请业务专家和技术专家介绍; • 4)询问,对某些调查中的问题,可以找专人询问; • 5)设计调查表请用户填写,如果调查表设计合理,则很有效,且易于被用户接受。

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

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

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

  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%)

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

  13. 仓库表 出入库凭证表

  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 )

  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 )

  16. 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, 需方 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 )

  17. 4)创建其他数据表 企业内部物流系统数据库中还包含一些其他的表如往来单位、进货单、销售单等等,在此我们不再详细介绍,由同学们自己参照以上各表分析创建完成。

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

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

  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

  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

  22. 小结 • 首先,根据企业内部物流系统的实际进行了简单的需求分析 • 其次,通过创建数据库简单回顾SQL SERVER数据库基础知识、创建数据库和数据表的方法以及表内各字段的属性设置方法以及一些约束条件的创建方法 • 最后,通过创建表之间的外键在数据库中创建查询、创建触发器等,掌握数据一致性和完整性。

  23. 数据访问模型的选择

  24. 学习任务: 1、选择物流系统使用的数据模型——ADO.NET 2、使用ADO.NET

  25. 学习目标: 1、通过选择项目使用的数据访问模型讲解几种常用的数据访问方式,比较各种访问模型之间的不同,选择出适用于本项目的数据访问模型——ADO.NET 2、通过使用ADO.NET对其进行简单介绍,讲解ADO.NET的连接、ADO.NET数据适配器和ADO.NET数据集等内容

  26. 选择数据访问模型 常用的数据访问方式有:DAO、RDO、ODBC、OLE DB、ADO、ADO.NET以及支持跨平台的JDBC。下表对当前流行的几种技术进行了比较,从中可以看出几种访问技术的性能特点。 ODBC、OLE DB、ADO和ADO.NET的性能特点比较 通过比较,物流系统采用了ADO.NET数据库连接技术。

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

  28. SQL Server .NET 数据提供程序 SQL Server .NET 数据提供程序和 OLE DB .NET 数据提供程序之间的比较

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

  30. 选择 .NET 数据提供程序 使用 ADO.NET 连接到数据源 OleDbConnection 类 一个 OleDbConnection 对象,表示到数据源的一个唯一的连接 . 连接实例 SqlConnection 类 SqlConnection对象表示与SQL Server数据源的一个唯一的会话。

  31. ADO.NET对象模型 DataReaders对象 DataReaders对象的主要属性 FieldCount:获取当前行中的列数。 IsClosed:指示是否可关闭数据读取器。 Item:获取以本机格式表示的列的值。 RecordsAffected:通过执行 SQL 语句获取更改、插入或删除的行数。

  32. DataReaders对象的主要方法 使用DataReaders对象的基本步骤 使用Connection对象创建数据连接。 使用Command对象对数据源执行命令并返回结果。 创建Command对象的格式是: Dim myCommand As New OleDbCommand(CmdText, myConnection) Dim myCommand As New SQLCommand(CmdText, myConnection) 使用DataReaders对象读取数据源,并显示结果

  33. DataSet对象 DataSet对象的结构

  34. DataSet对象的主要属性、方法和事件 A.主要属性 B.主要方法 C.主要事件 Disposed:添加事件处理程序以侦听组件上的 Disposed 事件。 MergeFailed:当目标和源 DataRow 的主键值相同且 EnforceConstraints 设置为真时发生。

  35. 使用DataSets 下面主要谈谈通过编程实现DataSet的步骤 编程实现DataSet A.使用DataSet()创建器创立一个DataSet对象 B.增加一个DataTable到DataSet中。 C.设置表间的关系 D.在关系表间的浏览 E.数据约束的使用 F.处理DataSet的事件

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

  37. 学习任务: 1、创建数据绑定控件 2、管理和使用数据库数据

  38. 学习目标: 1、通过创建数据绑定控件讲解数据绑定的类型、使用数据绑定的常见方案、创建绑定控件显示数据及更新数据库等; 2、通过管理和使用数据库数据讲解管理数据的5种常见类:DataSet、DataTable、DataRow、DataColumn、DataRelation,讲解在数据集内筛选和排序,数据集的更新(插入、删除和更新等)以及将数据集更改写入数据源等,讲解将数据导入EXCEL中并打印等。

  39. DataView对象 DataView对象的主要属性 DataView对象的主要方法和事件 DataView事件主要有两个: Disposed:添加事件处理程序以侦听组件上的 Disposed 事件。 ListChanged:在 DataView 管理的列表发生更改时发生 使用 DataView 对数据排序和筛选 利用DataView实现数据筛选—在程序中指定筛选字段 DataView的应用—在窗体中指定排序字段

  40. 与数据库操作相关控件 DataGrid控件 DataGrid Web 服务器控件是一个多列数据绑定网格,呈现表格式数据绑定网格 DataGrid控件的使用格式 格式1:自动指定字段的DataGrid控件的使用格式 格式2:手动指定字段的DataGrid控件的使用格式

  41. DataGrid控件的主要属性 AllowPaging , AllowSorting , AlternatingItemStyle , AutoGenerateColumns , BackImageUrl , HorizontalAlign , VirtualItemCount 等

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

  43. Repeater控件 格式 Repeater控件的声明语法如下: <Asp:Repeater Runat="Server" Id="…" DataSource="<%# … %>" DataMember="…"…> <HeaderTemplate>页眉模板</HeaderTemplate> <ItemTemplate>奇数行数据模板</ItemTemplate> <AlternatingItemTemplate>偶数行数据模板</AlternatingItemTemplate> <SeparatorTemplate>分隔模板</SeparatorTemplate> <FooterTemplate>页脚模板</FooterTemplate> </Asp:Repeater>

  44. Repeater控件的主要属性 主要事件 ItemCommand: 当单击 Repeater 控件中的按钮时发生。 ItemCreated:当在 Repeater 控件中创建一项时发生。 ItemDataBound:在 Repeater 中的某项被数据绑定之后,但在呈现于页面上之前发生。 Repeater控件的应用

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

  46. 数据的处理 结构化查询语言SQL SQL具有下面的特点 (1)SQL能够完成定义关系模式、建立数据库、插入数据、查询数据、更新数据、删除数据、安全性控制等功能。具有集DDL、DML、DCL为一体的特点。 SQL的使用有两种形式,一种是直接用于操作数据库。比如,在一些数据库管理系统中,提供了直接用SQL语句操作数据库的功能。还有一种使用方式是嵌入一种程序设计语言中,如常用的开发工具VB.NET、VFP等。 (2)在使用SQL语句时,只需要指出“干什么”,而无需关心“怎么干”。用户不必考虑存取路径等问题。该语言是一种高度非过程化的语言。 (3) SQL语言使用类似于英语的语法,易于使用和看懂。SQL语言只是使用了有限的几个动词,易于掌握。

  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:排序方式。

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

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

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

More Related