请详细论述工程数据管理
工程数据管理是指建立一个以技术数据为中心的工程数据管理系统，实现文档和图样的协同设计，以及设计最终选型方案的审阅、标注和批准的数字化。#### 工程数据管理的特点

由于工程应用环境的特殊性，因此传统的以事务处理为目标的数据库管理系统如关系模型管理等都无法适应要求，因此需要一种能适应工程应用的数据库管理系统。为此，首先需要了解工程应用中数据管理的一些特点。

1．表示复杂数据结构的能力

在工程应用中，工程对象形式多样，它们之间又存在多种关联，因此需要有一种既能构造各不同对象又能建立相互关联的数据结构，这就要求工程数据库具备表示与构造复杂数据结构的能力。

2．表示变长数据的能力

变长数据是工程数据的一大特点，而传统数据库中的结构类型无法表示此类数据，这就要求工程数据库具有表示变长数据的能力。

3．可扩展数据类型的能力

在工程应用中，数据类型复杂、多样，因此除了一些基本类型之外，还要具备随时根据数据需要生成新类型的能力。

4．对数据模式能做动态修改与扩充

在工程应用中，经常会碰到复杂的应用设计，它们很难一次性完成设计而必须在设计、应用中边修改、边使用，在使用中积累经验，不断修改，这其中也包括对数据模式的设计。因此，工程数据库在工程领域中的应用及工程数据库介绍287数据管理应具有不断修改、扩充数据模式的能力，这种能力一般称之为模式演化(schemaevolu-tion)。

5．图形数据表示与处理能力

由于工程应用中的数据处理对象大多是工程图纸及相应的图形，因此工程数据管理应具有对图形进行表示与处理的能力。

6．版本管理

在工程应用中，一个完整的设计过程必须经过多个方案不断地试探、比较以及修改而形成，而每个新方案又是对以前旧方案进行修改而形成的，因此需要保留不同的设计方案以为今后的改进提供保障。而每个设计方案就是一个工程设计版本，它由一群数据体组成，对不同方案的保存与管理就是所谓的版本管理或称版本控制(versioncontrol)。因此，在工程数据管理中需要有版本管理的能力。

7．长事务处理能力

在工程应用中，工程师经常需要花费几个小时甚至几天时间连续对某个工程项目做设计，这是一种交互式长事务处理作业。在这段时间内，该工程师必须独占系统资源，特别是数据资源，这就要求数据管理能具有并发控制中的长事务处理能力。
从以上7点可以看出，工程数据管理具有传统数据管理所没有的特殊要求，在这7点之上所构造的数据库管理系统即可称为工程数据库管理系统。#### 工程数据管理的功能

工程数据管理一般包括三个方面功能：

1．定义用户产品，维护物料清单(BOM)，包括制造与工程设汁的物料清单，为用户提供完整而准确的物料信息；

2．维护工艺路线信息，描述被加工工件的加工过程，诸如加工地点和制造顺序；

3．标准成本核算，提供既快又准确的成本计算信息支持。#### 工程数据管理的阶段

工程数据管理按发展时段可分为人工管理、文件管理和数据库管理三个阶段。数据管理的三个阶段及其特点见下表。


数据管理的三个阶段及其特点

人工管理阶段文件管理阶段数据库系统阶段


背景应用背景科学计算科学计算、管理大规模管理


硬件背景无直接存储设备磁盘、磁带、磁鼓大容量磁盘


软件背景无操作系统有文件系统有数据库管理系统


处理方式批处理联机实时处理、批处理联机实时处理、分布处理、批处理


特点数据的管理者用户(程序员)文件系统数据管理系统


数据面向的对象某一应用程序某一应用现实世界


数据的共享程度无共享、冗余度极大共享性差，冗余度大共享性好、冗余度小


数据的独立性完全依赖于程序独立性差有高度的物理独立性和一定的逻辑独立性


数据的结构化无结构记录内有结构，整体无结构整体结构化，用数据模型描述


数据控制能力应用程序自己控制应用程序自己控制由数据库管理系统提供数据安全性、完整性、并发控制和恢复能力

人工管理阶段是在20世纪50年代中期以前，计算机主要用于科学计算。当时的硬件状况是，外存只有纸带、卡片、磁带，没有磁盘等直接存取的存储设备；软件状况是，没有操作系统，没有管理数据的软件；数据处理的方式是批处理。人工管理的特点是数据不保存，应用程序管理数据，数据不共享，不具有独立性。这种方式已随着计算机技术的发展和生产水平的提高而被摒弃。#### 工程数据管理的模式

1．文件管理系统

工程数据管理技术同事务管理相类似也是从文件管理系统开始发展起来的，这里的文件系统有两层含义：一是计算机辅助设计的整个过程，即从设计开始，及随之的分析、计算、绘图，均用文件作为相互间传递信息的媒介；二是面向不同应用的计算机辅助设计作业，及不同的系统之间均以文件的方式来传送信息。文件系统中应用程序与数据之间的对应关系如图2所示。

2．基于数据库管理系统

数据库系统中应用程序与数据库之间的对应关系如图3所示。

基于数据库管理系统(DataBaseManagementSystem，DBMS)实现工程数据管理如图4所示。

这种环境适用于先进的系统或CAD工作站，在此环境下用户可开发他们自己的应用程序。一般采用层次结构易于实现对实际设计过程的管理，能保证大量数据相互无关，但随着用户或应用的增多，性能会下降。

3．基于局部区域网络的管理系统

基于局域网络(LocalAreaNetwork，LAN)的工程数据管理系统结构如图5所示。目前多数CAD工作站均具有这种形式的联网功能，在这种结构下实现数据的分布处理、资源共享，系统结构灵活、便于扩展、易保证数据无关。

4．分布式管理系统

为适应远程多用户的需要而发展起来的分布式管理系统如图6所示。这是当前工程数据管理系统的一种新技术，采用先进的网络通信、局部数据库和系统数据库相结合的工作方式，克服了基于局部区域网络进行工程数据管理系统的缺陷，但随之由于无中心数据词典(难以建立这种词典)，又给保证数据的完整性、实现并发管理带来困难，并且当一个节点破坏时常常有需要重新构造系统的危险。
#### 工程数据库管理系统的构造

构造工程数据库管理系统的方法很多，但目前看来主要有两种。一种方法是专用的数据库管理系统，另一种方法是在关系模型或面向对象模型的基础之上的改进。其中专用工程数据库管理系统主要采用基于STEP标准的系统，它们将在下一节中介绍，而本节将介绍基于关系模型的扩充及基于面向对象模型的构造方式。

1．关系模型的扩充

关系模型扩充方法是解决工程数据管理的一种有效方法，其构造方式是以关系模型为底层并在其上附加一层称为扩充层。在这一层中，工程数据中的特殊要求如复杂结构模式、变长数据、可扩充模型等均要加以实现，但是这种实现最终还需要以底层的功能作为支持才能得以完成，即需通过某些手段转换成底层关系模型的功能，其示意图如图1所示。在这种方法中，扩充能力的深度与广度都受制于底层关系模型，因此从功能上看，它只能部分实现工程数据管理的特殊要求。

虽然关系模型扩充的方式不能完全满足工程数据库管理的要求，但对于小型、简单的工程应用还是有效的，又何况关系模型目前已成为应用所使用的主流，与关系模型的结合对开发工程应用及综合性应用有极大优势。因此，在传统关系模型基础上加以扩充所构成的工程数据库管理系统不失为一种明智的选择。

2．面向对象模型

通过面向对象模型来实现工程数据管理的要求是一种比较理想的方法，前面所介绍的7个特点均可采用面向对象模型予以解决。
(1)复杂数据结构的表示能力面向对象模型具有构造复杂数据结构的能力，它通过对象类的封装以及继承、合成、消息等多种结构方式，可以构造工程应用中的多种复杂数据结构。(2)表示变长数据及可扩展数据类型的能力面向对象模型不但具有基本数据类型，还具有多种集合量类型，此外还具有定义抽象数据类型的能力，包括变长数据及扩展数据类型的能力。
(3)面向对象模型能通过其复杂结构表示图形，同时也能通过封装于一体的方法做图形操作，因此面向对象模型具有表示与处理图形的能力。
(4)在面向对象模型中有较为丰富的类演化功能，它能动态改变类模式结构，充分满足工程数据管理中的模式演化的要求。
(5)在面向对象模型中，具备专为工程数据管理所设置的长事务与版本管理的能力。
从上述分析可以看出，面向对象模型可以有效地满足工程数据要求，因此采用面向对象数据库管理系统作为工程数据库是一种良好的选择。