钻完井液数据模型设计与实践
2024-04-11郭凯伟刘文成廖正毅肖剑杨小玲
郭凯伟 刘文成 廖正毅 肖剑 杨小玲
中海油田服务股份有限公司 河北 三河 065201
数据是描述事物的符号记录,而模型是对现实世界的抽象[1]。数据模型是对数据特征的抽象,故其既要结构清晰、逻辑合理的模拟现实世界,又要满足对数据管理与操作等方面的要求,包括数据结构、数据操作、数据约束三方面的内容。数据模型的设计需要对业务和行业的数据模型发展历史足够了解,同时还需要精通数据库设计理论。
国际石油行业很早就开始了相关的研究,1988年建立的公共石油数据协会研究和发布了涵盖上游勘探与开发、下游炼油与管道集输业务的公共石油数据模型(PPDM)。1990年由英国石油勘探公司(BP Exploration)、雪佛龙股份有限公司(Chevron Corporation)、埃尔夫阿奎坦集团公司(Elf Aquitaine)等公司发起成立POSC组织,发布了POSC Epicentre数据模型[2]。2019年,由多家国际领先的油气公司、技术公司共同组成OSDU技术联盟,旨在为石油和天然气行业提供一个开放的、基于标准的数据平台,实现对地下和油井数据的安全性、可靠性、全球性及高效性的访问,加速油气行业的深度融合与创新[3]。
中国国内从1991年发布了第一版《油田勘探、开发数据库字典》。中国石油借鉴POSC建模理念,结合勘探开发的实际需求形成了EPDM数据模型,以实体为主线,覆盖勘探、开发、生产等大部分上游业务[4]。中国石化借鉴POSC模型的设计思想,以石油勘探开发业务对象为核心,研发形成了中国石化油气勘探开发数据模型(SPDM)和中国石化勘探开发业务模型(SPBM)[5]。
1 研究思路与步骤
数据作为信息系统的核心,数据的共享是建立数据库的最基本动因。虽然企业的生产、经营和管理活动会经常变化,但只要企业的目标与业务范畴不变,数据本身是基本稳定的,变化的只是数据的处理过程。数据独立于程序,规范、稳定、高效的数据模型由多个具有原子性、演绎性和规范性的“基本表”组成,保证数据从源头采集、处理、使用和存储,以达到“一次采集,无限应用”的目的。
数据模型一般是为了某一具体的功能、应用或系统而设计,故其首先要满足业务的需要,参考同行对数据模型的建立方法与步骤,建模分为以下几步:
业务调研与业务域划分:开展钻完井液业务调研,按照专业、管理职能或生命周期划分业务域,再识别不同业务域下的主要业务活动。
数据采集情况分析:弄清相关数据填报的对象及主要频率与内容。
数据模型设计:采用实体联系模式图(E-R)图的方式设计概念模型,并在此基础上提炼出主数据模型,再开展逻辑模型设计和在数据库中的物理化。
2 钻完井液业务调研及分析
2.1 业务域划分
基于上级公司对数据资产目录的划分,钻完井液属于井筒工程业务域,按照业务流程分为招投标、设计、施工、完工总结四大阶段,见图1,人员、设备、物料贯穿所有的工作。
图1 钻完井液业务流程分析
招投标主要包含项目招投标和作业任务下发两项业务活动,实际上相关的业务及数据量较少。设计阶段主要包括设计方案编写及审核、质量策划书编写及审核和委托试验三项业务活动。施工阶段是所有流程的重点,主要包括作业准备、施工作业、材料管理、复杂情况及处理、变更管理五项业务活动。完工总结阶段主要包括项目完工总结编写、技术案例编写、费用核算、资料收集与提交四项业务活动。
2.2 数据采集情况分析
目前钻完井液的招投标、设计与完工总结基本在线下进行,主要以报告的形式体现。施工阶段数据通过一个单机版的软件采集,主要分为开钻前填写、每日填写、按实际发生的故障填写、按井段填写、按现场作业情况填写五部分,主要填写的内容和频率,见图2。
图2 钻完井液施工阶段采集的数据情况
3 数据模型设计
数据模型设计分为概念模型设计、逻辑模型设计、物理模型设计。概念模型设计就是将调研分析得来的信息抽象为信息结构的过程,一般采用E-R图表示。逻辑模型设计就是把概念模型设计好的E-R图转换为与数据库产品所支持的逻辑结构,最重要的工作就是将实体型和实体间的联系转换为关系模式,并确定这些关系模式的属性和码,通常用PowerDesigner、Navicat等专业软件设计。物理模型设计就是把一个给定的逻辑数据模型转换最符合应用要求的物理结构的过程,常用的PowerDesigner等软件可以直接将逻辑模型转换为物理模型。
3.1 概念模型设计
对业务基础数据的调研、分析、划分与归类是概念模型设计阶段最主要的工作,同时也是工作量最大、最繁琐、最细则的工作。调研的任务是要调查现实世界要处理的对象、原系统的工作概况、用户的需求等,同时分析清楚数据项的含义及处理过程,尤其要弄清用户有无新功能的需求,因为新需求必然对应着有新的数据需求,若不提前考虑可能存在的扩充与改变,今后很可能面临全部推倒重来的困境。
对钻完井液核心业务实体、属性及联系(见图3),油气田是石油工业中最核心的资产,通过在地面打井来开采获取地下的油气资源。井是在地面位置确实存在的、具有唯一地理坐标的实体,所有的勘探开发活动最终都通过井来实现价值。井筒描述了井从井口到井底的轨迹信息,用于区分地下与地面的不同概念。井段即通俗的开次,是钻完井液的具体业务开展的对象,一个井段一般选择同一种钻完井液体系材料,现场也常以井段作为一次作业周期;同时井段也是核算人员费率、物料消耗、设备使用时长等的最小单元。
图3 钻完井液核心业务实体、属性及联系图
3.2 主数据模型设计
主数据作为企业中具有高业务价值的、跨越各业务部门被重复使用的数据,是企业基础数据共享的“语言”,一般在概念模型设计后进行识别、提取与建立[6]。
钻完井液业务属于油田服务行业,作为生产施工单位,地质、工程等基础数据来自于甲方,在模型设计上应该继承甲方的结构。本次主数据模型的设计以实体为主线,依次分为甲方业务单位、地质单元、井、井筒、井段、完钻层位。这六个基本实体之间存在着向下包含的父子约束关系,将钻完井液的所有业务数据有机的、完整的结合起来,形成一体化的数据库,满足各个层级的应用需求。
地质单元实体主要参考甲方,既包括了勘探上的盆地、构造、圈闭等构造单元,也包括开发上的油气田、开发区、区块等油气单元,各层级根据实际需求划分,方便管理与统计分析[7]。井是石油行业最关心的实体,一口井可以包含多个井筒,以解决实际上存在的一井多筒的情况。完井层位包括勘探上的完井层段和开发上的生产层段,完井层段决定了后期的生产层段,共设计了主数据表15张,数据项213个。
3.3 逻辑模型设计
基于设计好的E-R图和主数据模型,为了保证各个阶段数据表不遗漏,在每张设计图上先标注清楚本图中内容所处的业务域、业务活动与业务对象,再对某一具体的业务对象开展分析,遵从数据库设计的三大范式,依次开展相关数据表、字段、关系的设计,可以同时将相关附表设计出来,见图4。
图4 钻完井液逻辑模型设计图(部分)
逻辑模型设计经历两轮,首轮先尽量列全所有的数据表、字段、关系,第二轮中再进行合并、规范和优化。逻辑模型的设计并不是唯一的,其规范化程度并不是越高越好,为了方便使用,通常会做一些适度的冗余与合并设计[8],如将油田相关的信息都划到了油田信息表中,本次共设计了业务数据表236张,数据项3329个。
4 结束语
通过对石油行业数据模型设计现状与设计思路的理解,对钻完井液业务的调研与梳理,采用E-R图开展钻完井液概念模型设计,并在此基础上提炼出主数据模型,进而完成逻辑模型设计,共设计主数据表15张,数据项213个;业务数据表236张,数据项3329个。同时完成了逻辑模型在人大金仓数据库中的物理化,迁入部分历史数据,目前整套模型运行良好,较好的支撑了业务的需求。