當前位置:首頁 » 數據倉庫 » 關系資料庫中的視圖
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

關系資料庫中的視圖

發布時間: 2023-03-01 14:21:23

資料庫中的視圖有什麼用,我們為什麼要用視圖

用來進行數據展示和分析。使用視圖可以定製用戶數據,聚焦特定的數據。

視圖是原始資料庫數據的一種變換,是查看錶中數據的另外一種方式。可以將視圖看成是一個移動的窗口,通過它可以看到感興趣的數據。

視圖是從一個或多個實際表中獲得的,這些表的數據存放在資料庫中。那些用於產生視圖的表叫做該視圖的基表。一個視圖也可以從另一個視圖中產生。

視圖的定義存在資料庫中,與此定義相關的數據並沒有再存一份於資料庫中。通過視圖看到的數據存放在基表中。

視圖可以在以下幾個方面使程序與數據獨立:

如果應用建立在資料庫表上,當資料庫表發生變化時,可以在表上建立視圖,通過視圖屏蔽表的變化,從而應用程序可以不動。

如果應用建立在資料庫表上,當應用發生變化時,可以在表上建立視圖,通過視圖屏蔽應用的變化,從而使資料庫表不動。

如果應用建立在視圖上,當資料庫表發生變化時,可以在表上修改視圖,通過視圖屏蔽表的變化,從而應用程序可以不動。

如果應用建立在視圖上,當應用發生變化時,可以在表上修改視圖,通過視圖屏蔽應用的變化,從而資料庫可以不動。

⑵ 什麼是資料庫視圖

聯系:視圖(view)是在基本表之上建立的表,它的結構(即所定義的列)和內容(即所有數據行)都來自基本表,它依據基本表存在而存在。一個視圖可以對應一個基本表,也可以對應多個基本表。視圖是基本表的抽象和在邏輯意義上建立的新關系
區別:1、視圖是已經編譯好的sql語句。而表不是
2、視圖沒有實際的物理記錄。而表有。
3、表是內容,視圖是窗口
4、表只用物理空間而視圖不佔用物理空間,視圖只是邏輯概念的存在,表可以及時四對它進行修改,但視圖只能有創建的語句來修改
5、表是內模式,視圖是外模式
6、視圖是查看數據表的一種方法,可以查詢數據表中某些欄位構成的數據,只是一些sql語句的集合。從安全的角度說,視圖可以不給用戶接觸數據表,從而不知道表結構。
7、表屬於全局模式中的表,是實表;視圖屬於局部模式的表,是虛表。
8、視圖的建立和刪除隻影響視圖本身,不影響對應的基本表。

⑶ 試述關系資料庫系統中視圖的定義,引進view的概念有什麼意義

試述關系資料庫系統中視圖(VIEW)的定義,引進VIEW的概念有什麼優點。
答案 視圖是從一個或幾個基本表導出的表。視圖本身不獨立存儲在資料庫中,是一個虛表。即資料庫中只存放視圖的定義而不存放視圖對應的數據,這些數據仍存放在導出視圖的基本表中。視圖在概念上與基本表等同,用戶可以如同基本表那樣使用視圖,可以在視圖上再定義視圖。引進VIEW的優點有: (1)視圖能夠簡化用戶的操作。 (2)視圖使用戶能以多種角度看待同一數據。 (3)視圖對重構資料庫提供了一定程度的邏輯獨立性。 (4)視圖能夠對機密數據提供安全保護。

⑷ 資料庫報表的視圖有幾種每種視圖的功能是什麼

1、關系視圖:Oracle視圖是作為資料庫對象存在的,因此,創建之後也可以通過工具或數據字典來查看視圖的相關信息。

2、內嵌視圖:在from語句中的可以把表改成一個子查詢,內嵌視圖為子查詢的一種,可以與數據表、視圖一樣作為查詢語句的數據源存在,但在形式上有較大的區別,內嵌視圖不必使用create view命令進行創建,因此,在數據字典中也無法獲得相應信息。

內嵌視圖的特點在於無須創建真正的資料庫對象,而只是封裝查詢,因此會節約資料庫資源,同時不會增加維護成本。但是內嵌視圖不具有可復用性,因此當預期將在多處調用到同一查詢定義時,還是應該使用關系視圖。

3、對象視圖:對象類型在資料庫編程中有許多好處,但有時,應用程序已經開發完成。為了迎合對象類型而重建數據表是不現實的。對象視圖正是解決這一問題的優秀策略。

對象視圖創建之後,同樣可以在數據字典中獲得其相應信息。利用Oracle內置視圖user_views可以獲得對象視圖相關信息。Oracle中的對象數據實際仍然以關系數據的形式存儲。

但是,對象的特性,例如繼承、封裝等,都為開發人員提供了更加靈活的處理形式。同樣,可以構造復雜的對象類型來封裝復雜的多表查詢。

4、物化視圖:常用於資料庫的容災,不是傳統意義上虛擬視圖,是實體化視圖,和表一樣可以存儲數據、查詢數據。主備資料庫數據同步通過物化視圖實現,主備資料庫通過data link連接,在主備資料庫物化視圖進行數據復制。當主資料庫垮掉時,備資料庫接管,實現容災。



(4)關系資料庫中的視圖擴展閱讀

視圖可以使應用程序和資料庫表在一定程度上獨立。如果沒有視圖,應用一定是建立在表上的。有了視圖之後,程序可以建立在視圖之上,從而程序與資料庫表被視圖分割開來。視圖可以在以下幾個方面使程序與數據獨立:

1、如果應用建立在資料庫表上,當資料庫表發生變化時,可以在表上建立視圖,通過視圖屏蔽表的變化,從而應用程序可以不動。

2、如果應用建立在資料庫表上,當應用發生變化時,可以在表上建立視圖,通過視圖屏蔽應用的變化,從而使資料庫表不動。

3、如果應用建立在視圖上,當資料庫表發生變化時,可以在表上修改視圖,通過視圖屏蔽表的變化,從而應用程序可以不動。

4、如果應用建立在視圖上,當應用發生變化時,可以在表上修改視圖,通過視圖屏蔽應用的變化,從而資料庫可以不動。

⑸ 在sql資料庫里的視圖是什麼意思,怎麼理解

視圖為原始資料庫數據的一種變換,是查看錶中數據的另外一種方式。可以將視圖看成是一個移動的窗口,通過它可以看到感興趣的數據。視圖為從一個或多個實際表中獲得的,這些表的數據存放在資料庫中。那些用於產生視圖的表叫做該視圖的基表。一個視圖也可以從另一個視圖中產生。

視圖的定義存在資料庫中,與此定義相關的數據並沒有再存一份於資料庫中。通過視圖看到的數據存放在基表中。



(5)關系資料庫中的視圖擴展閱讀

視圖有很多優點,主要表現在:

1、視點集中

使用戶只關心它感興趣的某些特定數據和他們所負責的特定任務。這樣通過只允許用戶看到視圖中所定義的數據而不是視圖引用表中的數據而提高了數據的安全性。

2、簡化操作

視圖大大簡化了用戶對數據的操作。因為在定義視圖時,若視圖本身就是一個復雜查詢的結果集,這樣在每一次執行相同的查詢時,不必重新寫這些復雜的查詢語句,只要一條簡單的查詢視圖語句即可。可見視圖向用戶隱藏了表與表之間的復雜的連接操作。

3、定製數據

視圖能夠實現讓不同的用戶以不同的方式看到不同或相同的數據集。因此,當有許多不同水平的用戶共用同一資料庫時,這顯得極為重要。

4、合並分割數據

在有些情況下,由於表中數據量太大,故在表的設計時常將表進行水平分割或垂直分割,但表的結構的變化卻對應用程序產生不良的影響。如果使用視圖就可以重新保持原有的結構關系,從而使外模式保持不變,原有的應用程序仍可以通過視圖來重載數據。

5、安全性

視圖可以作為一種安全機制。通過視圖用戶只能查看和修改他們所能看到的數據。其它資料庫或表既不可見也不可以訪問。如果某一用戶想要訪問視圖的結果集,必須授予其訪問許可權。視圖所引用表的訪問許可權與視圖許可權的設置互不影響。

⑹ 什麼是視圖視圖的作用

視圖是指計算機資料庫中的視圖,是一個虛擬表,其內容由查詢定義。同真實的表一樣,視圖包含一系列帶有名稱的列和行數據。以下是由我整理關於什麼是視圖的內容,希望大家喜歡!

視圖的含義
從用戶角度來看,一個視圖是從一個特定的角度來查看資料庫中的數據。從資料庫系統內部來看,一個視圖是由SELECT語句組成的查詢定義的虛擬表。從資料庫系統內部來看,視圖是由一張或多張表中的數據組成的,從資料庫系統外部來看,視圖就如同一張表一樣,對表能夠進行的一般操作都可以應用於視圖,例如查詢,插入,修改,刪除操作等。

視圖是一個虛擬表,其內容由查詢定義。同真實的表一樣,視圖的作用類似於篩選。定義視圖的篩選可以來自當前或 其它 資料庫的一個或多個表,或者其它視圖。分布式查詢也可用於定義使用多個異類源數據的視圖。

視圖是存儲在資料庫中的查詢的SQL 語句,它主要出於兩種原因:安全原因, 視圖可以隱藏一些數據,如:社會 保險 基金錶,可以用視圖只顯示姓名,地址,而不顯示社會保險號和工資數等,另一原因是可使復雜的查詢易於理解和使用。

視圖:查看圖形或文檔的方式。

視圖一經定義便存儲在資料庫中,與其相對應的數據並沒有像表那樣又在資料庫中再存儲一份,通過視圖看到的數據只是存放在基本表中的數據。對視圖的操作與對表的操作一樣,可以對其進行查詢、修改(有一定的限制)、刪除。

當對通過視圖看到的數據進行修改時,相應的基本表的數據也要發生變化,同時,若基本表的數據發生變化,則這種變化也可以自動地反映到視圖中。
視圖的種類區別
Oracle資料庫視圖的種類和區別

關系視圖:Oracle視圖是作為資料庫對象存在的,因此,創建之後也可以通過工具或數據字典來查看視圖的相關信息。這是大家常用的視圖,如:create view 視圖。

內嵌視圖:在from語句中的可以把表改成一個子查詢,如:select a、id ,b、id from emp a,(select id from dept) b where a、id=b、id內嵌視圖不屬於任何用戶,也不是對象,內嵌視圖是子查詢的一種,可以與數據表、視圖一樣作為查詢語句的數據源存在,但在形式上有較大的區別,內嵌視圖不必使用create view命令進行創建,因此,在數據字典中也無法獲得相應信息。內嵌視圖的特點在於無須創建真正的資料庫對象,而只是封裝查詢,因此會節約資料庫資源,同時不會增加維護成本。但是內嵌視圖不具有可復用性,因此當預期將在多處調用到同一查詢定義時,還是應該使用關系視圖。

對象視圖:對象類型在資料庫編程中有許多好處,但有時,應用程序已經開發完成。為了迎合對象類型而重建數據表是不現實的。對象視圖正是解決這一問題的優秀策略。

對象視圖創建之後,同樣可以在數據字典中獲得其相應信息。利用Oracle內置視圖user_views可以獲得對象視圖相關信息。Oracle中的對象數據實際仍然以關系數據的形式存儲。但是,對象的特性,例如繼承、封裝等,都為開發人員提供了更加靈活的處理形式。同樣,可以構造復雜的對象類型來封裝復雜的多表查詢。

物化視圖:常用於資料庫的容災,不是傳統意義上虛擬視圖,是實體化視圖,和表一樣可以存儲數據、查詢數據。主備資料庫數據同步通過物化視圖實現,主備資料庫通過data link連接,在主備資料庫物化視圖進行數據復制。當主資料庫垮掉時,備資料庫接管,實現容災。
視圖的作用
簡單性。看到的就是需要的。視圖不僅可以簡化用戶對數據的理解,也可以簡化他們的操作。那些被經常使用的查詢可以被定義為視圖,從而使得用戶不必為以後的操作每次指定全部的條件。

安全性。通過視圖用戶只能查詢和修改他們所能見到的數據。但不能授權到資料庫特定行和特定的列上。通過視圖,用戶可以被限制在數據的不同子集上:

使用許可權可被限制在另一視圖的一個子集上,或是一些視圖和基表合並後的子集上。

邏輯數據獨立性。視圖可幫助用戶屏蔽真實表結構變化帶來的影響。
視圖的優點
1、 視點集中

視圖集中即是使用戶只關心它感興趣的某些特定數據和他們所負責的特定任務。這樣通過只允許用戶看到視圖中所定義的數據而不是視圖引用表中的數據而提高了數據的安全性。

2、 簡化操作

視圖大大簡化了用戶對數據的操作。因為在定義視圖時,若視圖本身就是一個復雜查詢的結果集,這樣在每一次執行相同的查詢時,不必重新寫這些復雜的查詢語句,只要一條簡單的查詢視圖語句即可。可見視圖向用戶隱藏了表與表之間的復雜的連接操作。

3、 定製數據

視圖能夠實現讓不同的用戶以不同的方式看到不同或相同的數據集。因此,當有許多不同水平的用戶共用同一資料庫時,這顯得極為重要。

4、 合並分割數據

在有些情況下,由於表中數據量太大,故在表的設計時常將表進行水平分割或垂直分割,但表的結構的變化卻對應用程序產生不良的影響。如果使用視圖就可以重新保持原有的結構關系,從而使外模式保持不變,原有的應用程序仍可以通過視圖來重載數據。

5、 安全性

視圖可以作為一種安全機制。通過視圖用戶只能查看和修改他們所能看到的數據。其它資料庫或表既不可見也不可以訪問。如果某一用戶想要訪問視圖的結果集,必須授予其訪問許可權。視圖所引用表的訪問許可權與視圖許可權的設置互不影響。

⑺ 資料庫系統中,視圖和表是什麼關系

資料庫系統中,視圖是數據對象,視圖可以被看成是虛擬表或存儲查詢,只有在資料庫打開時才能使用。
表是處理數據、創建關系資料庫和應用的基本單元,可以是自由表,或是資料庫的一部分的資料庫表。