Datomic/Datalog函數(shù)式數(shù)據(jù)庫

//onxy+datomic(datalog)的體系架構(gòu)


數(shù)據(jù)庫即值
http://www.infoq.com/cn/news/2013/06/database-value

QCon New York 2013上,Rich Hickey做了一次話題為函數(shù)式數(shù)據(jù)庫的演講。Hickey因創(chuàng)造了Clojure編程語言而蜚聲業(yè)內(nèi),目前他正在開發(fā)函數(shù)式數(shù)據(jù)庫Datomic。在他的演講中,Hickey表示函數(shù)式語言中的兩個非常有用的屬性:數(shù)據(jù)即值(data as values)和純函數(shù)(譯者注:Pure Functions

Hickey以反問的口吻向觀眾說道:“如果將所有這些函數(shù)式的屬性應(yīng)用到數(shù)據(jù)庫上豈不是很好?”在這樣的一個世界里,整個數(shù)據(jù)庫將可以代表一個(不變)值,而查詢就好比是以一個或多個數(shù)據(jù)庫作為參數(shù)的函數(shù)。這樣一來,數(shù)據(jù)庫便可以在多個線程間被安全的傳遞,而在相同數(shù)據(jù)庫值上進(jìn)行的相同查詢將會產(chǎn)生相同的結(jié)果。自然地,由于一個不可變的數(shù)據(jù)庫對大家來說并不是很有用處,所以我們將會使用事務(wù)處理器(transactor)來產(chǎn)生變更,更準(zhǔn)確地說是:基于先前的數(shù)據(jù)庫值產(chǎn)生新的數(shù)據(jù)庫值。給定事務(wù)處理器一個數(shù)據(jù)庫值和變化的數(shù)量,它將會返回一個新的數(shù)據(jù)庫值。程序可以在任何時間向數(shù)據(jù)庫索取它的當(dāng)前值。Datomic 就是一個擁有這些屬性的數(shù)據(jù)庫。

為了使查詢更加簡單,Datomic支持以Datalog作為查詢語言,該語言是Prolog的一個子集,非常適合以聲明式的方式進(jìn)行數(shù)據(jù)庫查詢。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容