6.視圖
視圖是從一個或幾個基本表(或視圖)導出的表。某一用戶可以定義若干視圖。因此對某一用戶而言,按ANSI/SPARC報告的觀點,他的外模式是由若干基本表和若干視圖組成的。視圖和基本表不同,視圖是一個虛表,即視圖所對應的數(shù)據(jù)不實際存儲在數(shù)據(jù)庫中,數(shù)據(jù)庫中只存儲視圖的定義(存在數(shù)據(jù)字典中)。視圖一經(jīng)定義就可以和基本表一樣被查詢、被刪除(DROP),也可以用來定義新的視圖,但更新(增、刪、改)操作將有一定限制。視圖可以理解成一個數(shù)據(jù)庫,只有內(nèi)涵保存在數(shù)據(jù)庫字典中,而無外延存儲;其外延是在使用時動態(tài)地生成的或計算出來的。
(1)視圖的定義與刪除
SQL建立視圖的語句格式為:
CREATE VIEW視圖名[(字段名[,字段名]…)]
AS子查詢
[WITH CHECK OPTION謂詞];
視圖可以刪除,語句格式為:
DROP VIEW視圖名;
視圖的定義就從數(shù)據(jù)字典中刪除。由此視圖導出的其它視圖也將自動被刪除。若導出此視圖的基本表刪除了,則此視圖也將自動刪除。
(2)視圖的查詢語句
視圖定義后,用戶可以如同基本表那樣對視圖查詢。
(3)視圖的更新語句對視圖的更新最終要轉(zhuǎn)換成對基本表的更新(這里的更新,指INSERT,UPDATE和DELETE三類操作)。在關(guān)系數(shù)據(jù)庫中,并非所有的視圖都是可更新的,也就是說,有些視圖的更新不能唯一地有意義地轉(zhuǎn)換成對基本表的更新。
(4)視圖的優(yōu)點視圖的概念具有很多優(yōu)點,主要有:
(1)視圖對于數(shù)據(jù)庫的重構(gòu)造提供了一定程度的邏輯獨立性;
(2)簡化了用戶觀點;
(3)視圖機制使不同的用戶能以不同的方式看待同一數(shù)據(jù);
(4)視圖機制對機密數(shù)據(jù)提供了自動的安全保護功能。
7.SQL的數(shù)據(jù)控制功能
SQL數(shù)據(jù)控制功能是指控制用戶對數(shù)據(jù)的存取權(quán)力。某個用戶對某類數(shù)據(jù)具有何種操作權(quán)力是由DBA決定的。這是個政策問題而不是技術(shù)問題。數(shù)據(jù)庫管理系統(tǒng)的功能是保證這些決定的執(zhí)行。為此它必須能:
(1)把授權(quán)的決定告知系統(tǒng),這是由SQL的GRANT和REVOKE語句來完成的。
(2)把授權(quán)的結(jié)果存入數(shù)據(jù)字典。
(3)當用戶提出操作請求時,根據(jù)授權(quán)情況進行檢查,以決定是執(zhí)行操作請求還是拒絕之。授權(quán)語句的一般格式為:
GRANT權(quán)力[,權(quán)力]…[ON對象類型對象名] TO用戶[,用戶]…,
[WITH GRANT OPTION];
對不同類型的操作對象可有不同的操作權(quán)力。
(1)對基本表、視圖及其字段的操作權(quán)力有查詢、插入、更新、刪除以及它們的總和ALL PRIVILEGE。
(2)對基本表的操作權(quán)力還有修改(ALTER)和建立索引(INDEX)。
(3)對數(shù)據(jù)庫的操作權(quán)力有建立表(CREATETAB)。某用戶有了此權(quán)力就可以使用Create table建立基本表。稱他為表的主人,擁有對此表的一切操作權(quán)力。
(4)對表空間的權(quán)力有使用(USE)數(shù)據(jù)庫空間存儲基本表的權(quán)力。
(5)系統(tǒng)權(quán)力有建立新數(shù)據(jù)庫(CREATEDBA)的權(quán)力。GRANT語句中的任選項WITH GRANT OPTION的作用是使獲得某種權(quán)力的用戶可以把權(quán)力再授予別的用戶。
相關(guān)推薦:北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |