黎孟雄, 郭鵬飛
(1. 江蘇師范大學(xué)連云港校區(qū) 數(shù)學(xué)與信息工程學(xué)院, 江蘇 連云港 222006;2. 連云港師范高等專科學(xué)校 數(shù)學(xué)與信息工程學(xué)院, 江蘇 連云港 222006)
?
基于SQLite的數(shù)據(jù)庫(kù)原理自主實(shí)驗(yàn)平臺(tái)設(shè)計(jì)
黎孟雄1,2, 郭鵬飛2
(1. 江蘇師范大學(xué)連云港校區(qū) 數(shù)學(xué)與信息工程學(xué)院, 江蘇 連云港 222006;2. 連云港師范高等??茖W(xué)校 數(shù)學(xué)與信息工程學(xué)院, 江蘇 連云港 222006)
為了解決傳統(tǒng)的數(shù)據(jù)庫(kù)原理實(shí)驗(yàn)教學(xué)及一般的數(shù)據(jù)庫(kù)在線實(shí)驗(yàn)軟件所面臨的一些問題,設(shè)計(jì)和實(shí)現(xiàn)了基于SQLite的數(shù)據(jù)庫(kù)原理的自主實(shí)驗(yàn)平臺(tái)。該平臺(tái)的總體結(jié)構(gòu)包括SQL主題學(xué)習(xí)模塊、SQL實(shí)驗(yàn)練習(xí)模塊、智能答疑模塊和實(shí)驗(yàn)過(guò)程監(jiān)管模塊。詳細(xì)闡述了平臺(tái)的體系結(jié)構(gòu)、核心功能及其實(shí)驗(yàn)平臺(tái)的構(gòu)建、SQL語(yǔ)法檢查、FAQ自動(dòng)采集和實(shí)驗(yàn)過(guò)程監(jiān)管等關(guān)鍵技術(shù),給出了關(guān)鍵函數(shù)調(diào)用程序。
數(shù)據(jù)庫(kù)原理課程; 自主實(shí)驗(yàn)平臺(tái); SQLite
數(shù)據(jù)庫(kù)是信息化建設(shè)的基石,幾乎所有的計(jì)算機(jī)應(yīng)用軟件都構(gòu)建于數(shù)據(jù)庫(kù)系統(tǒng)之上。因此,“數(shù)據(jù)庫(kù)原理”課程已成為高校計(jì)算機(jī)、信息管理、電子商務(wù)等專業(yè)的必修課,也是一門理論和實(shí)踐結(jié)合非常緊密的數(shù)據(jù)庫(kù)系列基礎(chǔ)課。在課程實(shí)驗(yàn)環(huán)節(jié),重點(diǎn)是結(jié)構(gòu)化查詢語(yǔ)言(structured query language,SQL)的上機(jī)練習(xí)。SQL是最重要的非過(guò)程化關(guān)系數(shù)據(jù)庫(kù)操作語(yǔ)言,用于數(shù)據(jù)存取以及查詢、更新和管理關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)。
盡管SQL具有集數(shù)據(jù)定義、數(shù)據(jù)操縱、數(shù)據(jù)控制等功能于一體,語(yǔ)言風(fēng)格統(tǒng)一和簡(jiǎn)潔易學(xué)的特點(diǎn),但在“數(shù)據(jù)庫(kù)原理”實(shí)際教學(xué)中卻存在理論和實(shí)踐脫節(jié)的現(xiàn)象,學(xué)生上機(jī)操作總是感覺無(wú)所適從[1]。除教學(xué)方法問題外,實(shí)驗(yàn)課時(shí)太少、課外實(shí)驗(yàn)缺乏監(jiān)管和指導(dǎo)也是影響學(xué)生對(duì)理論知識(shí)的理解、實(shí)踐知識(shí)轉(zhuǎn)化的重要原因。
為了突破傳統(tǒng)實(shí)驗(yàn)教學(xué)受時(shí)間、場(chǎng)地、軟硬設(shè)備和師資條件的制約,一些高校開發(fā)了基于Web的數(shù)據(jù)庫(kù)在線實(shí)驗(yàn)環(huán)境[2-3]。這些實(shí)驗(yàn)平臺(tái)雖然在數(shù)據(jù)庫(kù)課程實(shí)驗(yàn)教學(xué)中取得了較好的效果,但要求學(xué)生在實(shí)驗(yàn)時(shí)必須實(shí)時(shí)聯(lián)網(wǎng),一旦斷網(wǎng)離線則不能使用。為了給學(xué)生提供一個(gè)更加方便、易用的實(shí)驗(yàn)環(huán)境,筆者設(shè)計(jì)了基于SQLite的數(shù)據(jù)庫(kù)原理自主實(shí)驗(yàn)平臺(tái)。該平臺(tái)軟件為綠色版且無(wú)需安裝,解壓后可直接使用;軟件壓縮包體積小,也方便學(xué)生用U盤、手機(jī)隨身攜帶。
SQLite是一款開源的輕量級(jí)嵌入式關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),完全支持T-SQL標(biāo)準(zhǔn)語(yǔ)言,支持事務(wù)(transaction)處理、觸發(fā)器(trigger)和復(fù)雜查詢[4]。SQLite數(shù)據(jù)庫(kù)系統(tǒng)本身采用C語(yǔ)言編寫,體積非常小,包含在一個(gè)不到500 KB的C語(yǔ)言庫(kù)中。SQLite的數(shù)據(jù)庫(kù)引擎不像Oracle、Sybase等大型Client/Server數(shù)據(jù)庫(kù)管理系統(tǒng)的引擎那樣使用應(yīng)用程序與之通信的獨(dú)立進(jìn)程;相反,SQLite庫(kù)可以被編譯到應(yīng)用軟件中,成為程序的內(nèi)嵌模塊,應(yīng)用程序可以方便地調(diào)用API函數(shù)來(lái)使用SQLite的功能。與進(jìn)程間通信相比,在數(shù)據(jù)處理的速度上API調(diào)用效率更高。
除了小巧、高效外,SQLite還有以下幾個(gè)優(yōu)點(diǎn):
(1) 跨平臺(tái)。SQLite除了支持所有主流計(jì)算機(jī)操作系統(tǒng)如Max OS、Linux、Windows和Unix之外,甚至很多手機(jī)、平板電腦的移動(dòng)操作系統(tǒng)同樣可以運(yùn)行,例如Android、iOS、Windows Phone、Symbian等。
(2) 多語(yǔ)言接口。SQLite提供了為數(shù)眾多的編程語(yǔ)言接口,例如C/C++、Java、Python、dot Net、Ruby、PHP、Perl、Common Lisp和Smalltalk等,因而受到很多開發(fā)者的喜愛。據(jù)SQLite的官方網(wǎng)站稱,SQLite是目前使用最廣泛的數(shù)據(jù)庫(kù)系統(tǒng),就數(shù)量而言,已經(jīng)超越Oracle、Microsoft Sql Server、Sybase、IBM DB2、My Sql和Microsoft Access的總和。
(3) 獨(dú)立性。SQLite的核心引擎不依賴任何第三方軟件,使用它簡(jiǎn)單、靈活、可靠?;赟QLite的應(yīng)用軟件也完全可以做到無(wú)需安裝和管理配置。
在基于SQLite的數(shù)據(jù)庫(kù)原理自主實(shí)驗(yàn)平臺(tái)上練習(xí)SQL語(yǔ)句的時(shí)候,除了能像在真實(shí)的大型數(shù)據(jù)庫(kù)管理系統(tǒng)里一樣執(zhí)行并顯示結(jié)果外,系統(tǒng)還具有精確的錯(cuò)誤診斷功能,可以探測(cè)并定位到SQL程序運(yùn)行過(guò)程中的錯(cuò)誤知識(shí)點(diǎn),根據(jù)需要給出錯(cuò)誤原因和相應(yīng)的SQL命令范例。另外,系統(tǒng)平臺(tái)會(huì)對(duì)學(xué)生用戶全部上機(jī)實(shí)驗(yàn)過(guò)程進(jìn)行記錄,并在聯(lián)網(wǎng)的時(shí)候反饋給教師,起到一定的實(shí)驗(yàn)監(jiān)管作用。
該平臺(tái)的總體結(jié)構(gòu)包括4個(gè)核心功能模塊:SQL主題學(xué)習(xí)模塊、SQL實(shí)驗(yàn)練習(xí)模塊、智能答疑模塊和實(shí)驗(yàn)過(guò)程監(jiān)管模塊。
(1) SQL主題學(xué)習(xí)模塊。實(shí)驗(yàn)平臺(tái)有豐富、齊全的保存在SQLite本地?cái)?shù)據(jù)庫(kù)里的主題學(xué)習(xí)資源,包括數(shù)據(jù)庫(kù)和表的創(chuàng)建、使用,數(shù)據(jù)記錄的增、刪、改操作,簡(jiǎn)單查詢和復(fù)雜查詢,SQL高級(jí)應(yīng)用,索引和視圖,存儲(chǔ)過(guò)程和觸發(fā)器,安全性和完整性管理,數(shù)據(jù)備份和轉(zhuǎn)換等。
(2) SQL實(shí)驗(yàn)練習(xí)模塊。練習(xí)模塊是實(shí)驗(yàn)平臺(tái)最重要的模塊,分自由練習(xí)部分和任務(wù)分配部分。自由練習(xí)部分是學(xué)生為了驗(yàn)證自己的想法、思路去實(shí)現(xiàn)某個(gè)數(shù)據(jù)庫(kù)操作或功能而編寫、測(cè)試SQL程序;任務(wù)分配指的是學(xué)生必須完成的SQL相關(guān)知識(shí)的實(shí)驗(yàn)練習(xí),該模塊實(shí)驗(yàn)?zāi)康?、要求和?nèi)容都非常明確,分配給學(xué)生的實(shí)驗(yàn)題目是隨機(jī)生成的。
(3) 智能答疑模塊。在數(shù)據(jù)庫(kù)原理的實(shí)驗(yàn)過(guò)程中,大部分學(xué)生遇到的實(shí)驗(yàn)難點(diǎn)主要是些常規(guī)問題,所以實(shí)驗(yàn)平臺(tái)設(shè)計(jì)了FAQ(frequently asked questions)知識(shí)庫(kù)。為了降低學(xué)生檢索問題的難度,實(shí)驗(yàn)平臺(tái)還嵌入了智能導(dǎo)學(xué)機(jī)器人,以仿騰訊QQ、微軟MSN等傳統(tǒng)即時(shí)消息軟件的會(huì)話方式來(lái)構(gòu)建人機(jī)互動(dòng)和構(gòu)建智能答疑環(huán)境[4]。導(dǎo)學(xué)機(jī)器人模擬任課教師對(duì)學(xué)生進(jìn)行即時(shí)指導(dǎo)的聊天式答疑風(fēng)格,能使學(xué)生在枯燥乏味的實(shí)驗(yàn)環(huán)境中體驗(yàn)學(xué)習(xí)的樂趣。
(4) 實(shí)驗(yàn)過(guò)程監(jiān)管模塊。學(xué)生每一次進(jìn)入實(shí)驗(yàn)平臺(tái)上機(jī)練習(xí)的全過(guò)程,包括起始時(shí)間、結(jié)束時(shí)間、有效實(shí)驗(yàn)時(shí)間、實(shí)驗(yàn)進(jìn)度、任務(wù)分配、實(shí)驗(yàn)結(jié)果等,都會(huì)被自動(dòng)記錄在SQLite數(shù)據(jù)庫(kù)中,并在隨后的時(shí)間里一旦檢測(cè)到計(jì)算機(jī)聯(lián)網(wǎng),即會(huì)把實(shí)驗(yàn)過(guò)程監(jiān)管記錄發(fā)送給任課教師。
3.1 實(shí)驗(yàn)平臺(tái)的構(gòu)建
數(shù)據(jù)庫(kù)原理自主實(shí)驗(yàn)平臺(tái)基于Microsoft .NET框架,采用C#語(yǔ)言開發(fā),其開發(fā)環(huán)境和運(yùn)行部署的SQLite數(shù)據(jù)庫(kù)驅(qū)動(dòng)都只需要一個(gè)System.Data.SQLite.dll動(dòng)態(tài)鏈接庫(kù)文件即可,該程序符合ADO.NET的規(guī)范,并且支持Visual Studio的可視化表設(shè)計(jì)器。
由于所有的SQL主題學(xué)習(xí)資源、任務(wù)實(shí)驗(yàn)練習(xí)試題和FAQ知識(shí)庫(kù)全部保存在本地SQLite數(shù)據(jù)庫(kù)文件中,為了避免數(shù)據(jù)的完整性和安全性受到影響,學(xué)生實(shí)驗(yàn)時(shí)的所有數(shù)據(jù)操作都是基于另外一個(gè)單獨(dú)的專用練習(xí)數(shù)據(jù)庫(kù),并且設(shè)計(jì)了基于多級(jí)角色的安全訪問功能[5]。
實(shí)驗(yàn)平臺(tái)的軟件界面主要由SQL主題學(xué)習(xí)模塊的資源分類呈現(xiàn)單元和實(shí)驗(yàn)練習(xí)模塊的SQL程序執(zhí)行單元構(gòu)成,核心在SQLite的數(shù)據(jù)庫(kù)操作,關(guān)鍵函數(shù)調(diào)用如下:
CSqlite csqlite = new CSqlite(@″D:sqlite3dbStudent.db″);
//創(chuàng)建數(shù)據(jù)庫(kù)對(duì)象,參數(shù)為數(shù)據(jù)文件路徑
csqlite.Open(); //打開數(shù)據(jù)庫(kù)
csqlite.BeginTransaction(); //開啟事務(wù)
public DataTable ExecuteQueryTable(string sqlCmd); //執(zhí)行SQL命令,并返回DataTable
public int ExecuteNonQuery(string sqlCmd); //執(zhí)行SQL命令,返回影響行數(shù)
csqlite.Commit(); //提交事務(wù)
csqlite.Rollback(); //回滾事務(wù)
csqlite.Dispose(); //關(guān)閉數(shù)據(jù)庫(kù)
基于SQLite的數(shù)據(jù)庫(kù)原理自主實(shí)驗(yàn)平臺(tái)的功能界面如圖1所示。
圖1 數(shù)據(jù)庫(kù)原理自主實(shí)驗(yàn)平臺(tái)功能界面圖
3.2 SQL語(yǔ)法檢查
實(shí)驗(yàn)平臺(tái)采用開源語(yǔ)法分析器ANTLR對(duì)SQL源程序進(jìn)行語(yǔ)法檢查和診斷。ANTLR可以接收上下文無(wú)關(guān)的語(yǔ)法規(guī)則描述,通過(guò)解析用戶定義的語(yǔ)法規(guī)則來(lái)識(shí)別輸入語(yǔ)句,并根據(jù)需要自動(dòng)生成多種語(yǔ)言的源代碼程序,包括Java、Python和C#等[6]。作為翻譯程序的一部分,ANTLR可以允許使用簡(jiǎn)單的操作符和動(dòng)作來(lái)表達(dá)語(yǔ)法規(guī)則,從而較為輕松地創(chuàng)建抽象語(yǔ)法樹和產(chǎn)生最終輸出信息。
ANTLR的SQL語(yǔ)法檢查流程分為詞法分析和語(yǔ)法分析兩個(gè)步驟。
在詞法分析階段,需要先定義SQL程序中的各種關(guān)鍵字、標(biāo)識(shí)符和操作符,如create、select、from、where、=、<>等詞元(token),然后對(duì)SQL程序進(jìn)行預(yù)處理,例如過(guò)濾空格、回車、換行及注釋等,再由詞法分析器(lexer)把輸入的程序代碼文本的字符流識(shí)別成離散的Token序列[7]。
在語(yǔ)法分析階段,語(yǔ)法分析器(parser)的解析程序根據(jù)預(yù)先定義的SQL語(yǔ)法規(guī)則,對(duì)Token序列進(jìn)行語(yǔ)法分析,建立層次化的抽象語(yǔ)法樹(AST),并在AST對(duì)象的基礎(chǔ)上配合元數(shù)據(jù)管理系統(tǒng)進(jìn)行語(yǔ)義檢查工作。語(yǔ)義檢查主要是進(jìn)行表實(shí)體、屬性及其關(guān)系檢查。
對(duì)SQL語(yǔ)法規(guī)則的準(zhǔn)確描述是實(shí)現(xiàn)其語(yǔ)法檢查的關(guān)鍵,以查詢語(yǔ)句為例,語(yǔ)法規(guī)則表達(dá)式如下:
tokens {SQL_STATEMENT;SELECT_LIST;TABLE_REFERENCE_LIST;WHERE_CONDITIONG;SUBQUERY;}
start_rule:(sql_statement)*EOF;
sql_statement:sql_command(SEMI)?
{#sql_statement = #([SQL_STATEMENT,″sql_statement″],#sql_statement);}
select_expression:
″select″ (″all″|″distinct″) ? select_list
″from″ table_reference_list
(″where″ where_condition) ? (connect_clause) ? (group_clause) ?
((set_clause) => set_clause) ? ((order_clause) => order_clause) ?
((update_clause) => update_clause);
select_list:
((displayed_column) => displayed_column (COMMA displayed_column)*
| LBRACKET table_name DOT ASTERISK RBRACKET)
{#select_list = #([SELECT_LIST,″select_list″]),#select_list;};
3.3 FAQ自動(dòng)采集
知識(shí)資源豐富的高質(zhì)量FAQ是實(shí)現(xiàn)智能答疑的基礎(chǔ)。為了快速、高效地構(gòu)建“數(shù)據(jù)庫(kù)原理”FAQ,實(shí)驗(yàn)平臺(tái)利用垂直網(wǎng)絡(luò)蜘蛛(spider)進(jìn)行自動(dòng)采集,具體步驟如下。
首先,根據(jù)“數(shù)據(jù)庫(kù)原理”課程生成所有知識(shí)點(diǎn)的主題關(guān)鍵詞表,Spider按關(guān)鍵詞依序從指定網(wǎng)站“百度知道”抓取主題相關(guān)的網(wǎng)頁(yè)集。“百度知道”是由百度自主研發(fā)、基于搜索的互動(dòng)式知識(shí)問答分享平臺(tái),提供了眾多領(lǐng)域的海量問答資源。針對(duì)“百度知道”平臺(tái)中“數(shù)據(jù)庫(kù)原理”課程關(guān)聯(lián)知識(shí)的分布式特點(diǎn),Spider采用增量式采集和最佳優(yōu)先算法,在提高查全率的同時(shí),盡量提高知識(shí)資源的搜索效率。
然后,把經(jīng)過(guò)PageRank算法排序的抓取網(wǎng)頁(yè)集作為樣本進(jìn)行去噪、解析成Dom頁(yè)面集[8],并根據(jù)FAQ語(yǔ)義數(shù)據(jù)模型對(duì)Dom頁(yè)面集進(jìn)行標(biāo)記,建立頁(yè)面信息內(nèi)容與FAQ知識(shí)對(duì)象的對(duì)應(yīng)關(guān)系。網(wǎng)頁(yè)去噪的基本方法是利用各種通用的特征來(lái)區(qū)分有效正文內(nèi)容和頁(yè)眉、頁(yè)腳、廣告等其他信息[9]。其中最常用的特征是鏈接文字比率。FAQ使用HtmlAgilityPack把HTML轉(zhuǎn)換為Dom樹,再對(duì)每個(gè)節(jié)點(diǎn)計(jì)算鏈接文字比率,如果高于25%就把該節(jié)點(diǎn)去掉。
最后,直接采集Dom樹頁(yè)面子節(jié)點(diǎn)的有效正文內(nèi)容,存入FAQ知識(shí)庫(kù)并建立其數(shù)據(jù)庫(kù)文檔的倒排索引,包括正向索引和反向索引。由于倒排索引的大小可能和文檔內(nèi)容本身差不多,尤其當(dāng)文檔數(shù)量較多時(shí),為了節(jié)省數(shù)據(jù)庫(kù)存儲(chǔ)空間,可以采用壓縮格式存儲(chǔ)倒排索引。
Spider在“百度知道”站點(diǎn)實(shí)現(xiàn)網(wǎng)頁(yè)自動(dòng)抓取的主要流程如下:
Static List
Static List
Static List
Public void Crawler(){ //網(wǎng)絡(luò)蜘蛛的開始點(diǎn)
RequestSite(startpointAdress); //訪問種子站點(diǎn)
While (doto.Count > 0 ) { //如果有需要遍歷的鏈接,則逐個(gè)遍歷}}
Todo.AddRange(GetLinks(s)); //增加鏈接到隊(duì)列尾部
todo
3.4 實(shí)驗(yàn)過(guò)程監(jiān)管
嚴(yán)格的實(shí)驗(yàn)過(guò)程監(jiān)管可以對(duì)學(xué)生形成正面導(dǎo)向和牽引的力量;基于實(shí)驗(yàn)過(guò)程的考核評(píng)價(jià)方法能對(duì)學(xué)生起到一定的鞭策和督促作用[10]。因此,數(shù)據(jù)庫(kù)原理自主實(shí)驗(yàn)平臺(tái)設(shè)計(jì)了實(shí)驗(yàn)過(guò)程監(jiān)管模塊。學(xué)生每一次實(shí)驗(yàn)的登錄時(shí)間、結(jié)束時(shí)間、有效實(shí)驗(yàn)時(shí)間、實(shí)驗(yàn)練習(xí)的SQL程序及其運(yùn)行狀態(tài)等實(shí)驗(yàn)過(guò)程數(shù)據(jù)信息,甚至包括主題資源的學(xué)習(xí)進(jìn)度都會(huì)被自動(dòng)記錄在SQLite數(shù)據(jù)庫(kù)中。當(dāng)實(shí)驗(yàn)平臺(tái)檢測(cè)到計(jì)算機(jī)聯(lián)網(wǎng)時(shí)就會(huì)在后臺(tái)通過(guò)電子郵件方式自動(dòng)把實(shí)驗(yàn)過(guò)程監(jiān)管記錄發(fā)送給任課教師。
C#中一般有兩種方法來(lái)判斷計(jì)算機(jī)是否連接互聯(lián)網(wǎng)。第一種是通過(guò)調(diào)用cmd中的ping命令,分析輸出信息來(lái)確定網(wǎng)絡(luò)是否連接;第二種是調(diào)用win32的API函數(shù)InternetGetConnectedState()返回本地系統(tǒng)的網(wǎng)絡(luò)連接狀態(tài)。因?yàn)榈谝环N方式受到ping時(shí)延的影響,在某些不支持ping的地址或者網(wǎng)段甚至不可用,所以實(shí)驗(yàn)平臺(tái)采用第二種方法,語(yǔ)法為BOOL InternetGetConnectedState(LPDWORD lpdwFlags,DWORD dwReserved)。其中參數(shù)lpdwFlags返回當(dāng)前網(wǎng)絡(luò)連接狀態(tài),dwReserved是保留參數(shù),設(shè)置為0即可。
另外,由于Microsoft .NET類庫(kù)中的SmtpClient類已經(jīng)對(duì)SMTP協(xié)議實(shí)現(xiàn)了完美封裝[11-12],當(dāng)系統(tǒng)平臺(tái)在發(fā)送電子郵件的時(shí)候只需要調(diào)用SmtpClient類的相關(guān)方法和函數(shù),非常方便。
郵件發(fā)送方法:
private void SendMail(SmtpClient client,MailAddress from,string p, MailAddress to, MailMessage message) {
client.UseDefaultCredentials = false;
client.Credentials = new NetworkCredential(from.Address, p);
client.DeliveryMethod = SmtpDeliveryMethod.Network; //郵件通過(guò)網(wǎng)絡(luò)發(fā)送到服務(wù)器
client.Send(message);
message.Dispose(); //及時(shí)釋放占用資源 }
其中MailAddress用于提供發(fā)件人和收件人的郵件地址,MailMessage用于提供郵件的信息,包括主題、內(nèi)容、附件、信息類型等。
基于SQLite的數(shù)據(jù)庫(kù)原理自主實(shí)驗(yàn)平臺(tái)用于實(shí)驗(yàn)教學(xué),學(xué)生可以不受時(shí)間、地點(diǎn)、網(wǎng)絡(luò)環(huán)境的限制,非常方便地獨(dú)立完成SQL的實(shí)驗(yàn)操作。該實(shí)驗(yàn)平臺(tái)軟件界面友好、功能實(shí)用,不僅能對(duì)SQL程序?qū)崿F(xiàn)精確的語(yǔ)法檢查和診斷,還可以自動(dòng)生成實(shí)驗(yàn)報(bào)告。盡管智能導(dǎo)學(xué)機(jī)器人在智能答疑環(huán)節(jié)能通過(guò)中文分詞和問句相似度計(jì)算、從FAQ知識(shí)庫(kù)中推薦最佳答案,但未能根據(jù)學(xué)生的學(xué)識(shí)水平進(jìn)一步予以個(gè)性化的主題資源學(xué)習(xí)導(dǎo)航。所以,基于SQLite的數(shù)據(jù)庫(kù)原理自主實(shí)驗(yàn)平臺(tái)需要進(jìn)一步完善學(xué)生模型和擴(kuò)充學(xué)習(xí)資源庫(kù),以便機(jī)器人能根據(jù)學(xué)生的學(xué)習(xí)能力和實(shí)驗(yàn)水平進(jìn)行差異化導(dǎo)學(xué),使實(shí)驗(yàn)平臺(tái)成為學(xué)生理想的“數(shù)據(jù)庫(kù)原理”學(xué)習(xí)平臺(tái)。
References)
[1] 黃德才,龔衛(wèi)華.“數(shù)據(jù)庫(kù)原理及應(yīng)用”實(shí)驗(yàn)?zāi)K的組織原則與教學(xué)實(shí)踐[J].計(jì)算機(jī)教育,2009(10):169-171.
[2] 郭東偉,于明光,劉淼.數(shù)據(jù)庫(kù)應(yīng)用實(shí)驗(yàn)在線自動(dòng)測(cè)評(píng)環(huán)境[J].實(shí)驗(yàn)室研究與探索,2011,30(5):60-63.
[3] 劉文菊,柯永振,時(shí)珍全,等.基于Web的數(shù)據(jù)庫(kù)遠(yuǎn)程自主實(shí)驗(yàn)平臺(tái)[J].現(xiàn)代教育技術(shù),2010,20(3):132-134.
[4] 黎孟雄.基于IM的智能導(dǎo)學(xué)機(jī)器人的研究與設(shè)計(jì)[J].現(xiàn)代教育技術(shù),2013,23(1):97-101.
[5] 白晉國(guó),胡澤明,孫紅勝.基于RBAC模型多級(jí)角色的SQLite3安全訪問控制[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2015,24(5):177-182.
[6] 王海燕,楊鶴標(biāo).基于ANTLR的SQL語(yǔ)法分析策略與實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用與軟件,2013,30(11):68-70.
[7] 孫兆玉,朱鴻宇,黃宇光.一種SQL語(yǔ)法分析的策略和實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用,2007,27(6):18-23.
[8] Richardson M, Domingos P. The intelligent surfer: probabilistic combination of link and content information in PageRank[J].Advances in Neural Information Processing Systems,2001,14:1441-1448.
[9] 吳思竹,張智雄.基于網(wǎng)頁(yè)特征識(shí)別的噪音網(wǎng)頁(yè)過(guò)濾方法研究[J].情報(bào)理論與實(shí)踐,2011,34(4):111-114.
[10] 王魯云,張明君,王穎,等.實(shí)驗(yàn)課教學(xué)過(guò)程管理模式的改革與實(shí)踐[J].實(shí)驗(yàn)技術(shù)與管理,2013,30(6):102-104,117.
[11] 李福紅,于九九.C#開發(fā)郵件工具[J].電腦編程技巧與維護(hù),2013(3):30-36.
[12] SmtpClient[EB/OL].[2016-03-15].https://msdn.microsoft.com/zh-cn/library/system.net.mail.smtpclient(VS.80).aspx.
Design of self-experimental platform based on Database Principle of SQLite
Li Mengxiong1,2, Guo Pengfei2
(1. School of Mathematics and Information Engineering, Jiangsu Normal University, Lianyungang 222006, China;2. School of Mathematics and Information Engineering, Lianyungang Normal College, Lianyungang 222006, China)
In order to solve the problems faced by the traditional experimental teaching of Database Principle and its common online experimental software,this paper designs and completes a self-experimental platform based on the Database Principle of SQLite. The general structure of the platform includes SQL-subject learning module, SQL experimental exercise module, intelligent question answering module and experimental process supervision module. The key technologies for the systematic structure of this platform, its core function, formation,SQL grammar checking,FAQ automatic collection and experimental processing supervision are described in detail, and the key function calling programs are provided.
Database Principle course; self-experimental platform; SQLite
10.16791/j.cnki.sjg.2016.11.039
2016-05-15
教育部高職高專教育規(guī)劃課題(JZW590112052);江蘇省教育科學(xué)“十二五”規(guī)劃課題(D/2015/03/085)
黎孟雄(1973—),男,湖南邵陽(yáng),碩士,副教授,主要研究方向?yàn)閿?shù)據(jù)挖掘和教育信息化.
E-mail:jslyglmx@163.com
TP311.13;G642
A
1002-4956(2016)11-0157-04