視圖技術(shù)現(xiàn)在幾乎所有的關(guān)系型數(shù)據(jù)庫都支持,其應(yīng)用也十分廣泛。
采用視圖的優(yōu)點
1、 讓數(shù)據(jù)庫結(jié)構(gòu)實現(xiàn)邏輯上的可擴充性:當數(shù)據(jù)庫系統(tǒng)的物理信息(主要指表結(jié)構(gòu)、表數(shù)據(jù))已經(jīng)完成后,如果由于新的業(yè)務(wù)要求導(dǎo)致表數(shù)據(jù)的不夠,這時就可以采用視圖技術(shù)進行擴充,通過視圖中強大的SQL來完成功能。
2、 軟件開發(fā)及數(shù)據(jù)查詢處理方便:采用視圖可以簡化數(shù)據(jù)庫系統(tǒng)的內(nèi)部結(jié)構(gòu)及其關(guān)系圖,因為物理表很多時候是以數(shù)據(jù)庫范式原則分析建立的,尤其在數(shù)據(jù)冗余處理方面與實際業(yè)務(wù)會產(chǎn)生較大的分歧,采用視圖可以將多個表通過SQL聯(lián)合起來,產(chǎn)生與實際業(yè)務(wù)相適應(yīng)的數(shù)據(jù)結(jié)果,這極大方便了軟件開發(fā)及數(shù)據(jù)查詢,利用視圖的SQL寫起來也比較簡單。
視圖按功能的分類分析
1、 業(yè)務(wù)視圖
業(yè)務(wù)視圖在數(shù)據(jù)庫應(yīng)用中比較多,往往是實現(xiàn)返回一個具體的業(yè)務(wù)結(jié)果功能,里面的復(fù)雜程度隨著業(yè)務(wù)的復(fù)雜而提高,這種視圖往往只用在軟件中的某個固定模塊,所以在建立這種視圖應(yīng)考慮產(chǎn)生的業(yè)務(wù)數(shù)據(jù)信息是否有用和完整,不用的數(shù)據(jù)盡量不返回,如果須從其它表產(chǎn)生的數(shù)據(jù)應(yīng)考慮在視圖中產(chǎn)生,而不要在實現(xiàn)軟件開發(fā)時的SQL中通過表鏈接產(chǎn)生。
2、 基本視圖
基本視圖是指一般是指在軟件開發(fā)中多個模塊都可能用到的視圖,這種視圖一般比較簡單,不會超過四個表的鏈接,處理基本視圖時應(yīng)做詳細的分析,使它的重用性達到,切不能因為當前的SQL處理就隨便建立一個基本視圖。應(yīng)用了基本視圖內(nèi)的表不應(yīng)該在外面的SQL中重復(fù)出現(xiàn),否則可能導(dǎo)致ORACLE重復(fù)處理的現(xiàn)象。
視圖建立備注:
視圖中如果出現(xiàn)UNION操作的話在數(shù)據(jù)不重復(fù)的情況下應(yīng)改為UNION ALL以提高速度。
功能大致相同的視圖應(yīng)在不影響性能及數(shù)據(jù)的前提下分析是否可以合并成一個視圖,這有助于軟件模塊化開發(fā)及調(diào)試。
非軟件用和不常用的視圖應(yīng)使用完后可以保存SQL成文件再進行刪除,以免給其它人員產(chǎn)生影響。
采用視圖的優(yōu)點
1、 讓數(shù)據(jù)庫結(jié)構(gòu)實現(xiàn)邏輯上的可擴充性:當數(shù)據(jù)庫系統(tǒng)的物理信息(主要指表結(jié)構(gòu)、表數(shù)據(jù))已經(jīng)完成后,如果由于新的業(yè)務(wù)要求導(dǎo)致表數(shù)據(jù)的不夠,這時就可以采用視圖技術(shù)進行擴充,通過視圖中強大的SQL來完成功能。
2、 軟件開發(fā)及數(shù)據(jù)查詢處理方便:采用視圖可以簡化數(shù)據(jù)庫系統(tǒng)的內(nèi)部結(jié)構(gòu)及其關(guān)系圖,因為物理表很多時候是以數(shù)據(jù)庫范式原則分析建立的,尤其在數(shù)據(jù)冗余處理方面與實際業(yè)務(wù)會產(chǎn)生較大的分歧,采用視圖可以將多個表通過SQL聯(lián)合起來,產(chǎn)生與實際業(yè)務(wù)相適應(yīng)的數(shù)據(jù)結(jié)果,這極大方便了軟件開發(fā)及數(shù)據(jù)查詢,利用視圖的SQL寫起來也比較簡單。
視圖按功能的分類分析
1、 業(yè)務(wù)視圖
業(yè)務(wù)視圖在數(shù)據(jù)庫應(yīng)用中比較多,往往是實現(xiàn)返回一個具體的業(yè)務(wù)結(jié)果功能,里面的復(fù)雜程度隨著業(yè)務(wù)的復(fù)雜而提高,這種視圖往往只用在軟件中的某個固定模塊,所以在建立這種視圖應(yīng)考慮產(chǎn)生的業(yè)務(wù)數(shù)據(jù)信息是否有用和完整,不用的數(shù)據(jù)盡量不返回,如果須從其它表產(chǎn)生的數(shù)據(jù)應(yīng)考慮在視圖中產(chǎn)生,而不要在實現(xiàn)軟件開發(fā)時的SQL中通過表鏈接產(chǎn)生。
2、 基本視圖
基本視圖是指一般是指在軟件開發(fā)中多個模塊都可能用到的視圖,這種視圖一般比較簡單,不會超過四個表的鏈接,處理基本視圖時應(yīng)做詳細的分析,使它的重用性達到,切不能因為當前的SQL處理就隨便建立一個基本視圖。應(yīng)用了基本視圖內(nèi)的表不應(yīng)該在外面的SQL中重復(fù)出現(xiàn),否則可能導(dǎo)致ORACLE重復(fù)處理的現(xiàn)象。
視圖建立備注:
視圖中如果出現(xiàn)UNION操作的話在數(shù)據(jù)不重復(fù)的情況下應(yīng)改為UNION ALL以提高速度。
功能大致相同的視圖應(yīng)在不影響性能及數(shù)據(jù)的前提下分析是否可以合并成一個視圖,這有助于軟件模塊化開發(fā)及調(diào)試。
非軟件用和不常用的視圖應(yīng)使用完后可以保存SQL成文件再進行刪除,以免給其它人員產(chǎn)生影響。