王玉善 鄭曉妹
摘要:該文針對本科數(shù)據(jù)庫原理課程中索引問題的教學現(xiàn)狀,分析實際教學中面臨的困難,設(shè)計實驗數(shù)據(jù)環(huán)境,依照理論課教學知識點設(shè)計對應(yīng)的實驗內(nèi)容,增強學生感性認識,實踐中透徹理解索引的深刻內(nèi)涵。
關(guān)鍵詞:數(shù)據(jù)庫;索引;數(shù)據(jù)環(huán)境;實驗設(shè)計;高校
中圖分類號:TP311 文獻標識碼:A 文章編號:1009-3044(2017)22-0151-02
1引論
數(shù)據(jù)庫原理課程中索引部分的教學一直是高校本科教學中的難點。一般而言,內(nèi)容涉及索引的基本概念、分類、原理和適用場合等知識點,內(nèi)容大多泛泛而談。若增加理論課的教學深度,內(nèi)容上能夠講授清楚,但學生會感覺深奧抽象,依舊難以真正理解其應(yīng)用的目的和內(nèi)涵,無法在實際場景中根據(jù)不同需求創(chuàng)建合適的索引,真正提升查詢的效率。
2面臨的困難
造成如此教學現(xiàn)狀的根本原因是實踐環(huán)節(jié)缺乏合適的數(shù)據(jù)環(huán)境。眾所周知,只要數(shù)據(jù)表的實際存儲量足夠大時才有必要建立索引,從而對比分析引入索引的效果,體會索引的各種適用場合。而這個數(shù)據(jù)量足夠大的數(shù)據(jù)環(huán)境如何創(chuàng)建,又如何按照特定需求即時創(chuàng)建幾萬,幾十萬,幾百萬甚至千萬上億行的數(shù)據(jù)表,成為困擾教學的障礙。正因為如此,目前數(shù)據(jù)庫教材索引部分的實驗設(shè)計也多以按照指定要求創(chuàng)建索引并刪除索引等基本命令的練習為主,至于為什么創(chuàng)建這個索引,建立后對實際查詢時間的影響到底是多少,學生無從知曉。這樣的實驗環(huán)節(jié)根本沒有達到理論教學需要體會的深度,導(dǎo)致理論課虛無縹緲,不接地氣。
3實驗數(shù)據(jù)環(huán)境的創(chuàng)建
要解決索引教學面臨的困難,設(shè)計一個合適的數(shù)據(jù)環(huán)境勢在必行。該數(shù)據(jù)環(huán)境需具備以下兩點:
(1)對應(yīng)的數(shù)據(jù)需求最好簡單,便于理解,使得學生可以將精力放在研究索引和執(zhí)行效率上。
(2)表中插入數(shù)據(jù)行的數(shù)量級可以按需自行調(diào)整。
現(xiàn)以SQL Server 2008為例,給出創(chuàng)建兩張表S和SC并插入數(shù)據(jù)的腳本。
CREATE TABLE S
(Sno char(10)CONSTRAINT PK_S PRIMARY KEY,
Sname char(10),
Ssex char(2),
Sage tinyint,
ClassNo char(10)
)
GO
CREATE TABLE SC
(ID int IDENTITY(1,1)CONSTRAINT PK_SC PRIMARYKEY,
Sno char(10),
Cno char(10),
Grade int
)
GO
一向S表中插人測試數(shù)據(jù)
DECLARE @i int,@Sno char(10),@Sname char(10)
DECLARE @Ssex char(2),@Sage char(2),@ClassNo char(10)
SELECT@i=1
表S插入數(shù)據(jù)的行數(shù)由局部變量i的值決定;表Sc插入數(shù)據(jù)的行數(shù)是@i*@j,由局部變量i和j的值決定。學生可以根據(jù)需要隨時調(diào)整數(shù)據(jù)表的插人數(shù)據(jù)量。
4索引原理的實驗設(shè)計
創(chuàng)建好所需的實驗數(shù)據(jù)環(huán)境,教師就可以按照理論教學的第13卷第22期(2017年8月)不同深度,針對各個知識點分別設(shè)計對應(yīng)的實驗內(nèi)容,理論與實踐緊密結(jié)合,理論課的每個點真正落地,透徹理解索引的內(nèi)涵?,F(xiàn)以索引理論教學中最基本的概念為例給出對應(yīng)的實驗設(shè)計:
(1)理解索引的作用。
在S表的Sname列上創(chuàng)建不唯一非聚集索引,然后查詢指定學生姓名的基本信息,從10讀取、執(zhí)行時間、執(zhí)行計劃等方面對比建立索引前后的區(qū)別,體會索引的作用。
(2)理解索引的適用場合。
在s表的Ssex列上創(chuàng)建不唯一非聚集索引,然后查詢指定性別的學生基本信息,從10讀取、執(zhí)行時間、執(zhí)行計劃等方面對比建立索引前后的區(qū)別。最后對比分析姓名列和性別列上創(chuàng)建索引前后的執(zhí)行情況,刪除不必要的索引。
(3)幫助學生理解創(chuàng)建復(fù)合索引的注意事項。
分別在SC表(Sno,Cno)列和(cn,Sno)列上創(chuàng)建復(fù)合索引,執(zhí)行語句SELECT * FROM sC WHERE Sno=~20000AND Cno=c10,查看并記錄10統(tǒng)計信息、執(zhí)行時間和圖形化執(zhí)行計劃,體會復(fù)合索引中屬性列的不同順序?qū)?zhí)行計劃和執(zhí)行時間的影響。
另外,在該數(shù)據(jù)環(huán)境下還可以設(shè)計實驗幫助學生理解查詢優(yōu)化,體會使用不同查詢語句實現(xiàn)同一查詢要求時執(zhí)行計劃的區(qū)別,深入理解查詢優(yōu)化問題。
5結(jié)束語
創(chuàng)建數(shù)據(jù)環(huán)境,實驗中擺脫傳統(tǒng)的學習索引相關(guān)命令,而是將理論中的各知識點納入實驗設(shè)計中逐一體會理解,使得理論課內(nèi)容順利著陸,增強學生感性認識,在實踐中透徹理解索引的深刻內(nèi)涵,有效提升了學生的理解深度,提高了解決實際問題的能力。endprint