当前位置:文档之家› 石油勘探开发工程数据模型设计

石油勘探开发工程数据模型设计

石油勘探开发工程数据模型设计Ξ叶飞跃 高延文 段友祥(石油大学计算机系,山东东营257062) 摘要 结合勘探开发工程数据的特点,讨论了改造关系数据库的模型结构,利用嵌套关系解决矢量、数组、文本、图形等工程数据的存储问题。提供了16种适合勘探开发工程应用的新数据类型,设计了一套在新的嵌套关系模型下的数据操作语言,规定了标准的数据操作方法。实际应用表明,石油勘探开发工程数据模型为石油勘探开发应用提供了方便、高效、统一的数据存储结构和数据存储方法,解决了常规关系数据库系统下无法解决的一些工程数据和数据管理问题,为石油工业勘探开发数据库的建立和应用研究提供了有效的手段。主题词 系统工程;数据库;数据存储;模型;计算机应用中图法分类号 TP392

ΞΞΞ

第一作者简介 叶飞跃,男,副教授,1959年出生,1982年毕业于石油大学(华东)。现在攻读博士学位,从事计算机应用和数据库科研工作。

1 存在的问题 关系模型是建立在集合代数基础之上的,从集合代数的角度来定义关系,即在域D1,D2,…,Dn上的关系R是集合D1,D2,…,Dn的笛卡尔乘积D1×D2×…×Dn的一个子集。其中,域(Domain)Di是值的集合,即值域。关系的定义是抽象的,而其物理意义是利用值域的各元素的笛卡尔乘积来表达现实世界的一个事物。随着关系数据库在石油勘探开发领域应用的深入,对数据组织及操作有了更高的要求,关系方法逐渐显示出其局限之处,对于复杂数据的处理不能满足要求,具体表现在以下几个方面:(1)第一范式不支持结构实体。由于关系数据库理论的成熟,关系模型成为数据组织的主要形式,任意一种关系系统均必须遵循第一范式(1NF)的要求。也就是说,关系模式中的每一个属性必须是不可再分的基本属性。然而,对于石油勘探开发工程领域中所涉及大量的、种类复杂的数据,例如,矢量、矩阵数组类数据,以及文本、图形和图象等数据,关系系统不能够直接支持这类数据。(2)关系不支持对象的标识。工程应用中的数据可能有两个相同的值,却代表不同的内容。也就是说,以关系模式来实现时,会出现两个相同的元组,而分别表示不同的含义。这在关系系统中是无法表示的,即使可以存储也无法将其区分开,原因是关系不支持对象的标识。例如,测井曲线数据,虽然不同的曲线数据值不一样,但不能以值的大小来区分各条曲线,而应该有一种系统的标识方法,这在关系模型数据库中是无法表示的。(3)数据的先后次序无法在关系中表达。关系中的各个元组无先后次序,但是勘探开发工程数据库有时希望按顺序存放数据,这用关系模型实现时是不便的。(4)关系操作不支持对工程数据的操作。关系数据库最基本的操作有并、差、笛卡尔积、选择和投影5种操作,E1F1Codd曾经证明了这5种基本操作的完备性。但是取而代之的二维数组、图形、图象数据,利用选、投、连等关系操作,很难直接表示这类数据的操作特点。(5)数据操作的统一影响了数据完整性的控制。数据库作为一个客观系统的模拟,其状态必须时刻满足该客观系统特有的约束条件。为此,对于有些操作必须加以限制,有些操作必须依赖于数据库的不同状态。数据操作的这些限制并不体现在关系系统的“标准操作”之中,而是因数据对象而异的。在

1998年 第22卷第1期 石油大学学报(自然科学版)JournaloftheUniversityofPetroleum,China Vol.22 No.1Feb.1998

ΞΞΞ总公司“八五”重点科研项目“勘探开发工程数据库系统”成果之一.

收稿日期:1997-07-03关系数据库中,数据操作的过分统一造成了数据完整性控制方面的困难。(6)对系统可扩充性的支持不够。关系数据库系统动态扩充的余地很小,它所容纳的数据可以增加,但所具备的基本数据操作是固定的。系统对于数据的组织模式及组织模式的扩充、删简或修改,缺乏总体控制的能力。另外,当引入新的数据类型时,系统中不能生成新的框架以组织这种类型的数据,并难以针对这一数据类型定义一组新的操作,因此,适应性较差。(7)不具备版本控制的能力。在石油勘探、开发过程中,许多数据是经过反复试验或多次解释得到的。为了便于数据的反复对比,一般不应将旧的数据删除,而应尽可能地保留多个解释结果。2 勘探开发工程数据模型的建立211 嵌套关系数据模型勘探开发工程数据模型是对关系模型的扩充,将原关系模型中不可再分的基本属性扩充为可以定义为另一个关系的复合属性,使得关系中可以嵌套定义关系,以表达结构实体,使关系的表达范围大大拓宽,以适应复杂数据结构的存储。定义 广义域D1,D2,…,Dn上的嵌套关系R是集合D1,D2,…,Dn的笛卡尔积D1×D2×…×Dn一个子集。其中,广义域D1,D2,…,Dn是值的集合或另一关系R′.

根据以上的定义,广义域Di除了可以是基本数据类型值的集合之外,还可以嵌套定义别的关系。这一方法消除了传统关系数据库必须满足第一范式的限制。此外,嵌套关系模型除了可以定义新的结构化的数据类型外,还能够表达结构实体。这样就可满足勘探开发中处理对象因应用要求而发生变化的情况。嵌套关系是建立在关系模型数据库系统上,要实现嵌套关系的存储,采用给关系赋予指针属性的方法,利用指针建立嵌套关系与主关系之间的联系,

实现了非第一关系范式关系的存储。其实现存储的基本原理如图1所示。为了在关系系统中实现嵌套关系,对于定义了结构实体或结构化数据类型的主关系,添加TUPID

属性,作为主关系中各元组的标识;而对结构实体或结构化数据,另外定义一个嵌套关系实现结构实体中的各属性,并增加MTUPID属性作为与主关系建立联系的指针。这样,利用TUPID和MTUPID两种属性之间的指针联接来保持主关系与嵌套关系之间的数据一致。嵌套关系可以多层嵌套,即如果嵌套关系中的某些属性仍是结构实体,那么将嵌套关系看成为主关系,逐层嵌套实现。

图1 嵌套关系数据模型结构 利用嵌套关系可以很方便地表示石油勘探开发过程中所谓的结构实体问题。例如:在一口井的钻井、采油或测井应用中可以看成为一个实体,用单独一个关系来表示;而在地震勘探应用中,井只是地震剖面上的一个点,如果用关系来描述地震剖面,井只是其中的一个属性;如果在地质油藏或构造研究中,人们又希望把一个油藏或构造用关系来表示,这样,地震剖面又成了关系中的一个属性。实际应用中要求,自然地向嵌套关系扩展。图2是利用嵌套关系定义包含有两个油藏的结构实体的示意图,其中每个油藏中包含有若干地震剖面,每条地震剖面又由若干深度点的地震波曲线组成,并包含有数口井的数据。

・68・石油大学学报(自然科学版) 1998年2月图2用嵌套关系模型表示勘探开发应用212 结构化数据类型及实现关系模型数据库系统中,各属性所能表示的数据类型均为非结构化数据类型,在石油勘探开发工程应用中常常要处理复杂的结构化的数据,例如矢量、数组、图形和图像等,利用嵌套关系的数据模型可以很方便地定义这些新的结构化数据类型。针对石油勘探开发应用中的实际需要,工程数据模型中设计了浮点数、数组、文本、图形和图像等共16种新的数据类型。新的数据类型对用户是透明的,使用中可以方便地将这些新的类型看成是关系中的一个普遍属性,不用考虑具体实现时的主关系与嵌套关系,以及关系之间的指针问题。这16种新的数据类型见表1.

在实现时,考虑到存储的效率以及实现的方便,

这16种新型数据类型采用了不同的存储结构。第1,2两种数据类型为浮点数与双精度浮点数。在保证数据精度和表示范围的前提下,分别采用4字节和8字节存储数据。第3~12种为数组类型,用户可作为普通的数据一样使用,但实现时以嵌套关系结构来存储数组数据。其中,浮点数组和双精度浮点数组,在嵌套关系中以LONG数据类型实现,而其他的数组且则根据非数组数据类型,分别采用相应的结构来实现。其示意图如表2所示。表1 数据类型及其表达式序号数据类型表达式1浮点数FLOAT2双精度浮点数DOUBLEFLOAT3浮点数组(维数说明)FLOAT4双精度浮点数组(维数说明)DOUBLEFLOAT5字串数组(维数说明)CHAR6可变长字串数组(维数说明)VARCHAR7定点数数组(维数说明)NUMBER8十进制数数组(维数说明)DECIMAL9整数数组(维数说明)INTEGER10短整型数数组(维数说明)SMALLINT11日期型数组(维数说明)DATE12二进制位串数组(维数说明)LONGRAW13文本TEXT14图形GRAPH15图象IMAGE16子表SUBTABLE表2 数组类数据类型的实现属性属性1属性2…属性200MTUPID对应主表一个元组XXXXXXXXXXXXXXXXXXXXXXXX………XXXXXXXX主表指针 文本类型利用嵌套关系来实现,根据查询和应用的要求,在数据库与应用之间传递相应的文本段。图形数据采用了将图形分解为图段和图元的方法,

・78・第22卷 第1期 叶飞跃等:石油勘探开发工程数据模型设计再以矢量形式存放。图像数据不采用类似Sybase

外部存储的办法,将图像当作专门的一种特殊文件,

存放于专用目录下,通过文件名来建立相互之间的联系。其实现的示意图如表3所示。表3 图象的存储属性1属性2属性3(图象)Char(6)…XXXXXXXX系统生成的图象名1…XXXXXXXX系统生成的图象名2…

第16种子表数据类型给用户提供了一种新的用动态方法定义数据类型和结构实体的手段。用户可利用前面的15种数据类型及基本的数据类型来组织数据,以构成一种新的结构化数据或结构实体。213 数据字典为了在系统中维护扩展16种新的结构化的数据类型、图形数据和子表以及版本管理的能力,用专门的数据字典来保存和跟踪各个非标准嵌套关系的建立和专用数据结构的修改。此外,系统内部嵌套关系的命名规则及用户视图的建立均需遵守一套严格的规定。数据字典亦称数据库的数据库,是数据库系统中存放数据的定义及保持对数据解释的数据库中的一部分。嵌套关系模型能保持系统的正确运行,屏蔽用户对嵌套关系的干预,特别是能透明地使用结构化的数据类型,保证系统对嵌套关系的控制。数据字典结构如下:

1.USERNAME CHAR (255)

2.MAIN

-TABLECHAR(255

)

3.SUB

-TABLECHAR(255

)

4.TYPECHAR

(20)

5.LENGTHCHAR

(20)

6.VER

-CONTROLNUMBER(10

)

该字典中分别存入用户名、某属性所对应的关系名、属性名、数据类型名、数组的维数定义(如果不是数组则为空)以及需要进行版本控制时的当前版本号。利用以上信息,系统便可以对嵌套关系模型数据库进行控制。为了使系统对嵌套关系进行控制,规定了一套命名规则,该命名规则对用户透明。系统虽然用嵌套关系实现,但为用户提供了标准的视图,用户不必知道嵌套关系如何建立,也无需直接操作嵌套关系。命名规则有以下3条:

相关主题