郭凱偉 劉文成 廖正毅 肖劍 楊小玲
中海油田服務股份有限公司 河北 三河 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]。
數據作為信息系統的核心,數據的共享是建立數據庫的最基本動因。雖然企業的生產、經營和管理活動會經常變化,但只要企業的目標與業務范疇不變,數據本身是基本穩定的,變化的只是數據的處理過程。數據獨立于程序,規范、穩定、高效的數據模型由多個具有原子性、演繹性和規范性的“基本表”組成,保證數據從源頭采集、處理、使用和存儲,以達到“一次采集,無限應用”的目的。
數據模型一般是為了某一具體的功能、應用或系統而設計,故其首先要滿足業務的需要,參考同行對數據模型的建立方法與步驟,建模分為以下幾步:
業務調研與業務域劃分:開展鉆完井液業務調研,按照專業、管理職能或生命周期劃分業務域,再識別不同業務域下的主要業務活動。
數據采集情況分析:弄清相關數據填報的對象及主要頻率與內容。
數據模型設計:采用實體聯系模式圖(E-R)圖的方式設計概念模型,并在此基礎上提煉出主數據模型,再開展邏輯模型設計和在數據庫中的物理化。
基于上級公司對數據資產目錄的劃分,鉆完井液屬于井筒工程業務域,按照業務流程分為招投標、設計、施工、完工總結四大階段,見圖1,人員、設備、物料貫穿所有的工作。

圖1 鉆完井液業務流程分析
招投標主要包含項目招投標和作業任務下發兩項業務活動,實際上相關的業務及數據量較少。設計階段主要包括設計方案編寫及審核、質量策劃書編寫及審核和委托試驗三項業務活動。施工階段是所有流程的重點,主要包括作業準備、施工作業、材料管理、復雜情況及處理、變更管理五項業務活動。完工總結階段主要包括項目完工總結編寫、技術案例編寫、費用核算、資料收集與提交四項業務活動。
目前鉆完井液的招投標、設計與完工總結基本在線下進行,主要以報告的形式體現。施工階段數據通過一個單機版的軟件采集,主要分為開鉆前填寫、每日填寫、按實際發生的故障填寫、按井段填寫、按現場作業情況填寫五部分,主要填寫的內容和頻率,見圖2。

圖2 鉆完井液施工階段采集的數據情況
數據模型設計分為概念模型設計、邏輯模型設計、物理模型設計。概念模型設計就是將調研分析得來的信息抽象為信息結構的過程,一般采用E-R圖表示。邏輯模型設計就是把概念模型設計好的E-R圖轉換為與數據庫產品所支持的邏輯結構,最重要的工作就是將實體型和實體間的聯系轉換為關系模式,并確定這些關系模式的屬性和碼,通常用PowerDesigner、Navicat等專業軟件設計。物理模型設計就是把一個給定的邏輯數據模型轉換最符合應用要求的物理結構的過程,常用的PowerDesigner等軟件可以直接將邏輯模型轉換為物理模型。
對業務基礎數據的調研、分析、劃分與歸類是概念模型設計階段最主要的工作,同時也是工作量最大、最繁瑣、最細則的工作。調研的任務是要調查現實世界要處理的對象、原系統的工作概況、用戶的需求等,同時分析清楚數據項的含義及處理過程,尤其要弄清用戶有無新功能的需求,因為新需求必然對應著有新的數據需求,若不提前考慮可能存在的擴充與改變,今后很可能面臨全部推倒重來的困境。
對鉆完井液核心業務實體、屬性及聯系(見圖3),油氣田是石油工業中最核心的資產,通過在地面打井來開采獲取地下的油氣資源。井是在地面位置確實存在的、具有唯一地理坐標的實體,所有的勘探開發活動最終都通過井來實現價值。井筒描述了井從井口到井底的軌跡信息,用于區分地下與地面的不同概念。井段即通俗的開次,是鉆完井液的具體業務開展的對象,一個井段一般選擇同一種鉆完井液體系材料,現場也常以井段作為一次作業周期;同時井段也是核算人員費率、物料消耗、設備使用時長等的最小單元。

圖3 鉆完井液核心業務實體、屬性及聯系圖
主數據作為企業中具有高業務價值的、跨越各業務部門被重復使用的數據,是企業基礎數據共享的“語言”,一般在概念模型設計后進行識別、提取與建立[6]。
鉆完井液業務屬于油田服務行業,作為生產施工單位,地質、工程等基礎數據來自于甲方,在模型設計上應該繼承甲方的結構。本次主數據模型的設計以實體為主線,依次分為甲方業務單位、地質單元、井、井筒、井段、完鉆層位。這六個基本實體之間存在著向下包含的父子約束關系,將鉆完井液的所有業務數據有機的、完整的結合起來,形成一體化的數據庫,滿足各個層級的應用需求。
地質單元實體主要參考甲方,既包括了勘探上的盆地、構造、圈閉等構造單元,也包括開發上的油氣田、開發區、區塊等油氣單元,各層級根據實際需求劃分,方便管理與統計分析[7]。井是石油行業最關心的實體,一口井可以包含多個井筒,以解決實際上存在的一井多筒的情況。完井層位包括勘探上的完井層段和開發上的生產層段,完井層段決定了后期的生產層段,共設計了主數據表15張,數據項213個。
基于設計好的E-R圖和主數據模型,為了保證各個階段數據表不遺漏,在每張設計圖上先標注清楚本圖中內容所處的業務域、業務活動與業務對象,再對某一具體的業務對象開展分析,遵從數據庫設計的三大范式,依次開展相關數據表、字段、關系的設計,可以同時將相關附表設計出來,見圖4。

圖4 鉆完井液邏輯模型設計圖(部分)
邏輯模型設計經歷兩輪,首輪先盡量列全所有的數據表、字段、關系,第二輪中再進行合并、規范和優化。邏輯模型的設計并不是唯一的,其規范化程度并不是越高越好,為了方便使用,通常會做一些適度的冗余與合并設計[8],如將油田相關的信息都劃到了油田信息表中,本次共設計了業務數據表236張,數據項3329個。
通過對石油行業數據模型設計現狀與設計思路的理解,對鉆完井液業務的調研與梳理,采用E-R圖開展鉆完井液概念模型設計,并在此基礎上提煉出主數據模型,進而完成邏輯模型設計,共設計主數據表15張,數據項213個;業務數據表236張,數據項3329個。同時完成了邏輯模型在人大金倉數據庫中的物理化,遷入部分歷史數據,目前整套模型運行良好,較好的支撐了業務的需求。