吳樹榮
摘要:神經(jīng)網(wǎng)絡(luò)是一門新興的技術(shù),由于人工神經(jīng)網(wǎng)絡(luò)由大量的單元組成非線性大規(guī)模自適應系統(tǒng),其自組織及學習和聯(lián)想記憶能力可以很好的逼近許多非線形映射關(guān)系。這一特性在數(shù)據(jù)庫查詢優(yōu)化的許多過程可以得到極大的利用。本文將對神經(jīng)網(wǎng)絡(luò)思想切入數(shù)據(jù)庫查詢優(yōu)化的實際應用進行探討。
關(guān)鍵詞:神經(jīng)網(wǎng)絡(luò) 數(shù)據(jù)庫 查詢優(yōu)化 應用
1 神經(jīng)網(wǎng)絡(luò)簡介
神經(jīng)網(wǎng)絡(luò)是大腦的一個組成部分,人工神經(jīng)網(wǎng)絡(luò)模型是基于生物學中的神經(jīng)網(wǎng)絡(luò)的基本原理建立的。它是以大腦作為研究基礎(chǔ)的,其目的在于模擬大腦的某些方面的機理,實現(xiàn)大腦某些方面的功能,因此,進行神經(jīng)網(wǎng)絡(luò)實現(xiàn)技術(shù)研究的目的,也即進行神經(jīng)計算機研究的目的不是尋求一種傳統(tǒng)計算機的替代物,而是要開墾那些人類“唾手可得”,而傳統(tǒng)計算方式卻“舉步維艱”的領(lǐng)域。
從數(shù)學的角度可以歸納為以下幾個基礎(chǔ)屬性:
1.1.1 非線性:人工神經(jīng)元可以表述為激活和抑制兩種基本狀態(tài),這就是一種非線性關(guān)系。
1.1.2 非局域性:人工神經(jīng)網(wǎng)絡(luò)系統(tǒng)是以人工神經(jīng)元之間的相互作用表現(xiàn)信息的處理和存儲能人。系統(tǒng)的整體行為不僅取決于單個神經(jīng)元的狀態(tài),而且取決于它們之間的相互作用,用此來模擬大腦的非局域性。
1.1.3 非凸性:非凸性是指人工神經(jīng)網(wǎng)絡(luò)的演化過程在滿足一定條件下取決于某特定函數(shù),而且該函數(shù)具有多個穩(wěn)定點,這將導致在不同邊界條件下得到不同的結(jié)果,這就是系統(tǒng)演變的多樣性。
1.1.4 非定常性:表現(xiàn)在人工神經(jīng)網(wǎng)絡(luò)具有自組織、自適應和自學習能力。
數(shù)據(jù)庫系統(tǒng),特別是大型數(shù)據(jù)庫系統(tǒng),完全可以看作是分布式系統(tǒng)。
在分布系統(tǒng)論中假定了分布系統(tǒng)中的大量處理單元都是自律要素,并且通過自律要素間的相互作用體現(xiàn)整體性能相信息處理能力。自律要素的處理能力可以是非常復雜,也可能異常簡單。相對而言,在人工神經(jīng)網(wǎng)絡(luò)模型中,一般假設(shè)神經(jīng)元是一個非常簡單的處理單元.每個單元向其它單元發(fā)送興奮性或抑制性信號。單元表示可能存在的假設(shè),單元之間的相互作用則表示單元之間存在的約束。這些單元的穩(wěn)定激活模式就是問題的解。
我的觀點是,在數(shù)據(jù)庫查詢優(yōu)化領(lǐng)域,作為模擬大腦的神經(jīng)計算方式具有如下的重要特點:①在短時間內(nèi)尋找好的,但不一定是最好的解答。②由大量的簡單的處理單元協(xié)同處理問題。③在模糊、不完整或冗余,甚至矛盾的數(shù)據(jù)基礎(chǔ)上進行問題求解。④容錯能力強。
關(guān)于以上特點中的第一點,其實這是啟發(fā)式算法的共同特點之一。啟發(fā)式算法是這樣定義的:一個基于直觀或經(jīng)驗構(gòu)造的算法,在可接受的花費下給出帶解決組合優(yōu)化問題每一個實例的一個可行解,該可行解與最優(yōu)解的偏離程度不一定事先可以預計。
在某些情況下,特別是實際問題中,最優(yōu)算法的計算時間使人無法忍受或因問題的難度使其計算時間隨問題規(guī)模的增加以指數(shù)級速度增加,此時只能通過啟發(fā)式算法求得問題的一個可行解。
神經(jīng)網(wǎng)絡(luò)方法是模擬大腦的,所以其輸入就是晶枝,處理單元就是神經(jīng)元,可以進行“抑制”和“興奮”兩類處理,最后通過突觸傳送給其他的神經(jīng)元。以下是自然神經(jīng)網(wǎng)絡(luò)圖(見圖1):
以及神經(jīng)元的數(shù)學模型:
2神經(jīng)網(wǎng)絡(luò)在數(shù)據(jù)庫查詢優(yōu)化中的具體應用
查詢是數(shù)據(jù)庫使用者進行的主要操作之一。在這方面,最初的查詢優(yōu)化方法是試用那些沒有壞的影響的方法。大部分的變化,比如增加索引、改變模式或者修改事務(wù)的長度都對全局有影響,有時是有害的負面影響。而重寫查詢使之以更高的速度運行則只有有利的影響。
在查詢事務(wù)處理中,鎖查詢優(yōu)化是一個重要內(nèi)容,下面結(jié)合神經(jīng)網(wǎng)絡(luò)思想進行分析。
關(guān)于鎖查詢優(yōu)化,下面是一些建議:①使用特殊的系統(tǒng)程序來處理長的讀操作。②消除不必要的封鎖。③根據(jù)事務(wù)的內(nèi)容將事務(wù)切分成較小的事務(wù)。④在應用程序允許的情況下,適當降低隔離級別。⑤選擇適當?shù)姆怄i粒度。⑥只有在數(shù)據(jù)庫很少被訪問時才修改有關(guān)數(shù)據(jù)定義的數(shù)據(jù)。⑦考慮劃分。⑧減少訪問熱點。⑨死鎖監(jiān)測周期的查詢優(yōu)化。
每個建議都可以獨立于其他建議來運用,但是仔細的分析會發(fā)現(xiàn),要很好的處理這些建議,神經(jīng)網(wǎng)絡(luò)算法的特點似乎很合適。
比如說,在謹慎降低隔離級別的過程中,可以使用簡單的單層前向神經(jīng)網(wǎng)絡(luò)思想。
低隔離級別是有益的,但也是由風險的,在這個過程中可串行化的價值也在體現(xiàn)當中。
為了確定隔離級別,可以進行相應的試驗,可以不斷的重復執(zhí)行一個對所有帳戶的余額求和的查詢事務(wù)以及若干個轉(zhuǎn)帳事務(wù)。試驗的參數(shù)是執(zhí)行這些轉(zhuǎn)賬事務(wù)的線程數(shù)。
初步試驗可以在數(shù)據(jù)庫使用前模擬進行,目的是獲得理想的結(jié)果參數(shù),包括可串行化的影響,死鎖可能性,阻塞可能性,隔離級別等等。
然后構(gòu)建一個如下的單層前向神經(jīng)網(wǎng)絡(luò):
在單層神經(jīng)網(wǎng)絡(luò)中,只有輸入層和輸出層,輸出層主要通過對輸入層的輸入數(shù)據(jù)和同理想輸出結(jié)果的比較,確定其權(quán)數(shù),最后,用確定了權(quán)數(shù)的神經(jīng)網(wǎng)絡(luò)應用到實際問題中。
也就是說,實質(zhì)上經(jīng)歷了三個階段,先確定理想結(jié)果參數(shù),然后確定權(quán)數(shù),最后投入應用。
另外,在減少熱點的應用中,有時插入數(shù)據(jù)的事務(wù)都會將每個新的數(shù)據(jù)項同一個惟一的表示練習起來。當多個插入事務(wù)并發(fā)執(zhí)行時,他們必須協(xié)調(diào)工作以避免將同一個標識聯(lián)系到不同的數(shù)據(jù)項上。
一般的,可以通過給數(shù)據(jù)庫建立一個計數(shù)器來實現(xiàn)。每個插入事務(wù)首先對計數(shù)器加1,接著完成它的插入操作和其他操作,最后提交。問題是這個計數(shù)器很可能會成為瓶頸,因為根據(jù)兩階段封鎖機制,事務(wù)只有提交時才可以釋放它在計數(shù)器上的鎖。
在這里可以用一個采用非線性激活函數(shù)的前向神經(jīng)網(wǎng)絡(luò)。比如將激活函數(shù)設(shè)定為符號函數(shù),閥值為0,這樣一個系統(tǒng)是可以識別XOR問題的,他的分類識別問題很強,而且簡單,完全可以應用在協(xié)調(diào)上述工作上。
從以上例子可以看出,神經(jīng)網(wǎng)絡(luò)和數(shù)據(jù)庫優(yōu)化的主要切入點在于學習和識別,在查詢優(yōu)化過程中遇到識別問題的地方,都可以試試神經(jīng)網(wǎng)絡(luò)算法。而學習的能力,則完全可以應用于一些繁瑣的維護,是系統(tǒng)盡可能的擁有自維護能力。
參考文獻:
[1]高紅云,王麗穎,汪再秋.分布式數(shù)據(jù)庫查詢優(yōu)化分析及實例[J].軟件導刊.2008.(02).
[2]周園春.科學數(shù)據(jù)網(wǎng)格分布式查詢框架及其關(guān)鍵技術(shù)研究[D].中國科學院研究生院(計算技術(shù)研究所).2006.