數據庫視圖的基本概念及作用


一、視圖簡介

視圖是從一個或幾個基本表(或視圖)中導出的虛擬的表。在系統的數據字典中僅存放了視圖的定義,不存放視圖對應的數據。視圖是原始數據庫數據的一種變換,是查看表中數據的另外一種方式。可以將視圖看成是一個移動的窗口,通過它可以看到感興趣的數據。視圖是從一個或多個實際表中獲得的,這些表的數據存放在數據庫中。那些用於產生視圖的表叫做該視圖的基表。一個視圖也可以從另一個視圖中產生。視圖的定義存在數據庫中,與此定義相關的數據並沒有再存一份於數據庫中。通過視圖看到的數據存放在基表中。

視圖看上去非常像數據庫的物理表,對它的操作同任何其它的表一樣。當通過視圖修改數據時,實際上是在改變基表中的數據;相反地,基表數據的改變也會自動反映在由基表產生的視圖中。由於邏輯上的原因,有些視圖可以修改對應的基表,而有些則不能(僅僅能查詢)。

二、視圖的作用

1.      簡化了操作,把經常使用的數據定義為視圖

我們在使用查詢時,在很多時候我們要使用聚合函數,同時還要顯示其它字段的信息,可能還會需要關聯到其它表,這時寫的語句可能會很長,如果這個動作頻繁發生的話,我們可以創建視圖,這以后,我們只需要select * from view就可以啦,這樣很方便。

2.      安全性,用戶只能查詢和修改能看到的數據。

因為視圖是虛擬的,物理上是不存在的,只是存儲了數據的集合,我們可以將基表中重要的字段信息,可以不通過視圖給用戶,視圖是動態的數據的集合,數據是隨着基表的更新而更新。同時,用戶對視圖不可以隨意的更改和刪除,可以保證數據的安全性。

3.      邏輯上的獨立性,屏蔽了真實表的結構帶來的影響。

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

三、缺點

1.      性能差

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

2.      修改限制

當用戶試圖修改視圖的某些信息時,數據庫必須把它轉化為對基本表的某些信息的修改,對於簡單的視圖來說,這是很方便的,但是,對於比較復雜的試圖,可能是不可修改的。


免責聲明!

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



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