物件代理資料庫:大資料時代下的應需之作

HitTwice發表於2018-08-15

【IT168 技術】本文根據彭智勇老師於第九屆中國資料庫技術大會(DTCC 2018)的現場演講《支援海量複雜資料管理的物件代理資料庫系統TOTEM》內容整理而成。

講師介紹:

彭智勇 武漢大學計算機學院教授、博士生導師, 國務院軟體工程學科評議組成員,中國計算機學會會士、資料庫專業委員會副主任、大資料專家委員會成員。1985年獲武漢大學理學學士,1988年獲國防科技大學工學碩士,1995年獲日本京都大學工學博士,2003年武漢大學電腦科學與技術博士後流動站出站。1995-1997年在日本京都高度技術研究所工作,研究員。1997-2000年在美國惠普公司的研究所工作,研究員。提出了面向複雜資料管理的物件代理模型,發表在資料庫國際頂級會議IEEE ICDE和權威期刊IEEE TKDE上;分析了開源資料庫PostgreSQL原始碼,出版了《PostgreSQL資料庫核心分析》;研製了物件代理資料庫管理系統TOTEM,達到國際先進水平,獲得了教育部科技進步二等獎。主要從事資料庫、大資料管理與分析、可信雲資料服務等方面的研究。

分享提綱:

1、物件代理模型

2、複雜資料管理

3、專利資料分析

演講內容:

 大家好,我是武漢大學彭智勇,非常高興能夠來到這裡做一次分享。因為來自學術界,所以今天的報告風格可能跟前面的報告有點不一樣,另外我講的故事可能跟前面的也不一樣,希望大家喜歡!

一、物件代理模型的引入

我們為什麼會提出一個新的模型?來看看傳統資料庫所面臨的一些挑戰。最早的資料模型,我們知道先是層次資料模型,後來有網路資料模型。當小型機誕生了以後,為關係資料模型提供了一個機遇,一直用到現在,大家都非常喜歡。 這樣一個模型是非常適合於簡單的結構化資料建模的,特別對銀行記賬資料是非常有效的。但它有一個缺陷,不能表達複雜的語義關係。在學術界一直在想找到一個模型來替換關係模型,把資料的語義關係表達得更加清楚。

後來在上世紀90年代人們提出了物件導向資料模型,物件導向思想在程式設計領域非常成功,而資料庫界也認為,物件導向難道不是一個很好的選擇嗎?當時就提出了物件導向的資料模型。當時的應用場景是PC機、特別是蘋果機能夠處理多媒體資料。那麼,這些多媒體資料怎麼樣進行管理呢?大家提出用物件導向資料模型來建模。不同的媒體,用不同的物件,不同的物件,就有不同的方法來處理。所以它能夠適合複雜資料的建模。但是它有一個致命的弱點,就是靈活性很差。所以90年代那個時候有大批的物件導向資料庫走向市場,但最終沒有被市場接受。

目前的場景是什麼呢?大家還是離不開關聯式資料庫,但又需要物件導向資料模型去管理複雜資料,所以提出了一個折中的方案,就是在關聯式資料庫裡面引入物件模型,稱之為物件關係模型。這也是2014年圖靈獎獲得者MIT教授Michael Stonebraker所倡導的。

物件關係模型有什麼問題? 我們知道,如果說在一個資料庫裡面支撐兩個模型,那麼資料就難以統一建模。簡單的資料用關係,複雜的資料用物件, 兩套模型就要用兩套機制,這兩套機制就要相互協調,一協調就帶來了效率上的降低。另外,系統中有兩套機制,就變得非常的臃腫龐大,使得我們的資料庫現在難以管理目前的大資料。 大資料80%以上是非結構化資料,所以人們有時會這樣來定義大資料:大資料就是資料庫管理不了的資料。這也就是當前資料庫難以支撐大資料管理的原因之一。

我當時研究物件導向資料庫時也在想, 關聯式資料庫為什麼靈活性那麼好?

因為它把資料定義成表,然後有關係代數進行操作,大的表可以分成小表,小的表又可以合成大表。表通過關係代數操作計算,就能算出人們想要的表,那麼不同的人根據不同的需要就可以通過關係代數運算計算出不同的表。這樣一來,資料共享就變得非常的方便。

物件導向為什麼不能這樣做?它把資料和操作封裝成了物件。物件有一個唯一的識別符號,物件是難以分割和重組的。就像我們人一樣,人不能像孫悟空進行分身變化。所以我想,現實生活中人如何才能進行分身和重組呢?結果發現是代理在發揮作用。

當一個校長不能同時參加兩個會的時候,就要派副校長。所以一個校長下面肯定會有幾個副校長來起到分身的作用。另外一個我們開人代會的時候,不可能全國人民都到人民大會堂,我們就要選代表,代表也就是代理。所以代理在現實生活中把人進行間接的分割和重組。如果我們把代理這個概念引入到物件當中去, 有了代理物件的話,我們物件就可以間接的分割和重組,從而能夠做到既像關係資料模型這樣靈活性好,又像物件導向資料模型那樣擁有表現複雜語義的能力。

我們有沒有可能做一個與物件關聯式資料庫不同的新系統?

我提出了這樣一個模型, 物件代理模型 ,實際表達了這樣幾個概念:第一,任何客觀實體可以表示為物件,一個物件可以有多個代理物件,多個物件可以共享一個代理物件。代理物件還可以有自己的代理物件,形成一種網路結構。第二,代理物件繼承物件的屬性和方法,具有獨自的識別符號、屬性和方法。第三,繼承通過切換操作來實現,它可以改變物件的屬性和方法。第四個是代理物件和物件之間有雙向指標。第五,物件更新遷移保證物件代理約束關係。

談完這些概念以後,我們講,資料庫裡面很重要的就是要建模,建模就要定義它的模式,物件的模式就由類來定義。那麼,代理物件的模式就用代理類來定義。我們可以定義三種型別的代理物件:一個是單個物件的代理物件,一個物件可以定義若干個代理物件。還有是一組物件上的代理物件,這一組的物件可能來自於不同的類,它們組合在一起,產生一個代理物件。還有一種是一群物件的代理物件,它的個數是不受限的。代理物件都有約束條件。例如,針對單個物件的代理物件,我們可以定義選擇約束條件,針對一組物件的代理物件,我們可以定義組合約束條件,針對一群物件的代理物件,我們可以定義分組約束條件。

代理物件的屬性包括兩類,一類是追加的屬性,一類是繼承的屬性。它的方法也分為兩類,一類是追加的方法,一類是繼承的方法。屬性的繼承和方法的繼承用切換操作來定義。當一個訊息傳送到代理物件,代理物件會把這個訊息切換給它的源物件,源物件呼叫相應方法執行得到結果並返回給代理物件,代理物件將結果切換給訊息傳送者。在切換過程中,可以改變屬性和方法的名字以及資料值的型別,從而使物件可以以不同方式呈現給使用者。

物件代理模型提供物件代理代數操作,用來定義代理類,表現不同的語義關係。通過物件代理代數,我們可以在類上匯出代理類,匯出不同的代理類來表現不同的語義關係,匯出不同的代理類來滿足不同使用者的需要。像關聯式資料庫裡面的表,通過關係代數運算,可以計算出使用者所想要那種表,達到同樣的效果。物件代理模型的一致性維護是通過更新遷移來實現的,這實際上就說當我們增加一個物件的時候,我們可能會要給它增加一個代理物件,當我們刪除一個物件的時候,我們要把他的代理物件都要刪除。當我們修改一個物件的時候,我們可能會刪除它的一部分代理物件和增加一部分代理物件。

我們設計了一種語言來讓使用者來定義代理類,這個語言完全按SQL風格來設計的。以下是幾個例子:

物件代理模型在資料庫頂級學術會議ICDE1995和權威期刊TKDE2015發表後,得到來自德、美、日等多國學者引用。在國家863資料庫重大專項的支援下,我們基於物件代理模型,研製了物件代理資料庫系統TOTEM,獲得了教育部高等學校科技進步二等獎。

二、如何實現複雜資料的管理

我們這個資料庫有哪些特別的功能?首先,是柔軟物件的管理功能,可以為物件建立不同的檢視,檢視上允許有追加的屬性,而且既有虛的又有實的。第二個功能是物件動態分類功能,物件隨著狀態的改變可以分屬到不同的類,這在原來是很難做到的。第三個功能是跨類查詢功能,跨類查詢功能為什麼能實現?因為物件和代理物件之間有雙向指標,沿著這個指標根據它的語義關係,就能進行導航式的查詢。這種查詢能夠支援關聯計算,所以這個功能對後面的資料分析非常有效。這些功能我們都申請了國家發明專利的。

我們後來又開始了一個研究工作,主要針對複雜資料管理。 我們知道,物件代理資料庫比較適合於複雜資料管理,所以我們對複雜資料管理做了進一步的研究。當時我們是想做一個支援技術創新的海量複雜資料管理基礎研究。這個工作得到了國家自然科學基金重點專案的支援。這個工作的必要性是什麼?我想在資料庫技術大會場合,大家肯定是比較認可的。第一個我們知道企業都在搞技術創新,它的源泉是科學創新,然後它的目的是產品創新。在整個創新活動過程中,我們會涉及到海量的資料,像科學資料、科技文獻和設計文件。怎麼能把這些資料有效地管理起來、利用起來?這就是我們研究的背景。

我們的目的是什麼呢?第一個,對政府決策部門,特別是科研立項能夠提供支撐,通過分析這樣一些資料,能夠制定科技發展戰略,確定攻關領域。第二個為科研工作者把握科技發展脈絡,確定科技前沿,找到研究問題提供幫助。第三個是幫助企業跟蹤同行的發展,保持技術領先,對一些未來的技術風險進行預測,提供支援。

這個工作所面臨的挑戰是“非常複雜”,因為我們的關鍵詞就是複雜。首先第一個,資料關聯非常複雜,因為我們涉及的這些資料存在著非常複雜的語義關係。第二個資料處理非常複雜,複雜關聯計算能夠進行技術熱點分析、引證分析和風險分析,在海量資料環境下其演算法複雜性非常高。第三個,所分析的結果怎麼讓人們理解,即資料展示覆雜,支援技術創新服務能夠揭示知識內在聯絡和技術發展趨勢,其複雜展現形式需要視覺化。

所以我們歸納出這三大科學問題, 第一個是如何使海量複雜關聯可管理。第二個是如何使海量複雜關聯可計算。第三個是如何使海量複雜關聯分析的結果可理解。我們研究要達到這樣一個效果。

我們的研究目標是,針對科學資料、科技文獻和設計文件等海量複雜資料,研究分層管理體系架構,實現基礎資料叢集化管理、語義資料集約化管理、使用者資料個性化管理,並通過複雜關聯可計算方面研究,能夠以視覺化方式為政府部門、科技人員和企業單位提供技術熱點分析、引證分析、預警分析等技術創新服務。

下圖是我們的技術方案:

 

其中十分重要的是我們基於資料庫能夠為使用者提供個性化的資料空間。資料空間是什麼概念?我們知道不可能每個人把所有網上資料都獲得,也沒有必要,使用者需要把自己感興趣的資料收集起來,按照自己的方式進行組織。資料空間就是起這個作用。

為什麼我們的物件代理資料庫在這樣一個三層體系架構中能夠發揮非常重要的作用?首先,我們建立資料空間,裡面保留的是代理物件,代理物件與其源物件公共的部分是繼承過來的,不會重複存,這樣會減少資料的冗餘。第二個就是說在資料空間裡面,使用者可以追加個性化的資料。第三個方面,物件代理資料庫有一個自動分類的功能,當新的資料來時,都會自動地分發到資料空間裡面,使得資料空間裡的資料一直保持著比較高的新鮮性。

有這樣一個三層體系架構,我們也帶來一個新的問題,資料庫裡面的空間是有限的,存的資料一定要符合使用者的需求,同時也要把基礎資料當中相關的資料都能夠收集起來,既全又能反映個性化的需求,所以它要求一種按需管理的方式,需要動態維護資料在三層中的一致性。

三、專利資料的特性與分析

最後一個主題講專利。專利資料管理與分析系統也就是按照這樣一個體系架構來實現的。首先有一個專利下載與管理工具,也就是資料獲取層。通過分散式的方式,通過搜尋引擎,根據使用者的需求從網上去爬取所有的專利,然後,因為專利資料裡面大量的是文字資料,我們用全文索引對資料庫做一個增強,然後在資料庫上面按物件代理模型建立個性化資料空間。

按這樣一種方式來提供專利服務,能達到一些什麼效果?首先第一個,使用者可以根據自己的需要建立個性化的專利空間,比如說要開發某項技術,就可以根據技術的要求去搜集相關的專利放在專利空間裡面,對其進行分析,分析的結果可以作為個性化的資料放到專利空間裡面。第二個,我們資料庫有一個自動分類功能,當新的專利授權的時候,它馬上就可以反映到使用者的個性化資料空間裡面,這樣就保證了他所收集的專利很全,實際上專利檢索最重要的特點是一定要全、不能漏,漏了之後就很麻煩。第三個,跨類查詢的功能能夠達到分享對專利分析的結果,比如說我對專利有分析結果,通過雙向指標,我就可以知道別人對同樣專利的分析結果,然後進行一個總結,就能集思廣益,更好地利用專利。這就是利用我們資料庫構造的一個專利檢索和分析系統。

我們能夠提供哪些分析呢?首先是量化分析,我們通過數量關係能夠知道所給定企業所具有的技術實力怎樣?它的技術及分佈情況怎麼樣?企業擁有的核心技術人員主要有哪些?還一個就是能夠進行競爭企業在相同領域裡面的實力的對比。

我們最近做了一個工作,我覺得比較有意思, 通過關聯計算能夠得到一些更有價值的分析結果 。首先第一個就是專利價值的評估,因為我們知道很多企業開發一個產品,要使用某項技術時,如果這項技術是受專利保護的,而且可能有多項專利,就想知道哪個專利的價值更高。就像我們要讀論文,要知道哪篇論文最值得去讀。我們知道判別一個網頁和論文的價值的話,是通過它的引用關係,在英文專利當中都有引用關係,但中文專利是沒有引用關係的。但是我們怎麼樣去發現它的潛在引用關係,通過潛在引用關係來對專利價值進行排序?我們按這樣的一種方式定義潛在的引用關係,我們知道專利是由受時間限制的,不同授權的時間有前有後,那麼後面的專利如果跟前面的專利的內容很相似,這潛在地表明後面一個專利在某種程度上引用了前面的專利,而且相似度越高,引用的強度就越大。第二個就是說專利的價值跟時間有關,專利越老了,越不值錢。根據這樣一些因素,我們構造了一個專利潛在引用關係,根據這樣一個引用關係。 我們通過一些公式可以算出哪些專利的價值高,哪些專利的價值低。

關於專利我們還關心的一個特點,新穎性。 因為我們生產一個產品的時候,希望這個產品比較“酷”。你採用的技術越新穎,你的產品就越酷。我們對同樣的這樣一些專利,能不能根據它的新穎度進行排序,同樣經過關聯計算,也能達到這樣一個目的。我們根據新的產品和以前產品之間的相似度來確定它的新穎度。當一個新產品釋出了,如果這個新產品與之前產品很相似,那麼之前產品還是非常新穎。根據這樣一種考慮,我們認為一個專利的新穎度跟之後授權的相關專利相似度有關,通過相似度計算可以建立關聯關係,又通過這種關聯關係的計算,我們就能夠算出哪些專利比較新穎。

有些技術靠買專利買不到,就要自己開發。而自己開發的時候是有風險的,比如說某些企業跟華為比,華為有很強的實力。如果華為在開發技術,它會很快把技術開發出來,申請專利,在你還沒開發出來的時候已經授權了,你還得花錢去買專利。所以你要開發一個技術的時候,你要分析你的競爭對手在哪些方面會開發一些新的技術,就是對未來開發技術的主題進行預測。怎麼能算得出來?同樣可以根據關聯關係計算出來。

這主要跟什麼因素有關? 一方面,跟專利權人之間的關聯關係有關,與企業在哪些主題上,在哪些領域實力強弱有關,另外跟主題之間的關聯關係也有關。 我們就把這樣一些關聯關係構造成一個異構的網路,根據異構的網路,我們就可以算出未來你所分析的企業在未來會在哪些技術方面進行投入。其實分析結果的合理性解釋起來也非常容易,為什麼?一個企業如果在某項技術在某些領域實力很強,它很有可能在這個領域裡面繼續來進行技術開發,如果說有一個領域跟它很強的領域很相關,它很可能會做那些相關度很強的技術開發。如果說它的合作者在從事某項技術,那麼它很有可能會從事合作者比較接近的技術開發。還有一個主題之間相關性,比如說我們現在搞資料庫的,那麼知識圖譜跟我們資料庫主題關聯比較強,那麼我們很可能下一步就會去研究知識圖譜。那麼通過這種關聯關係的計算,我們就可以預測所想分析的企業在未來會開發什麼樣的技術。 如果說這個企業在這方面很強,我們儘量迴避,我們就要去找能夠跟它的技術形成互補的領域,這樣能夠達到相互合作,共同發展目的。

四、講在最後

總結一下, 資料庫在AI時代更多的是要關注語義關係,要更好的能夠表現語義關係,要能夠基於這些語義關係,利用目前強大的計算能力,算出一些我們未知的語義關聯關係,給我們提供更有價值的幫助。 這就是我跟大家分享的主題。

另外我還多說一句話。因為我是中國計算機學會資料庫專委會副主任,負責與企業的交流並促進產業化這方面的工作。我們有個資料庫學術年會,與DTCC資料庫技術大會構建了一個交流的平臺,每年邀請產業界的人士到我們學術界去做主題分享,而DTCC技術大會也請我們學術界的老師也來做分享,我就是借這個機會來給大家做分享的。

我們做學術研究最大的價值就在於成果能夠落地,能夠在產業界用起來、能夠產生社會價值,而不是僅僅一些論文,這是我們的最大成就感。另外我們對產業界有很大的期待。因為產業界的問題,才是我們最值得研究的問題。

所以歡迎大家如果有好的一些想法和好的一些問題,需要跟學術界合作, 可以通過DTCC技術大會平臺,提出申請,由技術大會向我們學術大會進行推薦。希望我們橋樑更加暢通,能夠進行經常性的交流,使得我們的產業界和學術界得到共同的發展,謝謝大家。

關於DTCC

第九屆中國資料庫大會以“數領先機•智贏未來”為主題,設定2大主會場及22個技術專場,邀請來自國內外網際網路、金融、教育等行業百餘位技術專家,共同探討Oracle、MySQL、NoSQL、大資料、機器學習、區塊鏈、資料視覺化等領域的前瞻性熱點話題與技術。

(更多精彩報導,請戳: http://www.it168.com/redian/dtcc2018/

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31473948/viewspace-2200078/,如需轉載,請註明出處,否則將追究法律責任。

相關文章