#《數(shù)據(jù)庫系統(tǒng)原理》課程基本實(shí)驗(yàn)設(shè)置_第1頁
#《數(shù)據(jù)庫系統(tǒng)原理》課程基本實(shí)驗(yàn)設(shè)置_第2頁
#《數(shù)據(jù)庫系統(tǒng)原理》課程基本實(shí)驗(yàn)設(shè)置_第3頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、目錄每個實(shí)驗(yàn)包括:實(shí)驗(yàn)內(nèi)容實(shí)驗(yàn)要求實(shí)驗(yàn)環(huán)境 (可選 ) 實(shí)驗(yàn)背景知識 (可選 ) 實(shí)驗(yàn)步驟及結(jié)果分析 實(shí)驗(yàn)總結(jié)第一章 概述數(shù)據(jù)庫課程的學(xué)習(xí)需要理論和實(shí)踐的緊密結(jié)合,數(shù)據(jù)庫實(shí)驗(yàn)是數(shù)據(jù)庫學(xué)習(xí)的重要的環(huán) 節(jié)。我們將針對數(shù)據(jù)庫學(xué)習(xí)的實(shí)驗(yàn)環(huán)節(jié)進(jìn)行實(shí)驗(yàn)設(shè)置和指導(dǎo),包括數(shù)據(jù)庫實(shí)驗(yàn)需要的知識、 環(huán)境和內(nèi)容的設(shè)置。數(shù)據(jù)庫課程的目標(biāo)是:理解和掌握數(shù)據(jù)庫的理論知識。 學(xué)生理解數(shù)據(jù)庫系統(tǒng)的基本概念, 掌握數(shù)據(jù)庫系統(tǒng)的基 本理論,包括數(shù)據(jù)庫的特點(diǎn)、結(jié)構(gòu)、關(guān)系數(shù)據(jù)模型、數(shù)據(jù)存儲、數(shù)據(jù)查詢及優(yōu)化、關(guān)系數(shù)據(jù) 庫設(shè)計(jì)、事務(wù)管理等內(nèi)容。了解和熟悉數(shù)據(jù)庫的使用和基本操作, 掌握數(shù)據(jù)訪問方法。 在學(xué)生掌握基本的數(shù)據(jù)庫概 念和理論的基

2、礎(chǔ)上,培養(yǎng)學(xué)生的實(shí)踐能力,學(xué)生能掌握基本的數(shù)據(jù)庫的操作。全面理解數(shù)據(jù)庫系統(tǒng), 能進(jìn)行數(shù)據(jù)庫的設(shè)計(jì), 最終能完成一個完整的數(shù)據(jù)庫使用系統(tǒng)的 設(shè)計(jì)和實(shí)現(xiàn)。數(shù)據(jù)庫實(shí)驗(yàn)是為上面的目標(biāo)服務(wù), 其內(nèi)容的設(shè)置要和數(shù)據(jù)庫的理論學(xué)習(xí)結(jié)合起來。 根據(jù) 課程進(jìn)展和學(xué)生掌握的數(shù)據(jù)庫系統(tǒng)知識的提高, 數(shù)據(jù)庫的實(shí)驗(yàn)分為兩個大的部分。 一個是和 課程緊密相關(guān)的 ,和課程同步的實(shí)驗(yàn),一是在數(shù)據(jù)庫設(shè)計(jì)理論結(jié)束或在課程理論教學(xué)完成后 進(jìn)行的數(shù)據(jù)庫系統(tǒng)的設(shè)計(jì)實(shí)驗(yàn)。這里的實(shí)驗(yàn)指導(dǎo)將是針對和數(shù)據(jù)庫的理論學(xué)習(xí)同步的課程實(shí)驗(yàn)。課程實(shí)驗(yàn)?zāi)康?:通過實(shí)驗(yàn)加深學(xué)生對數(shù)據(jù)庫相關(guān)基本理論和概念的認(rèn)識和理解, 通過對 SQL SERVER 的操作和使

3、用,了解一種具體的數(shù)據(jù)庫管理系統(tǒng),熟悉數(shù)據(jù)庫的操作,提高 學(xué)生數(shù)據(jù)庫實(shí)踐能力。課程實(shí)驗(yàn)環(huán)境:在實(shí)驗(yàn)中,我們選擇 Kingbase 數(shù)據(jù)庫作為基本的 實(shí)驗(yàn)環(huán)境,操作系統(tǒng)可 以是 Windows2000/XP, 在課程實(shí)驗(yàn)中需要用到 KingBase 的管理工具企業(yè)管理器,并用 ISQL 語 言完成實(shí)驗(yàn)操作。實(shí)驗(yàn)方式和要求:課程實(shí)驗(yàn)要求每一個學(xué)生獨(dú)立完成;學(xué)生需要理解每一次實(shí)驗(yàn)內(nèi)容, 先掌握和了解相關(guān)的理論知識, 然后制定實(shí)驗(yàn)步驟, 完 成實(shí)驗(yàn)內(nèi)容;課程實(shí)驗(yàn)雖然分次完成, 但其在內(nèi)容上是連貫的, 前一次實(shí)驗(yàn)的數(shù)據(jù)可能為后面的實(shí)驗(yàn) 所用,因此每一次實(shí)驗(yàn)結(jié)果需要保留;實(shí)驗(yàn)完后,要完成實(shí)驗(yàn)報(bào)告,寫清楚實(shí)

4、驗(yàn)內(nèi)容、實(shí)驗(yàn)步驟和實(shí)驗(yàn)結(jié)果。實(shí)驗(yàn)內(nèi)容設(shè)置: 課程基本實(shí)驗(yàn)根據(jù)理論學(xué)習(xí)的內(nèi)容,包括如下 8 組實(shí)驗(yàn): 實(shí)驗(yàn)一 數(shù)據(jù)庫安裝、數(shù)據(jù)庫創(chuàng)建和維護(hù)實(shí)驗(yàn); 實(shí)驗(yàn)二 數(shù)據(jù)庫表 /視圖的創(chuàng)建和維護(hù)實(shí)驗(yàn); 實(shí)驗(yàn)三 數(shù)據(jù)查詢實(shí)驗(yàn); 實(shí)驗(yàn)四 數(shù)據(jù)庫接口實(shí)驗(yàn); 實(shí)驗(yàn)五 數(shù)據(jù)庫完整性和安全性實(shí)驗(yàn); 實(shí)驗(yàn)六 數(shù)據(jù)查詢分析實(shí)驗(yàn); 實(shí)驗(yàn)七 數(shù)據(jù)庫事務(wù)的創(chuàng)建和運(yùn)行實(shí)驗(yàn); 實(shí)驗(yàn)八 數(shù)據(jù)庫的備份和恢復(fù)實(shí)驗(yàn);我們將在后面詳細(xì)給出每一次實(shí)驗(yàn)的內(nèi)容和要求。第二章 Kingbase 系統(tǒng)的主要內(nèi)容簡介 Kingbase 和實(shí)驗(yàn)用到的管理工具。第三章 ISQL 語言簡介實(shí)驗(yàn)用到的 ISQL 語句及語法。第四章 課程實(shí)驗(yàn)內(nèi)容實(shí)驗(yàn)一 Kingb

5、ase 安裝、數(shù)據(jù)庫創(chuàng)建和維護(hù)實(shí)驗(yàn)實(shí)驗(yàn)?zāi)康?通過對 KINGBASE 的安裝和簡單使用:(1)了解安裝 KINGBASE 的軟硬件環(huán)境和安裝方法;(2)熟悉 KINGBASE 相關(guān)使用;(3)熟悉 KINGBASE 的構(gòu)成和相關(guān)工具;(4)通過 KINGBASE 的使用來理解數(shù)據(jù)庫系統(tǒng)的基本概念 ;2通過創(chuàng)建數(shù)據(jù)庫、并進(jìn)行相應(yīng)的維護(hù),了解并掌握Kingbase 數(shù)據(jù)庫的創(chuàng)建和維護(hù)的不同方法和途徑,并通過這一具體的數(shù)據(jù)庫理解實(shí)際數(shù)據(jù)庫所包含的各要素。實(shí)驗(yàn)內(nèi)容1 Kingbase 安裝( 1) 在 windows2000/XP 上安裝并運(yùn)行 Kingbase 。( 2) 練習(xí)啟動和停止數(shù)據(jù)庫服務(wù)。

6、(3) 通過 Kingbase ES 交互式工具連接數(shù)據(jù)庫。(4) 熟悉 Kingbase ES 交互式工具的各項(xiàng)功能。( 5) 熟悉數(shù)據(jù)庫服務(wù)器的啟動和停止運(yùn)行。( 6)指定具體的安裝位置。2數(shù)據(jù)庫創(chuàng)建和維護(hù)( 1) 創(chuàng)建學(xué)生選課數(shù)據(jù)庫。( 2) 對數(shù)據(jù)庫屬性和參數(shù)進(jìn)行查詢、相應(yīng)的修改和維護(hù),內(nèi)容包括:- 最大連接數(shù)- 服務(wù)器端口- 共享緩存數(shù)- 為 DBA 保留的連接數(shù)- 死鎖檢測時(shí)間- 日志緩沖數(shù)- 設(shè)置系統(tǒng)同步寫( 3) 練習(xí)數(shù)據(jù)庫的刪除等維護(hù);( 4) 用 Kingbase 管理工具和交互式的 ISQL 語句分別完成以上操作。實(shí)驗(yàn)要求及說明1SQL Server 的安裝實(shí)驗(yàn)要求學(xué)生在

7、微機(jī)上安裝 SQL Server 數(shù)據(jù)庫系統(tǒng),為后續(xù)各個實(shí)驗(yàn) 搭建實(shí)驗(yàn)環(huán)境。2數(shù)據(jù)庫創(chuàng)建和維護(hù)實(shí)驗(yàn)則要求面向具體使用領(lǐng)域,利用SQL Server 相關(guān)機(jī)制,創(chuàng)建并維護(hù)數(shù)據(jù)庫系統(tǒng),為后續(xù)各個實(shí)驗(yàn)提供前期準(zhǔn)備3要求學(xué)生根據(jù)以上要求確定實(shí)驗(yàn)步驟,獨(dú)立完成以上實(shí)驗(yàn)內(nèi)容。并在安裝和數(shù)據(jù)庫運(yùn)行 后熟悉 SQL SERVER 的各種運(yùn)行管理。4實(shí)驗(yàn)完成后完成實(shí)驗(yàn)報(bào)告實(shí)驗(yàn)步驟(待定)Kingbase 的安裝過程實(shí)驗(yàn)報(bào)告要求實(shí)驗(yàn)報(bào)告需要完成以下內(nèi)容:實(shí)驗(yàn)?zāi)康?描述本次實(shí)驗(yàn)的目的。實(shí)驗(yàn)平臺及環(huán)境 介紹自己實(shí)驗(yàn)所基于的軟硬件環(huán)境及所用到的工具。實(shí)驗(yàn)內(nèi)容 介紹本次實(shí)驗(yàn)的具體內(nèi)容。實(shí)驗(yàn)步驟 根據(jù)實(shí)驗(yàn)內(nèi)容和實(shí)驗(yàn)過程情況

8、介紹實(shí)驗(yàn)步驟。實(shí)驗(yàn)結(jié)果及分析 對實(shí)驗(yàn)結(jié)果進(jìn)行總結(jié)和分析。 說明建立的數(shù)據(jù)庫的相關(guān)內(nèi)容,和維護(hù)后的相關(guān)屬性的改變。實(shí)驗(yàn)小結(jié) 總結(jié)本次實(shí)驗(yàn)遇到的問題和心得。實(shí)驗(yàn)?zāi)康? 通過進(jìn)行數(shù)據(jù)庫表的建立操作, 熟悉并掌握 Kingbase 數(shù)據(jù)庫表的建立方法, 理解關(guān)系數(shù) 據(jù)庫表的結(jié)構(gòu),鞏固 SQL 標(biāo)準(zhǔn)中關(guān)于數(shù)據(jù)庫表的建立語句。2 通過進(jìn)行數(shù)據(jù)庫表數(shù)據(jù)的增加、 刪除和插入等維護(hù)操作, 熟悉并掌握 Kingbase 數(shù)據(jù)庫數(shù) 據(jù)的操作方法,鞏固 SQL 中關(guān)于數(shù)據(jù)維護(hù)的語句3 通過對 Kingbase 中建立、維護(hù)視圖的實(shí)驗(yàn),熟悉 Kingbase 中對視圖的操作方法和途徑, 理解和掌握視圖的概念實(shí)驗(yàn)內(nèi)容數(shù)據(jù)

9、庫表實(shí)驗(yàn):( 1) 創(chuàng)建數(shù)據(jù)庫表 創(chuàng)建學(xué)生選課數(shù)據(jù)庫中所包含的數(shù)據(jù)庫表,數(shù)據(jù)庫表結(jié)構(gòu)如下: 學(xué)生(學(xué)號,姓名,性別,年齡,系別,班級) 課程(課程編號,課程名稱,學(xué)分) 選修(學(xué)號,課程編號,學(xué)生成績) 要求為各數(shù)據(jù)庫表屬性選擇合適的數(shù)據(jù)類型。列名、數(shù)據(jù)類型(長度列、精度、小數(shù)位數(shù)項(xiàng)) 、是否允許空值等。( 2) 查看和修改表結(jié)構(gòu)。 選擇一個數(shù)據(jù)庫表,練習(xí)對其表結(jié)構(gòu)進(jìn)行相應(yīng)的修改。( 3) 練習(xí)用交互式的 SQL 語句分別完成以上操作。( 4) 對學(xué)生數(shù)據(jù)庫中的三張表分別插入數(shù)據(jù);( 5) 對表中的數(shù)據(jù)進(jìn)行修改;( 6) 對表中的數(shù)據(jù)進(jìn)行刪除操作視圖實(shí)驗(yàn):視圖的建立、修改、刪除(1)建立如下視

10、圖: 學(xué)生選修課程信息視圖,包括以下內(nèi)容: 學(xué)生學(xué)號、姓名、所在系、選修的課程編號、課程名稱、成績(2)修改以上視圖,增加學(xué)生所在班級信息。(3)對以上視圖刪除。實(shí)驗(yàn)要求1) 用交互式語句完成以上操作;2) 能夠?qū)φ麄€的過程進(jìn)行批命令操作;3)4)5)要求學(xué)生獨(dú)立完成以上內(nèi)容。根據(jù)以上內(nèi)容確定實(shí)驗(yàn)步驟。 實(shí)驗(yàn)完成后完成要求的實(shí)驗(yàn)報(bào)告內(nèi)容。實(shí)驗(yàn)步驟 (待定 )實(shí)驗(yàn)報(bào)告要求實(shí)驗(yàn)報(bào)告需要完成以下內(nèi)容:實(shí)驗(yàn)?zāi)康拿枋霰敬螌?shí)驗(yàn)的目的。實(shí)驗(yàn)平臺及環(huán)境介紹自己實(shí)驗(yàn)所基于的軟硬件環(huán)境及所用到的工具。實(shí)驗(yàn)內(nèi)容介紹本次實(shí)驗(yàn)的具體內(nèi)容。實(shí)驗(yàn)步驟根據(jù)實(shí)驗(yàn)內(nèi)容和實(shí)驗(yàn)過程情況介紹實(shí)驗(yàn)步驟。實(shí)驗(yàn)結(jié)果及分析對實(shí)驗(yàn)結(jié)果進(jìn)行總結(jié)和

11、分析。給出完成以上實(shí)驗(yàn)內(nèi)容的 SQL 語句,并對相應(yīng)的 SQL 語句進(jìn)行分析。 說明建立的數(shù)據(jù)庫表的相關(guān)內(nèi)容,和進(jìn)行的相關(guān)維護(hù)工作。 實(shí)驗(yàn)小結(jié)總結(jié)本次實(shí)驗(yàn)遇到的問題和心得。實(shí)驗(yàn)三 數(shù)據(jù)查詢實(shí)驗(yàn)實(shí)驗(yàn)?zāi)康耐ㄟ^對實(shí)驗(yàn)二中建立的學(xué)生數(shù)據(jù)庫關(guān)系表和視圖的各種查詢的操作,加深對 SQL 查詢 語言的了解,掌握相關(guān)查詢語句的語法和使用方法。實(shí)驗(yàn)內(nèi)容數(shù)據(jù)庫關(guān)系表查詢:(1)簡單的查詢操作,包括單表的查詢、選擇條件、結(jié)果排序等的練習(xí);(2)多表的連接查詢,包括等值連接、自然連接等;(3)復(fù)雜的查詢操作,包括使用分組函數(shù)等庫函數(shù)的查詢操作;(4)練習(xí)帶有 IN 、比較符的嵌套查詢。 具體內(nèi)容包括:(1)在簡單查詢

12、實(shí)驗(yàn)中,在 sql 語句完成以下查詢操作: 查詢“數(shù)據(jù)庫原理”課程的學(xué)分;查詢選修了課程編號為“ C01 ”的學(xué)生的學(xué)號和成績,并將成績按降序輸出; 查詢學(xué)號為“ 31401”的學(xué)生選修的課程編號和成績; 查詢選修了課程編號為“ C01 ”且成績高于85分的學(xué)生的學(xué)號和成績。(2)在多表連接的查詢實(shí)驗(yàn)中, 在SQL SERVER提供的交互式語言環(huán)境下用 Transact SQL 語句完成以下查詢操作:查詢選修了課程編號為“ C01 ”且成績高于85分的學(xué)生的學(xué)號、姓名和成績; 查詢所有學(xué)生的學(xué)號、姓名、選修的課程名稱和成績;(3)在復(fù)雜查詢實(shí)驗(yàn)中,用 SQL 語句完成以下查詢操作: 查詢至少選

13、修了三門課程的學(xué)生的學(xué)號和姓名; 查詢所有學(xué)生的學(xué)號和他選修課程的最高成績,要求他的選修課程中沒有成績?yōu)榭盏?。?)在嵌套查詢實(shí)驗(yàn)中,在 kingbase 提供的交互式語言環(huán)境下用 iSQL 語句完成以下查詢 操作,要求寫嵌套查詢語句:查詢選修了數(shù)據(jù)庫原理的學(xué)生的學(xué)號和姓名; 查詢沒有選修數(shù)據(jù)庫原理的學(xué)生的學(xué)號和姓名; 查詢至少選修了學(xué)號為“ 31401”的學(xué)生所選修的所有課程的學(xué)生的學(xué)號和姓名。視圖查詢:對實(shí)驗(yàn)二建立的視圖進(jìn)行相關(guān)的查詢操作,如:查詢選修了課程編號為“ C01 ”的學(xué)生的學(xué)號和成績; 查詢所有學(xué)生的學(xué)號、姓名、選修的課程名稱和成績; 查詢選修了數(shù)據(jù)庫原理的學(xué)生的學(xué)號和姓名。實(shí)

14、驗(yàn)要求(1)用 SQL 語句完成以上操作(2)要求學(xué)生獨(dú)立完成以上內(nèi)容。(3)實(shí)驗(yàn)完成后完成要求的實(shí)驗(yàn)報(bào)告內(nèi)容。實(shí)驗(yàn)步驟 (待定 )實(shí)驗(yàn)四數(shù)據(jù)庫接口實(shí)驗(yàn)-1實(shí)驗(yàn)?zāi)康?通過實(shí)驗(yàn)了解通用數(shù)據(jù)庫使用編程接口ODBC 的基本原理和實(shí)現(xiàn)機(jī)制, 熟悉主要的 ODBC接口的語法和使用方法;2利用 C 語言 (或其它支持 ODBC 接口的高級程序設(shè)計(jì)語言 )編程實(shí)現(xiàn)簡單的數(shù)據(jù)庫使用程 序,掌握基于 ODBC 的數(shù)據(jù)庫訪問的基本原理和方法3學(xué)習(xí) java 語言,并采用 jdbc 接口方式對數(shù)據(jù)庫進(jìn)行訪問實(shí)驗(yàn)內(nèi)容和步驟1. 以教科書第四章關(guān)于 SQL語言相關(guān)內(nèi)容為基礎(chǔ),課后查閱、自學(xué)ODBC接口有關(guān)內(nèi)容,包括OD

15、BC的體系結(jié)構(gòu)、工作原理、數(shù)據(jù)訪問過程、主要API接口的語法和使用方法等。2.以實(shí)驗(yàn)二建立的學(xué)生數(shù)據(jù)庫為基礎(chǔ),編寫C語言(或其它支持ODBC接口的高級程序設(shè)計(jì)語言)數(shù)據(jù)庫使用程序,按照如下步驟訪問數(shù)據(jù)庫(a) Stepl. ODBC初始化,為 ODBC分配環(huán)境句柄(b) Step2.建立使用程序和 ODBC數(shù)據(jù)源的連接(c) Step3.利用SQLExecDirect語句,實(shí)現(xiàn)數(shù)據(jù)庫使用程序?qū)?shù)據(jù)庫的建立、查詢、修改、刪除等操作(d) Step4.檢索查詢結(jié)果集(e) Step5.結(jié)束數(shù)據(jù)庫使用程序?qū)嶒?yàn)要求1 要求所編寫的數(shù)據(jù)庫訪問使用程序中使用到以下主要的ODBC API函數(shù):(1) SQL

16、ALLocEnv初始化ODB(環(huán)境,返回環(huán)境句柄SQLALLocConnect為連接句柄分配內(nèi)存并返回連接句柄(3) SQLConnect連接一個SQL數(shù)據(jù)資源 SQLDriverCo nn ect連接一個SQL數(shù)據(jù)資源,允許驅(qū)動器向用戶詢問信息 SQLALLocStmt為語句句柄分配內(nèi)存,.-ii:j劃記-句句疝(6) SQLExecDirect把SQL語句送到數(shù)據(jù)庫服務(wù)器,請求執(zhí)行由SQL語句定義的數(shù)據(jù)庫訪問 SQLFetchAdva nces將游標(biāo)移動到到查詢結(jié)果集的下一行(或第一行)(8) SQLGetData按照游標(biāo)指向的位置,從查詢結(jié)果集的特定的一列取回?cái)?shù)據(jù)(9) SQLFreeS

17、tmt釋放和語句句柄相關(guān)的資源(10) SQLDisco nnect切斷連接(11) SQLFreeCo nn ect釋放和連接句柄相關(guān)的資源(12) SQLFreeE nv2.實(shí)驗(yàn)五數(shù)據(jù)庫完整性和安全性實(shí)驗(yàn)實(shí)驗(yàn)?zāi)康?. 通過對完整性規(guī)則的定義實(shí)現(xiàn),熟悉了解kingbase中完整性保證的規(guī)則和實(shí)現(xiàn)方法,加深對數(shù)據(jù)完整性的理解。2. 通過對安全性相關(guān)內(nèi)容的定義,熟悉了解kingbase中安全性的內(nèi)容和實(shí)現(xiàn)方法,加深對數(shù)據(jù)庫安全性的理解實(shí)驗(yàn)內(nèi)容完整性實(shí)驗(yàn):(1) 分別定義學(xué)生數(shù)據(jù)庫中各基表的主鍵、外鍵,實(shí)現(xiàn)實(shí)體完整性約束和參照完整性約束;CREATE TABLE sc (sno varchar(6

18、) NOT NULL,eno varchar(3) NOT NULL,grade in t(11) DEFAULT NULL,PRIMARY KEY (sno ,cno)DEFAULT CHARSET=gbkCreate Table stude nt (sno varchar(6) NOT NULL,sn ame varchar(6) DEFAULT NULL,sex varchar(2) DEFAULT NULL,bdate datetime DEFAULT NULL,dept varchar(8) DEFAULT NULL,class no varchar(3) DEFAULT NULL,

19、PRIMARY KEY (sn o)DEFAULT CHARSET=gbkCreate Table course (cno varchar(3) NOT NULL,cname varchar(12) DEFAULT NULL,Ihour in t(11) DEFAULT NULL,credit in t(11) DEFAULT NULL,semester varchar(2) DEFAULT NULL,PRIMARY KEY (eno)DEFAULT CHARSET=gbk(2)分別向?qū)W生表、課程表插入具有相同學(xué)號和相同課程編號的學(xué)生數(shù)據(jù)和課程數(shù)據(jù), 驗(yàn)證其實(shí)體完整性約束;(3)向?qū)W生選課表中

20、插入一條數(shù)據(jù),課程編號是課程表中沒有的,驗(yàn)證參照完整性約束;(4)刪除學(xué)生表中的所有數(shù)據(jù),驗(yàn)證參照完整性約束;(5)定義存儲過程,完成查詢某個學(xué)生的選課情況,并執(zhí)行。存儲過程存放在服務(wù)器端數(shù)據(jù)庫中, 是經(jīng)編譯過的能完成特定功能的 Transact-SQL語句的 集合,是作為一個單元來處理的。用戶可以像使用函數(shù)一樣重復(fù)調(diào)用這些存儲過程, 實(shí)現(xiàn)它 所定義的操作。存儲過程在第一次執(zhí)行時(shí)進(jìn)行語法檢查和編譯,執(zhí)行后它的執(zhí)行計(jì)劃就駐留在高速緩存中,用于后續(xù)調(diào)用。存儲過程可以接收和輸出參數(shù)、返回執(zhí)行存儲過程的狀態(tài)值,還可以嵌套調(diào)用。存儲過程的優(yōu)點(diǎn)實(shí)現(xiàn)了模塊化編程。存儲過程具有對數(shù)據(jù)庫立即訪問的功能,使用存儲

21、過程可以加快程序的運(yùn)行速度。使用存儲過程可以減少網(wǎng)絡(luò)流量。使用存儲過程可以提高數(shù)據(jù)庫的安全性。視圖存儲過程語句只能是SELECT語句可以包含程序流、邏輯以及 SELECT語句輸入、返回結(jié)果不能接受參數(shù),只能返回結(jié) 果集可以有輸入輸出參數(shù),也可以有返回值典型使用多個表格的連接查詢完成某個特定的較復(fù)雜的任務(wù)用CREATE PROCEDURE 命令創(chuàng)建存儲過程創(chuàng)建存儲過程前,應(yīng)該考慮下列幾個事項(xiàng): 不能將CREATE PROCEDURE 語句和其它 SQL語句組合到單個批處理中。每一個批處 理就是一個go語句段. 創(chuàng)建存儲過程的權(quán)限默認(rèn)屬于數(shù)據(jù)庫所有者,該所有者可將此權(quán)限授予其他用戶。 存儲過程是數(shù)

22、據(jù)庫對象,其名稱必須遵守標(biāo)識符規(guī)則,應(yīng)避免使用sp_前綴,以免和系統(tǒng)存儲過程相混淆 只能在當(dāng)前數(shù)據(jù)庫中創(chuàng)建存儲過程。 一個存儲過程的最大尺寸為128M。(6) 定義觸發(fā)器,當(dāng)向?qū)W生表插入新的一條記錄時(shí),將所有學(xué)生出生日期加1;并對其 進(jìn)行測試。(7)用sql完成以上操作。安全性實(shí)驗(yàn)內(nèi)容(1)定義一新的登陸帳號、數(shù)據(jù)庫用戶,并授予其訪問學(xué)生數(shù)據(jù)庫的讀權(quán)限;(2)分別用sa用戶和新定義的用戶訪問學(xué)生數(shù)據(jù)庫,并對其中的學(xué)生表數(shù)據(jù)進(jìn)行修改;(3)創(chuàng)建數(shù)據(jù)庫角色,并授予訪問學(xué)生數(shù)據(jù)庫的讀、寫權(quán)限;4)5)6)實(shí)驗(yàn)六數(shù)據(jù)查詢分析實(shí)驗(yàn)將角色賦予( 1)中定義的用戶,建立用戶和角色聯(lián)系; 再次用此用戶訪問學(xué)生

23、數(shù)據(jù)庫,并對其中的學(xué)生表數(shù)據(jù)進(jìn)行修改。 用 SQL 語句分別完成以上內(nèi)容。實(shí)驗(yàn)?zāi)康耐ㄟ^對不同情況下查詢語句的執(zhí)行分析, 鞏固和加深對查詢和查詢優(yōu)化相關(guān)理論知識的 理解,提高優(yōu)化數(shù)據(jù)庫系統(tǒng)的實(shí)踐能力,熟悉了解kin gbase中查詢分析器的使用,并進(jìn)一步提高編寫復(fù)雜查詢的 SQL 程序的能力。實(shí)驗(yàn)內(nèi)容1.索引對查詢的影響(1)對結(jié)果集只有一個元組的查詢分三種情況進(jìn)行執(zhí)行(必如查詢一個具體學(xué)生的信 息):不建立索引,(學(xué)號上)建立非聚集索引,(學(xué)號上)建立聚集索引。 用查詢分析器的執(zhí)行步驟和結(jié)果對執(zhí)行進(jìn)行分析比較。(2) 對結(jié)果集中有多個元組的查詢(例如查看某門成績的成績表)分類似(1)的三種情

24、況進(jìn)行執(zhí)行比較。(3)對查詢條件為一個連續(xù)的范圍的查詢(例如查看學(xué)號在某個范圍內(nèi)的學(xué)生的選課情 況)分類似( 1)的三種情況進(jìn)行執(zhí)行比較,注意系統(tǒng)處理的選擇。(4) 索引代價(jià)。 在有索引和無索引的情況下插入數(shù)據(jù)(例如在選課情況表 SC 上插入數(shù)據(jù)) 比較插入的執(zhí)行效率。2 對相同查詢功能不同查詢語句的執(zhí)行比較分析(1 ) group byselect avg(grade)from scgroup by cnohaving cno =100select avg(grade)from scwhere cno = 100有和沒有 group by ,比較其查詢效率,并分析。(2)select sno

25、 , sname , agefrom student s1where age =(select max(age)from student s2where s1.dept = s2.dept)另一個:select dept , max(age) as maxAge into tmpfrom studentgroup by dept;select sno, sname , agefrom student , tmpwhere student.age = tmp.maxAge and tmp.dept=student.deptdrop table tmp; 重寫后的查詢一定比原始查詢更優(yōu)嗎?通過執(zhí)行分析結(jié)果。 (3)對下面兩個查詢進(jìn)行比較select sname , agefrom studentwhere dept != 10 and age > all(select agefrom studentwhere dept = 10)另:select sname ,agefrom studentwhere dept != 10 and age >( select max(age)from s

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(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

提交評論