史肖燕,趙慶,宋鵬,蔣宏偉(中國石油集團鉆井工程技術(shù)研究院,北京 100195)
隨著石油勘探開發(fā)技術(shù)的發(fā)展和計算機信息科學(xué)的進步,鉆井信息的管理與應(yīng)用越來越顯示出它的重要性。科學(xué)合理地利用鉆井信息對鉆井工程管理和決策起著至關(guān)重要的作用。高效應(yīng)用鉆井信息的關(guān)鍵就是要建立一個全面、合理、詳細、標(biāo)準(zhǔn)的鉆井工程數(shù)據(jù)庫,來對海量的鉆井?dāng)?shù)據(jù)進行存儲和管理。中國石油天然氣總公司在1995年頒布了 《SY/T 5705—1995石油鉆井工程數(shù)據(jù)庫文件格式》,目前國內(nèi)各油田的鉆井?dāng)?shù)據(jù)庫大都依照該行業(yè)標(biāo)準(zhǔn)開發(fā)的[1]。然而,隨著鉆井技術(shù)的飛速發(fā)展和數(shù)據(jù)庫技術(shù)的快速變更,這些數(shù)據(jù)庫結(jié)構(gòu)已經(jīng)不能滿足現(xiàn)場的需要,也不能適應(yīng)計算機科學(xué)的發(fā)展需要[2]。因此,新的能支持先進鉆井技術(shù)和數(shù)據(jù)庫技術(shù)的鉆井?dāng)?shù)據(jù)庫的建立有其重要意義。
筆者設(shè)計的鉆井工程數(shù)據(jù)庫要為鉆井工程設(shè)計和工藝軟件提供統(tǒng)一的數(shù)據(jù)存儲和管理,需支持該軟件所有模塊的功能和數(shù)據(jù)需求,以達到數(shù)據(jù)一次錄入,多處使用的目的;設(shè)計的鉆井工程數(shù)據(jù)庫要確保數(shù)據(jù)正確地分布到數(shù)據(jù)庫的表中,以便于上層軟件對數(shù)據(jù)進行相應(yīng)的存取操作,確保上層軟件的性能;設(shè)計的鉆井工程數(shù)據(jù)庫需具有可擴展性,在有新的功能模塊加入鉆井工程設(shè)計和工藝軟件時,數(shù)據(jù)庫能方便地添加新表來支持新的業(yè)務(wù)邏輯,而不需要大面積地修改原有數(shù)據(jù)庫結(jié)構(gòu);同時,所設(shè)計的鉆井?dāng)?shù)據(jù)庫需支持新的鉆井技術(shù),如定向井技術(shù)、分支井技術(shù)、欠平衡技術(shù)等,也支持先進的LWD(logging while drilling,隨鉆錄井工具)和 MWD(measure while drilling,隨鉆測量工具)。
概念結(jié)構(gòu)設(shè)計是在需求分析的基礎(chǔ)上,設(shè)計出獨立于計算機硬件和數(shù)據(jù)庫管理系統(tǒng)的概念模型。概念模型一般用實體-聯(lián)系(Entity-Relationship)方法來表示。筆者采用自低向上方法進行概念設(shè)計,即先把整個系統(tǒng)分成幾個局部,設(shè)計各局部應(yīng)用的E-R模型,然后將局部的E-R模型集成為全局的E-R模型,最后對全局E-R模型進行優(yōu)化。
根據(jù)需求分析,設(shè)計的鉆井工程數(shù)據(jù)庫要支持鉆井設(shè)計和工藝軟件。鉆井工程設(shè)計和工藝軟件的功能模塊包括鉆井設(shè)計自動生成、鉆井周期成本分析、鉆井?dāng)?shù)據(jù)倉庫與數(shù)據(jù)挖掘、地層壓力預(yù)測分析與監(jiān)測、井身結(jié)構(gòu)設(shè)計與分析、井眼軌跡設(shè)計與分析、巖石力學(xué)分析、鉆柱力學(xué)分析、鉆井液設(shè)計與分析、井控設(shè)計與分析、控壓鉆井設(shè)計與分析、欠平衡/氣體鉆井設(shè)計與分析、固井設(shè)計與分析、鉆井實時監(jiān)測與技術(shù)決策等[3];對這些模塊的功能及其數(shù)據(jù)進行分析,發(fā)現(xiàn)這些模塊都需要有一些相同的基礎(chǔ)數(shù)據(jù),例如分析模塊所針對的井、油田等信息,為避免數(shù)據(jù)冗余,達到各模塊間數(shù)據(jù)共享的目的;在概念設(shè)計階段提取這些鉆井工程設(shè)計的基本信息,建立E-R模型(如圖1所示)。建立的模型包括區(qū)塊、油田、井、井眼等實體,一個區(qū)塊包含一個或多個油田,一個油田又包含一個或多個井,為支持分支井技術(shù),該設(shè)計加入了井眼的概念,一個井可以有多個井眼。
除了這些共有數(shù)據(jù)外,每個模塊都有其特有的數(shù)據(jù),例如井身結(jié)構(gòu)設(shè)計與分析需要有井身結(jié)構(gòu)明細、井身結(jié)構(gòu)圖、井口裝置明細和井口裝置圖等信息;鉆井液設(shè)計與分析需要有鉆井液性能設(shè)計、鉆井液處理要求、鉆井液處理配方設(shè)計和鉆井液用量設(shè)計等數(shù)據(jù)。對每個模塊都作局部E-R模型設(shè)計,以鉆柱力學(xué)分析模塊為例,圖2即是該模塊的E-R模型。鉆柱力學(xué)分析模塊的數(shù)據(jù)以鉆井方案為核心,鉆井方案包含進行鉆柱力學(xué)分析所需的各種參數(shù):井眼軌跡、井身結(jié)構(gòu)、鉆具組合和流體參數(shù),分析所得的結(jié)果也與鉆井方案一一對應(yīng),例如摩阻分析結(jié)果、卡鉆分析結(jié)果和振動分析結(jié)果;分析所需的參數(shù)和分析所得的結(jié)果通過鉆井方案聯(lián)系起來。這樣的模型具有很好的擴展性,當(dāng)有新的分析算法加入模塊時,只要增加新的參數(shù)實體和計算結(jié)果實體,而不需要修改已有的實體。
各局部應(yīng)用的E-R模型建立后,把這些模型集成為全局的E-R模型,并進行全局優(yōu)化。在進行全局優(yōu)化時,可發(fā)現(xiàn)有些模塊的數(shù)據(jù)可以共享,例如鉆柱力學(xué)分析模塊和井眼軌跡設(shè)計與分析模塊都要用到井眼軌跡數(shù)據(jù),固井設(shè)計與分析模塊和井身結(jié)構(gòu)設(shè)計與分析模塊都要用到井身結(jié)構(gòu)明細數(shù)據(jù),因此調(diào)整設(shè)計,把這些共享的數(shù)據(jù)設(shè)計成單獨的實體,多模塊同時與該實體建立關(guān)系。
圖1 鉆井工程設(shè)計基本信息的E-R圖
邏輯設(shè)計階段的任務(wù)就是把E-R模型轉(zhuǎn)換為數(shù)據(jù)庫系統(tǒng)支持的數(shù)據(jù)模型。在邏輯結(jié)構(gòu)設(shè)計中,用數(shù)據(jù)表來代表E-R模型中的實體,數(shù)據(jù)表中的屬性列就是實體的屬性,每個數(shù)據(jù)表都有唯一的主鍵來唯一標(biāo)識一個實體;實體間的關(guān)系用表中的主鍵和外鍵來表示。如圖3所示,鉆井工程設(shè)計基本信息E-R圖中的區(qū)塊、油田、井和井眼的實體被轉(zhuǎn)換成了對應(yīng)的數(shù)據(jù)表,表的每一行就是一個屬性;以井眼表為例,井眼表中有主鍵ID和外鍵井ID,主鍵唯一地標(biāo)識一個井眼,外鍵指向一個井的主鍵,多個井眼的外鍵可以指向同一個井的主鍵,這就實現(xiàn)了實體關(guān)系中一對多的聯(lián)系。
圖2 鉆柱力學(xué)模塊E-R圖
圖3 鉆井工程設(shè)計基本信息的邏輯圖
邏輯設(shè)計是關(guān)系型數(shù)據(jù)庫設(shè)計的關(guān)鍵步驟,好的邏輯設(shè)計能為優(yōu)化數(shù)據(jù)庫和應(yīng)用程序性能打下基礎(chǔ),反之會影響整個系統(tǒng)的性能。因此在通過把E-R模型轉(zhuǎn)換,得到初步的數(shù)據(jù)模型之后,需要以規(guī)范化理論為指導(dǎo)對數(shù)據(jù)模型進行優(yōu)化。筆者設(shè)計的邏輯數(shù)據(jù)庫符合第三范式(3NF),遵守3NF標(biāo)準(zhǔn)的數(shù)據(jù)庫的表設(shè)計原則是:“one fact in one place”,即某個表只包括其本身基本的屬性,不是它們本身所具有的屬性需進行分解。通過規(guī)范化的優(yōu)化,生成的數(shù)據(jù)表減少了數(shù)據(jù)冗余,保證了數(shù)據(jù)的一致性和完整性,清楚地表達了數(shù)據(jù)元素之間的關(guān)系,節(jié)約了存儲空間,并且加快了增、刪、改的速度。
根據(jù)鉆井業(yè)務(wù)邏輯,邏輯設(shè)計所得的鉆井?dāng)?shù)據(jù)庫分成5大類,分別為鉆井工程設(shè)計基本信息庫,鉆井設(shè)計庫,鉆井工程庫,實時數(shù)據(jù)庫,輔助信息庫;每大類又各自包括幾個小類,其中鉆井設(shè)計庫包括13個小類:鉆井設(shè)計審批、鉆井地質(zhì)、定向井、井眼軌跡、井身結(jié)構(gòu)、鉆機、鉆具、鉆井液、鉆井參數(shù)、費用預(yù)算、固井、欠平衡、鉆柱力學(xué),鉆井工程庫包括18個小類:日常生產(chǎn)管理、鉆井設(shè)備、鉆具管理、鉆井地質(zhì)、鉆井基本情況、特殊工藝井、鉆井工藝參數(shù)、鉆具使用、事故復(fù)雜、取心、測井及錄井、固井、完井、井控、鉆井液及完井液、油層保護、中途測試、欠平衡,輔助信息庫包括11個小類:設(shè)計經(jīng)驗、鉆井地質(zhì)、鉆井液、鉆井設(shè)備、儀器儀表、鉆具管理、鉆井隊伍、鉆井液及完井液、灘海石油鉆井、油層保護、報表。
在物理設(shè)計階段,需要為邏輯數(shù)據(jù)模型選擇一個符合應(yīng)用要求的物理結(jié)構(gòu)(包括存儲結(jié)構(gòu)和存取方式)[4],來達到提高數(shù)據(jù)庫性能和節(jié)省存儲空間的目標(biāo)。經(jīng)過對數(shù)據(jù)存取時間、數(shù)據(jù)庫維護代價和存儲空間利用率的權(quán)衡,采用SQL Server 2008數(shù)據(jù)庫。
建立索引是物理設(shè)計的基本任務(wù)。為保證主鍵唯一性檢查和引用完整性檢查,該設(shè)計為數(shù)據(jù)表的主鍵和外鍵都建立了索引。為提高數(shù)據(jù)訪問性能,對于查詢中常需要作為查詢條件的字段也考慮建立索引;例如在用戶設(shè)計井下工具組合時,經(jīng)常會以鉆頭尺寸為查詢條件來選擇合適的鉆頭,因此該設(shè)計為鉆頭表的鉆頭尺寸(BitSize)字段建立索引。
主鍵和外鍵的設(shè)計對物理數(shù)據(jù)庫的性能和可用性有重要的影響。該設(shè)計用全局唯一標(biāo)識符(GUID)作為主鍵和外鍵,它是一個16字節(jié)的十六進制數(shù),在所有的表、數(shù)據(jù)庫和服務(wù)器中都是唯一的。相比較用自增屬性字段作為主鍵,用GUID作主鍵有更高的唯一性,自增屬性字段的唯一性僅限于本表,而GUID的唯一性是全局的,這樣可以消除聯(lián)接錯誤表卻返回數(shù)據(jù)而導(dǎo)致的聯(lián)接錯誤[4];使用GUID作主鍵還可以方便處理分布式數(shù)據(jù)的提交,這樣就可以支持不同的用戶對同一口井同時進行鉆井設(shè)計;使用GUID作主鍵還便于系統(tǒng)的遷移和數(shù)據(jù)恢復(fù)。在邏輯設(shè)計階段,在規(guī)范化理論的指導(dǎo)下,設(shè)計的數(shù)據(jù)庫結(jié)構(gòu)盡可能的避免數(shù)據(jù)冗余,但是在物理設(shè)計階段,需要根據(jù)業(yè)務(wù)規(guī)則,結(jié)合性能要求,折衷考慮。為了提高系統(tǒng)的響應(yīng)時間,合理的數(shù)據(jù)冗余也是必要的。例如在井眼軌跡數(shù)據(jù)表中,井深、井斜角和方位角是用戶的基本輸入,而垂深、北坐標(biāo)和南坐標(biāo)可通過井深、井斜角和方位角計算得到,按照3NF理論,井眼軌跡數(shù)據(jù)表應(yīng)該只包括井深、井斜角和方位角這三列,然而井眼軌跡設(shè)計模塊需要頻繁使用垂深、北坐標(biāo)和南坐標(biāo)等信息,而且每一口井的軌跡點數(shù)量很大,如果每次使用這些信息都需要為大量的軌跡點逐點計算,必然是十分費時的,為提高程序的響應(yīng)效率,可在軌跡設(shè)計表增加三列來儲存垂深、北坐標(biāo)和南坐標(biāo)。
1)基于對鉆井工程數(shù)據(jù)庫需求的分析,采用自底向上的方法設(shè)計數(shù)據(jù)庫的概念結(jié)構(gòu):首先為數(shù)據(jù)庫所需支持的每個鉆井分析模塊建立局部的E-R模型,然后綜合局部E-R模型,進行全局優(yōu)化,最后得到全局的E-R模型。
2)根據(jù)概念設(shè)計中得到的E-R模型,以規(guī)范化理論為指導(dǎo),設(shè)計鉆井工程數(shù)據(jù)庫的邏輯結(jié)構(gòu)。設(shè)計的邏輯數(shù)據(jù)庫符合第三范式(3NF);按照業(yè)務(wù)邏輯,可把邏輯數(shù)據(jù)庫的417張表分為5大類,42小類。
3)物理設(shè)計為邏輯數(shù)據(jù)模型選擇符合應(yīng)用要求的物理結(jié)構(gòu);為數(shù)據(jù)表建立索引,選擇合適的主鍵和外鍵的數(shù)據(jù)類型,通過合理的反范式來優(yōu)化數(shù)據(jù)庫性能。
4)所設(shè)計的鉆井?dāng)?shù)據(jù)庫數(shù)據(jù)表結(jié)構(gòu)優(yōu)化、內(nèi)容齊全標(biāo)準(zhǔn)、分類合理、符合鉆井業(yè)務(wù)流程,是鉆井工程設(shè)計和工藝軟件的數(shù)據(jù)存儲和管理的基礎(chǔ)。統(tǒng)一的鉆井?dāng)?shù)據(jù)庫的建立改變了國內(nèi)單項鉆井軟件數(shù)據(jù)庫各自獨立造成的 “信息孤島”局面,使得鉆井各設(shè)計部門的信息得以充分共享;統(tǒng)一的鉆井?dāng)?shù)據(jù)庫的建立也使海量的鉆井?dāng)?shù)據(jù)進行有效存儲成為可能,為進一步根據(jù)鉆井歷史數(shù)據(jù)進行數(shù)據(jù)挖掘和分析[5],為將來的鉆井工作提供有效指導(dǎo)奠定基礎(chǔ)。
[1]樊洪海,劉鵬,紀(jì)榮藝,等 .新型鉆井?dāng)?shù)據(jù)庫設(shè)計 [J].斷塊油氣田,2010,17(3):382~384.
[2]錢浩東,龔俊,彭軾 .國內(nèi)鉆井?dāng)?shù)據(jù)庫發(fā)展現(xiàn)狀及發(fā)展應(yīng)用前景初探 [J].鉆采工藝,2010,33(1):100~102.
[3]張冬梅,周英操,趙慶,等 .鉆井工程設(shè)計與工藝軟件的發(fā)展現(xiàn)狀 [J].重慶科技學(xué)院學(xué)報(自然科學(xué)版),2012,14(2):66~68.
[4]Nielsen Paul.SQL Server 2008寶典 [M].馬振晗,等譯 .北京:清華大學(xué)出版社,2011.
[5]孫海芳,錢浩東,楊成新,等 .利用鉆井?dāng)?shù)據(jù)庫搭建遠程鉆井輔助決策規(guī)劃 [J].鉆采工藝,2011,34(6):1~3.
[6]王英偉,王滿 .鉆井?dāng)?shù)據(jù)庫結(jié)構(gòu)的分析與設(shè)計 [A].2010 3rdInternational Conference on Computational Intelligence and Industrial Application(PACIIA)[C].武漢,2010-12-04~05.