物流信息系统(第2版)
上QQ阅读APP看书,第一时间看更新

2.2 物流信息系统中的数据管理与数据库系统

2.2.1 数据管理的发展

物流系统中存在大量的数据资源,从图2.3中可以看到,物流信息系统的正常运营离不开中央数据库系统的支持。从数据管理的技术角度讲,其发展过程经历了人工管理、文件管理和数据库系统三个阶段。

1. 手工管理阶段(20世纪50年代以前)

这个阶段最基本的特征是没有数据管理的概念,完全是分散的手工方式。它的具体表现是:

(1)数据不独立,是程序的一部分。修改数据必须同时修改程序。处理时,数据随程序一道送入内存,用完后全部撤出计算机,不能保留。数据大量重复,不能共享;数据与程序是一一对应关系,如图2.4(a)所示。

(2)只有磁带外存,输入输出设备简单。

(3)没有操作系统,没有管理数据的软件。

(4)程序员须自行设计数据的组织方式。

图2.4 手工管理阶段和文件管理阶段程序与数据的对应关系

(a)手工管理阶段;(b)文件管理阶段

2. 文件管理阶段(20世纪50年代后期到60年代中期)

这个阶段的基本特征是有了操作系统(operation system,OS),操作系统中的文件管理提供了面向应用的数据管理功能,工作方式是分散的、非手工的。其具体特征为:

(1)数据管理方面,实现了数据对程序的相对独立性,数据不再是程序的组成部分,修改数据不必修改程序,数据有结构,被组织到文件内,由操作系统自动完成,系统开发和维护工作得到减轻。这时,数据与程序通过OS作为中介进行通信,如图2.4(b)所示。

(2)外存有了很大的发展,除磁带机外,还出现了大容量的硬盘和灵活的软磁盘。输入、输出能力大大加强。

(3)系统软件方面除了出现操作系统(包括文件管理系统),还出现了多用户的分时系统和专用于商业事务管理的高级语言COBOL,它们不仅用于文件处理,也可以用于非数值处理。

(4)出现了多种文件类型。由于有了直接存取设备,就有了索引文件、链接文件、直接存取文件等,而且能对排序文件进行多码检索,并且数据是以记录为单位进行存取的。

这一阶段数据管理的不足之处表现在:

(1)数据冗余度大,一致性维护困难。文件系统中数据是面向应用的,文件基本上对应于某个应用程序,不同应用程序所需数据有部分相同时,仍需建立各自的数据文件,不能共享,数据维护困难,一致性难以保证。

(2)数据与程序独立性仍不高。数据与程序在文件管理系统中具有一定的独立性,比人工管理有了很大进步。但文件是为某一特定应用服务的,系统不易扩充。一旦数据逻辑结构改变,就必须修改文件结构的定义及应用程序;反之,应用程序的变化也将影响文件的结构。因而文件仍不能反映现实世界事物之间的联系。

3. 数据库管理阶段(20世纪60年代后期开始)

60年代后期,大容量磁盘已经出现,联机实时处理业务增多;软件价格在系统中的比重日益上升,硬件价格大幅下降,编制和维护应用软件所需成本相对增加;同时,计算机在管理中的应用更加广泛,数据量急剧增大,对数据共享的要求越来越迫切。在这种情况下,为了解决多用户、多应用共享数据的需求,使数据为尽可能多的应用程序服务,出现了数据库管理系统,其特点是:

(1)面向全组织的复杂数据结构。数据库中的数据结构不仅描述了数据本身,而且描述了整个组织数据之间的联系,实现了整个组织数据的结构化。

(2)数据冗余度小,减少了数据不一致现象。由于数据库是从组织的整体来看数据及数据之间联系的,数据不再是面向某一特定的应用,而是面向整个系统,由此,减少了数据冗余和数据之间不一致的现象。在数据库管理系统下,可以根据不同的应用需求选择相应的数据加以使用,使系统易于扩充。

(3)数据的独立性强。数据库系统提供了数据的存储结构与逻辑结构之间的映射功能及总体逻辑结构与局部逻辑结构之间的映射功能,从而使得当数据的存储结构改变时,逻辑结构保持不变,或者当总体逻辑结构改变时,局部逻辑结构可以保持不变,从而实现了数据的物理独立性和逻辑独立性,把数据的定义和描述与应用程序完全分离开,这是由一个专门进行数据管理的系统软件数据库管理系统(data base management system,DBMS)实现的,如图2.5所示。

图2.5 数据库管理阶段

(4)数据控制功能大大加强。数据库系统提供了数据的安全性控制和完整性控制,允许多个用户同时使用数据库资源。

综上所述,数据组织的方式有三种:人工组织、文件组织和数据库系统,其中数据库中的数据按一定的规则存放,具有较小的冗余度、较高的独立性和共享性,较好地实现了数据管理的目标。

2.2.2 数据库系统概念

数据库系统就是为进行数据管理各元素(包括数据、计算机及其他相关部件)而组成的一个集合体。事实上,我们可以把数据库系统直观地理解为:在一个或多个企业组织中,能方便地为用户服务的、在计算机上运行的有结构的业务数据仓库。这里的业务数据是指在企业业务运行过程中产生的各种数据,如订单数据、仓储进出库物料数据、企业的生产计划调度数据、成本核算数据、银行账务数据等。我们知道在企业的物料仓库管理中,其基本组成有存放物料的库房、存放的物料、管理物料的规章制度及相应的管理人员4部分。而数据库系统是企业组织运作中发生的所有业务数据的仓库,类比企业仓库管理系统,其也由4部分组成,它们是计算机支持的软、硬件系统,数据库,数据库管理系统和用户,其与企业物料仓库管理系统各部分的对应关系如图2.6所示。而数据库系统各组成部分之间的关系可用图2.7来说明。下面详细阐述数据库系统的各个组成部分。

图2.6 数据库系统和企业物料管理系统的比较

图2.7 数据库系统各组成部分之间的关系

1. 数据库(data base,DB)

数据库是某一企业组织中各种应用所需的大量业务数据的集合,且这些数据可为所有这些应用所共享。它存放在计算机的外存上,以一定的数据模型方式进行数据的组织,并尽可能地减少数据存储的冗余性。

数据库中数据一般具有如下特点:

(1)集成性。指若干不同性质数据文件的规范化。也就是说,为了便于管理和处理,必须统一考虑和规划所有的业务数据,数据存入数据库时必须具有一定的结构和组织方式,即满足某数据模型的要求。关于数据模型的知识将在2.2.3节中具体介绍。

(2)共享性。数据的规范化是实现数据共享的前提。在数据库系统中,数据的定义与应用程序是分开的,对数据库的描述是独立的,只有规范化的数据才能满足各种应用程序的需求,达到共享数据的目的。

(3)减少不必要的冗余性。在构造数据库时,可以完全地或部分地消除有关文件中大量数据的重复,减少数据的冗余存储。例如在企业物料管理的数据库系统中,物料编码、名称这样的数据项会出现在和物料相关的所有数据库文件中,如物料主文件、物料清单文件、采购文件、物料成本核算文件等,这些文件也分别出现在仓库、计划调度、采购、财务等多个部门,但这些文件中涉及相同属性的数据项(如编码、名称)是没有必要在多个文件中重复存储的,可将它们的对照关系存储在一个文件中,当需要时,可从该文件中查询到。由此,数据集成是减少冗余并实现共享的基础。

2. 数据库管理系统(data base management system,DBMS)

数据库管理系统是帮助用户建立数据库、使用数据库和维护数据库的一组系统软件,是操作系统在数据管理方面的功能扩展,是物理数据库本身(即实际存储的数据)和系统用户之间的界面。它的作用类似于企业物料仓库管理系统中的管理制度,负责处理用户(应用程序)存取计算机上数据库的各种请求,如检索、修改和存储数据等操作要求。也就是说,在DBMS的控制下用户不能直接接触数据库,而只能通过DBMS存取数据,这样,用户没有必要关心数据的逻辑或物理的表达细节,而只需注意数据的逻辑信息内容。数据库管理系统的另一功能是为管理员提供对数据库的维护手段,保护数据库中数据不受破坏。

一个组织的所有数据资源如果被集中存储在某个大容量的硬盘设备上,这种数据库系统称为中央式数据库系统。如果所有数据资源存放在位于多个不同地域的计算机硬盘上,用户通过网络通信设备来访问这些数据,这样的系统称为分布式数据库系统。目前很多跨地域的物流系统网络上各个节点的数据资源要么被集中存储,如沃尔玛;要么被分布式存储,如网络上的邮件系统。

3. 计算机支持的软、硬件系统

计算机支持的软、硬件系统指的是用于支撑数据库管理所必需的计算机硬件资源和基本软件资源。硬件资源包括中央处理机CPU、用以存放系统软件和数据文件的大容量存储设备以及高速的数据通道能力等;软件资源包括操作系统、各种应用开发工具和高级程序设计语言(如C++、Java、Studio.NET等)。

4. 用户

用户是系统的服务对象。一般而言,一个数据库系统有三类用户:终端用户、数据库管理员(data base administrator,DBA)及系统分析与设计人员。

(1)终端用户。通过联机终端设备,使用客户界面或浏览器界面,实现对数据库文件的各种操作,如检索、插入、删除和更新操作的用户称为终端用户。一般地,这类用户通常是企业中使用数据库的业务部门人员,如采购部门、生产计划部门、仓储及销售、财务部门等,还包括各级企业管理人员。

(2)数据库管理员(DBA)。DBA是数据库的系统工程人员,负责对整个数据库系统进行维护,以保证数据库系统的正常运行,DBA具有对数据库的最高权限,在一个数据库系统的开发、设计、运行、控制及维护的不同阶段有不同的任务和职责。

(3)系统分析与设计人员。他们是专业用户,拥有较多的计算机专业知识和信息系统开发的知识,能够利用信息系统开发和数据库开发的知识收集分析相关的大量业务数据、设计数据组织的方式,考虑数据存取的效率及空间的利用率等。同时,他们还能够使用计算机系统所提供的各种程序设计语言(包括嵌入式DBMS语言)编写各种应用程序,按应用需要对数据库进行检索、插入、删除和更新等操作(如工资计算程序、库存管理程序等)。

2.2.3 数据模型

数据库中的数据是按照一定结构和组织方式进行描述的,称为数据模型。为了真实地把现实世界中的数据转化成计算机中实现的组织方式,数据模型分成两类:一类是概念模型;另一类是数据模型。

概念模型是现实中发生的客观事物往信息系统中抽象的首要层次,主要是把实际管理流程中涉及的实体、实体属性、实体之间联系等通过一种实体联系(entity-relationship)图(简写为E-R图)来表征。如电子履单系统中有关订单管理流程中就存在商品、客户等实体,而某个客户针对某商品的订单属于商品和客户两个实体之间的联系。实体“商品”的属性可能有编码、名称、规格、价格、性质、供货商等,联系“订单”的属性可能是商品编码、客户登录账号、购买价格、数量、日期、配送地址等。图2.8给出了电子履单系统中采用E-R图描述的以上概念模型。

以上E-R图中每个客观实体的属性中都存在唯一标识实体的属性或属性集,称为码。如商品编码、客户的登录账号分别是“商品”和“客户”的码,而“订单”的码是“客户登录账号”和“商品编码”。针对每个局部管理过程可以抽象得出一个局部E-R图,然后把局部概念设计部分进行合并,就形成全局的信息模型。如在电子履单系统中包括订单处理、仓储分拣和出货、商品配送等管理过程,因此,可以设计这三部分的局部E-R图,然后整合这三个局部E-R图,得出电子履单系统的全局信息模型。

图2.8 电子履单系统订单处理中涉及实体的E-R图

第二类是从信息模型得出数据模型,不同的数据模型具有不同的数据结构模式,常用的数据模型主要有层次模型、网络模型、关系型模型。

层次模型是以记录类型(描述的是客观实体)为节点,满足仅有一个节点无双亲,称作“根”;除了根之外,其他节点仅有一个双亲。如在采购管理系统中一个采购单和供货商、商品之间具有如图2.9所示的层次结构。可以看出,层次模型在表示一对多的客观实体关系中表示非常自然和简单,即一个采购单可能对应多个供货商和多种商品,这是层次模型表示数据模型的主要优势。

图2.9 一个层次模型的例子

但在现实世界中,很多实体之间的关系还可能是多对多的,层次模型表示多对多关系就有限制。所以,就引入了网络模型。网络模型指的是以记录类型为节点的网状结构,既可有一个以上节点无双亲,也可有一个节点有多于一个的双亲。

图2.10给出一个客户购买书籍的电子履单系统中,涉及3个客观实体客户、书籍和订单的网络模型例子。可以看出,订单具有两个双亲:客户和书籍,所以,相比较层次模型,网络模型可以形成更为复杂的数据结构。

图2.10 一个网络模型的例子

第三个数据模型是关系型模型,目前很多著名的数据库系统,如Oracle、Microsoft SQL Server、IBM DB2等都是以关系型模型为基础的数据库系统。关系型模型从用户角度出发是以一张平面二维表组成的,表2.2就给出了基于关系型模型的书籍的一个二维记录表。

表2.2 以关系型模型为基础的书籍的记录表

在关系型模型中,表2.2这样的一张二维表被称为一个关系,而表中每一条具体的记录,如“209002、数据库与数据库系统、王珊、50”被称为一个元组,表中每一列被称作一个属性,如表2.2中有4个属性,分别是商品编码、书名、作者、库存量,其中商品编码“209002”称作该元组的码,是能够唯一确定一个元组的属性。关系模式就是对关系的描述,采用诸如“书籍(书编码、书名、作者、库存量)”的形式来表示。

关系型模型具有严密的数学基础,并且它的表示非常简单、实用。因此,目前大多数商业数据库系统都是以关系型模型为基础进行开发的。

2.2.4 数据库系统特征

从前述数据库系统的发展,可以知道数据库系统不仅能解决文件管理方法中存在的主要问题,而且能提供数据处理中强有力的数据管理能力和维护能力。因此,数据库系统具有以下主要特征。

1. 数据的标准化特性实现了数据的共享性

数据共享是促成数据库技术发展的重要原因之一,也是数据库最本质的特征。只有把相关各个业务部门的大量数据按相同的数据模型标准化,才能做到合理管理这些数据,使这些数据在统一的标准下实现信息处理的过程。事实上,每一个业务应用的都是数据库中大量数据的一个子集,但由于物流业务的交叉性,不同的应用程序对应的数据子集是可以相互重叠的,如采购和仓储都需要对物料文件进行查询;其次,不同的应用程序也可以在同一时刻去存取同一数据,这在数据库中称作“并发控制”,如ERP中的主生产计划可能同时会被销售、生产、采购和仓储等多个部门调用查询,这就需要支持的计算机网络数据传输能力很强。数据库中的数据不但可供现有的各个业务应用程序共享,还可以累计若干计划周期的数据量,进行历史数据的分析统计和模型建立,辅助决策者进行分析决策。

2. 数据库的体系结构实现了数据的最大独立性

数据库系统是在传统的文件系统基础上发展起来的,但是数据库系统中的数据与应用程序之间不存在直接的相互依赖关系。也就是说,数据的逻辑结构、物理存储结构和存取方法等,不因应用程序的修改而修改,反之亦然。数据的独立性通常分为两级:第一级为物理独立性,数据库的物理介质发生改变时,如更新数据库服务器或由于业务数据量的增加更换大容量的存储设备、改变存储文件组织方式和存取策略等不会影响数据的逻辑结构,也不致引起应用程序的修改;第二级是逻辑独立性,这是指数据库总体逻辑结构的改变,如因为物流业务发生改变,需要修改数据的定义或增加新的数据类型、改变数据间的联系等,这时也无须修改原来的应用程序。同样,当用户需要修改应用程序时,也不强求数据结构作相应的改变。由此可见,数据独立性就是数据与应用程序之间以及与物理存取介质之间的互不依存性,数据库系统所具有的这种数据独立性是由它的体系结构所确定的。通常我们把一个满足数据独立性要求的系统,称为“以数据为中心”的系统,或“面向数据”的系统。

3. 数据的统一管理实现了最小的数据冗余度,避免了数据的不一致性

数据的冗余度最小是指存储在数据库中数据的重复性尽可能少。在文件管理系统中,每个应用程序有它自己的数据文件,从而造成存储数据的大量重复,这给数据管理带来了许多弊病:如占用大量的存储空间;为了避免数据的不一致性,不得不执行多次重复的更新操作,浪费大量的时间;同时由于存在数据的大量不同副本,从而在不同的更新阶段可能给出数据不一致的信息。而在数据库系统方式下,是从全局观点来组织和存储数据的,数据是集成化、结构化的,数据统一存放、集中控制,因而能够尽量减少数据的冗余。应该指出的是,在数据库系统方式下冗余度并不能完全消除。在许多实际应用中,有时为了某种原因而使用同一数据,在一定控制条件下的多次存储还是必要的。这时的冗余度被称作受控冗余度。

数据的不一致性是指本应相同的数据项在不同应用中出现了不同的值。当相同的数据出现在多个不同的数据副本文件中时,若其中某个数据文件中的数据发生了改动,则其他数据副本文件中的相应数据就应发生改动,否则就会发生数据的不一致性。如某一原材料的数据,若在仓库管理文件和采购管理文件中具有不同值,就会影响采购人员的运作。数据的不一致性主要是由于数据冗余引起的,数据库在理论上可以消除数据的冗余,因而也可以避免数据的不一致性。即使存在某些冗余,数据库系统也提供了对数据操作的各种控制和检查,保证在更新数据时,同时更新所有的副本数据,从而保证数据的一致性。

4. 实现了数据的统一管理和控制

数据库系统中的数据实现了数据的集成化,数据集成化又称数据管理标准化,它要求数据库系统中的数据按照一定的数据模型(如关系型模型)来组织和存储数据。集成化的数据不但反映了数据之间的自然联系,而且可实现对数据的集中控制和管理,由此解决了数据资源共享、减少冗余等诸方面的要求。同时它在数据的安全性、完整性等方面也提供了强大的管理功能,主要包括以下三方面:

(1)安全性保护。数据的安全性主要指数据保密,防止数据的不合法使用。数据资源共享并不意味着向一切用户开放所有的数据资源,因为在实际应用环境中,每个工作人员都有自己的工作权限和工作职责,只涉及整个业务处理中的一部分数据,所以对每一个应用用户,数据库系统都将对他的权限进行安全性检查,只有合法的用户才能以规定的方式(如检索、修改等)对允许他使用的那一部分数据进行相应的操作。

(2)并发控制。并发控制是指不同应用(应用程序、用户终端)在同一时刻期望存取同一数据时发生的事件。例如,在铁路或航空售票系统中,假设有多个售票点分别为X、Y、Z。若数据库中有某车次(或航班)剩余票项为15,当X、Y两点同时售票时,它们可以同时检索到有余票15张,X点按需要售出10张,将修改余票为5,但尚未将新值送入数据库时,Y点又按余票15的情况售出8张,此时该售票业务必然出现差错。为了保证数据库的准确性,数据库管理系统的并发控制必须采用相应的封锁技术来避免上述错误的发生。

(3)数据的完整性。数据的完整性也就是数据的相容性和正确性。数据的不一致性是失去完整性的一个例子。前面已经讲过数据的冗余性可能会引起数据的不完整性,除此之外,数据项取值的有效性,如其逻辑意义是否存在或其是否落在取值区间内等都是保证数据完整性的要求,例如表示月份的数据项出现大于12的值或一个月超过31天等。数据库管理系统的集中控制可以避免此类情况出现,它通过DBA定义相关的完整性检查,对每一次更新的数据进行相应的检查,保证数据的完整性。必须指出,数据完整性检查对多用户系统尤为重要,因为多个用户同时使用数据所引起对数据的更新是大量发生的,数据库系统必须在这种情况下对数据的完整性进行必要的维护。

(4)数据库的再恢复。在数据库系统的运行过程中,由于软、硬件的故障、病毒或恶意袭击及用户操作的失误,随时都有可能使数据库遭到局部性的或全局性的破坏,并且其所涉及的数据往往是无法用书面复原的。数据库系统应提供一套设施和方法,来发现和警惕由上述各种因素所引起的故障,并迅速地把数据库恢复到故障以前的正常状态,使系统正常运行。

(5)数据库系统的扩充性和开放性。一个实用数据库系统建立之后,需要逐步地扩充其功能,同时,又要根据实际应用的需要增添相关特定的需求,如根据某特定用户的实际工作需要开发适合于他们的数据库工具箱加挂在数据库系统上,进一步增强系统某一方面的功能,使系统具有一定的开放性。这就要求整个数据库系统在结构和组织技术上具有易于修改和扩充的特点。