亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        SQLTutor的在線實驗技術研究

        2009-07-02 05:29:48郝耀軍王建國趙青杉
        現(xiàn)代教育技術 2009年8期
        關鍵詞:建構(gòu)主義

        郝耀軍 王建國 趙青杉 王 宇

        【摘要】SQLTutor是自主開發(fā)的一套SQL查詢語言智能學習系統(tǒng),它利用在線實驗組織教學,在實驗平臺上集成了資源學習、案例演示、在線討論、綜合測試等內(nèi)容。SQLTutor最大的優(yōu)勢在于開放地允許學生對同一問題用不同的查詢語句來實現(xiàn),有利于提高學生的問題解決能力。論文剖析了SQLTutor實驗平臺的工作機制及特點,討論了實驗語句的語法錯誤和邏輯錯誤的診斷技術。實踐證明,利用開放的在線實驗技術有效地提高了學生的學習效果。

        【關鍵詞】SQL查詢語言;在線實驗;錯誤診斷;建構(gòu)主義

        【中圖分類號】G40-057 【文獻標識碼】A 【論文編號】1009—8097(2009)08—0109—03

        引言

        SQL語言(Structured Query Language)是數(shù)據(jù)庫的核心語言,自IBM公司在上世紀80年代推出以來,得到了廣泛的應用。

        SQL語言雖然有結(jié)構(gòu)簡潔、簡單易學的特點,但在SQL語言的實際教學中,學生往往是“上課一聽就懂,上機無法下手”。這種情況一方面是由于學生上機實驗受時空限制,理論學習和上機操作不能同步進行,造成了理論學習時的情境缺失和上機實驗時的智力支持缺失;另一方面是由于RDBMS(關系數(shù)據(jù)庫管理系統(tǒng))的交互不友好,對邏輯錯誤的診斷能力不強,造成學生只知道自己的SQL語言是錯誤的,不知道錯在什么地方,學生上機實驗時往往淺嘗輒止。

        我們認為解決上述問題較好的辦法是引入在線實驗技術,將理論學習與上機操作融為一體,排除實際上機學習環(huán)境中軟硬件的干擾,讓學生在“做”精心設計的上機實驗的過程中自主建構(gòu)知識體系,同時提供資源學習、案例演示、在線討論、綜合測試等服務。

        目前,在虛擬實驗室的發(fā)展上存在兩種趨勢,一種是對仿真技術的深入研究和應用,這要求仿真軟件能最大程度地描述實驗情形[1];另一種是虛擬實驗技術的研究和應用,這同時也需要人工智能技術的支持[2]。

        基于以上分析,我們針對SQL語言可提交到數(shù)據(jù)庫接口執(zhí)行的特殊性,開發(fā)了SQL查詢語言智能教學系統(tǒng)——SQLTutor,利用在線實驗的學習方式輔助學生學習SQL語言,免去了學生實際上機安裝、配置數(shù)據(jù)庫和建立各種數(shù)據(jù)表的過程,便于學生集中精力學習主要內(nèi)容,提高動手操作能力,也便于教師控制學生的學習過程。本文將重點介紹SQLTutor在線實驗平臺的工作機制及對錯誤實驗語句的診斷技術。

        一 實驗平臺的工作機制

        在本實驗平臺主要提供SQL查詢語句的實驗,這里沒有利用關系數(shù)據(jù)庫的前臺查詢接口,而是直接通過用戶瀏覽器來進行。在線實驗平臺主要利用.NET平臺中的ADO.NET技術來執(zhí)行通過瀏覽器提交到服務器的SQL語句,并將服務器的執(zhí)行結(jié)果返回到客戶端,其工作界面如圖1所示。

        實驗平臺的工作機制如圖2所示,本實驗平臺對數(shù)據(jù)流進行的是只讀、只進的檢索,可以使用ADO.NET中的 DataReader來提高應用程序的性能并減少系統(tǒng)開銷。因為一旦數(shù)據(jù)可用,DataReader方法就立即檢索該數(shù)據(jù),而不是等待返回查詢的全部結(jié)果;查詢結(jié)果在查詢執(zhí)行時返回,存儲在客戶端的網(wǎng)絡緩沖區(qū)中,直到使用DataReader的Read方法對它們發(fā)出請求。

        當創(chuàng)建 Command 對象的實例后,可調(diào)用 Command.ExecuteReader 從數(shù)據(jù)源中檢索行,從而創(chuàng)建一個 DataReader。

        提交到服務器執(zhí)行文本框中學生錄入的SQL語句的關鍵代碼片段如下所示:

        {

        string exsql;//exsql為學生的實驗語句

        string stsql;//stsql為實驗平臺中提供的標準實驗語句

        exsql=Session["exsql"].ToString().Trim();

        stsql=Session["ssql"].ToString().Trim();

        SqlConnection myconn=new SqlConnection("Data Source=hyj;Integrated Security=SSPI;Initial Catalog=material"); //連接數(shù)據(jù)庫

        myconn.Open(); //打開連接

        SqlCommand mycomm=newSqlCommand(exsql+";"+stsql,myconn);//建立Command對象,執(zhí)行學生實驗語句和標準實驗語句

        SqlDataReader myreader;

        myreader=mycomm.ExecuteReader();//生成查詢結(jié)果集

        }

        二 實驗語句的錯誤診斷技術

        學生實驗的SQL語句要提交到服務器端執(zhí)行,在這個環(huán)節(jié)系統(tǒng)必須判別學生寫的SQL語句的語法錯誤和邏輯錯誤。

        1 語法錯誤的處理

        主要利用后臺數(shù)據(jù)庫的錯誤提示由系統(tǒng)加工后反饋給學生,比如學生寫出“select from sinfo”這樣的SQL語句,很明顯提交到服務器端是無法執(zhí)行的。對于這類錯誤我們利用SQL Server2000的錯誤反饋技術,在錯誤診斷中捕捉并加工這些后臺錯誤信息,然后在網(wǎng)頁中反饋給用戶。

        在線實驗平臺判斷語法錯誤并反饋錯誤信息的主要代碼如下:

        catch(SqlException exc)

        {

        Response.Write(exc.Message.ToString()+exc.Number);

        } //有語法錯誤時返回錯誤信息,exc.Message為提示信息,exc.Number為代號。

        如上例的“select from sinfo”語句在本實驗平臺提交后會給出錯誤反饋信息“在關鍵字 'from' 附近有語法錯誤”。

        2 邏輯錯誤的處理

        邏輯錯誤往往不易為學生察覺,在平時教學中,我們發(fā)現(xiàn)學生寫出SQL語句在上機實驗通過后,并不仔細檢查對照檢索數(shù)據(jù)的正確與否,

        例如,實驗任務:“請在pubs庫的employee表中查詢出1990年7月1日到12月31日(hire_date)雇傭的新員工的員工編號(emp_id),名字(fname),工作編號(job_id),列名為括號中的英文名”

        學生可能會寫出如下語句:

        select emp_id, fname, job_id from employee where hire_date between '1990-7-1' and '1990-12-31'

        select emp_id, fname, job_id from employee where hire_date >'1990-7-1' and hire_date<'1990-12-31'

        select emp_id, fname, job_id from employee where hire_date >'1990-7-1' and hire_date<='1990-12-31'

        select emp_id, fname, job_id from employee where hire_date>='1990-7-1' and hire_date<='1990-12-31'

        select emp_id, fname, job_id from employee where hire_date>'1990-6-30' and hire_date<='1990-12-31'

        上面列舉的這些語句都是合法的SQL語句,但檢索的數(shù)據(jù)結(jié)果顯然不同。所以本實驗平臺既要保證這些語句都可以正確執(zhí)行,同時還要指出這些語句的執(zhí)行結(jié)果與標準結(jié)果的差異。

        這樣開放地對同一問題允許學生用不同的查詢語句實現(xiàn)有利于提高學生的問題解決能力,但同時也給系統(tǒng)對邏輯錯誤的判定帶來了挑戰(zhàn)。

        對于可執(zhí)行的SQL語句的邏輯錯誤,我們的總體思路就是利用DataReader從數(shù)據(jù)庫提取學生實驗語句的查詢結(jié)果集,然后和標準實驗語句的查詢結(jié)果集進行比較。在這里需要說明的是,標準實驗語句在實驗任務出示的同時就已讀入到系統(tǒng)中,在學生提交自己實驗語句的同時一并提交到服務器端執(zhí)行。

        由于當DataReader打開時,該DataReader將以獨占方式使用Connection,在DataReader關閉之前,將無法對Connection執(zhí)行任何命令。而這里我們要在數(shù)據(jù)提取時返回兩個結(jié)果集,所以用到了DataReader提供的NextResult方法來順序循環(huán)訪問這些結(jié)果集,使用一個DataReader執(zhí)行兩條SQL語句。訪問到這些結(jié)果集后轉(zhuǎn)存到兩個矩陣中,然后利用這兩個矩陣進行結(jié)果集的比較,進而給出學生邏輯錯誤提示,對不一致的數(shù)據(jù)進行特效顯示,給學生更直觀的感受。

        主要代碼如下:

        //連接數(shù)據(jù)庫、打開連接代碼省略

        SqlCommand mycomm=newSqlCommand(exsql+";"+stsql,myconn);

        SqlDataReader myreader;

        myreader=mycomm.ExecuteReader(); //生成查詢結(jié)果集

        int flag=1;//標志是第幾個查詢結(jié)果集

        do

        {

        int n=1; //行數(shù)

        int i=myreader.FieldCount; //列數(shù)

        while(myreader.Read())

        {

        if(flag==1)

        {

        for(int t=0;t

        exresult[0,t]=myreader.GetName(t).ToString().Trim();//存儲字段名

        for(int m=0;m

        {

        exresult[n,m]=myreader[m].ToString().Trim();//存儲記錄

        }

        }

        if(flag==2)

        {//省略存儲第二個查詢結(jié)果集的代碼,同上}

        n++;

        }

        flag=2;

        }while(myreader.NextResult());//遍歷兩個結(jié)果集,轉(zhuǎn)存到相應的矩陣

        ……//由于篇幅關系,此處省略兩個結(jié)果矩陣的比較部分。

        在上文的例子中,輸入“select emp_id, fname, job_id from employee where hire_date >'1990-7-1' and hire_date<'1990-12-31'”有如圖3的執(zhí)行結(jié)果,可以看出執(zhí)行結(jié)果不但給出實驗結(jié)果的正確率為0.4,而且可以讓學生明顯地看到查詢結(jié)果少了3組數(shù)據(jù)。

        三 結(jié)束語

        在線實驗的優(yōu)勢是明顯的,學生可以不受時間和空間的限制利用網(wǎng)絡進行自主學習。本文基于建構(gòu)主義學習理論,利用在線實驗設計和實現(xiàn)了SQL語言的智能教學系統(tǒng),為學生提供一個具有情景性、協(xié)作性、自主性和適應性的學習環(huán)境,大大提高了學生學習的質(zhì)量與效率。在實踐中我們將2006級254名學生隨機分為兩組,實驗組158名學生采用SQLTutor實驗教學環(huán)境;對照組的96名學生則采用真實上機實驗環(huán)境,在學習時間等同的情況下,對于4份測試,實驗組學生平均成績比對照組高出14.8%。在以后的工作中,我們將開展學生在線實驗記錄與學業(yè)成績評定的可靠性研究。

        猜你喜歡
        建構(gòu)主義
        基于建構(gòu)主義理論的計算機教育
        中國新通信(2022年4期)2022-04-23 23:04:20
        旁批:建構(gòu)主義視域下的語文助讀抓手——以統(tǒng)編初中教材為例
        借鑒建構(gòu)主義思想培養(yǎng)財會專業(yè)人才
        著作權法的作品觀:從本質(zhì)主義到建構(gòu)主義
        建構(gòu)主義理論指導下語境詞匯策略的思考與實踐
        從建構(gòu)主義下分析高職院校頂崗實習的必要性
        英語語法教學的建構(gòu)主義策略淺談
        建構(gòu)主義學習設計六要素在英語教學中的應用
        建構(gòu)主義教學模式在醫(yī)學教學中的應用
        多媒體技術在建構(gòu)主義教學模式中的應用
        精品无码av一区二区三区| 国产成人久久精品激情91| 欧美手机在线视频| 人妻风韵犹存av中文字幕| av在线一区二区三区不卡| 亚洲综合偷自成人网第页色| 国产三级a三级三级| 人与动牲交av免费| 999国内精品永久免费视频| 欧美日韩中文制服有码| 亚洲国产高清美女在线观看 | 超碰国产精品久久国产精品99| 精品国产这么小也不放过| 女人下面毛多水多视频| 久久AⅤ无码精品为人妻系列| 国产熟女精品一区二区三区| 亚洲在线视频一区二区 | 日本无码人妻波多野结衣| 精品人体无码一区二区三区| 任你躁欧美一级在线精品免费| 精品熟妇av一区二区三区四区| 国产丝袜美腿一区二区三区| 国产黄污网站在线观看| 麻豆精品久久久久久中文字幕无码| 真实国产老熟女粗口对白| 国产三级精品三级国产| 97人妻无码免费专区| 在线观看国产激情免费视频| 在线日本看片免费人成视久网| 人妻精品久久无码区| 免费无码毛片一区二区三区a片 | 免费人成网站在线观看| 神马影院日本一区二区| 亚洲人成人无码www影院| 人妻少妇被猛烈进入中文字幕| 在线观看亚洲AV日韩A∨| 国产av乳头久久一区| 日本刺激视频一区二区| 成人中文乱幕日产无线码 | 国产av乳头久久一区| 论理视频二区三区四区在线观看|