數(shù)據(jù)映射方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及電力領(lǐng)域,具體而言,涉及一種數(shù)據(jù)映射方法及裝置。
【背景技術(shù)】
[0002]公共信息模型是IEC61970的核心部分,提供了一個公共的電力系統(tǒng)模型,使得可以在任何領(lǐng)域作集成。該公共信息模型包括公共的類、它們的屬性和它們之間的關(guān)系。公共信息模型被劃分為13個類包,290多個類,包括:域包、核心包、負荷包、發(fā)電包、拓撲包、電線包、測量包、儲運損耗包、保護包、財政包、SCADA包、預(yù)測包和能量安排包等。
[0003]目前我們通用的都是關(guān)系型數(shù)據(jù)庫,而公共信息模型采用了面向?qū)ο蠹夹g(shù)來抽象電力系統(tǒng)之間的復(fù)雜關(guān)系。通過提供一種對象類和屬性及它們之間的關(guān)系來表示電力資源的標(biāo)準(zhǔn)。面向?qū)ο蠹夹g(shù)的優(yōu)點是能更直觀、更準(zhǔn)確地表現(xiàn)現(xiàn)實世界,更符合軟件開發(fā)的規(guī)律,縮短開發(fā)時間和減少開發(fā)費用,大大提高了軟件的可重用性、可維護性和可擴充性。然而,目前面向?qū)ο蟮臄?shù)據(jù)庫發(fā)展還不成熟,使用最廣泛、技術(shù)最成熟的數(shù)據(jù)庫管理系統(tǒng)大都是關(guān)系型的。因此,如何將公共信息模型與關(guān)系型數(shù)據(jù)庫更好地結(jié)合起來,是實現(xiàn)電力軟件標(biāo)準(zhǔn)化工作的首要問題。
[0004]但目前還沒有很好的方式能夠在充分考慮到電力系統(tǒng)實際情況的前提下,完美的解決公共信息模型面向?qū)ο竽P团c關(guān)系型數(shù)據(jù)庫之間的結(jié)合的問題。公共信息模型各個類之間的關(guān)系非常復(fù)雜,現(xiàn)有的技術(shù)大多是將公共信息模型的各個類單獨生成關(guān)系表,用大量的關(guān)系表來描述公共信息模型的關(guān)系;或者是不考慮各個類之間的關(guān)系,只映射公共信息模型的對象。但是采用將公共信息模型的各個類單獨生成關(guān)系表的方式將不可避免的會生成數(shù)量龐大的關(guān)系復(fù)雜的表,可擴展性非常差,而且使用和維護都非常不方便,大大影響到生產(chǎn)的效率;采用不考慮各個類之間的關(guān)系的方式,很明顯可以看出,其數(shù)據(jù)庫與公共信息模型并不完全對應(yīng),也就無法充分發(fā)揮出使用公共信息模型標(biāo)準(zhǔn)的優(yōu)勢。
[0005]針對相關(guān)技術(shù)中公共信息模型數(shù)據(jù)向關(guān)系型數(shù)據(jù)庫映射不完整的問題,目前尚未提出有效的解決方案。
【發(fā)明內(nèi)容】
[0006]本發(fā)明的主要目的在于提供一種數(shù)據(jù)映射方法及裝置,以解決公共信息模型數(shù)據(jù)向關(guān)系型數(shù)據(jù)庫映射不完整的問題。
[0007]為了實現(xiàn)上述目的,根據(jù)本發(fā)明的一個方面,提供了一種數(shù)據(jù)映射方法。
[0008]根據(jù)本發(fā)明的數(shù)據(jù)映射方法包括:獲取公共信息模型中的所有類,其中,所述公共信息模型為用于描述電力系統(tǒng)對象的模型;獲取所述所有類中類與類之間的關(guān)系,其中,所述關(guān)系包括繼承關(guān)系、關(guān)聯(lián)關(guān)系和聚集關(guān)系,所述繼承關(guān)系是父類和子類的關(guān)系,所述子類繼承所述父類的所有屬性,所述關(guān)聯(lián)關(guān)系是所述類與類之間存在概念上的連接,用于描述源類和目標(biāo)類之間的關(guān)系,所述關(guān)聯(lián)關(guān)系包括零對一關(guān)系、一對一關(guān)系、多對一關(guān)系和多對多關(guān)系,所述聚集關(guān)系是整體類與部分類的關(guān)系;以及基于所述類與類之間的關(guān)系將所述公共信息模型數(shù)據(jù)映射到關(guān)系型數(shù)據(jù)庫中,其中,所述類與類之間的關(guān)系通過在所述關(guān)系型數(shù)據(jù)庫中的關(guān)系型數(shù)據(jù)表中添加域建立。
[0009]進一步地,如果獲取到所述類與類之間的關(guān)系是所述繼承關(guān)系,基于所述類與類之間的關(guān)系將所述公共信息模型數(shù)據(jù)映射到關(guān)系型數(shù)據(jù)庫中包括:將所述子類映射為關(guān)系型數(shù)據(jù)表,其中,在所述子類對應(yīng)的所述關(guān)系型數(shù)據(jù)表中增加域,所述域用于記錄所述父類的類名,以此在所述關(guān)系型數(shù)據(jù)庫中建立所述子類和所述父類的所述繼承關(guān)系;獲取多個所述子類映射得到的關(guān)系型數(shù)據(jù)表,得到多個關(guān)系型數(shù)據(jù)表;以及將所述多個關(guān)系型數(shù)據(jù)表組合成所述關(guān)系型數(shù)據(jù)庫。
[0010]進一步地,如果獲取到所述類與類之間的關(guān)系是所述聚集關(guān)系,基于所述類與類之間的關(guān)系將所述公共信息模型數(shù)據(jù)映射到關(guān)系型數(shù)據(jù)庫中包括:將所述整體類映射為關(guān)系型數(shù)據(jù)表,其中,在所述整體類對應(yīng)的所述關(guān)系型數(shù)據(jù)表中增加域,所述域用于記錄所述部分類的類名,以此建立所述整體類和所述部分類的所述聚合關(guān)系;獲取多個所述整體類映射得到的關(guān)系型數(shù)據(jù)表,得到多個關(guān)系型數(shù)據(jù)表;以及將所述多個關(guān)系型數(shù)據(jù)表組合成所述關(guān)系型數(shù)據(jù)庫。
[0011]進一步地,如果獲取到所述類與類之間的關(guān)系是所述關(guān)聯(lián)關(guān)系,并且所述關(guān)聯(lián)關(guān)系為所述多對多關(guān)系時,基于所述類與類之間的關(guān)系將所述公共信息模型數(shù)據(jù)映射到關(guān)系型數(shù)據(jù)庫中包括:將所述關(guān)系為所述關(guān)聯(lián)關(guān)系的所有類映射成關(guān)系型數(shù)據(jù)表;生成聯(lián)系表,其中,所述聯(lián)系表的主鍵是所述多對多關(guān)系中的類對應(yīng)的所述關(guān)系型數(shù)據(jù)表的主鍵的合并,所述聯(lián)系表用于建立所述類與類之間的所述關(guān)聯(lián)關(guān)系;以及將所述關(guān)系型數(shù)據(jù)表以及所述聯(lián)系表組合成所述關(guān)系型數(shù)據(jù)庫。
[0012]進一步地,如果獲取到所述類與類之間的關(guān)系是所述關(guān)聯(lián)關(guān)系,并且所述關(guān)聯(lián)關(guān)系為所述零對一關(guān)系或所述一對一關(guān)系或所述多對一關(guān)系時,基于所述類與類之間的關(guān)系將所述公共信息模型數(shù)據(jù)映射到關(guān)系型數(shù)據(jù)庫中包括:將所述源類映射為關(guān)系型數(shù)據(jù)表和將所述目標(biāo)類映射為關(guān)系型數(shù)據(jù)表,其中,在所述源類對應(yīng)的所述關(guān)系型數(shù)據(jù)表中增加域,所述域設(shè)置為所述目標(biāo)類的對應(yīng)的所述關(guān)系型數(shù)據(jù)表的外鍵,以此建立所述源類和所述目標(biāo)類之間的所述關(guān)聯(lián)關(guān)系;獲取多個所述源類和多個所述目標(biāo)類映射得到的關(guān)系型數(shù)據(jù)表,得到多個關(guān)系型數(shù)據(jù)表;以及將所述多個關(guān)系型數(shù)據(jù)表組合成所述關(guān)系型數(shù)據(jù)庫。
[0013]為了實現(xiàn)上述目的,根據(jù)本發(fā)明的另一方面,提供了一種數(shù)據(jù)映射裝置。
[0014]根據(jù)本發(fā)明的數(shù)據(jù)映射裝置包括:第一獲取模塊,用于獲取公共信息模型中的所有類,其中,所述公共信息模型為用于描述電力系統(tǒng)對象的模型;第二獲取模塊,用于獲取所述所有類中類與類之間的關(guān)系,其中,所述關(guān)系包括繼承關(guān)系、關(guān)聯(lián)關(guān)系和聚集關(guān)系,所述繼承關(guān)系是父類和子類的關(guān)系,所述子類繼承所述父類的所有屬性,所述關(guān)聯(lián)關(guān)系是所述類與類之間存在概念上的連接,用于描述源類和目標(biāo)類之間的關(guān)系,所述關(guān)聯(lián)關(guān)系包括零對一關(guān)系、一對一關(guān)系、多對一關(guān)系和多對多關(guān)系,所述聚集關(guān)系是整體類與部分類的關(guān)系;以及映射模塊,用于基于所述類與類之間的關(guān)系將所述公共信息模型數(shù)據(jù)映射到關(guān)系型數(shù)據(jù)庫中,其中,所述類與類之間的關(guān)系通過在所述關(guān)系型數(shù)據(jù)庫中的關(guān)系型數(shù)據(jù)表中添加域建立。
[0015]進一步地,如果獲取到所述類與類之間的關(guān)系是所述繼承關(guān)系,所述映射模塊包括:第一映射單元,用于將所述子類映射為關(guān)系型數(shù)據(jù)表,其中,在所述子類對應(yīng)的所述關(guān)系型數(shù)據(jù)表中增加域,所述域用于記錄所述父類的類名,以此在所述關(guān)系型數(shù)據(jù)庫中建立所述子類和所述父類的所述繼承關(guān)系;第一獲取單元,用于獲取多個所述子類映射得到的關(guān)系型數(shù)據(jù)表,得到多個關(guān)系型數(shù)據(jù)表;以及第一組合單元,用于由所述多個關(guān)系型數(shù)據(jù)表組合成所述關(guān)系型數(shù)據(jù)庫。
[0016]進一步地,如果獲取到所述類與類之間的關(guān)系是所述聚合關(guān)系,所述映射模塊包括:第二映射單元,用于將所述整體類映射為關(guān)系型數(shù)據(jù)表,其中,在所述整體類對應(yīng)的所述關(guān)系型數(shù)據(jù)表中增加域,所述域用于記錄所述部分類的類名,以此建立所述整體類和所述部分類的所述聚合關(guān)系;第二獲取單元,用于獲取多個所述整體類映射得到的關(guān)系型數(shù)據(jù)表,得到多個關(guān)系型數(shù)據(jù)表;以及第二組合單元,用于將所述多個關(guān)系型數(shù)據(jù)表組合成所述關(guān)系型數(shù)據(jù)庫。
[0017]進一步地,如果獲取到所述類與類之間的關(guān)系是所述關(guān)聯(lián)關(guān)系,并且所述關(guān)聯(lián)關(guān)系為所述多對多關(guān)系時,所述映射模塊包括:第三映射單元,用于將所述關(guān)系為所述關(guān)聯(lián)關(guān)系的所有類映射成關(guān)系型數(shù)據(jù)表;生成單元,用于生成聯(lián)系表,其中,所述聯(lián)系表的主鍵是所述多對多關(guān)系中的類對應(yīng)的所述