夏海靜
【摘 要】本文闡述了SQL Server數(shù)據(jù)庫(kù)應(yīng)用技術(shù)課程的地位,分析了SQL Server數(shù)據(jù)庫(kù)應(yīng)用技術(shù)教學(xué)中實(shí)驗(yàn)環(huán)節(jié)存在的問(wèn)題,并探討解決方案,分析并設(shè)計(jì)了實(shí)用的實(shí)驗(yàn)項(xiàng)目,為SQL Server數(shù)據(jù)庫(kù)應(yīng)用技術(shù)的教學(xué)改革進(jìn)行了一些有益的嘗試.
【關(guān)鍵詞】數(shù)據(jù)庫(kù);實(shí)驗(yàn)項(xiàng)目;存儲(chǔ)過(guò)程;觸發(fā)器
0 概述
數(shù)據(jù)庫(kù)技術(shù)自20世紀(jì)60年代產(chǎn)生以來(lái),無(wú)論是理論還是應(yīng)用都已變得相當(dāng)重要和成熟,成為計(jì)算機(jī)領(lǐng)域發(fā)展最快的學(xué)科方向之一,也是應(yīng)用很廣、實(shí)用性很強(qiáng)的一門技術(shù)。
各大學(xué)的計(jì)算機(jī)專業(yè)、信息管理專業(yè)以及相關(guān)專業(yè)都開設(shè)了《數(shù)據(jù)庫(kù)技術(shù)及應(yīng)用》這門課程,是計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)的核心必修課,也是相關(guān)信息和管理類專業(yè)的重要課程。在信息時(shí)代,數(shù)據(jù)庫(kù)技術(shù)已成為軟件系統(tǒng)的核心。
我校自從設(shè)置計(jì)算機(jī)專業(yè),一直開設(shè)著《SQL Server數(shù)據(jù)庫(kù)應(yīng)用技術(shù)》這門課程。計(jì)算機(jī)科學(xué)技術(shù)為本科專業(yè),學(xué)生們的先修課程為《數(shù)據(jù)庫(kù)系統(tǒng)概論》,學(xué)生們有了一定的理論基礎(chǔ),《SQL Server數(shù)據(jù)庫(kù)應(yīng)用技術(shù)》課程的主要目的在于實(shí)踐和應(yīng)用。
1 實(shí)驗(yàn)題目分析與設(shè)計(jì)
1.1 實(shí)驗(yàn)現(xiàn)狀分析
在實(shí)驗(yàn)項(xiàng)目方面,從多年帶畢業(yè)論文的情況看,畢業(yè)生使用SQL Server只會(huì)做一個(gè)數(shù)據(jù)庫(kù),添加幾張表,而對(duì)于SQL Server的存儲(chǔ)過(guò)程、觸發(fā)器等重要資源從來(lái)不用或者是不會(huì)用。以往的實(shí)驗(yàn)項(xiàng)目都是教材自帶,這些項(xiàng)目只是流于形式,實(shí)質(zhì)性的操作不多,致使學(xué)生上機(jī)無(wú)所事事,平時(shí)不加強(qiáng)練習(xí),做畢業(yè)設(shè)計(jì)和專業(yè)作品時(shí)學(xué)生才醒悟,以前真該多學(xué)點(diǎn)本領(lǐng)。因此,需加強(qiáng)實(shí)驗(yàn)項(xiàng)目,改進(jìn)實(shí)驗(yàn)內(nèi)容。
根據(jù)課程實(shí)用性很強(qiáng)的特點(diǎn),通過(guò)實(shí)踐教學(xué),培養(yǎng)學(xué)生的實(shí)踐動(dòng)手能力,為學(xué)生的后續(xù)實(shí)踐活動(dòng),今后從事專業(yè)技術(shù)和科研工作打下良好基礎(chǔ)。根據(jù)本校定位和人才培養(yǎng)方案,選取適合自己學(xué)生的教材,編寫適合自己學(xué)生的實(shí)驗(yàn)項(xiàng)目,包括基礎(chǔ)實(shí)驗(yàn)和綜合實(shí)驗(yàn)。
1.2 合理設(shè)計(jì)上機(jī)實(shí)驗(yàn),編寫典型實(shí)驗(yàn)項(xiàng)目
每一章中都設(shè)計(jì)典型的、能充分體現(xiàn)所學(xué)知識(shí)點(diǎn)的上機(jī)實(shí)驗(yàn)題目。課程即將結(jié)束時(shí),應(yīng)該給學(xué)生實(shí)際演示一些項(xiàng)目,例如用ASP做的系統(tǒng)項(xiàng)目,讓學(xué)生能看到它的底層設(shè)計(jì),讓學(xué)生真正明白編程語(yǔ)言與SQL Server之間的關(guān)系,為將來(lái)的專業(yè)作品和畢業(yè)設(shè)計(jì)做準(zhǔn)備。由于編程開發(fā)工具ASP在本門課程之前,學(xué)生具備了一定的編程能力,所以結(jié)課之前,可以讓學(xué)生做成一個(gè)完整的系統(tǒng)項(xiàng)目,前臺(tái)開發(fā)工具任選,但是后臺(tái)需鏈接SQL Server數(shù)據(jù)庫(kù),并且要用到所學(xué)的大部分?jǐn)?shù)據(jù)庫(kù)對(duì)象,例如表、視圖、完整性約束、存儲(chǔ)過(guò)程、觸發(fā)器、角色等。
一定要讓學(xué)生明白,平時(shí)學(xué)習(xí)、練習(xí)的這些實(shí)驗(yàn)項(xiàng)目實(shí)用性很強(qiáng),以后肯定要用,尤其最后一年畢業(yè),要大量用到SQL Server,不要到時(shí)悔之晚矣。根據(jù)課程實(shí)用性很強(qiáng)的特點(diǎn),通過(guò)實(shí)踐教學(xué),培養(yǎng)學(xué)生的實(shí)踐動(dòng)手能力,為學(xué)生的后續(xù)實(shí)踐活動(dòng),今后從事專業(yè)技術(shù)和科研工作打下良好基礎(chǔ)。
以下為設(shè)計(jì)的實(shí)驗(yàn)項(xiàng)目:
1)對(duì)student數(shù)據(jù)庫(kù)進(jìn)行如下操作
分離數(shù)據(jù)庫(kù),看看資源管理器中還有文件嗎;附加數(shù)據(jù)庫(kù);收縮數(shù)據(jù)庫(kù);刪除數(shù)據(jù)庫(kù);給數(shù)據(jù)庫(kù)改名。
2)在d盤創(chuàng)建文件夾“SQL Server2000數(shù)據(jù)庫(kù)”,在此文件夾中創(chuàng)建數(shù)據(jù)庫(kù)mydb。
方法1是在企業(yè)管理器中;方法2是在查詢分析器中使用T-SQL語(yǔ)句。
3)對(duì)三個(gè)表進(jìn)行操作
(1)在學(xué)生表中添加字段、性別 默認(rèn)值男;年齡 要求年齡在18-30之間;身高 decimal;再往表中輸入兩條記錄。
(2)分別在三個(gè)表的設(shè)計(jì)器窗口中,查看三個(gè)表的主鍵和外鍵;查看三個(gè)表的關(guān)系;
(3)給學(xué)生表創(chuàng)建索引、索引字段為學(xué)號(hào),簇索引;索引字段為姓名,唯一索引;
查看學(xué)生表的記錄按哪個(gè)字段排序;把姓名設(shè)置為簇索引;再查看學(xué)生表的記錄按哪個(gè)字段排序;
(4)創(chuàng)建數(shù)據(jù)表tmp、is_row uniqueidentifier;id int 設(shè)置為標(biāo)識(shí)種子,基數(shù)為1,遞增量為2;位:bit數(shù)據(jù)類型。
(5)刪除tmp。
4)在pubs數(shù)據(jù)庫(kù)中進(jìn)行操作
創(chuàng)建關(guān)系圖;設(shè)置索引。
5)T-SQL語(yǔ)言實(shí)驗(yàn)
(1)查詢學(xué)生表的所有信息;查詢學(xué)生表中的男生的信息; 查詢學(xué)生表中所有學(xué)生的姓名和出生日期;查詢學(xué)生表中的人數(shù),并把結(jié)果保存到新表newtable中。
(2)查詢LessonTable中的所有信息,并按照課程名升序排列。
(3)查詢LessonSelectTable中12001課程的平均分。
(4)查詢學(xué)生表中所有姓王的學(xué)生。
(5)查詢學(xué)生表中男女生各多少人?
(6)查詢學(xué)生表中各班有多少人?
(7)查詢學(xué)生表中的姓名和年齡兩列。
6)索引和視圖的實(shí)驗(yàn)
(1)為StudentTable的StudentName創(chuàng)建惟一索引。
(2)創(chuàng)建視圖StudentView,通過(guò)該視圖只能看到學(xué)生姓名和生源地,并且用中文字段名替代基礎(chǔ)表中的英文字段名。保存為文件名StudentView.sql。
(3)創(chuàng)建視圖LessonView,通過(guò)該視圖可以
查詢LessonTable和LessonSelectTable中每門課的平均成績(jī)(要求該視圖中包含課程名和平均成績(jī)兩列)。保存為文件名LessonView.sql。
(4)創(chuàng)建視圖DepartLessonView,通過(guò)該視圖可以在DepartmentTable和LessonTable中查詢每個(gè)系的開課情況(要求該視圖中包含系名和課程名兩列)。保存為文件名DeLessonView.sql。
7)存儲(chǔ)過(guò)程和觸發(fā)器的實(shí)驗(yàn)
(1)創(chuàng)建不帶參數(shù)的簡(jiǎn)單存儲(chǔ)過(guò)程procstu,通過(guò)該存儲(chǔ)過(guò)程只能看到學(xué)生表的姓名、性別、出生日期、籍貫。執(zhí)行該存儲(chǔ)過(guò)程。代碼保存為文件名procstu.sql。
(2)創(chuàng)建一個(gè)帶有輸入?yún)?shù)的存儲(chǔ)過(guò)程procdep,通過(guò)該存儲(chǔ)過(guò)程根據(jù)給定的系名稱,可以查詢到該系的學(xué)生的情況(學(xué)號(hào)、姓名、性別、出生日期、系編號(hào)、系名稱)
(3)在職工和部門表的基礎(chǔ)上創(chuàng)建存儲(chǔ)過(guò)程procfind,實(shí)現(xiàn)如下功能、給定一個(gè)部門名稱,得到該部門職工的編號(hào)、姓名、出生日期、工資。(該存儲(chǔ)過(guò)程帶有一個(gè)輸入?yún)?shù))
(4)在職工表的基礎(chǔ)上創(chuàng)建存儲(chǔ)過(guò)程procdep,實(shí)現(xiàn)如下功能、得到Memo為“打字員”的職工的基本信息。(本題為簡(jiǎn)單的存儲(chǔ)過(guò)程,不帶輸入?yún)?shù))
(5)創(chuàng)建帶有一個(gè)輸入?yún)?shù)和一個(gè)輸出參數(shù)的存儲(chǔ)過(guò)程(stu),給定一個(gè)學(xué)號(hào),得到學(xué)生姓名。保存為stu.sql。執(zhí)行該存儲(chǔ)過(guò)程,保存為stua.sql。
(6)創(chuàng)建帶有一個(gè)輸入?yún)?shù)和一個(gè)輸出參數(shù)的存儲(chǔ)過(guò)程(countnum),給定一個(gè)系的名稱,得到該系的學(xué)生人數(shù)。保存為countnum.sql。執(zhí)行該存儲(chǔ)過(guò)程,保存為countnuma.sql。
(7)創(chuàng)建一個(gè)帶有返回值的存儲(chǔ)過(guò)程(less),給定一個(gè)課程名稱,看是否存在該門課程,存在則顯示“存在該門課程”,否則顯示“不存在該門課程”。保存為less.sql。執(zhí)行該存儲(chǔ)過(guò)程,保存為lessa.sql。
2 總結(jié)
通過(guò)分析教學(xué)實(shí)驗(yàn)環(huán)節(jié)現(xiàn)狀和存在的問(wèn)題,根據(jù)多年經(jīng)驗(yàn)和研究課題,設(shè)計(jì)編寫自己的實(shí)驗(yàn)項(xiàng)目,包括基礎(chǔ)實(shí)驗(yàn)和綜合實(shí)驗(yàn),教師積極申請(qǐng)跟課程相關(guān)的科研課題,為課程提供寶貴的、實(shí)用的項(xiàng)目素材,增強(qiáng)學(xué)生對(duì)實(shí)際項(xiàng)目的感性認(rèn)識(shí),為SQL Server數(shù)據(jù)庫(kù)應(yīng)用技術(shù)的教學(xué)改革進(jìn)行了一些有益的嘗試。
[責(zé)任編輯:楊玉潔]