數(shù)據(jù)庫(kù)中的視圖PPT學(xué)習(xí)教案_第1頁(yè)
數(shù)據(jù)庫(kù)中的視圖PPT學(xué)習(xí)教案_第2頁(yè)
數(shù)據(jù)庫(kù)中的視圖PPT學(xué)習(xí)教案_第3頁(yè)
數(shù)據(jù)庫(kù)中的視圖PPT學(xué)習(xí)教案_第4頁(yè)
數(shù)據(jù)庫(kù)中的視圖PPT學(xué)習(xí)教案_第5頁(yè)
已閱讀5頁(yè),還剩8頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、會(huì)計(jì)學(xué)1 數(shù)據(jù)庫(kù)中的視圖數(shù)據(jù)庫(kù)中的視圖 一、視圖定義 視圖是由基于一個(gè)或多個(gè)表上的一個(gè)查詢所定義的虛擬表,它將該查詢的具體標(biāo)準(zhǔn)暫時(shí)保存起來(lái),也就是說(shuō),我們存儲(chǔ)一個(gè)視圖,只需要存儲(chǔ)它的定義,而不必像實(shí)際的數(shù)據(jù)表那樣需要在數(shù)據(jù)庫(kù)中占據(jù)著物理空間,但是視圖的操作方法是和實(shí)際數(shù)據(jù)表的操作方法一樣的。 在ANSI/SQL標(biāo)準(zhǔn)中,視圖只是作為一個(gè)被查看的虛擬表,而它的建立基礎(chǔ)即實(shí)際的表則作為基本表。視圖可以將數(shù)據(jù)庫(kù)中的數(shù)據(jù)按照用戶的要求,以不同的方式呈現(xiàn)給不同的用戶。由于視圖保存了我們經(jīng)常使用的查詢,這樣用戶如果需要在視圖代表的某個(gè)查詢的結(jié)果中重復(fù)使用其中的數(shù)據(jù)就不用多次輸入查詢語(yǔ)句了這么復(fù)雜了,而且不同

2、的用戶看見(jiàn)的數(shù)據(jù)集的表現(xiàn)形式也不同,相當(dāng)?shù)淖杂珊挽`活。 第1頁(yè)/共13頁(yè) 二、視圖的優(yōu)缺點(diǎn) (1)優(yōu)點(diǎn) 簡(jiǎn)化查詢:視圖可以基于多個(gè)不同的表來(lái)建立,它將多個(gè)表中抽取得數(shù)據(jù)放在一起,像一個(gè)單表一樣操作。 簡(jiǎn)化結(jié)構(gòu):無(wú)論數(shù)據(jù)在數(shù)據(jù)表中的物理布局如何,視圖都可以使數(shù)據(jù)按照不同用戶的要求任意地將其選擇組合為虛表來(lái)呈現(xiàn)給用戶,滿足不同用戶的需求,很好地體現(xiàn)了數(shù)據(jù)庫(kù)的“個(gè)人化”操作。 安全性:通過(guò)視圖來(lái)訪問(wèn)數(shù)據(jù)庫(kù)中的數(shù)據(jù),可以限制用戶對(duì)數(shù)據(jù)庫(kù)內(nèi)容的訪問(wèn)范圍,讓用戶只能訪問(wèn)視圖的創(chuàng)建者想讓他們看到的具體數(shù)據(jù)。 數(shù)據(jù)完整性:在用戶通過(guò)視圖訪問(wèn)或者更新數(shù)據(jù)時(shí),數(shù)據(jù)庫(kù)管理系統(tǒng)DBMS的相關(guān)部分會(huì)自動(dòng)地檢查數(shù)據(jù),確保

3、預(yù)先設(shè)定的完整性約束。 (2)缺點(diǎn) 性能不高:雖然對(duì)用戶來(lái)說(shuō),利用視圖訪問(wèn)數(shù)據(jù)的方法和表相同,但是,數(shù)據(jù)庫(kù)管理系統(tǒng)DBMS處理用戶對(duì)視圖的查詢時(shí),必須要先將其轉(zhuǎn)換為對(duì)底層源表的查詢。 數(shù)據(jù)更新受限 第2頁(yè)/共13頁(yè) 三、 創(chuàng)建視圖 創(chuàng)建視圖使用命令CREATE VIEW。 CREATE VIEW view_name(column_name, column_name.) AS SELECT_STATEMENT 上面的語(yǔ)句為視圖指定了一個(gè)名稱,并且指明了定義視圖的查詢語(yǔ)句。當(dāng)然要成功創(chuàng)建視圖,還必須得到對(duì)所有源表的訪問(wèn)權(quán)限。 在定義視圖的SELECT語(yǔ)句中,我們可以簡(jiǎn)單地選擇指定源表中的行和列,還

4、可以使用下面的對(duì)象和這些對(duì)象的組合來(lái)創(chuàng)建視圖:?jiǎn)蝹€(gè)表,多個(gè)表,另一個(gè)視圖,其他多個(gè)視圖,視圖和表的組合。 第3頁(yè)/共13頁(yè) 三、創(chuàng)建視圖 1、創(chuàng)建列的別名 創(chuàng)建視圖時(shí),如果用戶沒(méi)有特別指定視圖中的列名,視圖列將繼承SELECT語(yǔ)句中源表的列名。但是如果視圖中的列是通過(guò)計(jì)算得出的或者有多個(gè)列具有相同的名稱,就必須要給視圖列命名,這個(gè)名稱也叫源表中的列的別名。指定的列名清單放在CREATE語(yǔ)句的視圖名稱之后的括號(hào)中。 CREATE VIEW Manager(mgr_name, sex, id, dno) AS SELECT name, sex, id, dno FROM Employee e, D

5、epartment d WHERE e.id = d.mgrid 第4頁(yè)/共13頁(yè) 三、創(chuàng)建視圖 2、單表視圖 如果視圖只有一個(gè)源表,那么我們就說(shuō)這個(gè)視圖是單表視圖。單表視圖通常在一個(gè)包含有很多行或者很多列的表的基礎(chǔ)上創(chuàng)建使用,通過(guò)單表視圖用戶可以對(duì)它的源表中最常用的數(shù)據(jù)子集進(jìn)行查詢,而不用去理會(huì)那些用不著的數(shù)據(jù)行和列,使操作對(duì)象看起來(lái)更加簡(jiǎn)潔好用。 如果一個(gè)表中的數(shù)據(jù)只有特定的行和列允許用戶使用的話,在這個(gè)表上建立單表視圖也可以保證數(shù)據(jù)庫(kù)的安全性。賦予用戶對(duì)視圖的訪問(wèn)權(quán),而不允許他們?cè)L問(wèn)表可以很好地防止用戶越權(quán)訪問(wèn)。 CREATE VIEW Worker(name, sex, id) AS

6、SELECT name, sex, id FROM Employee WHERE SUBSTR(TO_CHAR(id), 2, 3) != 001 第5頁(yè)/共13頁(yè) 三、創(chuàng)建視圖 3、使用連接的視圖 視圖可以在單表上建立,也可以在多個(gè)表的基礎(chǔ)上創(chuàng)建。使用在多個(gè)表上創(chuàng)建的視圖,用戶就不必考慮自己使用的數(shù)據(jù)來(lái)自于哪個(gè)數(shù)據(jù)表或者需要在那個(gè)表中查找自己需要的數(shù)據(jù)。需要做的就是,在視圖中使用這些數(shù)據(jù),就好像它們一直就存儲(chǔ)在同一個(gè)表上一樣。下面我們介紹使用連接的視圖。要?jiǎng)?chuàng)建一個(gè)使用連接的視圖,只需使用多表連接查詢來(lái)定義。 CREATE VIEW Mgr_Dep(No, department, Manage

7、r, mgrid) AS SELECT d.dnumber, d.dname, , e.id FROM Department d, Employee e WHERE d.mgrid = e.id 第6頁(yè)/共13頁(yè) 三、創(chuàng)建視圖 4、使用連接的視圖 用戶可以使用包含了子查詢的查詢語(yǔ)句來(lái)定義一個(gè)視圖。這些子查詢的使用方法和它們?cè)诔R?guī)的SELECT語(yǔ)句中的使用一樣,在本書(shū)第8章中詳細(xì)討論了子查詢的使用,讀者可以參考。下面我們舉幾個(gè)簡(jiǎn)單的例子來(lái)說(shuō)明子查詢?cè)谝晥D創(chuàng)建中的運(yùn)用。 CREATE VIEW Worker(name, sex, id) AS SELECT name, sex, id

8、FROM Employee WHERE SUBSTR(TO_CHAR(id), 2, 3) != 001 CREATE VIEW Worker(name, sex, id) AS SELECT name, sex, id FROM Employee WHERE name NOT IN SELECT name FROM Manager CREATE VIEW Up_Dep_Worker AS SELECT name, sex, id, salary FROM Employee WHERE dno IN (SELECT dno FROM Employee GROUP BY dno HAVING A

9、VG(salary) 4000) 第7頁(yè)/共13頁(yè) 四、更新視圖 視圖可更新性的最基本的規(guī)則:視圖中的每一行數(shù)據(jù)都必須映射到視圖使用的基本表的單獨(dú)一個(gè)記錄行上。 下面列出了ANSI標(biāo)準(zhǔn)所不允許進(jìn)行更新操作的幾種常見(jiàn)的會(huì)破壞這個(gè)基本規(guī)則的視圖創(chuàng)建和操作方式: (1)視圖的列中沒(méi)有包括源表中有NOT NULL定義的表列 (2)在定義視圖的查詢語(yǔ)句SELECT后的選擇清單中使用了數(shù)學(xué)表達(dá)式來(lái)定義視圖列 (3)在定義視圖的查詢語(yǔ)句SELECT后的選擇清單中使用了函數(shù)調(diào)用或是聚集函數(shù)來(lái)定義視圖列 (4)在視圖創(chuàng)建中對(duì)GROUP BY和HAVING的使用 (5)在視圖創(chuàng)建的選擇清單中使用了DISTINCT

10、運(yùn)算符 (6)在創(chuàng)建視圖的查詢語(yǔ)句中的任意位置引用了不可更新視圖 (7)在創(chuàng)建視圖的查詢語(yǔ)句中使用了子查詢或者大部分類型的連接 第8頁(yè)/共13頁(yè) 五、刪除視圖 刪除視圖的操作很簡(jiǎn)單,使用DROP VIEW命令來(lái)完成這個(gè)操作。 DROP VIEW view_name 第9頁(yè)/共13頁(yè) 六、視圖的應(yīng)用 1、簡(jiǎn)化復(fù)雜的查詢 如果我們?cè)趯?duì)數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行某種操作時(shí),需要執(zhí)行一系列的查詢語(yǔ)句,會(huì)發(fā)現(xiàn)這么做是很復(fù)雜的,這種情況下,我們可以使用合適的視圖來(lái)簡(jiǎn)化查詢。 2、從多個(gè)數(shù)據(jù)源匯總數(shù)據(jù) 如果在創(chuàng)建視圖的查詢語(yǔ)句中直接連接多個(gè)數(shù)據(jù)源表,或通過(guò)其它的視圖來(lái)間接連接多個(gè)數(shù)據(jù)源表,我們就可以利用該視圖來(lái)匯總

11、這些源表上的數(shù)據(jù)。使用這種方法,可以簡(jiǎn)化我們很多針對(duì)這些數(shù)據(jù)表的查詢。 第10頁(yè)/共13頁(yè) 六、視圖的應(yīng)用 3、單位轉(zhuǎn)換 有時(shí)候,我們將數(shù)據(jù)庫(kù)中的數(shù)據(jù)提供給用戶時(shí),需要對(duì)數(shù)據(jù)進(jìn)行一些單位轉(zhuǎn)換,以適應(yīng)不同用戶對(duì)數(shù)據(jù)單位的不同要求。 4、保障安全性 數(shù)據(jù)庫(kù)系統(tǒng)的用戶可以分為好幾類,每類用戶都有一組在數(shù)據(jù)庫(kù)系統(tǒng)各個(gè)元素上的權(quán)限。其中,數(shù)據(jù)庫(kù)管理員DBA可以擁有所有的權(quán)限。如果一個(gè)用戶可以隨意訪問(wèn)不在他權(quán)限范圍內(nèi)的數(shù)據(jù)內(nèi)容,將給數(shù)據(jù)庫(kù)的管理帶來(lái)很大的安全隱患。數(shù)據(jù)庫(kù)管理系統(tǒng)中有專門(mén)負(fù)責(zé)安全性管理的部分,它依據(jù)不同用戶在數(shù)據(jù)庫(kù)各元素上所擁有的權(quán)限來(lái)允許或禁止用戶對(duì)這些元素的訪問(wèn)。使用視圖可以很好地保障數(shù)據(jù)庫(kù)系統(tǒng)的安全性,因?yàn)槲?/p>

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論