視圖(View)的優缺點


在做數據庫開發中使用視圖的優點有:

    1.可以訪問表中列的子集。在表中有些列是比較敏感的數據不想用戶看到的,如用戶密碼,員工工資等,用視圖可以隱藏這些列。

   2.可以訪問表中行的子集。有時不想讓用戶看到與TA無關的數據時,可以在where條件中過濾,如企業中子公司的員工只能看到TA所在子公司的同事資料,而不想其它子公司員工資料也顯示出來,用過濾后查詢出來的數據集組成視圖。

   3.可以重命名列名。在表中有些列名定義沒有代表意義,如列“abc”,為了讓用戶看到列名就可以知該列是什么數據,可以在組建視圖時重命名列名。

   4.可以快速訪問兩表或多表連接所組成的數據。有時要訪問表間連接所組成的數據集,可以把查詢出來的數據集定義成視圖,可以幫助快速訪問所需的數據。  

   5.可以快速讀取用聚合函數運算所返回的數據集。有時用戶要讀取經過用聚合函數復雜運算后的結果集,每次讀取都是很耗時,這時可以把這運算后的數據集組成視圖,就可以避免每次讀取都要運算的消耗。

總的來講,使用視圖在提高安全性的同時也加快查詢的速度。

 

視圖的優點與缺點 

在程序設計的時候必須先了解視圖的優缺點,這樣可以揚長避短,視圖具有如下的一些優點: 

● 簡單性。視圖不僅可以簡化用戶對數據的理解,也可以簡化他們的操作。那些被經常使用的查詢可以被定義為視圖,從而使用戶不必為以后的操作每次都指定全部的條件。 

● 安全性。通過視圖用戶只能查詢和修改他們所能見到的數據。數據庫中的其他數據則既看不見也取不到。數據庫授權命令可以使每個用戶對數據庫的檢索限制到特定的數據庫對象上,但不能授權到數據庫特定行和特定的列上。通過視圖,用戶可以被限制在數據的不同子集上。 

● 邏輯數據獨立性。視圖可以使應用程序和數據庫表在一定程度上獨立。如果沒有視圖,應用一定是建立在表上的。有了視圖之后,程序可以建立在視圖之上,從而程序與數據庫表被視圖分割開來。 

視圖也存在一些缺點,主要如下。 

● 性能:SQL Server必須把視圖的查詢轉化成對基本表的查詢,如果這個視圖是由一個復雜的多表查詢所定義,那么,即使是視圖的一個簡單查詢,SQL Server也把它變成一個復雜的結合體,需要花費一定的時間。 

● 修改限制:當用戶試圖修改視圖的某些行時,SQL Server必須把它轉化為對基本表的某些行的修改。對於簡單視圖來說,這是很方便的,但是,對於比較復雜的視圖,可能是不可修改的。 

所以,在定義數據庫對象時,不能不加選擇地來定義視圖,應該權衡視圖的優點和缺點,合理地定義視圖。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM