什么是視圖視圖的作用
什么是視圖視圖的作用
視圖是指計算機數(shù)據庫中的視圖,是一個虛擬表,其內容由查詢定義。同真實的表一樣,視圖包含一系列帶有名稱的列和行數(shù)據。以下是由學習啦小編整理關于什么是視圖的內容,希望大家喜歡!
視圖的含義
從用戶角度來看,一個視圖是從一個特定的角度來查看數(shù)據庫中的數(shù)據。從數(shù)據庫系統(tǒng)內部來看,一個視圖是由SELECT語句組成的查詢定義的虛擬表。從數(shù)據庫系統(tǒng)內部來看,視圖是由一張或多張表中的數(shù)據組成的,從數(shù)據庫系統(tǒng)外部來看,視圖就如同一張表一樣,對表能夠進行的一般操作都可以應用于視圖,例如查詢,插入,修改,刪除操作等。
視圖是一個虛擬表,其內容由查詢定義。同真實的表一樣,視圖的作用類似于篩選。定義視圖的篩選可以來自當前或其它數(shù)據庫的一個或多個表,或者其它視圖。分布式查詢也可用于定義使用多個異類源數(shù)據的視圖。
視圖是存儲在數(shù)據庫中的查詢的SQL 語句,它主要出于兩種原因:安全原因, 視圖可以隱藏一些數(shù)據,如:社會保險基金表,可以用視圖只顯示姓名,地址,而不顯示社會保險號和工資數(shù)等,另一原因是可使復雜的查詢易于理解和使用。
視圖:查看圖形或文檔的方式。
視圖一經定義便存儲在數(shù)據庫中,與其相對應的數(shù)據并沒有像表那樣又在數(shù)據庫中再存儲一份,通過視圖看到的數(shù)據只是存放在基本表中的數(shù)據。對視圖的操作與對表的操作一樣,可以對其進行查詢、修改(有一定的限制)、刪除。
當對通過視圖看到的數(shù)據進行修改時,相應的基本表的數(shù)據也要發(fā)生變化,同時,若基本表的數(shù)據發(fā)生變化,則這種變化也可以自動地反映到視圖中。
視圖的種類區(qū)別
Oracle數(shù)據庫視圖的種類和區(qū)別
關系視圖:Oracle視圖是作為數(shù)據庫對象存在的,因此,創(chuàng)建之后也可以通過工具或數(shù)據字典來查看視圖的相關信息。這是大家常用的視圖,如:create view 視圖。
內嵌視圖:在from語句中的可以把表改成一個子查詢,如:select a、id ,b、id from emp a,(select id from dept) b where a、id=b、id內嵌視圖不屬于任何用戶,也不是對象,內嵌視圖是子查詢的一種,可以與數(shù)據表、視圖一樣作為查詢語句的數(shù)據源存在,但在形式上有較大的區(qū)別,內嵌視圖不必使用create view命令進行創(chuàng)建,因此,在數(shù)據字典中也無法獲得相應信息。內嵌視圖的特點在于無須創(chuàng)建真正的數(shù)據庫對象,而只是封裝查詢,因此會節(jié)約數(shù)據庫資源,同時不會增加維護成本。但是內嵌視圖不具有可復用性,因此當預期將在多處調用到同一查詢定義時,還是應該使用關系視圖。
對象視圖:對象類型在數(shù)據庫編程中有許多好處,但有時,應用程序已經開發(fā)完成。為了迎合對象類型而重建數(shù)據表是不現(xiàn)實的。對象視圖正是解決這一問題的優(yōu)秀策略。
對象視圖創(chuàng)建之后,同樣可以在數(shù)據字典中獲得其相應信息。利用Oracle內置視圖user_views可以獲得對象視圖相關信息。Oracle中的對象數(shù)據實際仍然以關系數(shù)據的形式存儲。但是,對象的特性,例如繼承、封裝等,都為開發(fā)人員提供了更加靈活的處理形式。同樣,可以構造復雜的對象類型來封裝復雜的多表查詢。
物化視圖:常用于數(shù)據庫的容災,不是傳統(tǒng)意義上虛擬視圖,是實體化視圖,和表一樣可以存儲數(shù)據、查詢數(shù)據。主備數(shù)據庫數(shù)據同步通過物化視圖實現(xiàn),主備數(shù)據庫通過data link連接,在主備數(shù)據庫物化視圖進行數(shù)據復制。當主數(shù)據庫垮掉時,備數(shù)據庫接管,實現(xiàn)容災。
視圖的作用
簡單性。看到的就是需要的。視圖不僅可以簡化用戶對數(shù)據的理解,也可以簡化他們的操作。那些被經常使用的查詢可以被定義為視圖,從而使得用戶不必為以后的操作每次指定全部的條件。
安全性。通過視圖用戶只能查詢和修改他們所能見到的數(shù)據。但不能授權到數(shù)據庫特定行和特定的列上。通過視圖,用戶可以被限制在數(shù)據的不同子集上:
使用權限可被限制在另一視圖的一個子集上,或是一些視圖和基表合并后的子集上。
邏輯數(shù)據獨立性。視圖可幫助用戶屏蔽真實表結構變化帶來的影響。
視圖的優(yōu)點
1、 視點集中
視圖集中即是使用戶只關心它感興趣的某些特定數(shù)據和他們所負責的特定任務。這樣通過只允許用戶看到視圖中所定義的數(shù)據而不是視圖引用表中的數(shù)據而提高了數(shù)據的安全性。
2、 簡化操作
視圖大大簡化了用戶對數(shù)據的操作。因為在定義視圖時,若視圖本身就是一個復雜查詢的結果集,這樣在每一次執(zhí)行相同的查詢時,不必重新寫這些復雜的查詢語句,只要一條簡單的查詢視圖語句即可??梢娨晥D向用戶隱藏了表與表之間的復雜的連接操作。
3、 定制數(shù)據
視圖能夠實現(xiàn)讓不同的用戶以不同的方式看到不同或相同的數(shù)據集。因此,當有許多不同水平的用戶共用同一數(shù)據庫時,這顯得極為重要。
4、 合并分割數(shù)據
在有些情況下,由于表中數(shù)據量太大,故在表的設計時常將表進行水平分割或垂直分割,但表的結構的變化卻對應用程序產生不良的影響。如果使用視圖就可以重新保持原有的結構關系,從而使外模式保持不變,原有的應用程序仍可以通過視圖來重載數(shù)據。
5、 安全性
視圖可以作為一種安全機制。通過視圖用戶只能查看和修改他們所能看到的數(shù)據。其它數(shù)據庫或表既不可見也不可以訪問。如果某一用戶想要訪問視圖的結果集,必須授予其訪問權限。視圖所引用表的訪問權限與視圖權限的設置互不影響。
看過“視圖的作用”的人還看了: