999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于SQLite的數據庫原理自主實驗平臺設計

2016-12-05 10:08:04黎孟雄郭鵬飛
實驗技術與管理 2016年11期
關鍵詞:數據庫實驗學生

黎孟雄, 郭鵬飛

(1. 江蘇師范大學連云港校區 數學與信息工程學院, 江蘇 連云港 222006;2. 連云港師范高等專科學校 數學與信息工程學院, 江蘇 連云港 222006)

?

基于SQLite的數據庫原理自主實驗平臺設計

黎孟雄1,2, 郭鵬飛2

(1. 江蘇師范大學連云港校區 數學與信息工程學院, 江蘇 連云港 222006;2. 連云港師范高等專科學校 數學與信息工程學院, 江蘇 連云港 222006)

為了解決傳統的數據庫原理實驗教學及一般的數據庫在線實驗軟件所面臨的一些問題,設計和實現了基于SQLite的數據庫原理的自主實驗平臺。該平臺的總體結構包括SQL主題學習模塊、SQL實驗練習模塊、智能答疑模塊和實驗過程監管模塊。詳細闡述了平臺的體系結構、核心功能及其實驗平臺的構建、SQL語法檢查、FAQ自動采集和實驗過程監管等關鍵技術,給出了關鍵函數調用程序。

數據庫原理課程; 自主實驗平臺; SQLite

數據庫是信息化建設的基石,幾乎所有的計算機應用軟件都構建于數據庫系統之上。因此,“數據庫原理”課程已成為高校計算機、信息管理、電子商務等專業的必修課,也是一門理論和實踐結合非常緊密的數據庫系列基礎課。在課程實驗環節,重點是結構化查詢語言(structured query language,SQL)的上機練習。SQL是最重要的非過程化關系數據庫操作語言,用于數據存取以及查詢、更新和管理關系數據庫系統。

盡管SQL具有集數據定義、數據操縱、數據控制等功能于一體,語言風格統一和簡潔易學的特點,但在“數據庫原理”實際教學中卻存在理論和實踐脫節的現象,學生上機操作總是感覺無所適從[1]。除教學方法問題外,實驗課時太少、課外實驗缺乏監管和指導也是影響學生對理論知識的理解、實踐知識轉化的重要原因。

為了突破傳統實驗教學受時間、場地、軟硬設備和師資條件的制約,一些高校開發了基于Web的數據庫在線實驗環境[2-3]。這些實驗平臺雖然在數據庫課程實驗教學中取得了較好的效果,但要求學生在實驗時必須實時聯網,一旦斷網離線則不能使用。為了給學生提供一個更加方便、易用的實驗環境,筆者設計了基于SQLite的數據庫原理自主實驗平臺。該平臺軟件為綠色版且無需安裝,解壓后可直接使用;軟件壓縮包體積小,也方便學生用U盤、手機隨身攜帶。

1 SQLite及其優點

SQLite是一款開源的輕量級嵌入式關系型數據庫管理系統,完全支持T-SQL標準語言,支持事務(transaction)處理、觸發器(trigger)和復雜查詢[4]。SQLite數據庫系統本身采用C語言編寫,體積非常小,包含在一個不到500 KB的C語言庫中。SQLite的數據庫引擎不像Oracle、Sybase等大型Client/Server數據庫管理系統的引擎那樣使用應用程序與之通信的獨立進程;相反,SQLite庫可以被編譯到應用軟件中,成為程序的內嵌模塊,應用程序可以方便地調用API函數來使用SQLite的功能。與進程間通信相比,在數據處理的速度上API調用效率更高。

除了小巧、高效外,SQLite還有以下幾個優點:

(1) 跨平臺。SQLite除了支持所有主流計算機操作系統如Max OS、Linux、Windows和Unix之外,甚至很多手機、平板電腦的移動操作系統同樣可以運行,例如Android、iOS、Windows Phone、Symbian等。

(2) 多語言接口。SQLite提供了為數眾多的編程語言接口,例如C/C++、Java、Python、dot Net、Ruby、PHP、Perl、Common Lisp和Smalltalk等,因而受到很多開發者的喜愛。據SQLite的官方網站稱,SQLite是目前使用最廣泛的數據庫系統,就數量而言,已經超越Oracle、Microsoft Sql Server、Sybase、IBM DB2、My Sql和Microsoft Access的總和。

(3) 獨立性。SQLite的核心引擎不依賴任何第三方軟件,使用它簡單、靈活、可靠。基于SQLite的應用軟件也完全可以做到無需安裝和管理配置。

2 平臺體系結構

在基于SQLite的數據庫原理自主實驗平臺上練習SQL語句的時候,除了能像在真實的大型數據庫管理系統里一樣執行并顯示結果外,系統還具有精確的錯誤診斷功能,可以探測并定位到SQL程序運行過程中的錯誤知識點,根據需要給出錯誤原因和相應的SQL命令范例。另外,系統平臺會對學生用戶全部上機實驗過程進行記錄,并在聯網的時候反饋給教師,起到一定的實驗監管作用。

該平臺的總體結構包括4個核心功能模塊:SQL主題學習模塊、SQL實驗練習模塊、智能答疑模塊和實驗過程監管模塊。

(1) SQL主題學習模塊。實驗平臺有豐富、齊全的保存在SQLite本地數據庫里的主題學習資源,包括數據庫和表的創建、使用,數據記錄的增、刪、改操作,簡單查詢和復雜查詢,SQL高級應用,索引和視圖,存儲過程和觸發器,安全性和完整性管理,數據備份和轉換等。

(2) SQL實驗練習模塊。練習模塊是實驗平臺最重要的模塊,分自由練習部分和任務分配部分。自由練習部分是學生為了驗證自己的想法、思路去實現某個數據庫操作或功能而編寫、測試SQL程序;任務分配指的是學生必須完成的SQL相關知識的實驗練習,該模塊實驗目的、要求和內容都非常明確,分配給學生的實驗題目是隨機生成的。

(3) 智能答疑模塊。在數據庫原理的實驗過程中,大部分學生遇到的實驗難點主要是些常規問題,所以實驗平臺設計了FAQ(frequently asked questions)知識庫。為了降低學生檢索問題的難度,實驗平臺還嵌入了智能導學機器人,以仿騰訊QQ、微軟MSN等傳統即時消息軟件的會話方式來構建人機互動和構建智能答疑環境[4]。導學機器人模擬任課教師對學生進行即時指導的聊天式答疑風格,能使學生在枯燥乏味的實驗環境中體驗學習的樂趣。

(4) 實驗過程監管模塊。學生每一次進入實驗平臺上機練習的全過程,包括起始時間、結束時間、有效實驗時間、實驗進度、任務分配、實驗結果等,都會被自動記錄在SQLite數據庫中,并在隨后的時間里一旦檢測到計算機聯網,即會把實驗過程監管記錄發送給任課教師。

3 關鍵技術的設計

3.1 實驗平臺的構建

數據庫原理自主實驗平臺基于Microsoft .NET框架,采用C#語言開發,其開發環境和運行部署的SQLite數據庫驅動都只需要一個System.Data.SQLite.dll動態鏈接庫文件即可,該程序符合ADO.NET的規范,并且支持Visual Studio的可視化表設計器。

由于所有的SQL主題學習資源、任務實驗練習試題和FAQ知識庫全部保存在本地SQLite數據庫文件中,為了避免數據的完整性和安全性受到影響,學生實驗時的所有數據操作都是基于另外一個單獨的專用練習數據庫,并且設計了基于多級角色的安全訪問功能[5]。

實驗平臺的軟件界面主要由SQL主題學習模塊的資源分類呈現單元和實驗練習模塊的SQL程序執行單元構成,核心在SQLite的數據庫操作,關鍵函數調用如下:

CSqlite csqlite = new CSqlite(@″D:sqlite3dbStudent.db″);

//創建數據庫對象,參數為數據文件路徑

csqlite.Open(); //打開數據庫

csqlite.BeginTransaction(); //開啟事務

public DataTable ExecuteQueryTable(string sqlCmd); //執行SQL命令,并返回DataTable

public int ExecuteNonQuery(string sqlCmd); //執行SQL命令,返回影響行數

csqlite.Commit(); //提交事務

csqlite.Rollback(); //回滾事務

csqlite.Dispose(); //關閉數據庫

基于SQLite的數據庫原理自主實驗平臺的功能界面如圖1所示。

圖1 數據庫原理自主實驗平臺功能界面圖

3.2 SQL語法檢查

實驗平臺采用開源語法分析器ANTLR對SQL源程序進行語法檢查和診斷。ANTLR可以接收上下文無關的語法規則描述,通過解析用戶定義的語法規則來識別輸入語句,并根據需要自動生成多種語言的源代碼程序,包括Java、Python和C#等[6]。作為翻譯程序的一部分,ANTLR可以允許使用簡單的操作符和動作來表達語法規則,從而較為輕松地創建抽象語法樹和產生最終輸出信息。

ANTLR的SQL語法檢查流程分為詞法分析和語法分析兩個步驟。

在詞法分析階段,需要先定義SQL程序中的各種關鍵字、標識符和操作符,如create、select、from、where、=、<>等詞元(token),然后對SQL程序進行預處理,例如過濾空格、回車、換行及注釋等,再由詞法分析器(lexer)把輸入的程序代碼文本的字符流識別成離散的Token序列[7]。

在語法分析階段,語法分析器(parser)的解析程序根據預先定義的SQL語法規則,對Token序列進行語法分析,建立層次化的抽象語法樹(AST),并在AST對象的基礎上配合元數據管理系統進行語義檢查工作。語義檢查主要是進行表實體、屬性及其關系檢查。

對SQL語法規則的準確描述是實現其語法檢查的關鍵,以查詢語句為例,語法規則表達式如下:

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自動采集

知識資源豐富的高質量FAQ是實現智能答疑的基礎。為了快速、高效地構建“數據庫原理”FAQ,實驗平臺利用垂直網絡蜘蛛(spider)進行自動采集,具體步驟如下。

首先,根據“數據庫原理”課程生成所有知識點的主題關鍵詞表,Spider按關鍵詞依序從指定網站“百度知道”抓取主題相關的網頁集。“百度知道”是由百度自主研發、基于搜索的互動式知識問答分享平臺,提供了眾多領域的海量問答資源。針對“百度知道”平臺中“數據庫原理”課程關聯知識的分布式特點,Spider采用增量式采集和最佳優先算法,在提高查全率的同時,盡量提高知識資源的搜索效率。

然后,把經過PageRank算法排序的抓取網頁集作為樣本進行去噪、解析成Dom頁面集[8],并根據FAQ語義數據模型對Dom頁面集進行標記,建立頁面信息內容與FAQ知識對象的對應關系。網頁去噪的基本方法是利用各種通用的特征來區分有效正文內容和頁眉、頁腳、廣告等其他信息[9]。其中最常用的特征是鏈接文字比率。FAQ使用HtmlAgilityPack把HTML轉換為Dom樹,再對每個節點計算鏈接文字比率,如果高于25%就把該節點去掉。

最后,直接采集Dom樹頁面子節點的有效正文內容,存入FAQ知識庫并建立其數據庫文檔的倒排索引,包括正向索引和反向索引。由于倒排索引的大小可能和文檔內容本身差不多,尤其當文檔數量較多時,為了節省數據庫存儲空間,可以采用壓縮格式存儲倒排索引。

Spider在“百度知道”站點實現網頁自動抓取的主要流程如下:

Static List todo = new List(); //要訪問的鏈接

Static List visited = new List(); //已經訪問過的鏈接

Static List startpointAdress =http://zhidao.baidu.com/; //把百度知道作為種子站點

Public void Crawler(){ //網絡蜘蛛的開始點

RequestSite(startpointAdress); //訪問種子站點

While (doto.Count > 0 ) { //如果有需要遍歷的鏈接,則逐個遍歷}}

Todo.AddRange(GetLinks(s)); //增加鏈接到隊列尾部

todo GetLinks(string htmlpage){//通過正則表達式提取鏈接}

3.4 實驗過程監管

嚴格的實驗過程監管可以對學生形成正面導向和牽引的力量;基于實驗過程的考核評價方法能對學生起到一定的鞭策和督促作用[10]。因此,數據庫原理自主實驗平臺設計了實驗過程監管模塊。學生每一次實驗的登錄時間、結束時間、有效實驗時間、實驗練習的SQL程序及其運行狀態等實驗過程數據信息,甚至包括主題資源的學習進度都會被自動記錄在SQLite數據庫中。當實驗平臺檢測到計算機聯網時就會在后臺通過電子郵件方式自動把實驗過程監管記錄發送給任課教師。

C#中一般有兩種方法來判斷計算機是否連接互聯網。第一種是通過調用cmd中的ping命令,分析輸出信息來確定網絡是否連接;第二種是調用win32的API函數InternetGetConnectedState()返回本地系統的網絡連接狀態。因為第一種方式受到ping時延的影響,在某些不支持ping的地址或者網段甚至不可用,所以實驗平臺采用第二種方法,語法為BOOL InternetGetConnectedState(LPDWORD lpdwFlags,DWORD dwReserved)。其中參數lpdwFlags返回當前網絡連接狀態,dwReserved是保留參數,設置為0即可。

另外,由于Microsoft .NET類庫中的SmtpClient類已經對SMTP協議實現了完美封裝[11-12],當系統平臺在發送電子郵件的時候只需要調用SmtpClient類的相關方法和函數,非常方便。

郵件發送方法:

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; //郵件通過網絡發送到服務器

client.Send(message);

message.Dispose(); //及時釋放占用資源 }

其中MailAddress用于提供發件人和收件人的郵件地址,MailMessage用于提供郵件的信息,包括主題、內容、附件、信息類型等。

4 結語

基于SQLite的數據庫原理自主實驗平臺用于實驗教學,學生可以不受時間、地點、網絡環境的限制,非常方便地獨立完成SQL的實驗操作。該實驗平臺軟件界面友好、功能實用,不僅能對SQL程序實現精確的語法檢查和診斷,還可以自動生成實驗報告。盡管智能導學機器人在智能答疑環節能通過中文分詞和問句相似度計算、從FAQ知識庫中推薦最佳答案,但未能根據學生的學識水平進一步予以個性化的主題資源學習導航。所以,基于SQLite的數據庫原理自主實驗平臺需要進一步完善學生模型和擴充學習資源庫,以便機器人能根據學生的學習能力和實驗水平進行差異化導學,使實驗平臺成為學生理想的“數據庫原理”學習平臺。

References)

[1] 黃德才,龔衛華.“數據庫原理及應用”實驗模塊的組織原則與教學實踐[J].計算機教育,2009(10):169-171.

[2] 郭東偉,于明光,劉淼.數據庫應用實驗在線自動測評環境[J].實驗室研究與探索,2011,30(5):60-63.

[3] 劉文菊,柯永振,時珍全,等.基于Web的數據庫遠程自主實驗平臺[J].現代教育技術,2010,20(3):132-134.

[4] 黎孟雄.基于IM的智能導學機器人的研究與設計[J].現代教育技術,2013,23(1):97-101.

[5] 白晉國,胡澤明,孫紅勝.基于RBAC模型多級角色的SQLite3安全訪問控制[J].計算機系統應用,2015,24(5):177-182.

[6] 王海燕,楊鶴標.基于ANTLR的SQL語法分析策略與實現[J].計算機應用與軟件,2013,30(11):68-70.

[7] 孫兆玉,朱鴻宇,黃宇光.一種SQL語法分析的策略和實現[J].計算機應用,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] 吳思竹,張智雄.基于網頁特征識別的噪音網頁過濾方法研究[J].情報理論與實踐,2011,34(4):111-114.

[10] 王魯云,張明君,王穎,等.實驗課教學過程管理模式的改革與實踐[J].實驗技術與管理,2013,30(6):102-104,117.

[11] 李福紅,于九九.C#開發郵件工具[J].電腦編程技巧與維護,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

教育部高職高專教育規劃課題(JZW590112052);江蘇省教育科學“十二五”規劃課題(D/2015/03/085)

黎孟雄(1973—),男,湖南邵陽,碩士,副教授,主要研究方向為數據挖掘和教育信息化.

E-mail:jslyglmx@163.com

TP311.13;G642

A

1002-4956(2016)11-0157-04

猜你喜歡
數據庫實驗學生
記一次有趣的實驗
做個怪怪長實驗
趕不走的學生
數據庫
財經(2017年2期)2017-03-10 14:35:35
學生寫話
NO與NO2相互轉化實驗的改進
實踐十號上的19項實驗
太空探索(2016年5期)2016-07-12 15:17:55
學生寫的話
數據庫
財經(2016年15期)2016-06-03 07:38:02
數據庫
財經(2016年3期)2016-03-07 07:44:46
主站蜘蛛池模板: h视频在线观看网站| 成人综合网址| 国产成人久久综合777777麻豆 | 欧美国产日本高清不卡| 日本国产精品一区久久久| 国产手机在线小视频免费观看| 91精品国产一区自在线拍| 国产成人精品免费视频大全五级| 亚洲精品动漫| 亚洲人成人无码www| 色偷偷一区二区三区| 人妻中文字幕无码久久一区| 精久久久久无码区中文字幕| 18禁黄无遮挡免费动漫网站| 日韩高清一区 | a级免费视频| 日本一本在线视频| 夜夜高潮夜夜爽国产伦精品| 欧美成人免费一区在线播放| 色妞永久免费视频| 欧美精品成人一区二区在线观看| 国产全黄a一级毛片| 久久这里只有精品免费| 91色在线视频| 青青草久久伊人| 日韩精品亚洲人旧成在线| 国产精品第三页在线看| 欧美日韩精品一区二区视频| 国产91视频观看| 亚洲女同欧美在线| 亚洲无码精品在线播放| 亚洲日韩AV无码精品| 亚洲人网站| 中文字幕天无码久久精品视频免费 | 永久免费av网站可以直接看的| 妇女自拍偷自拍亚洲精品| 国产精品女同一区三区五区| 久久这里只有精品8| 日韩精品无码免费专网站| 亚洲女人在线| 91精品日韩人妻无码久久| 首页亚洲国产丝袜长腿综合| 一级毛片免费的| 国产嫖妓91东北老熟女久久一| 成人免费视频一区二区三区| 55夜色66夜色国产精品视频| 1769国产精品视频免费观看| 久久精品中文字幕免费| 亚洲毛片网站| 国产精品尤物在线| 亚洲人妖在线| 不卡国产视频第一页| 色悠久久久久久久综合网伊人| 日韩a在线观看免费观看| 国产网站在线看| 狠狠v日韩v欧美v| 亚洲精品成人片在线观看 | 在线免费观看AV| 国产视频自拍一区| 先锋资源久久| 久久成人免费| 亚洲欧美日韩动漫| 91精品小视频| 免费高清自慰一区二区三区| 国产欧美一区二区三区视频在线观看| 天堂网亚洲综合在线| 亚洲 欧美 偷自乱 图片| 午夜精品一区二区蜜桃| 亚洲色图在线观看| 在线观看网站国产| 午夜国产大片免费观看| 992tv国产人成在线观看| 亚洲欧州色色免费AV| 久草视频精品| 激情五月婷婷综合网| 67194在线午夜亚洲| 日韩欧美亚洲国产成人综合| 国产精彩视频在线观看| 波多野结衣爽到高潮漏水大喷| 中文字幕自拍偷拍| 免费在线国产一区二区三区精品| 亚洲永久免费网站|