2.嵌入式視圖:在from語句中,可以將表更改為子查詢。嵌入式視圖是壹種子查詢,可以像數據表和視圖壹樣作為查詢語句的數據源存在,但在形式上有很大的不同。不需要使用create view命令創建嵌入式視圖,因此無法在數據字典中獲取相應的信息。
嵌入式視圖的特點是不需要創建真正的數據庫對象,而只是封裝查詢,因此將節省數據庫資源,並且不會增加維護成本。然而,嵌入式視圖是不可重用的,因此當預計將在多個地方調用同壹個查詢定義時,仍然應該使用關系視圖。
3.對象視圖:對象類型在數據庫編程中有很多好處,但有時,已經開發了應用程序。重建數據表以迎合對象類型是不現實的。對象視圖是解決這個問題的壹個很好的策略。
創建對象視圖後,還可以在數據字典中獲取其對應的信息。Oracle內置視圖user_views可用於獲取有關對象視圖的信息。Oracle中的對象數據實際上仍然以關系數據的形式存儲。
然而,對象的特性(如繼承和封裝)為開發人員提供了更靈活的處理形式。類似地,可以構造復雜的對象類型來封裝復雜的多表查詢。
4.物化視圖:通常用於數據庫的災難恢復。它不是傳統意義上的虛擬視圖,而是物化視圖,可以像表壹樣存儲和查詢數據。主數據庫和輔數據庫的數據同步通過物化視圖實現,主數據庫和輔數據庫通過數據鏈路連接,數據復制在主數據庫和輔數據庫的物化視圖中進行。當主數據庫崩潰時,備份數據庫接管以實現容災。
擴展數據
視圖可以使應用程序和數據庫表在某種程度上相互獨立。如果沒有視圖,應用程序必須構建在表上。使用視圖,可以在視圖上構建程序,這樣程序和數據庫表就被視圖分開了。視圖可以在以下方面使程序和數據獨立:
1.如果應用程序構建在數據庫表上,當數據庫表發生變化時,可以在表上構建視圖,並且可以通過視圖屏蔽表的變化,使應用程序無法移動。
2.如果應用建立在數據庫表上,當應用改變時,可以在表上建立視圖,並且應用的改變可以被視圖屏蔽,從而數據庫表不被移動。
3.如果應用程序基於視圖,當數據庫表發生變化時,可以在表上修改視圖,並且可以通過視圖屏蔽表的變化,使應用程序無法移動。
4.如果應用程序基於視圖,當應用程序發生變化時,可以在表上修改視圖,應用程序的變化可以被視圖屏蔽,這樣數據庫就可以保持靜止。
百度百科-數據庫視圖
百度百科-查看