UML软件工程组织

 

 

工程数据库设计与应用
 
来源:ccut.edu.cn
 


◇ 第六节 数据库系统的体系结构

2.6.1 数据库系统体系结构的发展

随着计算机硬件和软件技术、网络技术的发展,数据库应用体系结构经历了四个阶段:

- 第一阶段是基于主机的计算机系统,
 - 第二阶段是PC与传统的网络技术相结合,即文件服务器结构,
 - 第三阶段为客户/服务器(C/S)方式,
 - 第四阶段是在C/S体系基础上扩充的包括客户、数据库服务器、应用服务器构成的三(多)层结构。

1、 基于主机的计算机系统

在基于主机的计算机系统中,各终端通过串行通讯接口线路与主机相连接(一个终端占据一条通讯线),一台主机对系统的各种资源与数据进行集中管理,主机分时地对各终端进行扫描访问,用户通过各自的终端与系统交互作用,来执行自己的处理任务。

这种集中式计算机信息系统的好处是:管理容易,数据的保密与完整容易保证,而且系统建设成本低,但是它的缺点是对业务变化的适应能力、系统的扩充性以及可维护性较差,当主机出了故障就有可能引起系统的瘫痪。

2、 PC/文件服务器系统

八十年代由于PC机的广泛应用以及计算机硬件、软件技术、网络技术的迅速发展,由共享的文件服务器、工作站、网络传输介质组成的计算机局域网广泛应用于各行各业中。 在这种应用中,所有应用程序和数据都集中在共享的文件服务上,而不是驻留在实际使用它们的客户计算机上,当用户需要时,相应的应用程序和数据就整个地从文件服务器上下载到计算机上。

在这种结构中,比基于主机的计算机系统使用简单、用户界面友好,并具有一定的可伸缩性。但是系统运行效率低下,当用户数增多时,网络的通信负载明显增大。

3、 客户/服务器系统

PC机或工作站通过网络连接起来,系统把这些计算机设备划分为服务器与客户端,以承担不同的工作职能,服务器主要用于信息系统的管理与服务(一般由能力较强的计算机系统来承担);客户机主要提供给用户来访问系统,具有良好的人机界面。用户只要通过客户机与网络上的任何服务器预先建立连接,就可以对它们进行访问。
采用网络连接的客户/服务器C/S操作方式的计算机环境,其优点是:
 - 系统有较大的灵活性;
 - 系统性能的提高容易(服务器性能提高或增加服务器的数目可以使系统整体性能提高);
 - 系统的连接方便,可以根据需要随时地增减用户;
 - 系统有较大的可维护性,一个服务器失效,其他服务器可以取代其部分功能,仍然保持系统的正常运转,不会使整个系统瘫痪。

这种客户/服务器系统实际为两层结构,即客户端程序+数据库服务器。根据应用程序业务逻辑的实现方式可分为两种模式:胖客户型和胖服务器型。胖客户型客户服务器系统的特点是数据计算和数据处理集中在客户端。这种系统的网络负荷大,直接影响业务处理速度,且用户连接多时容易在数据库端发生访问冲突。胖服务器型客户服务器系统的特点是数据计算和数据处理集中在数据库服务器端。数据库服务器端是这种系统的瓶颈,当用户连接增多时,在这里就会发生数据堵塞,系统性能急剧下降,根本无法适应多用户的需要。

4、三(多)层结构

三层结构是在客户/服务器体系基础上的扩充,它将客户/服务器系统中各种各样的部件分为三层服务:

  • 客户端服务程序:在用户计算机上提供用户界面。
  • 应用服务器,它驻留在客户可访问的网络中心,为任意数量的客户应用提供公共的数据服务。
  • 远程数据库服务器,提供关系型数据库管理系统(RDBMS)。

每一层服务在不同的计算机上协同运行,并且通过局域网甚至Internet共享数据和相互通讯。在三层结构数据库应用中,具有如下优点:
  1)、 系统可根据需要把各个服务分别或重复地分布在不同的计算机上,使整个系统的工作量平衡分配到网络中,从而实现最佳的性能。
  2)、 由应用服务器统一管理数据库连接、数据接收、数据同步、事务处理和线程调度等工作,因此可最大限度地保障了数据的统一、完整和准确性能。
  3)、 对系统的修改或升级可简化到只对某个特定部件的更换。使系统的维护和升级更加容易。
  4)、 适用范围广且支持Intranet/Internet,并具有很强的开放性。

2.6.2 数据库开发工具的体系结构发展

从以上论述可以看出,数据库系统体系结构的发展是个向"开放式"结构不断迈进的过程,我们始于非常封闭的集中式主机,目前正向一个真正开放的、与平台完全无关的环境过渡。

与数据库体系结构相对应,数据库应用与开发体系结构也经过了以下几个阶段:

1、基于文件的数据库应用系统的开发
 2、基于数据库管理系统平台的应用系统的开发
 3、基于通用数据库开发工具数据库应用的开发
 4、分布式的异构数据库应用系统的开发

1、基于文件的数据库应用系统的开发

基于文件的数据库应用系统的结构如图2-23所示,这是在数据库管理系统出现以前使用的开发方法,数据库开发人员使用某种程序设计语言和操作系统的文件管理功能建立数据库应用系统。基于这种结构的数据库系统的数据共享性差,冗余度大、数据独立性差。

图2-23 基于文件的DBS

2、基于数据库管理系统平台的应用系统的开发

20世纪90年代以前,应用系统的开发主要依据数据库管理系统提供的开发工具,开发的数据库应用虽然克服了基于文件系统的缺点,但也只能运行在固定的DBMS平台上。其优点是与某个DBMS的集成性较好,但应用系统的移植性不好。

图2-24 基于DBMS的DBS

3、基于通用数据库开发工具数据库应用的开发

在80年代后期,为满足工程数据库应用的需求,数据库厂商推出了通用数据库工具如PowerBuilder,90年代初,基于ODBC技术的异构数据库开发工具逐渐成熟,满足应用需求的异构数据库应用系统的开发已成为目前数据库应用的主流。

图2-25 异构DBS

4、 分布式的异构数据库应用系统的开发

90年代开始。随着分布式系统(COM/DCOM/CORBA/J2EE)、组件技术和三层结构(包括WEB技术)的成熟,支持三层结构的开发工具允许用户开发分布式的异构的多层应用程序。

图2-26 多层DBS

2.6.3数据库系统的体系结构

考察数据库系统的结构可以有多种不同的层次或不同的角度。从数据库管理系统角度看,数据库系统通常采用三级模式结构:这是数据库管理系统内部的系统结构。

从数据库最终用户角度看,数据库系统的结构分为集中式结构(又可称为单用户结构、主从式结构)、分布式结构、客户/服务器结构和并行结构。这是数据库系统外部的体系结构。

在讨论数据库的体系结构之前,我们首先回顾关于数据模型在DBMS中的三个层次的概念与定义。
 - 物理层:数据抽象的最低层,用来描述数据物理存储结构和存储方法。例如一个数据库中数据和索引是存放在不同的数据段上还是同一数据段中。数据的物理记录格式是变长的还是定长的,数据是压缩还是非压缩的,索引结构是B+树还是HASH结构…等等。这一层的数据抽象称为物理数据模型,它不但由DBMS的设计决定,而且与操作系统、计算机硬件密切相关。物理数据结构一般都向用户隐蔽,用户不必了解其细节。
 - 逻辑层:数据抽象的中间层,描述数据库数据整体的逻辑结构。这一层的数据抽象称为逻辑数据模型(简称数据模型)。它是用户通过数据库管理系统看到的现实世界,是数据的系统表示。因此它既要考虑用户容易理解,又要考虑便于DBMS实现。不同的DBMS提供不同的逻辑数据模型,传统的数据模型有层次、网状、关系模型,非传统的数据模型有面向对象数据模型(简称OO模型)。
 - 概念层:概念层次的数据模型称为概念数据模型,简称概念模型。概念模型离机器最远,从机器立场看是抽象级别的最高层。目的是按用户的观点来对世界建模,因此它应该是:
  1) 语义表达能力强。能够方便、直接地表达各种语义。
  2) 易于用户理解。概念模型是用户与数据库设计人员之间交流的语言。用户一般缺乏计算机知识,因此概念模型应当简单、清晰、易于用户理解。
  3) 独立于任何DBMS。
  4) 容易向DBMS所支持的逻辑数据模型转换。

与此相对应,数据库系统提供了三级模式用于描述这三层数据库模型。
  1、数据库系统的三级模式
  2、数据库系统的体系结构
  3、数据库系统(DBS)的组成
  4、DBS结构的分类

1、数据库系统的三级模式

在数据模型中有"型"(Type)和"值"(Value)的概念。型是指对某一类数据的结构和属性的说明,值是型的一个具体赋值。模式(Schema)是数据库中全体数据的逻辑结构和特征的描述,它仅仅涉及型的描述,不涉及到具体的值。模式的一个具体值称为模式的一个实例(Instance)。同一个模式可以有很多实例。模式是相对稳定的,而实例是相对变动的,因为数据库中的数据是在不断更新的。模式反映的是数据的结构及其联系,而实例反映的是数据库某一时刻的状态。

数据库的体系结构分成三级:内部级(Internal)、概念级(Conceptual)和外部级(External)。这种三级结构有时也称为"数据抽象的三个级别",最早是在1971年通过的DBTG报告中提出的,后来,1975年收入在美国ANSI/X3/SPARC报告中。

虽然现在DBMS的产品多种多样,在不同的操作系统支持下工作,但是绝大多数系统在总的体系结构上仍具有三级结构的特征。

图2-27数据库的三级体系结构

从某种角度看到的数据特性称为"数据视图"。外部级最接近用户,是单个用户所能看到的数据特性。单个用户使用的数据视图称为"外模型"。概念级是涉及到所有用户的数据的定义,也就是全局的数据视图,成为"概念模型"。内部级最接近物理存储设备,涉及到实际数据存储的方式,物理存储的数据视图称为"内模型"。

这些模型有两种表示方式,一种是图示方式表示数据结构图;另一种是用数据定义语言(Data Definition Language,简记为DDL)描述。外模型、概念模型和内模型用数据定义语言描述后分别得到外模式、概念模式和内模式。这三种模式在DBTG报告中分别称为子模式、模式和物理模式。下表显示了在不同表示方式中数据库体系结构的术语。

概念模式
  概念模式(Concepttual Schema)是数据库中全部数据的整体逻辑结构的描述。它由若干概念记录类型组成。概念模式不但要描述概念记录类型,还要描述记录之间的联系、所允许的操作、数据的完整性、安全性和其它数据控制方面的要求。
  数据按外模式的描述提供给用户,按内模式的描述存储在磁盘中。而概念模式提供了一种约束其它两级的相对稳定的中间观点,它使得两级中的任何一级改变都不受另一级的牵制。
  概念模式必须涉及到存储结构、访问技术等细节。只有这样,概念模型才算做到了数据独立性。
  描述概念模式的数据定义语言称为"模式DDL"。通常,概念模式也简称为模式。
 外模式
  外模式(External Schema)是用户与数据库系统的接口,是用户用到的那部分数据的描述。它由若干个外部记录类型组成。用户使用数据操纵语言(DML)语句对数据库进行操作,实际上是对外模式的外部记录进行操作。例如读一个记录值,实际上是读一个外部记录值(即逻辑值),而不是数据库的内部记录值。
  描述外模式的数据定义语言称为"外模式DDL"。有了外模式后,程序员不必关心概念模式,只与外模式发生联系,按照外模式的结构存储和操纵数据。外模式是概念模式的逻辑子集。
 内模式
  内模式(Internal Schema)是数据库在物理存储方面的描述,它定义所有的内部记录类型、索引和文件的组织方式,以及数据控制方面的细节。
  内部记录并不涉及到物理记录,也不涉及到设备的约束。比内模式更接近于物理存储和访问的那些软件机制是操作系统的一部分(即文件系统),例如从磁盘读数据或写数据到磁盘上的操作等。
  描述内模式的数据定义语言称为"内模式DDL"。
  上述三级模式都有"源"和"目标"之分。用数据定义语言DDL(Data Definition Languang)书写的都是源模式,系统不能直接使用,必须有DBMS的DDL编译程序将源模式编译成二进制的目标码,成为机器可执行的目标模式,放在目标库(即"数据字典")中,供系统随时调用。

2、数据库系统的体系结构

数据库的三级体系结构是数据的三个抽象级别,它把数据的具体组织留给DBMS去做,用户只要抽象地处理数据,而不必关心数据在计算机中的表示和存储。这就减轻了用户使用系统的负担。

三级结构之间往往差别很大,为了实现这三个抽象级别的联系和转换,DBMS在这三个结构之间提供了两个层次的映象(Mappings):外模式/模式映射和模式/内模式映射。

图2-28 数据库系统的体系

模式/内模式映象
  这个映象存在于概念级和内部级之间,用于定义概念模式和内模式间的对应性。由于这两级的数据结构可能不一致,即记录类型、字段类型的命名和组成可能不一样,因此需要这个映象说明概念记录和内部记录间的对应性。
  如果数据库的内模式作修改,如存储设备和存储方法有所改变,那么模式/内模式映象要作相应的修改,使概念模式尽可能保持不变,即对内模式的修改尽量不影响概念模式,当然对于外模式和应用程序的影响更小,这样我们就称数据库达到了物理数据独立性。
  模式/内模式映象一般放在内模式中描述。
 外模式/模式映象
  这个映象存在于外部级和概念级之间,用于定义外模式和概念模式间的对应性,即外部记录类型和概念记录类型的对应性。
  如果数据库的整体逻辑结构(即概念模式)要作修改,那么外模式/模式映象要作相应的修改,使外模式尽可能保持不变。也就是对概念模式的修改尽量不影响外模式和应用程序,这样我们就称数据库达到了逻辑数据独立性。
  外模式/概念模式映象一般放在外模式中描述。
  需要指出,数据库模式和数据库是有区别的。数据库模式只是数据库地一种结构描述,还不是数据库本身,它是一个可以按照给定的某种约束装入具体数据值的框架,但它本身并不涉及任何具体数据值。我们常说"定义了一个数据库",实际上只是定义了一个数据库模式。只有按照该模式装入了数据以后,这个数据库才算真正建立起来。通常,把一个数据库称为它的模式的一个"实例(Instance)"。数据库的内容是随时变化的,而模式则是相对稳定的。

3、数据库系统(DBS)的组成

数据库系统(DBS)是一个复杂的系统,它是采用了数据库技术的计算机系统。DBS的含义不仅仅是一组对数据进行管理的软件(即DBMS),也不仅仅是一个数据库(DB)。DBS是一个实际可运行的,按照数据库方法存储、维护和向应用系统提供数据支持的系统,它是存储介质、处理对象和管理系统的集合体,由数据库、硬件、软件和数据库管理员四部分组成。

数据库系统的组成
  - 数据库(DB):是与一个特定组织各项应用有关的全部数据的汇集。通常由两大部分组成:一部分是应用所需要的数据的集合,成为物理数据库,它是数据库的主体;另一部分是关于各级数据结构的描述,由数据字典(DD)系统管理。
  - 硬件支持系统:这一部分包括包括中央处理机、内存、外存、输入输出设备、数据通道等硬件设备。对DBS来说,特别要关注内存、外存、I/O存取速度、可支持终端数、性能稳定性、系统的联网能力、后备存储能力等指标。
  - 软件支持系统:包括DBMS、OS、各种实用程序和支持的开发工具与语言等。DBMS是管理DB的软件系统,而且要在OS支持下才能工作。
  - 数据库管理员(DataBase Administrator,DBA):DBA必须熟悉企业全部数据的性质和用途,并对用户的需求有充分的了解;DBA必须兼有系统分析员和运筹学专家的品质和知识,对系统的性能非常熟悉。DBA是控制数据整体结构的人,负责DBS的正常运行。DBA可以是一个人,在大型系统中也可以是由几个人组成的小组。DBA承担创建、监控和维护整个数据库结构的责任。DBA的主要责任有五点:
   1) 模式定义:DBA根据需要创建数据库的概念模式。
   2) 存储结构和存取方法定义:即定义内模式。
   3) 模式和物理组织的修改:根据需求或用户的要求修改数据库的概念模式和内模式。
   4) 对数据库访问的授权:根据需要授权给不同的用户以不同的方式使用数据库。
   5) 完整性约束的说明:根据需求编写完整性规则,以监督数据库的行动。

图2-29 数据库系统的全局结构

从数据库系统的运行结构(如图2-29)来看,可以把整个DBS划分成各负其责的若干模块。从图2-29可以看出,DBS的某些功能是由计算机系统的OS提供的,OS提供了DBS最基本的服务,因此DBS必须在OS基础上工作。所以DBS的全局结构包括:
 - 数据库用户:根据与DBS接触方式的不同,数据库用户可分成四类:
  (1)DBA:控制数据库数据整体结构的人,负责数据库体系结构三级结构的定义和修改。DBA和DBMS的界面是数据库模式
  (2)专业用户:数据库设计中的上层人员(例如系统分析员),他们使用专用的数据库查询语言操作数据。专业用户和DBMS的界面是数据库查询。
  (3)应用程序员:使用宿主语言和DML语言编写应用程序的计算机工作者。他们开发的程序称为数据库应用程序。应用程序员和DBMS的界面就是应用程序。
  (4)最终(初级)用户:使用应用程序的非计算机人员。最终(初级)用户和DBMS的界面是应用程序的运行界面。
 - DBMS的查询处理器
  (1)DML编译器:对DML语句进行优化并转换成"查询运行核心程序"能执行的底层指令。
  (2)嵌入型DML的预编译器:把嵌入在宿主语言程序中的DML语句预处理成规范的过程调用形式。
  (3)DDL编译器:编译或解释DDL语句,并把它登录在数据字典中。
  (4)查询运行核心程序:执行由DML编译器产生的底层指令。
 - DBMS的存储管理器:存储管理器提供存储在数据库中的底层数据和应用程序、查询之间的界面。存储管理器可分为四个部分:
  (1)授权和完整性管理器:测试应用程序是否满足完整性约束,检查用户访问数据是否合法。
  (2)事务管理器:DBS的逻辑工作单位称为事务,事务由对DB的操作序列组成。事务管理器用于确保数据库一致性(正确性)状态,并保证并发事务的正确执行。
  (3)文件管理器:负责磁盘空间的合理分配,管理物理文件的存储结构和存取方式。
  (4)缓冲区管理器:为应用程序开辟数据库的系统缓冲区,负责把从磁盘读出的数据通过缓冲区送入内存,并决定哪些数据进入高速缓冲存储器(Cache)。
 - 磁盘存储器中的数据结构
  (1)数据文件:数据库在磁盘上的基本组成形式是文件,这样可以充分利用OS管理外存的功能。
  (2)数据字典:存储三级结构的描述(一般称为元数据metadata)。
  (3)索引:为提高查询速度而设置的逻辑排序手段。
  (4)统计数据:存储DBS运行时统计分析数据。查询处理器可使用这些信息更有效地进行查询处理。

4、DBS结构的分类

(1)集中式DBS(Centralized DBS)
 (2)客户/服务器式DBS(Client/Server DBS, C/S DBS)
 (3)并行式DBS(Parallel DBS)
 (4)分布式DBS(Distributed DBS)

(1)集中式DBS(Centralized DBS)

集中式DBS(Centralized DBS):如果DBS运行在单个计算机系统中,并与其它的计算机系统没有联系,那么这种DBS称为集中式DBS。集中式DBS遍及从微型计算机上的单用户DBS直到大型计算机上的高性能DBS。这种系统的计算机只有一台即可。有若干设备控制器控制着磁盘、打印机和磁带等设备。计算机和设备控制器通过系统总线与共享的内存相连。计算机和设备控制器能够并发执行。

计算机系统有单用户系统和多用户系统两种。微型计算机和工作站归于单用户系统,一般有一个CPU,单用户系统的DBS不支持并发控制,恢复机制也较简单。多用户系统有多个计算机作为终端与主机服务器相连,可以为大量的用户服务,因而多用户系统也称为服务器系统。

目前通用计算机系统已设计成多处理机,但其并行程度大都是粗放型。即只带少量的处理机,每个查询并不是分割在多台处理机上并发执行,而是在一台处理机上执行,但允许多个查询并发执行。

现在,设计成单处理机的DBS也能利用操作系统提供的多任务机制处理多任务,以分时方法允许多个查询并发执行,即实行了粗放型的并发控制。

(2)客户/服务器式DBS(Client/Server DBS, C/S DBS)

客户/服务器式的系统结构的关键在于功能的分布,一些功能放在前端机(即客户机)上执行,另一些功能放在后端机(即服务器)上执行(如图2-30)。功能的分布在于减少计算机系统的各种瓶颈。

- 前端部分:由一些应用程序构成,例如格式处理、报表输出、数据输入、图形界面等,用这些应用程序可实现前端处理和用户界面。
 - 后端部分:包括存取结构、查询优化、并发控制、恢复等系统程序,它们可完成事务处理和数据访问控制。

图2-30 C/S DBS的前、后端功能

(3)并行式DBS(Parallel DBS)

现在数据库的数据量大幅度提高,巨型数据库的容量已达到"太拉"级(1太拉为1012),此时要求事务处理速度极快,每秒达数千个事务才能胜任系统的运行。集中式DBS和C/S DBS都不能应付这种环境。并行计算机系统能解决这个问题。

并行计算机系统使用多个CPU和多个磁盘进行并行操作,提高数据处理和I/O速度。并行处理时,许多操作同时进行,而不是采用分时的方法。并行DBS有两个重要的性能指标:
 - 吞吐量:在给定时间间隔内能完成任务的数目。
 - 响应时间:完成一个任务所花费的时间。

并行DBS的结构有四种如图2-31:
 - 共享内存型(图2-31 a):所有CPU共享一个公共的内存。由于系统总线和网络通信的瓶颈影响,目前一个系统的CPU数目还不能超过64个。
 - 共享磁盘型(图2-31 b):所有CPU共享一组公用的磁盘。
 - 非共享型(图2-31 c):所有CPU既不共享内存也不共享磁盘。系统的每一结点都有一个CPU,一个内存和若干磁盘。结点之间通过网络连接。
 - 层次型(图2-31 d):这是一种上述三种结构的组合:顶层是非共享型,而下层结点是共享内存型或共享磁盘型。

图2-31 并行DBS结构

(4)分布式DBS(Distributed DBS)

分布式DBS是一个用通信网络连接起来的场地(site,也称为结点)的集合,每个场地都可以拥有集中式DBS的计算机系统。

分布式DBS的数据具有"分布性"特点,数据不是存储在同一场地,而是分别存储在不同场地。这是分布式DBS与集中式DBS的最大区别。

分布式DBS的数据具有"逻辑整体性"特点。虽然数据分布在各个场地,但在逻辑上是一个整体,用户使用起来如同一个集中式DBS。这是分布式DBS与分散式DBS的主要区别。

分布式DBS中的数据在场地上分离,在管理上也是分离的。系统中事务有本地与全局之分。本地事务对数据库的访问在本场就可完成,而全局事务对数据库的访问要涉及到两个或两个以上的场地。这是分布式DBS与非共享型并行DBS的主要区别。

总结:

本小节简单介绍数据库的体系结构,包括数据库管理系统的体系结构、数据库系统开发工具的体系结构、数据库系统的体系结构等基本概念。有关这方面的知识在传统的数据库概论中都有相关的介绍。要理解这些概念,需要同学们安装一个数据库管理系统(如SQL Server, Oracle),并进行一些实际的操作。

所以讲完本章后,希望同学们课后通过实践已经掌握一个数据库管理系统,以便于完成工程数据库的大作业。

◇ 第七节 工程数据库概述

2.7.1 工程数据库的发展

工程领域对数据组织的要求并非现在才有,早在计算机时代之前,工程师已经系统地使用组表(Set tables)、图表(Picture tables)和工程图来描述整个系统的流程和结构。组表实际上是二维表、图表或生产进度表也是二维表,而工程图则是描述工程设计产品的形状的平面图,它包括了这个产品的形状曲线、中心线、尺寸线、注释和制图的符号等。工程图是产品的三视图,其标准方法是人工的,产品是由手工操作的机床加工的。在通常的人工方法中,用工程图表来描述这些信息,工程师之间也用图表进行交流。工程制图中,对图纸信息意义的理解仅仅依赖于人的知识及认知能力。工程图表并不是工厂的最终产品,但当需要时,应当是一种输出形式。这些都涵盖着工程数据库的基础。

当小型程序用于生成分析数据和设计数据之后,那种用组表和图表记录数据的标准方法论就变得不太严格,用工程图交换信息变得因人而异,很粗糙、不严密,用计算机实现起来十分困难的,况且还没有建立具有语义的工程制图的正规描述。人工生成的数据仅用计算器计算还是不够的,50年代中期有限元方法与现代数字计算机的发展,使分析和设计大型系统成为可能。这些发展产生了小的计算机内存中处理大型矩阵问题,大量的有限元数据迫使工程师面临着正确地管理数据问题。此外,设计优化算法的发展也向设计者提出了组织大量设计数据的严峻问题。同时其他工程科学也面临着大量的数据管理问题。

计算机辅助设计的出现,产生了对大量数据管理方面的迫切需求:一方面是工程用的计算机程序;另一方面是CAD在大型系统中的应用,特别是在与计算机辅助制造、计算机系统集成等方面。这些都给数据组织带来了加倍的困难。即使在计算机程序环境中,随着设计的修改、产品工艺的改进,制造技术的发展等迫切需要一个能满足工程应用系统数据管理和各种系统之间集成的需求。

20世纪70年代,随着计算机用于事务与商业领域,会计、库存控制、生产调度和其他领域中的数据管理显得重要起来,在这些领域中的数据管理积累了大量的知识和经验,已经使用了一些复杂的数据库管理系统,并在不断地得到改进。然而,在工程领域中引入数据库管理是从70年代就开始。但由于工程应用中信息的复杂性,数据库管理系统在工程中的应用还达不到事务应用中那样的程度。

1975年美国洛克希德公司的Eastman首先描述了一个可用于CAD的数据库,对CAD领域产生了重大影响。之后,各国研究机构、大学和公司都竞相研究,数据库技术开始向CAD/CAM方向渗透。在这个时期中,关于工程应用数据库概念发表了许多文章,譬如,Fellipa(1979年)的文章是科学与工程应用数据库管理课题的导论。文中特别强调了事务数据管理与科学数据管理之间的区别。在1980年另一篇论文中还给出了有关科学计算的术语一览表。由于事务DBMS所用的术语对工程师是相当陌生的,所以这张表成了获取不同术语的起点。Bell(1982年)的文章讨论了数据使用的若干问题,并比较了科学与事务应用中的数据建模,讨论了与数据实体的辨识、实体命名和其他相关数据建模方面有关的一些困难。为了弄清事务与工程应用中数据使用的差别,Foiseau和Valette(1982年)给出了准则表。科学数据的特殊性决定了科学计算的DBMS要求。Lopatka和Johnson(1978年)评述了DBMS支持工程应用的要求。Fulton和Voige(1980年)验明了航空工业中CAD/CAM数据管理的要求。Southhall(1980年)阐明了综合支持,情报管理和计算机程序管理诸方面的工程信息管理要求。Johnson、Confort和Shull(1980年)给出了IPAD(航天飞行器设计的综合程序)的数据管理要求和信息处理程序IPIP的能力。

在数据库设计方法上也进行了一系列研究,寻找设计工程应用数据库的适宜方法。数据库设计有两种基本方法:第一种方法是首先产生全局模式,然后由其导出局部视图;第二种方法是获取不同用户的局部视图,然后将其综合以形成全局视图。人们普遍认为,传统的三个数据模型没有足够的能力来表达CAD数据的全部语义结构,所以语义数据模型成为工程数据库设计者刻划CAD应用的信息结构的一个理论工具。

在1985年第四界国际工程软件会议上,详细讨论了工程数据库在集成工程设计中的显著作用、工程数据库管理系统的特点、工程数据库管理的类型以及它们的术语。这些讨论,加速了工程领域中对现行的三种模型如何吸收到未来的CAD系统的研究。对图形数据关系组织、关系信息管理系统设计中关于CAD和交互数据处理的一些方面提出了类型、对象与关系和函数概念的一个CAD数据模型。

在这时期的应用是以文件系统和数据库相结合的方式出现的。工程数据管理的功能要求与商用数据库的管理功能要求有着根本的不同。在很长一段时期内,在CAD等工程领域中,大多使用文件系统或以文件为基础的专用数据库管理系统来储存工程数据,这样做对一些小系统是可行的,但随着这类工程系统的规模越来越大,这种以文件为基础的系统不论是系统开发、维护,还是系统的使用都带来了一系列问题。所以研究功能齐全、适合工程领域环境的工程数据库管理系统是80年代计算机集成制造技术研究的重点。

80年代末,随着面向对象技术的成熟,人们开始对满足工程应用需求的对象数据库管理系统进行深入的研究。面向对象的技术或称规范已经成功地用于系统分析、系统设计、程序设计,人们开始也可以将面向对象技术用于数据库的数据结构和数据库设计。一般数据库设计方法有两种,即属性主导型和实体主导型。属性主导型从归纳数据库应用的属性出发,在归并属性集合(实体)时维持属性间的函数依赖关系。实体主导型则先从寻找对数据库应用有意义的实体入手,然后通过定义属性来定义实体。一般现实世界的实体数在属性数1/10以下时,宜使用实体主导型设计方法。面向对象的数据库设计是从对象模型出发的,属于实体主导型设计,面向对象的技术将分析、应用程序设计、数据库设计统一到同一个数据模型:对象模型上,所以工程技术人员对面向对象的数据库管理系统寄予很大的希望。

由于应用系统设计在前,数据库设计随后,所以应用系统对象模型向数据库模式的映射是面向对象数据库设计的关键。人们开始对象模型标准COM/DCOM/CORBA/J2EE等支持多层结构的研究。

2.7.2 工程数据库的特点

法国学者J.Foisseau 在他们的"A Computer Aided Design Data Model:FLOREAL"中从以下几个方面比较了工程数据库和商用数据库的不同。

工程数据与商用和管理数据相比,主要有以下特点。

1) 工程数据中静态(如一些标准、设计规范、材料数据等)和动态(如随设计过程变动而变化的设计对象中间设计结果数据)数据并存。
 2) 数据类型的多样化,不但包括数字、文字,而且包含结构化图形数据和文档资料等非结构化数据。
 3) 数据之间复杂的网状结构关系(如一个基本图形可用于多个复杂图形的定义,一个产品往往由许多零件组成)。
 4) 大部分工程数据是试探性交互式设计过程中形成的。数据模型是在设计过程中才形成的。

工程数据库是面向领域的数据库系统,其中数据模型是工程数据库研究的重点,以此模型为基础,我们需要开发相应的工程数据库管理系统。因此我们将进入第三章学习。

◇ 本章小结

本章主要讨论数据库和数据库管理系统的概念,通过这些概念的介绍使大家对数据库的基本概念、支持数据库的几种数据模型、数据库管理系统的体系结构有一个基本的认识。在章节的后半部分,侧重介绍了数据库发展的几个方向、工程数据库的发展、工程数据与事务型数据的异同等。从工程数据的特点看出,满足工程数据管理的数据库管理系统需要新的数据模型和体系结构。所以下章我们需要讨论工程数据库管理系统。

本章内容比较抽象,内容较多,需要同学课后结合某个数据库管理系统如SQL Server、Oracle等上机实习才能理解上述概念。在课堂讲解时我们会介绍一个数据库管理系统:SQLServer。有关SQLServer的讲课材料参见讲义。

◇ 课后习题

问答题

2.1

    1. 数据处理与数据管理有什么不同?
    2. 根据信息的三个世界概念举例说明在工程应用中的涵义。
    3. 数据管理研究的主要内容是什么?

2.2

    1. 简述数据管理技术三阶段及其特点?
    2. 简述数据库技术的三个阶段及对应的数据库管理系统的特点?
    3. 传统的数据库管理系统有什么缺陷?
    4. 新一代数据库有什么特点?

2.3

    1. 什么是数据库和数据库管理系统?它们之间有什么不同?
    2. 你是怎么理解数据库用户概念的?数据库管理系统的用户有那些?数据库应用的用户有那些?数据库管理系统的用户和数据库的用户有什么不同?一般数据库应用的用户权限是怎么管理的?
    3. 数据库技术有那些基本概念?结合你熟悉的DBMS举例说明这些概念?
    4. 简述数据库中的数据字典的用途,它与数据库中存储的数据有什么关系?

2.4

    1. 数据模型的定义是什么?具体内容包括那几个方面?
    2. 数据模型的分类有那些?在数据库中常用的数据模型有几种?
    3. 层次数据模型有什么特点?它的数据结构是如何表示的?
    4. 层次数据模型的优缺点是什么?多对对联系在层次模型中如何表示?
    5. 网状模型有什么特点?它的数据结构是如何表示的?
    6. 与层次数据模型相比,网状数据模型有什么不同?
    7. 网状数据模型的优缺点是什么?多对对联系在网状模型中如何表示?
    8. 关系数据模型的基本概念有那些,与层次、网状数据模型相比有什么特点?它的数据结构如何?
    9. 关系数据模型存储结构与层次、网状数据模型有什么不同?关系视图如何在工程应用中得到充分的应用?
    10. 面向对象技术的基本概念有那些?多态和动态联编有什么特点?
    11. 类、对象、对象标识符之间的关系是什么?在面向对象的模型中,对象标识符有什么用途?
    12. 对象持久性是什么概念?如何实现对象的持久性?
    13. 面向对象模型有什么优缺点?
    14. 请您比较层次、网状、关系、对象这四种数据模型之间数据结构?

2.5

    1. 数据模型的发展方向是什么?
    2. 分布式数据库有什么特点?
    3. 对象-关系数据库有什么特点?目前有哪些实现方法?
    4. 面向工程应用的数据库有那些类型?各自有什么特点?
    5. 数据库、数据仓库、数据挖掘、决策支持系统之间有什么联系与区别?

2.6

    1. 数据库系统体系结构发展经历了哪几个阶段?各有什么特点?举例说明你熟悉的数据库系统体系结构?
    2. 数据库应用系统的开发结构经历了哪几个阶段?各有什么特点?简要说明你熟悉的数据库开发工具及其体系结构?
    3. 数据库体系结构的三级模式结构是什么?它们之间是如何联系和转换的?
    4. 简要说明数据库系统的组成及DBA在数据库系统中的地位?
    5. 数据库系统的全局结构是什么?各模块是如何工作的?
    6. 数据库系统分为哪几类?并简要说明它们的结构?
 

组织简介 | 联系我们 |   Copyright 2002 ®  UML软件工程组织 京ICP备10020922号

京公海网安备110108001071号