国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      基于關(guān)系型數(shù)據(jù)庫(kù)的電網(wǎng)cim模型數(shù)據(jù)實(shí)現(xiàn)存儲(chǔ)的方法

      文檔序號(hào):10594154閱讀:475來(lái)源:國(guó)知局
      基于關(guān)系型數(shù)據(jù)庫(kù)的電網(wǎng)cim模型數(shù)據(jù)實(shí)現(xiàn)存儲(chǔ)的方法
      【專利摘要】本發(fā)明一種基于關(guān)系型數(shù)據(jù)庫(kù)的電網(wǎng)CIM模型數(shù)據(jù)實(shí)現(xiàn)存儲(chǔ)的方法,通過(guò)(1)建立類與屬性映射;(2)建立模型的類間關(guān)系映射;(3)建立數(shù)據(jù)維護(hù)方法;(4)建立拓?fù)渚S護(hù)方法;將面向?qū)ο蟮腃IM模型數(shù)據(jù)映射為關(guān)系型數(shù)據(jù)庫(kù)模式進(jìn)行存儲(chǔ),與目前大多數(shù)電力系統(tǒng)都使用的關(guān)系型數(shù)據(jù)庫(kù)匹配,在保證CIM模型數(shù)據(jù)完整性的前提下實(shí)現(xiàn)高效存儲(chǔ),不僅可存儲(chǔ)所有電網(wǎng)模型數(shù)據(jù),包括復(fù)雜的模型對(duì)象,且數(shù)據(jù)存儲(chǔ)和訪問(wèn)的效率高,也很好的保證了模型數(shù)據(jù)存儲(chǔ)的標(biāo)準(zhǔn)性和可維護(hù)性,易于擴(kuò)展,從而提高電網(wǎng)資源數(shù)據(jù)的維護(hù)效率。
      【專利說(shuō)明】
      基于關(guān)系型數(shù)據(jù)庫(kù)的電網(wǎng)Cl M模型數(shù)據(jù)實(shí)現(xiàn)存儲(chǔ)的方法
      技術(shù)領(lǐng)域
      [0001]本發(fā)明涉及一種基于關(guān)系型數(shù)據(jù)庫(kù)的電網(wǎng)(HM模型數(shù)據(jù)實(shí)現(xiàn)存儲(chǔ)的方法?!颈尘凹夹g(shù)】
      [0002]電網(wǎng)(HM模型數(shù)據(jù)使用面向?qū)ο蟮募夹g(shù)來(lái)描述電力系統(tǒng)。將面向?qū)ο蟮?HM模型數(shù)據(jù)轉(zhuǎn)換為面向?qū)ο蟮臄?shù)據(jù)庫(kù)模式是最直接的映射,然而面向?qū)ο蟮臄?shù)據(jù)庫(kù)技術(shù)發(fā)展還很不成熟。另一方面,大多數(shù)電力系統(tǒng)都使用關(guān)系型數(shù)據(jù)庫(kù)或私有文件格式來(lái)存儲(chǔ)數(shù)據(jù)。因此, 為了與關(guān)系型數(shù)據(jù)庫(kù)匹配,需要將面向?qū)ο蟮?HM模型數(shù)據(jù)映射為關(guān)系型數(shù)據(jù)庫(kù)模式進(jìn)行存儲(chǔ)。
      【發(fā)明內(nèi)容】

      [0003]本發(fā)明的目的在于提供一種基于關(guān)系型數(shù)據(jù)庫(kù)的電網(wǎng)CIM模型數(shù)據(jù)實(shí)現(xiàn)存儲(chǔ)的方法,在保證(HM模型數(shù)據(jù)完整性的前提下實(shí)現(xiàn)高效存儲(chǔ)。
      [0004]本發(fā)明一種基于關(guān)系型數(shù)據(jù)庫(kù)的電網(wǎng)CM模型數(shù)據(jù)實(shí)現(xiàn)存儲(chǔ)的方法,包括如下步驟:步驟1、建立類與屬性映射在QM模型數(shù)據(jù)的類中,IdentifiedObject類是幾乎所有模型類型的基類,該類為派生類對(duì)象建立命名體系,其mRID屬性是對(duì)象的標(biāo)識(shí)符,要求全局唯一,name屬性表不對(duì)象的名字,不要求唯一;在類的繼承體系中,派生類除了可以定義自己的屬性和關(guān)聯(lián)之外,還繼承了基類的屬性和關(guān)聯(lián),因此繼承體系中的葉子節(jié)點(diǎn)類將會(huì)擁有繼承鏈上所有類的屬性和關(guān)聯(lián),除了將葉子節(jié)點(diǎn)類映射為關(guān)系型數(shù)據(jù)庫(kù)中的表之外,還要將其他抽象類映射為關(guān)系型數(shù)據(jù)庫(kù)中的表;將IdentifiedObject類映射為關(guān)系型數(shù)據(jù)庫(kù)中的表,表名與類名相同,將類的屬性映射為同名表列,以mRID列為表的主鍵,除根類以外,在映射派生類時(shí),將派生類直接轉(zhuǎn)變?yōu)殛P(guān)系表,將非繼承來(lái)的屬性即本地屬性轉(zhuǎn)變?yōu)楸砹校瑢?duì)于繼承來(lái)的屬性,只保留mRID列,并將該列作為當(dāng)前關(guān)系表的主鍵,且該主鍵同時(shí)也是外鍵,引用其父類對(duì)應(yīng)表的mRID列,并為該引用設(shè)置級(jí)聯(lián)刪除與更新約束;步驟2、建立模型的類間關(guān)系映射(HM模型數(shù)據(jù)主要包含繼承、關(guān)聯(lián)和聚合三種類間關(guān)系:(1)繼承關(guān)系的映射繼承關(guān)系是指一個(gè)普遍的類與一個(gè)具體的類之間的關(guān)系,映射策略是為每一個(gè)具體的非虛子類建立一張表,父類只作為公共屬性的載體不參與映射,每個(gè)具體的非虛子類都繼承父類的所有屬性,包括父類的ID;(2)關(guān)聯(lián)關(guān)系的映射關(guān)聯(lián)關(guān)系是類與類之間的一種靜態(tài)關(guān)系,根據(jù)關(guān)聯(lián)關(guān)系的多重性,將關(guān)聯(lián)關(guān)系分為3種:零或一對(duì)一、一對(duì)多和多對(duì)多,關(guān)聯(lián)關(guān)系的映射通過(guò)設(shè)置表的主外鍵來(lái)完成;一張表可以有一個(gè)或多個(gè)外鍵,但每個(gè)外鍵所對(duì)應(yīng)的主鍵只能有一個(gè);關(guān)聯(lián)關(guān)系中一對(duì)零或一,以及一對(duì)多的映射是將多重性為一的表的主鍵字段作為其他表的外鍵字段來(lái)實(shí)現(xiàn),若2個(gè)表是一對(duì)一關(guān)聯(lián),則取其中任一表的主鍵作為另一個(gè)表的外鍵來(lái)存儲(chǔ);對(duì)于類間多對(duì)多的關(guān)聯(lián)關(guān)系,則需另外建立一張關(guān)聯(lián)表,該關(guān)聯(lián)表有自己的OID,表中其他字段是具體關(guān)聯(lián)關(guān)系的兩個(gè)或多個(gè)表的OID;(3)聚合關(guān)系的映射聚合關(guān)系是關(guān)聯(lián)關(guān)系的一種特殊情況,它表示了類之間整體與部分的關(guān)系,與繼承不同的是,部分類不從整體類那里繼承屬性;聚合關(guān)系的映射處理是在整體類表中增加相應(yīng)部分類的字段但不包含部分類的OID,同時(shí)在部分類表中增加整體類的OID,這樣就在關(guān)系表中實(shí)現(xiàn)了整體與部分之間的關(guān)系;步驟3、建立數(shù)據(jù)維護(hù)方法一個(gè)電網(wǎng)資源的數(shù)據(jù)可能分布在多個(gè)表中,為降低CIM模型數(shù)據(jù)維護(hù)的復(fù)雜性,采用面向?qū)ο蟮募夹g(shù),為每一個(gè)模型類添加數(shù)據(jù)維護(hù)的方法,具體為:(1)在根類Ident if iedObject 中添加Connect 1nChannel 屬性,該Connect 1nChannel 是到關(guān)系型數(shù)據(jù)庫(kù)的連接通道,所有數(shù)據(jù)維護(hù)命令均從該連接通道發(fā)送到數(shù)據(jù)引擎,由數(shù)據(jù)引擎完成數(shù)據(jù)的修改;(2)根據(jù)實(shí)際需要為類添加方法負(fù)責(zé)生成數(shù)據(jù)維護(hù)命令,每一個(gè)類的維護(hù)命令不光負(fù)責(zé)本類對(duì)應(yīng)表的數(shù)據(jù)維護(hù),其基類也會(huì)相應(yīng)的進(jìn)行維護(hù),當(dāng)調(diào)用Create方法創(chuàng)建一個(gè)對(duì)象時(shí),會(huì)先調(diào)用基類對(duì)象的Create方法,當(dāng)調(diào)用Update方法更新一個(gè)對(duì)象時(shí),會(huì)相繼按繼承關(guān)系調(diào)用各基類的更新方法;當(dāng)調(diào)用Delete方法刪除一個(gè)對(duì)象時(shí),會(huì)調(diào)用基類的刪除方法;上述Create方法用于生成記錄添加命令,Delete方法用于生成記錄刪除命令,Update方法用于生成記錄修改命令,GetProperties用于生成屬性查詢命令;(3)方法的優(yōu)化:為提高方法調(diào)用鏈的執(zhí)行效率,為類對(duì)象的屬性增加版本控制,調(diào)用方法時(shí)先檢測(cè)本地屬性是否修改,當(dāng)未做修改時(shí),則直接調(diào)用路由到基類;步驟4、建立拓?fù)渚S護(hù)方法電網(wǎng)CIM模型數(shù)據(jù)的拓?fù)潢P(guān)系包含兩個(gè)方面:一是類對(duì)象之間的聚合/關(guān)聯(lián)關(guān)系,二是網(wǎng)絡(luò)元件之間的電氣連接關(guān)系;聚合和簡(jiǎn)單關(guān)聯(lián)被映射成表間的引用關(guān)系,為維護(hù)表間關(guān)系,將類間關(guān)系按照互相承擔(dān)的角色分別轉(zhuǎn)換為對(duì)方的屬性,即關(guān)聯(lián)屬性,根據(jù)關(guān)聯(lián)重?cái)?shù),即關(guān)聯(lián)關(guān)系中存在的繼承關(guān)系,則關(guān)聯(lián)屬性是一個(gè)對(duì)象或?qū)ο蟮募?,也可能為空?作為容器的對(duì)象在執(zhí)行自身的數(shù)據(jù)維護(hù)方法時(shí),根據(jù)關(guān)聯(lián)對(duì)象的狀態(tài)調(diào)用所包容的對(duì)象的相應(yīng)維護(hù)方法,該關(guān)聯(lián)對(duì)象的狀態(tài)分為新建、刪除、更新,從而根據(jù)一個(gè)入口對(duì)象形成數(shù)據(jù)對(duì)象的維護(hù)鏈,為簡(jiǎn)化對(duì)象各方法的編程邏輯,只由作為包容器的對(duì)象調(diào)用所包容的對(duì)象的維護(hù)方法,而反過(guò)來(lái)是不允許的,以保證對(duì)象之間方法的調(diào)用鏈?zhǔn)菃蜗虻?,避免了循環(huán)調(diào)用;網(wǎng)絡(luò)元件之間的電氣連接關(guān)系由導(dǎo)電設(shè)備類、端點(diǎn)類和連接點(diǎn)類的關(guān)聯(lián)進(jìn)行維護(hù);當(dāng)導(dǎo)電設(shè)備安裝或拆除時(shí),會(huì)導(dǎo)致網(wǎng)絡(luò)元件的電氣連接關(guān)系發(fā)生變化,為 Conduct ingEquipment類添加Mount方法執(zhí)行安裝過(guò)程的相關(guān)操作,通過(guò)對(duì)Mount方法的重載來(lái)執(zhí)行不同的安裝操作,每個(gè)Mount方法在執(zhí)行過(guò)程中,通過(guò)對(duì)參數(shù)對(duì)象的分析,決定是否需要新建連接點(diǎn),同時(shí)生成維護(hù)電氣連接的數(shù)據(jù)維護(hù)命令,拆除是安裝的逆過(guò)程,即為 ConductingEquipment類添加Unmount方法來(lái)執(zhí)行拆除過(guò)程,當(dāng)執(zhí)行Unmount方法時(shí),將當(dāng)前導(dǎo)電設(shè)備的端點(diǎn)與連接點(diǎn)的關(guān)聯(lián)斷開,并分析與端點(diǎn)相連的連接點(diǎn)是否成為孤點(diǎn),即判斷與此連接點(diǎn)關(guān)聯(lián)的端點(diǎn)數(shù)是否為1或0,如為孤點(diǎn),則生成刪除命令,刪除連接點(diǎn)。
      [0005]采用本發(fā)明的技術(shù)方案后,將面向?qū)ο蟮腃IM模型數(shù)據(jù)映射為關(guān)系型數(shù)據(jù)庫(kù)模式進(jìn)行存儲(chǔ),與目前大多數(shù)電力系統(tǒng)都使用的關(guān)系型數(shù)據(jù)庫(kù)匹配,在保證(HM模型數(shù)據(jù)完整性的前提下實(shí)現(xiàn)高效存儲(chǔ),不僅可存儲(chǔ)所有電網(wǎng)模型數(shù)據(jù),包括復(fù)雜的模型對(duì)象,且數(shù)據(jù)存儲(chǔ)和訪問(wèn)的效率高,也很好的保證了模型數(shù)據(jù)存儲(chǔ)的標(biāo)準(zhǔn)性和可維護(hù)性,易于擴(kuò)展,從而提高電網(wǎng)資源數(shù)據(jù)的維護(hù)效率?!靖綀D說(shuō)明】
      [0006]圖1為本發(fā)明對(duì)(HM模型數(shù)據(jù)進(jìn)行存儲(chǔ)后的展示效果圖;圖2為本發(fā)明中為模型類添加數(shù)據(jù)維護(hù)的方法的示意圖;圖3為本發(fā)明中(HM模型數(shù)據(jù)為繼承關(guān)系類圖;圖4為本發(fā)明中圖3繼承關(guān)系的映射示意;圖5為本發(fā)明中(HM模型數(shù)據(jù)為零或一對(duì)一的關(guān)聯(lián)關(guān)系類圖;圖6為本發(fā)明中圖5零或一對(duì)一的關(guān)聯(lián)關(guān)系的映射示意;圖7為本發(fā)明中(HM模型數(shù)據(jù)為多對(duì)多的關(guān)聯(lián)關(guān)系類圖;圖8為本發(fā)明中圖7多對(duì)多的關(guān)聯(lián)關(guān)系的映射不意;圖9為本發(fā)明中(HM模型數(shù)據(jù)聚集關(guān)系類圖;圖10為本發(fā)明中圖9的聚合關(guān)系的映射示意;圖11為本發(fā)明中網(wǎng)絡(luò)元件之間的電氣連接關(guān)系示意圖。
      [0007]以下結(jié)合附圖和具體實(shí)施例對(duì)本發(fā)明作進(jìn)一步詳述。【具體實(shí)施方式】
      [0008]本發(fā)明一種基于關(guān)系型數(shù)據(jù)庫(kù)的電網(wǎng)CIM模型數(shù)據(jù)實(shí)現(xiàn)存儲(chǔ)的方法,包括如下步驟:步驟1、建立類與屬性映射在QM模型數(shù)據(jù)的類中,IdentifiedObject類是幾乎所有模型類型的基類,該類為派生類對(duì)象建立命名體系,其mRID屬性是對(duì)象的標(biāo)識(shí)符,要求全局唯一,name屬性表不對(duì)象的名字,不要求唯一。
      [0009]在類的繼承體系中,派生類除了可以定義自己的屬性和關(guān)聯(lián)之外,還繼承了基類的屬性和關(guān)聯(lián)。因此繼承體系中的葉子節(jié)點(diǎn)類將會(huì)擁有繼承鏈上所有類的屬性和關(guān)聯(lián)。如果只將葉子節(jié)點(diǎn)類轉(zhuǎn)變?yōu)殛P(guān)系型數(shù)據(jù)庫(kù)中的表,將會(huì)使類間的關(guān)聯(lián)全部下落到葉子節(jié)點(diǎn), 增加葉子節(jié)點(diǎn)類之間的關(guān)聯(lián)復(fù)雜度。因此,除了將葉子節(jié)點(diǎn)類映射為關(guān)系型數(shù)據(jù)庫(kù)中的表之外,還要將其他抽象類映射為關(guān)系型數(shù)據(jù)庫(kù)中的表;將IdentifiedObject類映射為關(guān)系型數(shù)據(jù)庫(kù)中的表,表名與類名相同,將類的屬性映射為同名表列,以mRID列為表的主鍵,除根類以外,在映射派生類時(shí),將派生類直接轉(zhuǎn)變?yōu)殛P(guān)系表,將非繼承來(lái)的屬性即本地屬性轉(zhuǎn)變?yōu)楸砹?,?duì)于繼承來(lái)的屬性,只保留mRID列,并將該列作為當(dāng)前關(guān)系表的主鍵,且該主鍵同時(shí)也是外鍵,引用其父類對(duì)應(yīng)表的mRID列,并為該引用設(shè)置級(jí)聯(lián)刪除與更新約束;步驟2、建立模型的類間關(guān)系映射(HM模型數(shù)據(jù)主要包含繼承、關(guān)聯(lián)和聚合三種類間關(guān)系:(1)繼承關(guān)系的映射繼承關(guān)系是指一個(gè)普遍的類與一個(gè)具體的類之間的關(guān)系,映射策略是為每一個(gè)具體的非虛子類建立一張表,父類只作為公共屬性的載體不參與映射,每個(gè)具體的非虛子類都繼承父類的所有屬性,包括父類的ID,例如,圖3顯示了 Equipment類和PowerTransf ormer類之間繼承的關(guān)系,Equipment是抽象父類,PowerTransformer是具體子類,圖4的 PowerTransf ormer類映射表是對(duì)圖3繼承關(guān)系的映射;(2)關(guān)聯(lián)關(guān)系的映射關(guān)聯(lián)關(guān)系是類與類之間的一種靜態(tài)關(guān)系,根據(jù)關(guān)聯(lián)關(guān)系的多重性,將關(guān)聯(lián)關(guān)系分為3 種:零或一對(duì)一、一對(duì)多和多對(duì)多,關(guān)聯(lián)關(guān)系的映射通過(guò)設(shè)置表的主外鍵來(lái)完成。一張表可以有一個(gè)或多個(gè)外鍵,但每個(gè)外鍵所對(duì)應(yīng)的主鍵只能有一個(gè);關(guān)聯(lián)關(guān)系中一對(duì)零或一,以及一對(duì)多的映射是將多重性為一的表的主鍵字段作為其他表的外鍵字段來(lái)實(shí)現(xiàn),若2個(gè)表是一對(duì)一關(guān)聯(lián),則取其中任一表的主鍵作為另一個(gè)表的外鍵來(lái)存儲(chǔ)。以電壓控制區(qū)類 (VoltageControlZone)和母線段類(BusbarSect1n)為例,圖5展示了二者之間的關(guān)聯(lián)關(guān)系,圖6給出了 2個(gè)類圖關(guān)聯(lián)關(guān)系的映射;對(duì)于類間多對(duì)多的關(guān)聯(lián)關(guān)系,則需另外建立一張關(guān)聯(lián)表,該關(guān)聯(lián)表有自己的0ID,表中其他字段是具體關(guān)聯(lián)關(guān)系的兩個(gè)或多個(gè)表的0ID。以保護(hù)設(shè)備類(Protect1nEquipment)和導(dǎo)電設(shè)備類(ConductingEquipment)為例來(lái)說(shuō)明,圖7展示了兩個(gè)類間為多對(duì)多的關(guān)聯(lián)關(guān)系,圖8給出了 2個(gè)類圖多對(duì)多的關(guān)聯(lián)關(guān)系的映射;(3)聚合關(guān)系的映射聚合關(guān)系是關(guān)聯(lián)關(guān)系的一種特殊情況,它表示了類之間整體與部分的關(guān)系,與繼承不同的是,部分類不從整體類那里繼承屬性;聚合關(guān)系的映射處理是在整體類表中增加相應(yīng)部分類的字段但不包含部分類的0ID,同時(shí)在部分類表中增加整體類的0ID,這樣就在關(guān)系表中實(shí)現(xiàn)了整體與部分之間的關(guān)系。以拓?fù)鋶u類(Topo 1 ogica 11 s 1 and)和拓?fù)涔?jié)點(diǎn)類 (TopologicalNode)為例,圖9展示了拓?fù)鋶u類與拓?fù)涔?jié)點(diǎn)類之間的聚合關(guān)系,圖10給出了所述2個(gè)類間的聚合關(guān)系的映射。
      [0010]步驟3、建立數(shù)據(jù)維護(hù)方法一個(gè)電網(wǎng)資源的數(shù)據(jù)可能分布在多個(gè)表中,例如,當(dāng)新增加一個(gè)開關(guān)時(shí),將按順序分別向IdentifiedObject、PowerSystemResource、Equipment、Conducting Equipment和Switch 表中各增加一條記錄。為降低(HM模型數(shù)據(jù)維護(hù)的復(fù)雜性,采用面向?qū)ο蟮募夹g(shù),為每一個(gè)模型類添加數(shù)據(jù)維護(hù)的方法,如圖2所示,具體為:(1)在根類Ident if iedObject 中添加Connect 1nChannel 屬性,該Connect 1nChannel 是到關(guān)系型數(shù)據(jù)庫(kù)的連接通道,所有數(shù)據(jù)維護(hù)命令均從該連接通道發(fā)送到數(shù)據(jù)引擎,由數(shù)據(jù)引擎完成數(shù)據(jù)的修改;(2)根據(jù)實(shí)際需要為類添加方法負(fù)責(zé)生成數(shù)據(jù)維護(hù)命令,每一個(gè)類的維護(hù)命令不光負(fù)責(zé)本類對(duì)應(yīng)表的數(shù)據(jù)維護(hù),其基類也會(huì)相應(yīng)的進(jìn)行維護(hù),其中Create方法用于生成記錄添加命令,Delete方法用于生成記錄刪除命令,Update方法用于生成記錄修改命令, GetProperties用于生成屬性查詢命令;其中,當(dāng)調(diào)用Create方法創(chuàng)建一個(gè)對(duì)象時(shí),會(huì)先調(diào)用基類對(duì)象的Create方法,例如, Equipment創(chuàng)建時(shí),會(huì)首先執(zhí)行Ident if iedObject.Create 方法,再執(zhí)行 Equipment.Create 方法;Swite 創(chuàng)建時(shí),會(huì)相繼執(zhí)行 Ident if iedObject ? Create 方法、Equipment ? Create 方法、 Conducting Equipment ? Create方法和Swite ? Create方法;當(dāng)調(diào)用Update方法更新一個(gè)對(duì)象時(shí),會(huì)相繼按繼承關(guān)系調(diào)用各基類的更新方法。例如, Equipment更新時(shí),會(huì)首先調(diào)用Equipment ? Update 方法,再調(diào)用 Ident if iedObject ? Update 方法。Swite更新時(shí),會(huì)首先執(zhí)行Swite ? Update方法,再調(diào)用Conducting Equipment ? Update 方法,再調(diào)用Equipment ? Update 方法,最后調(diào)用 Ident if iedObject ? Update 方法。 [0〇11 ]當(dāng)調(diào)用Delete方法刪除一個(gè)對(duì)象時(shí),會(huì)調(diào)用基類的刪除方法。例如,Equipment刪除時(shí),直接調(diào)用 IdentifiedObject.Delete方法。Swite刪除時(shí),調(diào)用Con ducting Equipment.Delete方法,再調(diào)用IdentifiedObject.Delete方法。[〇〇12](3)方法的優(yōu)化:由于一個(gè)資源的信息分布在多個(gè)表中,需優(yōu)化來(lái)提高方法執(zhí)行的效率,為提高Update 方法調(diào)用鏈的執(zhí)行效率,為類對(duì)象的屬性增加版本控制,當(dāng)Update方法檢測(cè)到本地屬性未作任何修改時(shí),不生成修改命令,直接將調(diào)用路由到基類;GetProperies方法調(diào)用鏈執(zhí)行時(shí),如當(dāng)前類無(wú)本地屬性,,也直接將調(diào)用路由到基類;Create方法、Delete方法的優(yōu)化與 Update方法相同,都是先檢測(cè)本地屬性是否修改,當(dāng)未做修改時(shí),則直接調(diào)用路由到基類;步驟4、建立拓?fù)渚S護(hù)方法電網(wǎng)CIM模型數(shù)據(jù)的拓?fù)潢P(guān)系包含兩個(gè)方面:一是類對(duì)象之間的關(guān)系(聚合、關(guān)聯(lián));二是網(wǎng)絡(luò)元件之間的電氣連接關(guān)系;聚合和簡(jiǎn)單關(guān)聯(lián)被映射成表間的引用關(guān)系,為維護(hù)表間關(guān)系,將類間關(guān)系按照互相承擔(dān)的角色分別轉(zhuǎn)換為對(duì)方的屬性,即關(guān)聯(lián)屬性,如Conduct ingEquipment與Terminal之間的關(guān)聯(lián)角色 Terminal 轉(zhuǎn)換為Conduct ingEquipment 的 terminals 屬性;根據(jù)關(guān)聯(lián)重?cái)?shù),即關(guān)聯(lián)關(guān)系中存在的繼承關(guān)系,關(guān)聯(lián)屬性是一個(gè)對(duì)象或?qū)ο蟮募希部赡転榭罩?作為容器的對(duì)象在執(zhí)行自身的數(shù)據(jù)維護(hù)方法時(shí),根據(jù)關(guān)聯(lián)對(duì)象的狀態(tài)調(diào)用所包容的對(duì)象的相應(yīng)維護(hù)方法,該關(guān)聯(lián)對(duì)象的狀態(tài)分為新建、刪除、更新,從而根據(jù)一個(gè)入口對(duì)象形成數(shù)據(jù)對(duì)象的維護(hù)鏈,為簡(jiǎn)化對(duì)象各方法的編程邏輯,本發(fā)明只由作為包容器的對(duì)象調(diào)用所包容的對(duì)象的維護(hù)方法,如Conduct 1nEquipment可調(diào)用所包容的Terminal的方法,而反過(guò)來(lái)是不允許的,采用該處理方式,可保證對(duì)象之間方法的調(diào)用鏈?zhǔn)菃蜗虻?,避免了循環(huán)調(diào)用;網(wǎng)絡(luò)元件之間的電氣連接關(guān)系由導(dǎo)電設(shè)備類(<3〇]1(111〇1:;[叫£9111?1116111:)、端點(diǎn)類 (Terminal)和連接點(diǎn)類(ConnectivityNode)的關(guān)聯(lián)進(jìn)行維護(hù);當(dāng)導(dǎo)電設(shè)備安裝或拆除時(shí), 會(huì)導(dǎo)致網(wǎng)絡(luò)元件的電氣連接關(guān)系發(fā)生變化。
      [0013]圖11是一個(gè)簡(jiǎn)單的網(wǎng)絡(luò)元件之間的電氣連接關(guān)系示意圖,當(dāng)安裝一個(gè)導(dǎo)電設(shè)備時(shí),關(guān)于安裝位置和安裝方式,主要有三種情況:(1)錨接在某一端點(diǎn)或連接點(diǎn)之上,如將能量用戶EC3安裝在Tb端點(diǎn),將線路段AC3連接在CN5連接點(diǎn)上;(2)串接在已經(jīng)連接的兩個(gè)導(dǎo)電設(shè)備之間,如將斷路器BK1串接在線路段AC1與AC2之間;(3)連接兩個(gè)端點(diǎn)或連接點(diǎn),如在 CN2與CN3之間用交流線段直連。[0〇14] 為ConductingEquipment類添加Mount方法執(zhí)行安裝過(guò)程的相關(guān)操作,通過(guò)對(duì) Mount方法的重載來(lái)執(zhí)行不同的安裝操作。如圖2所示,每個(gè)Mount方法在執(zhí)行過(guò)程中,通過(guò)對(duì)參數(shù)對(duì)象的分析,決定是否需要新建連接點(diǎn)(ConnectivityNode),同時(shí)生成維護(hù)電氣連接的數(shù)據(jù)維護(hù)命令,拆除是安裝的逆過(guò)程,即為ConductingEquipment類添加Unmount方法來(lái)執(zhí)行拆除過(guò)程;當(dāng)執(zhí)行Unmount方法時(shí),將當(dāng)前導(dǎo)電設(shè)備的端點(diǎn)(Terminal)與連接點(diǎn) (ConnectivityNode)的關(guān)聯(lián)斷開,并分析與端點(diǎn)相連的連接點(diǎn)是否成為孤點(diǎn),即判斷與此連接點(diǎn)關(guān)聯(lián)的端點(diǎn)數(shù)是否為1或〇,如為孤點(diǎn),則生成刪除命令,刪除連接點(diǎn)。[〇〇15]以上所述,僅是本發(fā)明較佳實(shí)施例而已,并非對(duì)本發(fā)明的技術(shù)范圍作任何限制,故凡是依據(jù)本發(fā)明的技術(shù)實(shí)質(zhì)對(duì)以上實(shí)施例所作的任何細(xì)微修改、等同變化與修飾,均仍屬于本發(fā)明技術(shù)方案的范圍內(nèi)。
      【主權(quán)項(xiàng)】
      1.一種基于關(guān)系型數(shù)據(jù)庫(kù)的電網(wǎng)CIM模型數(shù)據(jù)實(shí)現(xiàn)存儲(chǔ)的方法,其特征在于包括如下 步驟:步驟1、建立類與屬性映射在CM模型數(shù)據(jù)的類中,IdentifiedObject類是幾乎所有模型類型的基類,該類為派生 類對(duì)象建立命名體系,其mRID屬性是對(duì)象的標(biāo)識(shí)符,要求全局唯一,name屬性表不對(duì)象的名 字,不要求唯一;在類的繼承體系中,派生類除了可以定義自己的屬性和關(guān)聯(lián)之外,還繼承了基類的屬 性和關(guān)聯(lián),因此繼承體系中的葉子節(jié)點(diǎn)類將會(huì)擁有繼承鏈上所有類的屬性和關(guān)聯(lián),除了將 葉子節(jié)點(diǎn)類映射為關(guān)系型數(shù)據(jù)庫(kù)中的表之外,還要將其他抽象類映射為關(guān)系型數(shù)據(jù)庫(kù)中的 表;將IdentifiedObject類映射為關(guān)系型數(shù)據(jù)庫(kù)中的表,表名與類名相同,將類的屬性映 射為同名表列,以mRID列為表的主鍵,除根類以外,在映射派生類時(shí),將派生類直接轉(zhuǎn)變?yōu)?關(guān)系表,將非繼承來(lái)的屬性即本地屬性轉(zhuǎn)變?yōu)楸砹?,?duì)于繼承來(lái)的屬性,只保留mRID列,并 將該列作為當(dāng)前關(guān)系表的主鍵,且該主鍵同時(shí)也是外鍵,引用其父類對(duì)應(yīng)表的mRID列,并為 該引用設(shè)置級(jí)聯(lián)刪除與更新約束;步驟2、建立模型的類間關(guān)系映射(HM模型數(shù)據(jù)主要包含繼承、關(guān)聯(lián)和聚合三種類間關(guān)系:(1)繼承關(guān)系的映射繼承關(guān)系是指一個(gè)普遍的類與一個(gè)具體的類之間的關(guān)系,映射策略是為每一個(gè)具體的 非虛子類建立一張表,父類只作為公共屬性的載體不參與映射,每個(gè)具體的非虛子類都繼 承父類的所有屬性,包括父類的ID;(2)關(guān)聯(lián)關(guān)系的映射關(guān)聯(lián)關(guān)系是類與類之間的一種靜態(tài)關(guān)系,根據(jù)關(guān)聯(lián)關(guān)系的多重性,將關(guān)聯(lián)關(guān)系分為3 種:零或一對(duì)一、一對(duì)多和多對(duì)多,關(guān)聯(lián)關(guān)系的映射通過(guò)設(shè)置表的主外鍵來(lái)完成;一張表可 以有一個(gè)或多個(gè)外鍵,但每個(gè)外鍵所對(duì)應(yīng)的主鍵只能有一個(gè);關(guān)聯(lián)關(guān)系中一對(duì)零或一,以及 一對(duì)多的映射是將多重性為一的表的主鍵字段作為其他表的外鍵字段來(lái)實(shí)現(xiàn),若2個(gè)表是 一對(duì)一關(guān)聯(lián),則取其中任一表的主鍵作為另一個(gè)表的外鍵來(lái)存儲(chǔ);對(duì)于類間多對(duì)多的關(guān)聯(lián) 關(guān)系,則需另外建立一張關(guān)聯(lián)表,該關(guān)聯(lián)表有自己的0ID,表中其他字段是具體關(guān)聯(lián)關(guān)系的 兩個(gè)或多個(gè)表的0ID;(3)聚合關(guān)系的映射聚合關(guān)系是關(guān)聯(lián)關(guān)系的一種特殊情況,它表示了類之間整體與部分的關(guān)系,與繼承不 同的是,部分類不從整體類那里繼承屬性;聚合關(guān)系的映射處理是在整體類表中增加相應(yīng) 部分類的字段但不包含部分類的0ID,同時(shí)在部分類表中增加整體類的0ID,這樣就在關(guān)系 表中實(shí)現(xiàn)了整體與部分之間的關(guān)系;步驟3、建立數(shù)據(jù)維護(hù)方法一個(gè)電網(wǎng)資源的數(shù)據(jù)可能分布在多個(gè)表中,為降低CIM模型數(shù)據(jù)維護(hù)的復(fù)雜性,采用面 向?qū)ο蟮募夹g(shù),為每一個(gè)模型類添加數(shù)據(jù)維護(hù)的方法,具體為:(1)在根類IdentifiedOb ject 中添加Connect 1nChannel 屬性,該Connect 1nChannel 是到關(guān)系型數(shù)據(jù)庫(kù)的連接通道,所有數(shù)據(jù)維護(hù)命令均從該連接通道發(fā)送到數(shù)據(jù)引擎,由數(shù)據(jù)引擎完成數(shù)據(jù)的修改;(2)根據(jù)實(shí)際需要為類添加方法負(fù)責(zé)生成數(shù)據(jù)維護(hù)命令,每一個(gè)類的維護(hù)命令不光負(fù) 責(zé)本類對(duì)應(yīng)表的數(shù)據(jù)維護(hù),其基類也會(huì)相應(yīng)的進(jìn)行維護(hù),當(dāng)調(diào)用Create方法創(chuàng)建一個(gè)對(duì)象 時(shí),會(huì)先調(diào)用基類對(duì)象的Create方法,當(dāng)調(diào)用Update方法更新一個(gè)對(duì)象時(shí),會(huì)相繼按繼承關(guān) 系調(diào)用各基類的更新方法;當(dāng)調(diào)用Delete方法刪除一個(gè)對(duì)象時(shí),會(huì)調(diào)用基類的刪除方法;上 述Create方法用于生成記錄添加命令,Delete方法用于生成記錄刪除命令,Update方法用 于生成記錄修改命令,GetProperties用于生成屬性查詢命令;(3)方法的優(yōu)化:為提高方法調(diào)用鏈的執(zhí)行效率,為類對(duì)象的屬性增加版本控制,調(diào)用方法時(shí)先檢測(cè)本 地屬性是否修改,當(dāng)未做修改時(shí),則直接調(diào)用路由到基類;步驟4、建立拓?fù)渚S護(hù)方法電網(wǎng)CIM模型數(shù)據(jù)的拓?fù)潢P(guān)系包含兩個(gè)方面:一是類對(duì)象之間的聚合/關(guān)聯(lián)關(guān)系,二是 網(wǎng)絡(luò)元件之間的電氣連接關(guān)系;聚合和簡(jiǎn)單關(guān)聯(lián)被映射成表間的引用關(guān)系,為維護(hù)表間關(guān)系,將類間關(guān)系按照互相承 擔(dān)的角色分別轉(zhuǎn)換為對(duì)方的屬性,即關(guān)聯(lián)屬性,根據(jù)關(guān)聯(lián)重?cái)?shù),即關(guān)聯(lián)關(guān)系中存在的繼承關(guān) 系,則關(guān)聯(lián)屬性是一個(gè)對(duì)象或?qū)ο蟮募?,也可能為空?作為容器的對(duì)象在執(zhí)行自身的數(shù) 據(jù)維護(hù)方法時(shí),根據(jù)關(guān)聯(lián)對(duì)象的狀態(tài)調(diào)用所包容的對(duì)象的相應(yīng)維護(hù)方法,該關(guān)聯(lián)對(duì)象的狀 態(tài)分為新建、刪除、更新,從而根據(jù)一個(gè)入口對(duì)象形成數(shù)據(jù)對(duì)象的維護(hù)鏈,為簡(jiǎn)化對(duì)象各方 法的編程邏輯,只由作為包容器的對(duì)象調(diào)用所包容的對(duì)象的維護(hù)方法,而反過(guò)來(lái)是不允許 的,以保證對(duì)象之間方法的調(diào)用鏈?zhǔn)菃蜗虻模苊饬搜h(huán)調(diào)用;網(wǎng)絡(luò)元件之間的電氣連接關(guān)系由導(dǎo)電設(shè)備類、端點(diǎn)類和連接點(diǎn)類的關(guān)聯(lián)進(jìn)行維護(hù);當(dāng) 導(dǎo)電設(shè)備安裝或拆除時(shí),會(huì)導(dǎo)致網(wǎng)絡(luò)元件的電氣連接關(guān)系發(fā)生變化,為 Conduct ingEquipment類添加Mount方法執(zhí)行安裝過(guò)程的相關(guān)操作,通過(guò)對(duì)Mount方法的重 載來(lái)執(zhí)行不同的安裝操作,每個(gè)Mount方法在執(zhí)行過(guò)程中,通過(guò)對(duì)參數(shù)對(duì)象的分析,決定是 否需要新建連接點(diǎn),同時(shí)生成維護(hù)電氣連接的數(shù)據(jù)維護(hù)命令,拆除是安裝的逆過(guò)程,即為 ConductingEquipment類添加Unmount方法來(lái)執(zhí)行拆除過(guò)程,當(dāng)執(zhí)行Unmount方法時(shí),將當(dāng)前 導(dǎo)電設(shè)備的端點(diǎn)與連接點(diǎn)的關(guān)聯(lián)斷開,并分析與端點(diǎn)相連的連接點(diǎn)是否成為孤點(diǎn),即判斷 與此連接點(diǎn)關(guān)聯(lián)的端點(diǎn)數(shù)是否為1或0,如為孤點(diǎn),則生成刪除命令,刪除連接點(diǎn)。
      【文檔編號(hào)】G06F17/30GK105956054SQ201610268193
      【公開日】2016年9月21日
      【申請(qǐng)日】2016年4月27日
      【發(fā)明人】蘇雪源, 劉彬, 謝萍萍, 張繼紅, 陳日輝, 彭偉, 陳榮, 黃鋒, 郭永平, 張翔, 王震, 梁添增
      【申請(qǐng)人】國(guó)家電網(wǎng)公司, 國(guó)網(wǎng)福建省電力有限公司, 國(guó)網(wǎng)福建省電力有限公司廈門供電公司, 廈門億力吉奧信息科技有限公司, 國(guó)網(wǎng)信息通信產(chǎn)業(yè)集團(tuán)有限公司, 國(guó)網(wǎng)信通億力科技有限責(zé)任公司
      網(wǎng)友詢問(wèn)留言 已有0條留言
      • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1