數(shù)據(jù)庫應(yīng)用基礎(chǔ)視圖PPT課件_第1頁
數(shù)據(jù)庫應(yīng)用基礎(chǔ)視圖PPT課件_第2頁
數(shù)據(jù)庫應(yīng)用基礎(chǔ)視圖PPT課件_第3頁
數(shù)據(jù)庫應(yīng)用基礎(chǔ)視圖PPT課件_第4頁
數(shù)據(jù)庫應(yīng)用基礎(chǔ)視圖PPT課件_第5頁
已閱讀5頁,還剩31頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、1復(fù)習(xí) 什么是數(shù)據(jù)完整性? 數(shù)據(jù)完整性的分類? 第1頁/共36頁21 什么是數(shù)據(jù)完整性?數(shù)據(jù)的一致性和準(zhǔn)確性實(shí)體完整性實(shí)體完整性域完整性域完整性引用完整性引用完整性用戶自定義完用戶自定義完整性整性數(shù)數(shù)據(jù)據(jù)完完整整性性的的分分類類行列表表第2頁/共36頁3本章主要內(nèi)容6 6.1.1 視圖概述6 6. .2 2 創(chuàng)建視圖6 6. .3 3 視圖的修改和刪除第3頁/共36頁46.1 6.1 視圖概述視圖概述1 視圖的基本概念視圖的基本概念2 使用視圖的優(yōu)點(diǎn)和缺點(diǎn)使用視圖的優(yōu)點(diǎn)和缺點(diǎn) (1 1)隱蔽數(shù)據(jù)庫的復(fù)雜性)隱蔽數(shù)據(jù)庫的復(fù)雜性(2 2)控制用戶提取數(shù)據(jù))控制用戶提取數(shù)據(jù)(3 3)簡化數(shù)據(jù)庫用戶管

2、理)簡化數(shù)據(jù)庫用戶管理(4 4)改進(jìn)性能)改進(jìn)性能第4頁/共36頁51 視圖的基本概念視圖的基本概念 數(shù)據(jù)視圖數(shù)據(jù)視圖是另一種在一個(gè)或多是另一種在一個(gè)或多個(gè)數(shù)據(jù)表上觀察數(shù)據(jù)的途徑,可以個(gè)數(shù)據(jù)表上觀察數(shù)據(jù)的途徑,可以把數(shù)據(jù)視圖看作是一個(gè)能把焦點(diǎn)定把數(shù)據(jù)視圖看作是一個(gè)能把焦點(diǎn)定在用戶感興趣的數(shù)據(jù)上的監(jiān)視器,在用戶感興趣的數(shù)據(jù)上的監(jiān)視器,用戶看到的是用戶看到的是實(shí)時(shí)數(shù)據(jù)實(shí)時(shí)數(shù)據(jù) 視圖可以被看成是視圖可以被看成是虛擬表虛擬表或或存存儲(chǔ)查詢儲(chǔ)查詢,用戶可以通過視圖來插入、,用戶可以通過視圖來插入、更改和刪除數(shù)據(jù)更改和刪除數(shù)據(jù) 第5頁/共36頁例例6-16-1:圖書管理員現(xiàn)在需要查詢圖書的借用歷:圖書管理

3、員現(xiàn)在需要查詢圖書的借用歷史記錄,確認(rèn)圖書的借用情況,目前有幾本圖史記錄,確認(rèn)圖書的借用情況,目前有幾本圖書被借出,由哪些人借用,借用日期是何時(shí)。書被借出,由哪些人借用,借用日期是何時(shí)。圖書的名稱,借閱人的名字以及相關(guān)借用日期,圖書的名稱,借閱人的名字以及相關(guān)借用日期,分別存在三個(gè)不同的表分別存在三個(gè)不同的表book_infobook_info、borrower_infoborrower_info和和lend_listlend_list內(nèi),給內(nèi),給SQLSQL查詢帶來查詢帶來的一定的復(fù)雜性。采用視圖的方法,能夠很好的一定的復(fù)雜性。采用視圖的方法,能夠很好的解決該問題。視圖可以使得所有需要顯示的

4、的解決該問題。視圖可以使得所有需要顯示的圖書借用信息好像都記錄在一張表內(nèi)一樣。下圖書借用信息好像都記錄在一張表內(nèi)一樣。下面建立系統(tǒng)中的視圖面建立系統(tǒng)中的視圖lendbooklendbook: 第6頁/共36頁use Library_DBgoCREATE VIEW lendbook ASSELECT lend_list.book_id,lend_list.borrower_id,lend_list.lend_date, lend_list.back_date,book_ AS bookname,borrower_FROM lend_list INNER JOI

5、N book_info ON lend_list.book_id = book_info.book_id INNER JOIN borrower_info ON lend_list.borrower_id = borrower_info.id需要查詢所需的圖書借閱歷史記錄時(shí),只需執(zhí)行如下查詢語句: SELECT * FROM lendbook 第7頁/共36頁82 使用視圖的優(yōu)點(diǎn)和缺點(diǎn)使用視圖的優(yōu)點(diǎn)和缺點(diǎn)(1 1)隱蔽數(shù)據(jù)庫的復(fù)雜性)隱蔽數(shù)據(jù)庫的復(fù)雜性 開發(fā)者可以在不影響用戶使用數(shù)據(jù)開發(fā)者可以在不影響用戶使用數(shù)據(jù)庫的情況下可以改變數(shù)據(jù)庫內(nèi)容,即使庫的情況下可以改變數(shù)據(jù)庫內(nèi)容,即使在基表發(fā)生更改

6、或重新組合的情況下,在基表發(fā)生更改或重新組合的情況下,用戶還能夠通過視圖用戶還能夠通過視圖獲得一致獲得一致和和非變化非變化的數(shù)據(jù)。的數(shù)據(jù)。 第8頁/共36頁92 使用視圖的優(yōu)點(diǎn)和缺點(diǎn)使用視圖的優(yōu)點(diǎn)和缺點(diǎn)(2 2)控制用戶提取數(shù)據(jù))控制用戶提取數(shù)據(jù) 通過將某些通過將某些不需要的不需要的、敏感的敏感的或是或是不適當(dāng)?shù)臄?shù)據(jù)控制在視圖之外不適當(dāng)?shù)臄?shù)據(jù)控制在視圖之外,可以實(shí),可以實(shí)現(xiàn)為用戶定制其個(gè)人所使用的表。實(shí)際現(xiàn)為用戶定制其個(gè)人所使用的表。實(shí)際上這也是一種安全機(jī)制。用戶可以訪問上這也是一種安全機(jī)制。用戶可以訪問某些數(shù)據(jù),進(jìn)行查詢和修改,但是表或某些數(shù)據(jù),進(jìn)行查詢和修改,但是表或數(shù)據(jù)庫的其余部分是不可

7、見的,也不能數(shù)據(jù)庫的其余部分是不可見的,也不能進(jìn)行訪問。進(jìn)行訪問。 第9頁/共36頁102 使用視圖的優(yōu)點(diǎn)和缺點(diǎn)使用視圖的優(yōu)點(diǎn)和缺點(diǎn)(3 3)簡化數(shù)據(jù)庫用戶管理)簡化數(shù)據(jù)庫用戶管理 通過通過定義不同的視圖定義不同的視圖及及有選擇地授有選擇地授予予視圖上的視圖上的權(quán)限權(quán)限,可以將用戶、組或角,可以將用戶、組或角色色限制在不同的限制在不同的數(shù)據(jù)子集內(nèi)。數(shù)據(jù)子集內(nèi)。 第10頁/共36頁112 使用視圖的優(yōu)點(diǎn)和缺點(diǎn)使用視圖的優(yōu)點(diǎn)和缺點(diǎn)(3 3)簡化數(shù)據(jù)庫用戶管理)簡化數(shù)據(jù)庫用戶管理 l可以將訪問限制在基表中可以將訪問限制在基表中行的子集行的子集內(nèi)。內(nèi)。 l可以將訪問限制在基表中可以將訪問限制在基表中列

8、的子集列的子集內(nèi)。內(nèi)。 l可以將訪問限制在基表中可以將訪問限制在基表中列和行的子集列和行的子集內(nèi)。內(nèi)。 l可以將訪問限制在符合可以將訪問限制在符合多個(gè)基表聯(lián)接多個(gè)基表聯(lián)接的行內(nèi)。的行內(nèi)。 l可以將訪問限制在基表中可以將訪問限制在基表中數(shù)據(jù)的統(tǒng)計(jì)匯總數(shù)據(jù)的統(tǒng)計(jì)匯總內(nèi)。內(nèi)。 l可以將訪問限制在可以將訪問限制在另一個(gè)視圖的子集內(nèi)另一個(gè)視圖的子集內(nèi)或或視圖視圖和基表組合的子集和基表組合的子集內(nèi)。內(nèi)。 例:定義一個(gè)視圖,其中只含有例:定義一個(gè)視圖,其中只含有管理類書籍或計(jì)算機(jī)應(yīng)用類書籍管理類書籍或計(jì)算機(jī)應(yīng)用類書籍的行,向用戶隱藏有關(guān)其它類型的行,向用戶隱藏有關(guān)其它類型書籍的信息。書籍的信息。 例:定義一

9、個(gè)視圖,其中含有例:定義一個(gè)視圖,其中含有booksbooks表中的所有行,但省略了表中的所有行,但省略了 price price 和和 discount discount 列等敏感信息。列等敏感信息。 例:定義一個(gè)視圖,其中只含有管例:定義一個(gè)視圖,其中只含有管理類書籍或計(jì)算機(jī)應(yīng)用類書籍的行,理類書籍或計(jì)算機(jī)應(yīng)用類書籍的行,同時(shí)含有同時(shí)含有booksbooks表中除了表中除了price price 和和 discount discount 列的其他列,隱藏了其他列的其他列,隱藏了其他書籍信息和敏感列的信息。書籍信息和敏感列的信息。 例:定義一個(gè)視圖,它聯(lián)接表例:定義一個(gè)視圖,它聯(lián)接表 boo

10、ksbooks和和authorsauthors表以顯示作者姓名及其撰表以顯示作者姓名及其撰寫的書籍。該視圖隱藏作者的個(gè)人信寫的書籍。該視圖隱藏作者的個(gè)人信息以及著作的財(cái)務(wù)信息。息以及著作的財(cái)務(wù)信息。 例:定義一個(gè)視圖,其中只含有例:定義一個(gè)視圖,其中只含有每類書籍的平均價(jià)格。每類書籍的平均價(jià)格。 第11頁/共36頁122 使用視圖的優(yōu)點(diǎn)和缺點(diǎn)使用視圖的優(yōu)點(diǎn)和缺點(diǎn)(4 4)改進(jìn)性能)改進(jìn)性能 通過在視圖中通過在視圖中存儲(chǔ)復(fù)雜查詢的運(yùn)算存儲(chǔ)復(fù)雜查詢的運(yùn)算結(jié)果結(jié)果并為其他查詢提供這些并為其他查詢提供這些摘要性的結(jié)摘要性的結(jié)果果使數(shù)據(jù)庫的使數(shù)據(jù)庫的性能得到提高性能得到提高,視圖還具,視圖還具備備分割數(shù)

11、據(jù)分割數(shù)據(jù)的功能,而且可以把分割后的功能,而且可以把分割后獨(dú)立的數(shù)據(jù)放置在不同的計(jì)算機(jī)上。獨(dú)立的數(shù)據(jù)放置在不同的計(jì)算機(jī)上。 第12頁/共36頁136.2 6.2 創(chuàng)建視圖創(chuàng)建視圖1 視圖的創(chuàng)建視圖的創(chuàng)建2 視圖定義信息查詢視圖定義信息查詢 (1 1)使用)使用Microsoft SQL Server Microsoft SQL Server Management Studio Management Studio管理界面管理界面 (2 2)通過執(zhí)行系統(tǒng)存儲(chǔ)過程)通過執(zhí)行系統(tǒng)存儲(chǔ)過程 查看視圖的定義信息查看視圖的定義信息 第13頁/共36頁141 視圖的創(chuàng)建視圖的創(chuàng)建CREATE VIEW . .

12、 view_name ( column ,.n ) WITH ENCRYPTION AS select_statement WITH CHECK OPTION 創(chuàng)建的視圖的名稱視圖中列的字段名對含有CREATE VIEW正文的syscomments表項(xiàng)進(jìn)行加密 定義視圖的select語句強(qiáng)制對視圖執(zhí)行的所有數(shù)據(jù)修改語句遵照在定義視圖的select statement中設(shè)置的條件 第14頁/共36頁15例例6-26-2:本例建立的是系統(tǒng)中另外一個(gè)非:本例建立的是系統(tǒng)中另外一個(gè)非常有用的視圖常有用的視圖book_info_viewbook_info_view,通過這個(gè),通過這個(gè)視圖,系統(tǒng)可以很容易

13、的從表視圖,系統(tǒng)可以很容易的從表book_infobook_info、classclass和和book_statebook_state中查詢完整的圖書信中查詢完整的圖書信息,以方便顯示給用戶進(jìn)行查看。息,以方便顯示給用戶進(jìn)行查看。 第15頁/共36頁16use Library_DBuse Library_DBgogoCREATE VIEW book_info_view CREATE VIEW book_info_view ASASSELECT SELECT book_info.book_id,book_,book_info.author,book_book_info.book

14、_id,book_,book_info.author,book_info.publish,info.publish,book_info.ISBN,book_roduction,book_info.languagbook_info.ISBN,book_roduction,book_info.language,book_info.price,e,book_info.price,book_info.pressmark, AS book_info.pressmark, AS classname,book_stat

15、e.leftnum,classname,book_state.leftnum,book_state.number, book_info.class_idbook_state.number, book_info.class_idFROM book_info FROM book_info INNER JOIN book_state ON book_info.book_id = INNER JOIN book_state ON book_info.book_id = book_state.book_id book_state.book_id INNER JOIN class ON book_info

16、.class_id = class.class_id INNER JOIN class ON book_info.class_id = class.class_id 第16頁/共36頁172 視圖定義信息查詢視圖定義信息查詢(1 1)使用)使用Microsoft SQL Server Microsoft SQL Server Management StudioManagement Studio管理界面管理界面 運(yùn)行運(yùn)行“Microsoft SQL Server Microsoft SQL Server Management StudioManagement Studio管理界面管理界面”,在,

17、在Library_DBLibrary_DB下的視圖中選擇下的視圖中選擇dbo.book_info_viewdbo.book_info_view,單擊鼠標(biāo),單擊鼠標(biāo)右鍵右鍵,在彈出的快捷菜單中訊則在彈出的快捷菜單中訊則“屬性屬性”項(xiàng),項(xiàng),便可查看視圖便可查看視圖book_info_viewbook_info_view屬性屬性 第17頁/共36頁182 視圖定義信息查詢視圖定義信息查詢(2 2)通過執(zhí)行系統(tǒng)存儲(chǔ)過程查看視圖的)通過執(zhí)行系統(tǒng)存儲(chǔ)過程查看視圖的定義信息定義信息 可以通過執(zhí)行系統(tǒng)存儲(chǔ)過程可以通過執(zhí)行系統(tǒng)存儲(chǔ)過程sp_helptextsp_helptext查看視圖的定義信息查看視圖的定義信

18、息 EXEC sp_helptext objnameEXEC sp_helptext objname用戶需要查看的視圖名稱 第18頁/共36頁192 視圖定義信息查詢視圖定義信息查詢(2 2)通過執(zhí)行系統(tǒng)存儲(chǔ)過程查看視圖的)通過執(zhí)行系統(tǒng)存儲(chǔ)過程查看視圖的定義信息定義信息 例:例:EXEC sp_helptext book_info_view 第19頁/共36頁202 視圖定義信息查詢視圖定義信息查詢(2 2)通過執(zhí)行系統(tǒng)存儲(chǔ)過程查看視圖的)通過執(zhí)行系統(tǒng)存儲(chǔ)過程查看視圖的定義信息定義信息 可以通過運(yùn)行系統(tǒng)存儲(chǔ)過程可以通過運(yùn)行系統(tǒng)存儲(chǔ)過程sp_dependssp_depends來獲得視圖對象的參照

19、對象和字段來獲得視圖對象的參照對象和字段 EXEC sp_depends objnameEXEC sp_depends objname 用戶需要查看的視圖名稱 第20頁/共36頁212 視圖定義信息查詢視圖定義信息查詢(2 2)通過執(zhí)行系統(tǒng)存儲(chǔ)過程查看視圖的)通過執(zhí)行系統(tǒng)存儲(chǔ)過程查看視圖的定義信息定義信息 例:例:EXEC sp_depends book_info_view 第21頁/共36頁222 視圖定義信息查詢視圖定義信息查詢(2 2)通過執(zhí)行系統(tǒng)存儲(chǔ)過程查看視圖的)通過執(zhí)行系統(tǒng)存儲(chǔ)過程查看視圖的定義信息定義信息 例:查詢數(shù)據(jù)庫中定義的所有視圖例:查詢數(shù)據(jù)庫中定義的所有視圖 EXEC s

20、p_depends book_info_view 第22頁/共36頁23在定義視圖時(shí)使用加密語句在定義視圖時(shí)使用加密語句例例6-36-3:通過:通過WITH ENCRYPTIONWITH ENCRYPTION子句創(chuàng)建子句創(chuàng)建一個(gè)與例一個(gè)與例6-26-2相同的加密視圖,將加密相同的加密視圖,將加密的新視圖取名為的新視圖取名為book_info_view2book_info_view2。第23頁/共36頁24use Library_DBuse Library_DBgogoCREATE VIEW book_info_view2CREATE VIEW book_info_view2WITH ENCRY

21、PTION WITH ENCRYPTION AS AS SELECT SELECT book_info.book_id,book_,book_info.author,book_info.book_id,book_,book_info.author,book_info.publish,book_info.publish,book_info.ISBN,book_roduction,book_info.ISBN,book_roduction,book_info.language,book_info.price,book_info.l

22、anguage,book_info.price,book_info.pressmark, AS book_info.pressmark, AS classname,book_state.leftnum,classname,book_state.leftnum,book_state.number, book_info.class_idbook_state.number, book_info.class_idFROM book_info FROM book_info INNER JOIN book_state ON book_info.book_id = I

23、NNER JOIN book_state ON book_info.book_id = book_state.book_id book_state.book_id INNER JOIN class ON book_info.class_id=class.class_idINNER JOIN class ON book_info.class_id=class.class_id通過使用通過使用WITH ENCRYPTION WITH ENCRYPTION 子句,用子句,用戶將無法象瀏覽視圖戶將無法象瀏覽視圖book_info_viewbook_info_view的的視圖定義一樣瀏覽視圖視圖定義一樣

24、瀏覽視圖book_info_view2book_info_view2的視圖定義的視圖定義第24頁/共36頁256.3 6.3 視圖的修改和刪除視圖的修改和刪除1 視圖的修改視圖的修改2 視圖的刪除視圖的刪除 3 通過視圖修改數(shù)據(jù)通過視圖修改數(shù)據(jù) 第25頁/共36頁261 視圖的修改視圖的修改ALTER VIEW . . view_name ( column ,.n ) WITH ENCRYPTION AS select_statement WITH CHECK OPTION 第26頁/共36頁27例例6-46-4: 對例對例6-46-4創(chuàng)建的視圖創(chuàng)建的視圖book_info_view2book

25、_info_view2進(jìn)行修改,將該視圖進(jìn)行修改,將該視圖中的記錄的字段減少為圖書名稱、所屬中的記錄的字段減少為圖書名稱、所屬分類名、剩余庫存和總數(shù)量。分類名、剩余庫存和總數(shù)量。第27頁/共36頁28use Library_DBuse Library_DBgogoALTER VIEW book_info_view2ALTER VIEW book_info_view2AS AS SELECT SELECT book_, AS book_, AS classname,book_state.leftnum,book_st

26、ate.numberclassname,book_state.leftnum,book_state.numberFROM book_info FROM book_info INNER JOIN book_state ON book_info.book_id = INNER JOIN book_state ON book_info.book_id = book_state.book_id book_state.book_id INNER JOIN class ON book_info.class_id = INNER JOIN class ON book_info.class_id = clas

27、s.class_idclass.class_id第28頁/共36頁292 視圖的刪除視圖的刪除DROP VIEW . view_name ( column ,.n ) 要?jiǎng)h除的視圖名第29頁/共36頁30例例6-56-5:刪除:刪除Library_DBLibrary_DB數(shù)據(jù)庫中的視圖數(shù)據(jù)庫中的視圖book_info_view2book_info_view2。DROP VIEW dbo.book_info_view2DROP VIEW dbo.book_info_view2第30頁/共36頁313 通過視圖修改數(shù)據(jù)通過視圖修改數(shù)據(jù)在視圖中修改的數(shù)據(jù)操作都將導(dǎo)致對基表數(shù)據(jù)的修改在通過視圖修改數(shù)據(jù)

28、時(shí)應(yīng)注意以下幾個(gè)問題:l 不能對某些特別列進(jìn)行操作;l 不能在視圖中修改在視圖中沒有參照的列;l 不能在含有視圖中沒有參照的列的表中利用視圖作插入操作;l 不能影響多于一個(gè)的基表;l 如果某一視圖在定義中指定了WITH CHECK OPTION選項(xiàng),則進(jìn)行數(shù)據(jù)修改時(shí)將進(jìn)行驗(yàn)證。第31頁/共36頁32例例6-66-6:通過:通過WITH CHECK OPTIONWITH CHECK OPTION子句將子句將強(qiáng)制對視圖所作的所有修改都滿足定義強(qiáng)制對視圖所作的所有修改都滿足定義視圖的視圖的select _statementselect _statement中指定的條中指定的條件。件。第32頁/共36頁33CREATE VIEW lendbook2CREATE VIEW lendbook

溫馨提示

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

最新文檔

評論

0/150

提交評論