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