




已閱讀5頁,還剩22頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
數(shù)據(jù)庫原理與技術(shù)實驗報告實驗一:安裝SQL Server數(shù)據(jù)庫管理系統(tǒng)班 級學(xué) 號姓 名日 期實 驗?zāi)?的1學(xué)會安裝SQL Server數(shù)據(jù)庫管理系統(tǒng),為今后的數(shù)據(jù)庫實驗搭建實驗平臺。2了解配置數(shù)據(jù)庫客戶/服務(wù)器環(huán)境的基本方法和知識。實 驗環(huán) 境1操作系統(tǒng)版本: 2SQL Server版本: 3CPU: MHZ4內(nèi)存: MB5硬盤: GB實 驗步 驟1制訂安裝計劃確定SQL Server的驗證方式: 確定運行SQL Server的啟動帳戶: 確定SQL Server程序文件和數(shù)據(jù)文件的安裝目錄: 確定SQL Server所使用的字符集和排序規(guī)則: 確定SQL Server所使用的網(wǎng)絡(luò)協(xié)議庫: 2實施安裝按照安裝程序的提示進行安裝。3配置客戶/服務(wù)器環(huán)境打開服務(wù)器網(wǎng)絡(luò)實用工具,查看和配置服務(wù)器所使用的網(wǎng)絡(luò)協(xié)議: 。打開客戶端網(wǎng)絡(luò)實用工具,查看和配置客戶所使用的網(wǎng)絡(luò)協(xié)議: 。4驗證安裝打開企業(yè)管理器,連接到所安裝的SQL Server實例,啟動、關(guān)閉和暫停該實例。問 題討 論1. SQL Server都有哪幾個版本?2. SQL Server的兩種驗證模式有何不同?3. SQL Server的啟動帳戶的作用是什么?是用戶登錄到SQL Server時所使用的帳戶嗎?選擇本地帳戶和域帳戶作為啟動帳戶有何不同?該帳戶的權(quán)限對SQL Server有沒有影響?4. 字符集和排序規(guī)則有什么用處?5. 網(wǎng)絡(luò)協(xié)議庫有什么用處?是否只需要配置服務(wù)器的網(wǎng)絡(luò)協(xié)議庫就可以了?為什么?6. 如果已經(jīng)在一臺機器上安裝了SQL Server服務(wù)器,想從另外一臺機器上訪問它,應(yīng)當(dāng)怎么辦?7. 企業(yè)管理器是否就是SQL Server的數(shù)據(jù)庫引擎呢?我 的問 題教師評語實驗二:創(chuàng)建數(shù)據(jù)庫、表和定義完整性約束班 級學(xué) 號姓 名日 期實 驗?zāi)?的1. 學(xué)會創(chuàng)建SQL Server數(shù)據(jù)庫的SQL命令,并配置數(shù)據(jù)庫的屬性。學(xué)會創(chuàng)建、修改和刪除表和完整性約束的SQL 命令。2. 驗證數(shù)據(jù)庫的物理模式和邏輯模式。實 驗步 驟1. 在企業(yè)管理器中查看SQL Server都有哪些數(shù)據(jù)庫。2. 在企業(yè)管理器中創(chuàng)建一個新的數(shù)據(jù)庫School,注意系統(tǒng)要求你輸入了什么信息。3. 在企業(yè)管理器中查看上面新創(chuàng)建的數(shù)據(jù)庫的屬性,配置數(shù)據(jù)文件的自動增長選項。4. 使用查詢分析器,創(chuàng)建以下幾個表: Student表(學(xué)生表),包含的字段有:Sno(學(xué)號),字符型,長度為6位數(shù)字,是Student表的主鍵。Sname(姓名),字符型,長度為4個漢字,不能為空。gender(性別),字符型,長度為1個漢字,只能接受男和女兩個值,默認值為男。age(年齡),整型,可以為空,但如果有值則必須在15歲和45歲之間取值。dept(系別),整型,可以為空,但如果有值必須在1到30之間取值。 Course表(課程表),包含的字段有:Cno(課程號),字符型,長度為4位數(shù)字,是Course表的主鍵。Cname(課程名),字符型,長度為10個漢字,不能為空。Cpno(先修課課程號),字符型,長度為4位數(shù)字,允許為空,它引用了Cno,是Course表的外部鍵。 SC表(選課表),包含的字段有:Sno(學(xué)號),字符型,長度為6位數(shù)字,它引用了Student表的Sno。Cno(課程號),字符型,長度為4位數(shù)字,它引用了Course表的Cno。Grade(成績),整型,可以為空,但如果不為空,必須在0到100之間取值,默認值為空。5. 使用查詢分析器,對上面所創(chuàng)建的表及其完整性約束定義進行修改: 將學(xué)生表中的Sname字段的長度改為6個漢字。 為SC表添加由sno和cno構(gòu)成的主鍵。 為Course表增加一個字段Credit(學(xué)分),整型,不能為空,只能在1到5之間取值。 對Course表Credit字段上的完整性約束進行修改,使其在1到6之間取值。6. 刪除上述所創(chuàng)建的表。問 題討 論1. SQL Server自身包含哪幾個數(shù)據(jù)庫,它們分別是做什么用的?2. 你所創(chuàng)建的數(shù)據(jù)庫是以什么樣的方式保存在計算機中的?在文件管理器中可見嗎?創(chuàng)建一個數(shù)據(jù)庫,需要創(chuàng)建幾個文件,它們分別是做什么用的?它們對應(yīng)于三級模式中的哪一級?3. 設(shè)想一下,為什么SQL Server允許你創(chuàng)建多個數(shù)據(jù)庫?為什么不限制你只能創(chuàng)建一個數(shù)據(jù)庫?4. 為什么要提供文件自動增長選項?允許文件自動增長,數(shù)據(jù)庫管理員是否就高枕無憂了呢?5. 恢復(fù)模式是干什么用的?幾種不同的恢復(fù)模式之間有何不同?6. 創(chuàng)建的表存儲在什么地方?它們對應(yīng)于三級模式中的哪一級?7. 可以為字段定義哪些數(shù)據(jù)類型?char、nchar、varchar、nvarchar之間有什么區(qū)別嗎?8. 可以為表定義哪些完整性約束?它們各自的作用是什么?9. 如果想要修改完整性約束,應(yīng)該怎么辦呢?10. 如果不為表定義聲明性的完整性約束,我們還有什么別的辦法來維護這些完整性約束呢?與聲明性的完整性約束相比,它們的優(yōu)、缺點又是什么呢?11. 能夠隨意對表及其完整性約束進行修改嗎?這樣做可能會有什么樣的問題?舉例說明。我的問題教師評語實驗三:使用DML語句班 級學(xué) 號姓 名日 期實 驗?zāi)?的1學(xué)習(xí)和掌握INSERT命令的各種形式。2學(xué)習(xí)和掌握UPDATE命令的各種形式。3學(xué)習(xí)和掌握DELETE命令的各種形式。4了解完整性約束對DML命令的限制。實 驗步 驟1. Insert命令: 向?qū)W生表中插入如下記錄:sno為95020,sname為陳冬,gender為男,age為18,dept為10; 向?qū)W生表中插入如下記錄:sno為95021,sname為李白; 向?qū)W生表中插入如下記錄:sno為95022,gender為女; 向?qū)W生表中插入如下記錄:sname為李清照,gender為女; 向?qū)W生表中插入如下記錄:sno為95021,sname為李清照; 向?qū)W生表中插入如下記錄:sno為95022,sname為李清照,gender為女,age為10; 向?qū)W生表中插入如下記錄:sno為95023,sname為杜甫,dept為36; 利用企業(yè)管理器生成學(xué)生表的DDL語句,將它拷貝到查詢分析器,將其中的表名改為Student_copy,然后執(zhí)行修改后的DDL語句。接著,利用Insert語句將Student表中的數(shù)據(jù)拷貝到Student_Copy表。 向課程表插入如下記錄:cno為1,cname為數(shù)據(jù)庫,cpno為5,credit為4。 向課程表插入如下記錄:cno為2,cname為數(shù)學(xué),credit為2。 向課程表插入如下記錄:cno為6,cname為數(shù)據(jù)結(jié)構(gòu),credit為4。 向課程表插入如下記錄:cno為1,cname為數(shù)據(jù)庫,cpno為5,credit為4。 向選課表中插入如下記錄:sno為95020,cno為1; 向選課表中插入如下記錄:sno為95022,cno為6; 向選課表中插入如下記錄:sno為95020,cno為2,grade為100; 向選課表中插入如下記錄:sno為95020; 向選課表中插入如下記錄:cno為1; 向選課表中插入如下記錄:sno為-1,cno為1;實 驗步 驟2. Delete命令: 從學(xué)生表中刪除sno為95023的學(xué)生的記錄。 從學(xué)生表中刪除sno為95020的學(xué)生的記錄。 從課程表中刪除cno為2的課程的記錄。 從選課表中刪除sno為95020,cno為2的記錄。 從課程表中刪除cno為2的課程的記錄。 從選課表中刪除dept為空值的學(xué)生所選課程的記錄。3. Update命令: 將選課表中sno為95020,cno為1的記錄的grade改為90; 將選課表中sno為95020,cno為1的記錄的grade改為200; 將選課表中sno為95020,cno為1的記錄的sno改為-1; 將學(xué)生表中sno為95022的記錄的sno改為95020。 將學(xué)生表中sno為95020的記錄的sno改為95025。問 題討 論1. Insert語句有哪幾種形式,它們分別適合在什么情況下使用? 2. 在Insert語句中可以使用子查詢嗎?可以在哪些子句中使用?3. 造成Insert語句無法完成的原因都有哪些?4. 主鍵和外部鍵對于Insert語句有什么要求?5. Delete語句有哪幾種形式?在使用Delete語句時必須注意什么事情?Delete語句與Drop Table語句有什么區(qū)別?6. 在Delete語句中可以使用子查詢嗎?可以在哪些子句中使用?7. 造成Delete語句無法完成的原因都有哪些?8. 如果由于參照完整性約束的原因造成Delete語句無法執(zhí)行,那么可以使用哪些辦法來加以解決?9. Update語句有哪幾種形式?在使用Update語句時必須注意什么事情?10. 在Update子句中可以使用子查詢嗎?可以在哪些子句中使用?11. 造成Update語句無法完成的原因有哪些?12. 如果由于參照完整性約束的原因造成Update語句無法執(zhí)行,那么可以使用哪些辦法來加以解決?我 的問 題教師評語實驗四:查詢班 級學(xué) 號姓 名日 期實 驗?zāi)?的掌握SELECT語句的語法和各種使用技巧,包括:1. 單表查詢:投影操作、消除重復(fù)行、使用表達式、使用別名、排序。2. 條件查詢:簡單條件、復(fù)合條件、空值查詢、字符串匹配查詢。3. 聚集函數(shù)與分組:使用聚集函數(shù),按指定表達式和條件進行分組統(tǒng)計和篩選。4. 子查詢:普通子查詢與相關(guān)子查詢(除法的實現(xiàn))5. 集合操作:并、交、差的檢索實 驗步 驟設(shè)有以下關(guān)系模式:S(SNO,SNAME,CITY)其中,S表示SUPPLIER(供應(yīng)商),SNO為供應(yīng)者代號,SNAME為供應(yīng)者的名字,CITY為供應(yīng)者所在的城市,主鍵為SNO。P(PNO,PNAME,COLOR,WEIGHT)其中,P表示PART(零件),PNO為零件代號,PNAME為零件名,COLOR為零件顏色,WEIGHT為零件重量,主鍵為PNO。J(JNO,JNAME,CITY)其中,J表示JOB(工程),JNO為工程編號,JNAME為工程名,CITY為工程所在城市,主鍵為JNO。SPJ(SNO,PNO,JNO,QTY)其中,SPJ表示供應(yīng)關(guān)系,SNO是為指定工程提供零件的供應(yīng)者代號,PNO是所提供的零件代號,JNO為工程編號,QTY表示提供的零件數(shù)量,主鍵為(SNO,PNO,JNO),外部鍵分別為:SNO,PNO,JNO。下圖表示供應(yīng)者(S)零件(P)工程(J)供應(yīng)關(guān)系(SPJ)數(shù)據(jù)庫,試做以下各題:(一)用SQL的DDL語言創(chuàng)建S,P,J,SPJ四個基本表。(二)給出下列各題的查詢、存貯等操作的語句序列,并且上機驗證、打印出操作結(jié)果。(1)取出所有工程的全部細節(jié);(2)取出所在城市為上海的所有工程的全部細節(jié);(3)取出重量最輕的那些零件的號碼;(4)取出為工程J1提供零件的供應(yīng)者的代號;(5)取出為工程J1提供零件P1的供應(yīng)者的代號;(6)取出由供應(yīng)者S1提供零件的工程的名稱;(7)取出供應(yīng)者S1提供的零件的顏色;(8)取出為工程J1和J2提供零件的供應(yīng)者的代號;(9)取出為工程J1提供紅色零件的供應(yīng)者的代號;(10)取出為所在城市為上海的工程提供零件的供應(yīng)者的代號;實 驗步 驟(11)取出為所在城市為上?;虮本┑墓こ烫峁┘t色零件的供應(yīng)者的代號;(12)取出供應(yīng)者與工程所在城市相同的供應(yīng)者提供的零件的代號;(13)取出上海的供應(yīng)者提供給上海的任一工程的零件的代號;(14)取出至少由一個和工程不在同一城市的供應(yīng)者提供零件的工程的代號;(15)取出上海供應(yīng)者不提供任何零件的工程的代號;(16)取出這樣一些供應(yīng)者的代號,他們能夠提供至少一種由紅色零件的供應(yīng)者提供的零件;(17)取出由供應(yīng)者S1提供零件的工程的代號;(18)取出所有這樣一些CITY,CITY二元組,使得第一個城市的供應(yīng)者為第二個城市的工程提供零件;(19)取出所有這樣的三元組CITY,PNO,CITY,使得第一個城市的供應(yīng)者為第二個城市的工程提供指定的零件;(20)重復(fù)習(xí)題19,但不檢索兩個CITY值相同的三元組;(21)取出提供給上海的所有工程的零件代號;(22)取出至少需要供應(yīng)者S1提供的所有零件的工程的代號;(23)取出供應(yīng)者S1提供的代號為P1的零件總數(shù);(24)取出每個工程的供應(yīng)商數(shù);(25)取出所需的零件總數(shù)大于1000的工程代號;(26)取出為所有工程提供同樣零件的供應(yīng)商的代號及其產(chǎn)品代號;實 驗步 驟JSPJJNOJNAMECITYSNOPNOJNOQTYJ1JN1上海S1P1J1200J2JN2廣州S1P1J4700J3JN3南京S2P3J1400J4JN4南京S2P3J2200J5JN5上海S2P3J3200J6JN6武漢S2P3J4500J7JN7上海S2P3J5600S2P3J6400PS2P3J7800PNOPNAMECOLORWEIGHTS2P5J2100P1PN1紅12S3P3J1200P2PN2綠18S3P4J2500P3PN3藍20S4P6J3300P4PN4紅13S4P6J7300P5PN5藍11S5P2J2200P6PN6紅15S5P2J4100S5P5J5500SS5P5J7100SNOSNAMECITYS5P6J2200S1N1上海S5P1J41000S2N2北京S5P3J41200S3N3北京S5P4J4800S4N4上海S5P5J4400S5N5南京S5P6J4500問 題討 論1. select子句后面只能使用表中的字段嗎?如果不是,找出一些例子。2. 別名有什么作用?select子句中的別名在其它子句中也能使用嗎?3. 如果不使用order by子句,查詢返回的結(jié)果是按照什么排序的?如果在order by子句中使用了多個排序字段,排序結(jié)果又是怎樣的呢?4. 什么是空值?兩個空值是相等的嗎?當(dāng)非空值與空值進行運算時,結(jié)果是什么?聚集函數(shù)是怎么處理空值的?5. where和having之間有何異同?如果在一個select語句中同時使用了where和having,它們的執(zhí)行順序又是怎樣的?6. 如何知道表中是否有重復(fù)的記錄行?7. 什么時候需要進行連接操作?連接兩個表時,如果不指定連接條件,將會出現(xiàn)什么樣的情況?連接條件中,用于連接的來自兩個表的字段必須是同名的嗎?比較運算符必須是等號嗎?8. 表的自身連接是怎么回事?內(nèi)連接和外連接又是怎么回事?外連接又分幾種類型,怎么來區(qū)分它們?9. 子查詢和連接查詢之間可以相互替代嗎?如果不能,舉例說明。10. 如何區(qū)分普通子查詢和相關(guān)子查詢?這兩種查詢的執(zhí)行步驟如何?11. 在將外部查詢的字段與子查詢返回的結(jié)果進行比較時,應(yīng)當(dāng)注意什么問題?12. 什么是除法?利用select語句可以通過哪幾種方法來實現(xiàn)除法?它們之間可以相互替代嗎?如果不能舉例說明。13. 并、交、差的檢索對于要操作的集合有什么要求?如果不滿足這樣的要求,又需要進行并、交、差的檢索,應(yīng)當(dāng)怎么辦?14. 有些數(shù)據(jù)庫(例如SQL Server)并沒有提供完成交和差操作的操作符,應(yīng)當(dāng)采用什么樣的方法來實現(xiàn)這些操作?請舉例說明。所給出的方法是通用的嗎?15. 如果要對并、交、差的結(jié)果進行進一步的處理,如排序,那么Order by子句應(yīng)當(dāng)放到哪里?排序字段用哪個查詢中的字段名?我 的問 題教師評語實驗五:索引與優(yōu)化班 級學(xué) 號姓 名日 期實驗?zāi)康?學(xué)會創(chuàng)建和刪除索引的SQL命令。2學(xué)會使用索引來維護數(shù)據(jù)的唯一性。3學(xué)會利用索引對查詢進行優(yōu)化。實驗步驟1 創(chuàng)建以下索引: 在學(xué)生表上的學(xué)號字段上創(chuàng)建索引。 在學(xué)生表上的學(xué)號字段上創(chuàng)建唯一索引。 在學(xué)生表上的學(xué)號字段上創(chuàng)建聚簇索引。 在學(xué)生表上的學(xué)號字段上創(chuàng)建唯一、聚簇索引。 在選課表上的學(xué)號和課程號字段上創(chuàng)建組合索引。 在選課表上的學(xué)號和課程號字段上創(chuàng)建聚簇、組合索引。 在選課表上的學(xué)號和課程號字段上創(chuàng)建聚簇、組合、唯一索引。 刪除上述索引。2 唯一索引的作用: 向沒有唯一索引的學(xué)生表中插入一條重復(fù)記錄(學(xué)號與其他學(xué)生重復(fù)),是否成功? 接著,在該表的學(xué)號字段上創(chuàng)建唯一索引,是否成功? 將上述重復(fù)記錄刪掉,再次創(chuàng)建唯一索引,是否成功? 然后再次插入上述重復(fù)的記錄,是否成功?3 索引的應(yīng)用實例: 非組合索引:1) 刪除學(xué)生表上的所有索引,按照學(xué)號檢索學(xué)生表中的某一個學(xué)生,查看查詢執(zhí)行計劃。2) 在學(xué)號字段上創(chuàng)建索引,再次執(zhí)行上面的操作,查看查詢執(zhí)行計劃。3) 保留上述索引,按照學(xué)生姓名檢索表中的某一個學(xué)生,查看執(zhí)行計劃。4) 保留上述索引,按照一個學(xué)號的范圍來查找學(xué)生(例如sno betweenand.,或者sno大于、小于、不等于、in等),查看執(zhí)行計劃。5) 保留上述索引,將學(xué)號應(yīng)用在表達式中(如sno+195005)進行查找,查看執(zhí)行計劃。6) 刪除學(xué)號字段上的索引,重新創(chuàng)建一個聚簇索引,再次執(zhí)行上面的操作,查看查詢執(zhí)行計劃。7) 保留上述聚簇索引,按照學(xué)生姓名檢索表中的某一個學(xué)生,查看執(zhí)行計劃。8) 重新執(zhí)行4),5)的操作,查看執(zhí)行計劃。實驗步驟9) 比較上述查詢所獲得的查詢計劃和查詢代價信息,并解釋所發(fā)現(xiàn)的現(xiàn)象。 組合索引:1) 刪除選課表上的所有索引,按照學(xué)號和課程號檢索其中某個學(xué)生所選的一門課程的成績,查看查詢執(zhí)行計劃。2) 在學(xué)號和課程號字段上分別創(chuàng)建索引,再次執(zhí)行上面的操作,查看查詢執(zhí)行計劃。3) 保留上述索引,按照成績檢索表中的某一個記錄,查看執(zhí)行計劃。4) 分別刪除學(xué)號字段和課程號字段上的索引,重新創(chuàng)建一個組合索引,再次執(zhí)行上面的操作,查看查詢執(zhí)行計劃。5) 保留上述索引,按照學(xué)生學(xué)號檢索某個學(xué)生所選課程,查看執(zhí)行計劃。6) 保留上述索引,按照學(xué)生所選課程號檢索選修某一個課程的學(xué)生,查看執(zhí)行計劃。7) 刪除上述組合索引,重新創(chuàng)建一個組合、聚簇索引,再次按照學(xué)號和課程號檢索表中的某一個記錄,查看執(zhí)行計劃。8) 再次完成5)、6)步的工作,查看執(zhí)行計劃。9) 比較上述查詢所獲得的查詢計劃和查詢代價信息,并解釋所發(fā)現(xiàn)的現(xiàn)象。4 索引的代價 刪除學(xué)生表上的所有索引,插入6萬條記錄,記錄更新時間。 刪除學(xué)生表中的所有記錄,然后在學(xué)生表的學(xué)號字段上創(chuàng)建索引,插入6萬條記錄,記錄更新時間。 刪除學(xué)生表中的所有記錄,然后在學(xué)生表的學(xué)號字段上創(chuàng)建聚簇索引,插入6萬條記錄,記錄更新時間。 比較上述三次插入操作的時間,并對所發(fā)現(xiàn)的情況進行解釋。問題討論1. 什么是索引?索引有什么作用?如果沒有索引,SQL Server是怎么進行查詢的?索引需要存儲嗎?索引的維護由誰來負責(zé)?索引越多越好嗎?為什么?2. 唯一索引有什么用處?它與主鍵有什么區(qū)別?如果表中已經(jīng)有了重復(fù)記錄,能否為它創(chuàng)建唯一索引呢?怎么解決這個問題(假如存在許多重復(fù)記錄,而且是記錄之間在多個字段上都有重復(fù))?3. 什么是組合索引?組合索引中索引字段的順序是任意的嗎?如果創(chuàng)建的是組合、唯一索引,那么它維護的是什么樣的唯一性呢?4. 什么是聚簇索引?聚簇索引與非聚簇索引有什么不同?它們兩個孰優(yōu)孰劣?應(yīng)當(dāng)在什么樣的情況下使用聚簇索引?每個表可以建幾個聚簇索引呢?5. 是否只有查詢語句才會使用索引?SQL語句在什么時候會使用索引,什么時候不會使用索引?6. 當(dāng)需要創(chuàng)建索引時,選擇索引類型的依據(jù)是什么?如果創(chuàng)建了多個索引,SQL Server在查詢時會選擇哪個索引呢?我的問題教師評語實驗六:創(chuàng)建和使用視圖班 級學(xué) 號姓 名日 期實 驗?zāi)?的1學(xué)會創(chuàng)建、修改和刪除視圖的SQL命令。2學(xué)會利用視圖完成以下工作: 簡化用戶操作 使用戶以不同角度來看待同一數(shù)據(jù) 為重構(gòu)數(shù)據(jù)提供一定的邏輯獨立性 為數(shù)據(jù)提供安全保護3了解對視圖進行更新操作的限制。實 驗步 驟1. 完成以下查詢: 顯示計算機系學(xué)生的數(shù)據(jù)庫成績單,內(nèi)容包括:每個學(xué)生的學(xué)號、姓名、成績、學(xué)分 顯示計算機系學(xué)生的操作系統(tǒng)成績單,內(nèi)容包括:每個學(xué)生的學(xué)號、姓名、成績、學(xué)分 顯示計算機系學(xué)生的數(shù)據(jù)結(jié)構(gòu)成績單,內(nèi)容包括:每個學(xué)生的學(xué)號、姓名、成績、學(xué)分2. 創(chuàng)建計算機系學(xué)生的成績視圖,內(nèi)容包括:每個學(xué)生的學(xué)號、姓名、課程名、成績、學(xué)分?;诖艘晥D完成上述三個查詢操作。3. 體驗下面三個視圖如何為同樣的數(shù)據(jù)提供了不同的分析角度: 創(chuàng)建課程情況視圖,內(nèi)容包括:每門課程的課程號、課程名、選課人數(shù)、平均成績、最高成績、最低成績。 創(chuàng)建學(xué)生情況視圖,內(nèi)容包括:每個學(xué)生的學(xué)號、姓名、選修的課程數(shù)、平均成績、最高成績、最低成績。 創(chuàng)建系教學(xué)情況視圖,內(nèi)容包括:系編號、學(xué)生人數(shù)、學(xué)生的平均成績。4. 利用視圖控制數(shù)據(jù)的訪問范圍: 按照系編號分別為每個系的教務(wù)建立一個學(xué)生成績視圖。 收回各系教務(wù)對于學(xué)生表、課程表和選課表的所有權(quán)限。 將前面建立的各個系學(xué)生成績視圖的權(quán)限分別授予各個系的教務(wù)。 以各個系教務(wù)的身份登錄,檢查他們所能夠訪問的數(shù)據(jù)。5. 建立計算機系的學(xué)生視圖,內(nèi)容包括:學(xué)號、姓名、性別、年齡。分別對該視圖進行Insert、Update和Delete操作。對前面建立的計算機系學(xué)生成績視圖進行上述操作。比較對于兩個視圖的操作結(jié)果有何不同?6. 對計算機系的學(xué)生視圖進行修改,為它增加sdept屬性。在修改后的視圖上,將學(xué)號為95001的學(xué)生從計算機系(CS)轉(zhuǎn)到信息系(IS)。重新將該學(xué)生再轉(zhuǎn)回計算機系,再次對計算系的學(xué)生視圖進行修改,為它增加With Check Option選項,重新進行上面的操作。7. 刪除計算機系的學(xué)生視圖。問 題討 論13. 什么是視圖,它與表有什么區(qū)別,它與三級模式中的外模式有什么關(guān)系?14. 什么是視圖消解,說明視圖是如何簡化用戶操作的?15. 說明視圖是怎樣為同樣的數(shù)據(jù)提供了不同的分析角度的?16. 說明視圖是怎樣控制數(shù)據(jù)的訪問范圍的?17. 是否所有的視圖都可以進行更新?如果不是,滿足什么樣條件的視圖才能被更新?With Check Option有什么用處? 18. 修改視圖與刪除視圖后重建視圖的方法都可以修改一個視圖的定義,這兩種方法有什么不同嗎?19. 要想對視圖返回的數(shù)據(jù)進行排序,應(yīng)當(dāng)怎么辦?20. 將Student表拆分為兩個表,并刪除原有的Student表,考慮如何利用視圖來盡可能地使哪些依據(jù)Student而編寫的程序不會因此而修改?我 的問 題教師評語實驗七:管理安全性班 級學(xué) 號姓 名日 期實 驗?zāi)?的1學(xué)會設(shè)置SQL Server的驗證方式。 Windows驗證方式 混合驗證方式2學(xué)會創(chuàng)建SQL Server登錄及數(shù)據(jù)庫用戶,并為其指定相應(yīng)服務(wù)器和數(shù)據(jù)庫角色以及口令。3. 學(xué)會為用戶指派或者收回針對單個表的對象權(quán)限。實 驗步 驟1. 將SQL Server設(shè)置為Windows驗證方式,然后通過查詢分析器或者企業(yè)管理器與SQL Server建立連接。2. 將SQL Server設(shè)置為混合驗證方式,然后通過查詢分析器或者企業(yè)管理器與SQL Server建立連接。3. 創(chuàng)建一個SQL Server登錄,為其指定口令,但不為其指定任何角色。4. 更改其口令和默認數(shù)據(jù)庫。5. 利用新創(chuàng)建的SQL Server登錄訪問實驗二中所創(chuàng)建的School數(shù)據(jù)庫中的表,看是否成功。6. 為所創(chuàng)建的數(shù)據(jù)庫創(chuàng)建一個guest用戶,為它分配對Student表的SELECT權(quán)限。7. 使用剛才創(chuàng)建的SQL Server登錄訪問School數(shù)據(jù)庫中的Student表,看是否成功。再訪問Course表,看是否成功。8. 在School數(shù)據(jù)庫中創(chuàng)建一個新用戶,使它對應(yīng)于剛才那個SQL Server登錄,并為它分配對Student表的SELECT權(quán)限。然后刪掉原來的guest用戶。使用剛才創(chuàng)建的SQL Server登錄訪問School數(shù)據(jù)庫中的Student表,看是否成功。9. 在School數(shù)據(jù)庫中創(chuàng)建一個角色,然后為該角色賦予對Course表的SELECT權(quán)限,并將剛才的數(shù)據(jù)庫用戶加入到該角色,通過該用戶所對應(yīng)的SQL Server登錄訪問Course表,看是否成功。10. 為剛才創(chuàng)建的角色加入對SC表的SELECT權(quán)限,然后通過該用戶所對應(yīng)的SQL Server登錄訪問Course表,看是否成功。11. 取消該角色對SC表的SELECT權(quán)限,然后通過該用戶所對應(yīng)的SQL Server登錄訪問Course表,看是否成功。12. 為該角色指定對Course表學(xué)分列的Update權(quán)限。問 題討 論1. 說明SQL Server的兩種驗證方式有何不同?2. 結(jié)合上述實驗,說明SQL Server的驗證過程是什么樣的?3. 默認數(shù)據(jù)庫的作用是什么?4. 服務(wù)器角色和數(shù)據(jù)庫角色有什么不同,SQL Server都有哪些服務(wù)器角色和數(shù)據(jù)庫角色,這些角色各自的作用是什么?5. guest用戶有什么作用,使用它有什么好處和風(fēng)險?6. 為什么要使用角色?其作用是什么?7. public角色的作用是什么?使用它時有什么需要注意的地方?8. 對于表可以指定哪些權(quán)限,其中哪些是可以基于列進行控制的?是否只有表才有對象權(quán)限可以指定?9. SQL Server的企業(yè)管理器中是否提供了基于行的安全控制方法,如果沒有?你可以通過什么樣的方式來實現(xiàn)它?我 的問 題教師評語實驗八:事務(wù)與并發(fā)控制班 級學(xué) 號姓 名日 期實 驗?zāi)?的1學(xué)會將多條語句封裝為事務(wù)。2學(xué)會提交和回滾事務(wù)。3. 驗證并發(fā)操作所帶來的錯誤: 污讀 不可重復(fù)讀 丟失更新4. 驗證死鎖實 驗步 驟1. 在查詢分析器中輸入如下命令:begin transactionInsert Into Student values(95050,關(guān)羽,男,38,11)Insert Into Student values(95051,張飛,男,36,10)commit transaction然后,關(guān)掉計算機的電源,重新啟動機器,察看Student表,看上述記錄是否存在。2. 在查詢分析器中輸入如下命令:begin transactionUpdate Student Set age = 39 where sno=95050Update Student Set age = 37 where sno=95051rollback transaction然后,察看Student表,看上述記錄是否已經(jīng)被修改。3. 在查詢分析器中打開兩個窗口,在其中一個窗口輸入如下的事務(wù)一,并執(zhí)行到Commit Transaction命令之前: -Transaction 1begin transactionUpdate StudentSet sname =趙云Where sno =95050Rollback Transaction然后,在另外一個窗口輸入如下的事務(wù)二,并執(zhí)行:-Transaction 2begin transactionset transaction isolation level read uncommittedselect sname from StudentWhere sno =95050看事務(wù)二是否能夠讀到事務(wù)一所做的尚未提交的修改。然后,執(zhí)行事務(wù)一的最后一條命令:Commit Transaction實 驗步 驟4. 在查詢分析器中打開兩個窗口,在其中一個窗口輸入如下的事務(wù)二,并執(zhí)行到第二個Select命令之前: -Transaction 2begin transactionset transaction isolation level read committedselect sname from StudentWhere sno =95050select sname from StudentWhere sno =95050然后,在另外一個窗口輸入如下的事務(wù)一,并執(zhí)行:-Transaction 1begin transactionUpdate StudentSet sname =關(guān)羽Where sno =95050Commit Transaction然后,執(zhí)行事務(wù)二的最后一條select命令,看事務(wù)二前后兩次執(zhí)行select命令是否能夠得到同樣的結(jié)果。5. 用VB編寫一個小的應(yīng)用程序,同時運行該程序的兩個實例,同時打開同一個表的同一個記錄進行編輯,并保存,察看是否發(fā)生丟失更新的現(xiàn)象。6. 在查詢分析器中打開兩個窗口,在其中一個窗口輸入如下的事務(wù)一: -Transaction 1-步驟一begin transactionUpdate StudentSet sname =關(guān)羽Where sno =95050Commit Transaction-步驟三Update CourseSet ccredit = 5where cno=1Commit Transaction然后,在另外一個窗口輸入如下的事務(wù)二,并執(zhí)行:-Transaction 2-步驟二begin transactionUpdate StudentSet sname =關(guān)羽Where sno =95050Update CourseSet ccredit = 5where cno=1Commit Transaction然后,按照以下步驟執(zhí)行,看看會發(fā)生什么情況: 在第一個窗口中選擇步驟一的代碼,并執(zhí)行它們。 在第二個窗口執(zhí)行步驟二。 回到第一個窗口執(zhí)行步驟三。問 題討 論1. 什么事務(wù)?事務(wù)具有什么樣的特性?數(shù)據(jù)庫管理系統(tǒng)是通過什么方法來維護事務(wù)的特性的?2. 如果不寫begin transaction,是否數(shù)據(jù)庫就不會按照事務(wù)的方式來處理SQL語句了?3. 什么是污讀?根據(jù)實驗解釋在什么情況下會發(fā)生污讀。4. 什么是不可重復(fù)讀?根據(jù)實驗解釋在什么情況下會發(fā)生不可重復(fù)讀。5. 什么是丟失更新?根據(jù)實驗解釋在什么情況下會發(fā)生丟失更新。6. SQL Server都提供了哪些隔離級別?它們有什么作用?它們相對于課本中的什么概念?7. 什么是死鎖?根據(jù)實驗解釋在什么情況下會發(fā)生死鎖。8. 在最后一個實驗中出現(xiàn)的死鎖,是否一直持續(xù)下去無法解除?說明解除死鎖的方法,以及SQL Server使用的是哪一種方法?我 的問 題教師評語實驗九:數(shù)據(jù)庫大作業(yè)班 級學(xué) 號姓 名日 期實 驗?zāi)?的1. 初步掌握數(shù)據(jù)庫設(shè)計和數(shù)據(jù)庫應(yīng)用開發(fā)所需的基本知識和技能。實 驗步 驟1. 根據(jù)給定的業(yè)務(wù)說明,總結(jié)系統(tǒng)的數(shù)據(jù)需求,建立ER圖2. 根據(jù)給定的業(yè)務(wù)說明,給出系統(tǒng)的業(yè)務(wù)邏輯,并在此基礎(chǔ)上給出相應(yīng)的應(yīng)用系統(tǒng)設(shè)計3. 根據(jù)ER圖和應(yīng)用系統(tǒng)設(shè)計的要求,給出數(shù)據(jù)庫邏輯設(shè)計(包括主外碼等完整性約束),并建立索引以提高效率4. 進行系統(tǒng)的安全性設(shè)計,建立不同人員的外模式,并授予相關(guān)權(quán)限5. 選擇某個數(shù)據(jù)庫管理系統(tǒng),實現(xiàn)上述數(shù)據(jù)庫設(shè)計6. 配置數(shù)據(jù)庫客戶端以及ODBC數(shù)據(jù)源7. 使用某種開發(fā)工具編程實現(xiàn)前面的應(yīng)用系統(tǒng)設(shè)計,練習(xí)使用相應(yīng)的數(shù)據(jù)操作和連接構(gòu)件。8. 了解數(shù)據(jù)庫編程中應(yīng)該掌握的事務(wù)、游標(biāo)等概念業(yè)務(wù)需求例子圖書館系統(tǒng)圖書館由借閱臺,書庫,采購部門構(gòu)成,其工作人員包括:借閱臺工作人員,倉庫管理員,采購員和館長。借閱人員包括本科生,研究生和教師。系統(tǒng)的業(yè)務(wù)需求:借閱臺的業(yè)務(wù)需求:1. 借閱人員按照ISBN編號,書名,作者,出版社、關(guān)鍵字查閱圖書館的藏書資料,系統(tǒng)為借閱人提供書籍的相關(guān)信息,包括摘要等。2. 借閱人員向借閱臺工作人員提出借閱請求 1)工作人員首先檢查借閱人是否屬于本館會員,如果不是則要求借閱人首先登記為本館會員(借閱人必須提供本人的身份證號碼,姓名,住址,電話,電子郵件等),然后才能借閱。 2)工作人員檢查本館是否有借閱人要求借閱的圖書,如果沒有則要求借閱人進行缺書登記。 3)否則,檢查是否已經(jīng)全部借出,是否已經(jīng)由該借閱人以外的其他人預(yù)約(并且該預(yù)約人沒有違反以下的限制
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年紫外激光傳輸光纖合作協(xié)議書
- 2025年醫(yī)療儀器設(shè)備制造項目發(fā)展計劃
- 教育與商業(yè)的融合以大數(shù)據(jù)分析支持學(xué)生個性化發(fā)展
- 家庭教育心理學(xué)塑造孩子健康人格的技巧
- 2025屆安徽省 馬鞍山中加雙語學(xué)校高二物理第二學(xué)期期末監(jiān)測模擬試題含解析
- 教育技術(shù)與家長參與的個性化學(xué)習(xí)模式研究
- 智慧醫(yī)療的AI助手智能輔導(dǎo)系統(tǒng)的應(yīng)用與挑戰(zhàn)
- 企業(yè)人才培養(yǎng)中的信息技術(shù)應(yīng)用分析
- 大數(shù)據(jù)在提升學(xué)生綜合素質(zhì)評價中的應(yīng)用
- 2025屆陜西省旬陽中學(xué)物理高二下期末檢測試題含解析
- 2025年1月國家開放大學(xué)??啤掇k公室管理》期末紙質(zhì)考試試題及答案
- 康師傅采購流程
- 2025年復(fù)合膜袋項目可行性研究報告
- 離職賠償協(xié)商協(xié)議書(2025年)
- 2024年度半導(dǎo)體生產(chǎn)工人勞動合同范本3篇
- 基本公共衛(wèi)生服務(wù)項目培訓(xùn)
- 2025三會一課工作學(xué)習(xí)計劃
- 2024年廣東血液凈化護理知識競賽考試題庫(含答案)
- 基層供電所安全課件
- 2020-2024年五年高考地理真題分類匯編專題02 宇宙中的地球-(解析版)
- 2024年上海復(fù)旦大學(xué)附中自主招生數(shù)學(xué)試卷真題(含答案詳解)
評論
0/150
提交評論