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

網(wǎng)絡(luò)課程中嵌入式數(shù)據(jù)庫技術(shù)的應(yīng)用與編程實現(xiàn)

2022-08-29 04:05:00潘紅玉劉博夫
電腦知識與技術(shù) 2022年20期
關(guān)鍵詞:數(shù)據(jù)庫課程

潘紅玉,劉博夫

(1.湖南師范大學(xué)教育科學(xué)學(xué)院,湖南長沙410081;2.湖南師范大學(xué)信息科學(xué)與工程學(xué)院,湖南長沙410081)

1 網(wǎng)絡(luò)課程學(xué)習(xí)中存在的問題

在互聯(lián)網(wǎng)高度發(fā)達的當(dāng)今社會,人們的學(xué)習(xí)已離不開網(wǎng)絡(luò)。除了通過網(wǎng)絡(luò)查詢相關(guān)知識,還可通過內(nèi)容豐富而系統(tǒng)的網(wǎng)絡(luò)課程進行有計劃的自主學(xué)習(xí)。傳統(tǒng)課堂學(xué)習(xí)中,學(xué)習(xí)的內(nèi)容與進度都由教師掌控,學(xué)生只能被動地跟隨,無法按自己的需求個性化地進行學(xué)習(xí)。網(wǎng)絡(luò)課程的出現(xiàn)提供了新的解決方案,學(xué)生可以在線學(xué)習(xí)課堂上沒學(xué)好的內(nèi)容及其他自己感興趣的內(nèi)容,可以檢測自己的學(xué)習(xí)成果,體現(xiàn)了以學(xué)習(xí)者為中心的教育理念,帶來了教育資源共享、學(xué)習(xí)效果提升等好處。

網(wǎng)絡(luò)課程以網(wǎng)頁的形式呈現(xiàn)給學(xué)習(xí)者,網(wǎng)站后端有數(shù)據(jù)庫系統(tǒng)、Web服務(wù)系統(tǒng)等提供支撐。但當(dāng)前多數(shù)網(wǎng)絡(luò)課程設(shè)計上還存在不足。學(xué)習(xí)效果評價與進度管理是網(wǎng)絡(luò)課程學(xué)習(xí)中的重要環(huán)節(jié),大多數(shù)網(wǎng)絡(luò)課程提供的評價與管理功能不夠完善,達不到全面評估、個性化和有針對性指導(dǎo)的目的。因面向的學(xué)生群體龐大,也沒有足夠的教師參與線上管理。這就需要學(xué)習(xí)者本人對學(xué)習(xí)過程與學(xué)習(xí)結(jié)果進行更多的自我管理與評估,或者由家長基于相關(guān)數(shù)據(jù)的查詢與分析參與學(xué)生的學(xué)習(xí)管理。

現(xiàn)有網(wǎng)絡(luò)課程都是將學(xué)習(xí)記錄等數(shù)據(jù)存儲在網(wǎng)站服務(wù)器上,一方面眾多學(xué)習(xí)者的學(xué)習(xí)記錄數(shù)據(jù)繁雜、數(shù)據(jù)量大,容易造成服務(wù)器負(fù)擔(dān)過重,因此很多網(wǎng)絡(luò)課程都沒有保存詳細(xì)的用戶學(xué)習(xí)記錄,即使保存了也不會全部向用戶開放。不同的網(wǎng)絡(luò)課程網(wǎng)址不同,數(shù)據(jù)所存的服務(wù)器可能不同,因此不同網(wǎng)絡(luò)課程的后端數(shù)據(jù)很難整合,學(xué)習(xí)者不能輕松獲取歷史學(xué)習(xí)記錄與統(tǒng)計數(shù)據(jù),不方便進行統(tǒng)一的學(xué)習(xí)進度管理與相應(yīng)的時間規(guī)劃管理。

若在瀏覽器端將學(xué)習(xí)記錄保存到本地SQLite數(shù)據(jù)庫,可有效地改善這種狀況。學(xué)生的學(xué)習(xí)記錄與測評數(shù)據(jù)可存儲在本地SQLite庫文件中,學(xué)生可方便查看,家長也可調(diào)用查看,而不需要登錄不同的網(wǎng)址從分散的信息源進行查詢統(tǒng)計。

2 SQLite嵌入式數(shù)據(jù)庫技術(shù)

SQLite 不同于傳統(tǒng)數(shù)據(jù)庫系統(tǒng),它最大的優(yōu)點是小巧,最小情況下只需占用幾十K字節(jié)的存儲空間,數(shù)據(jù)庫以文件的形式保存,不需要安裝復(fù)雜的管理系統(tǒng)就能使用[1]。它被眾多編程語言支持,尤其是得到JavaScript 腳本語言的支持。在PC機瀏覽器以及手機瀏覽器中通過JavaScript可實現(xiàn)讀寫SQLite,手機中的App、PC機中的應(yīng)用程序也可以訪問。SQLite得到各種嵌入式設(shè)備支持,成為優(yōu)秀的嵌入式數(shù)據(jù)庫[2]。

SQLite 是實現(xiàn)了零配置、無服務(wù)端和事務(wù)處理的輕量型SQL數(shù)據(jù)庫。SQLite單線程讀寫性能與MySQL相比并不遜色。SQLite 多個連接可以并發(fā)操作,允許從多個進程或線程訪問,但是同一時間只允許一個寫操作[3]。

SQLite 支持事務(wù)處理。事務(wù)(Transaction)是對數(shù)據(jù)庫執(zhí)行的一系列操作,是按邏輯順序完成的一組操作語句。如:在數(shù)據(jù)庫不同表中分別添加記錄、更新某些字段數(shù)據(jù)、刪除另一表中的記錄等,它們即可構(gòu)成一個事務(wù)。這些操作通常具有邏輯相關(guān)性,如記錄某一學(xué)習(xí)內(nèi)容的成績,同時應(yīng)將待學(xué)習(xí)內(nèi)容數(shù)減一。事務(wù)機制可確保事務(wù)中的新建、修改、刪除等操作都成功完成或都被取消,以保證數(shù)據(jù)的完整性和一致性[4]。

SQLite 支持SQL92 標(biāo)準(zhǔn)的大多數(shù)命令,如最常用的select查詢、insert 插入、update 更新、delete 刪除四大操作。與其他數(shù)據(jù)庫如SQL Server 相比,SQLite 的操作是與程序共用同一進程進行的,SQL Server 則需要單獨的數(shù)據(jù)庫服務(wù)進程提供相應(yīng)服務(wù)[5]。SQLite以文件形式提供服務(wù),節(jié)省了網(wǎng)絡(luò)開銷,降低了數(shù)據(jù)傳輸時延。

HTML5 中引入了Web SQL DBTABASE,其為SQLite 數(shù)據(jù)庫的訪問提供了三個核心API函數(shù),可在網(wǎng)頁腳本語言中使用這些函數(shù)。

一是opendatabase 打開數(shù)據(jù)庫函數(shù),可使用現(xiàn)有數(shù)據(jù)庫或創(chuàng)建新的數(shù)據(jù)庫。其四個參數(shù)分別是數(shù)據(jù)庫名、版本、數(shù)據(jù)庫描述、數(shù)據(jù)庫尺寸。

二是transaction 事務(wù)函數(shù),用于組織事務(wù)中的SQL 功能語句并控制事務(wù)提交或回滾。

三是executeSql 執(zhí)行SQL 語句函數(shù)。executeSql 有四個參數(shù),第一是操作數(shù)據(jù)庫的SQL 語句,第二是SQL 語句中使用的參數(shù)的數(shù)組,第三是語句操作成功調(diào)用的函數(shù),第四是語句操作失敗調(diào)用的函數(shù)。

3 網(wǎng)絡(luò)課程中應(yīng)用SQLite數(shù)據(jù)庫技術(shù)的編程實現(xiàn)

3.1 工作原理

在新建的網(wǎng)絡(luò)課程中增加對本地SQLite 數(shù)據(jù)庫的支持。對原有網(wǎng)絡(luò)課程按照相對一致的規(guī)范進行改造,增加對SQLite數(shù)據(jù)庫的支持。這可通過為頁面添加JS腳本代碼實現(xiàn),也可設(shè)計通用的瀏覽器擴展插件實現(xiàn)。

在網(wǎng)絡(luò)課程中,將有利于學(xué)習(xí)者自我評價和學(xué)習(xí)進度管理的信息保存到本地SQLite數(shù)據(jù)庫中。如學(xué)習(xí)進度信息、測評結(jié)果信息等。

設(shè)計適合PC 或手機終端使用的應(yīng)用程序,采用主流的開發(fā)工具,如C#、Python、Android等,對各網(wǎng)絡(luò)課程產(chǎn)生的學(xué)習(xí)記錄與測評數(shù)據(jù)進行查看、采集與統(tǒng)計,為學(xué)習(xí)者開展自我學(xué)習(xí)評價與學(xué)習(xí)管理提供便利,為家長了解學(xué)生學(xué)習(xí)情況提供便利。

3.2 瀏覽器中數(shù)據(jù)庫文件位置及管理

目前市場占有率最高的瀏覽器Google Chrome 對SQLite 數(shù)據(jù)庫提供了很好的支持。Microsoft Edge 瀏覽器采用Chrome內(nèi)核后,也能很好地支持SQLite數(shù)據(jù)庫。

使用Google Chrome瀏覽器時,網(wǎng)頁中創(chuàng)建的SQLite數(shù)據(jù)庫缺省路徑為:C:UsersAdministratorAppDataLocalGoogleChromeUser DataDefaultdatabases。

使用Microsoft edge瀏覽器時,網(wǎng)頁中創(chuàng)建的SQLite數(shù)據(jù)庫缺省路徑為:C:UsersAdministratorAppDataLocalMicrosoftEdgeUser DataDefaultdatabases。

上述目錄中databases.db是匯總數(shù)據(jù)庫文件,其中的表da‐tabases記錄了各個網(wǎng)站產(chǎn)生的數(shù)據(jù)庫文件情況,每條記錄對應(yīng)一個數(shù)據(jù)庫文件,id 字段保存唯一的記錄號,記錄號就是對應(yīng)的數(shù)據(jù)庫文件名稱(數(shù)據(jù)庫文件名采用無擴展名的形式)。ori‐gin來源字段保存網(wǎng)站的網(wǎng)址與端口號,如:http_localhost_8080代表的是http://localhost:8080這個地址。每個網(wǎng)站都有一個獨立的二級目錄保存其數(shù)據(jù)庫文件,origin 字段的值就是其目錄名。name 字段保存數(shù)據(jù)庫名稱,description 字段保存數(shù)據(jù)庫文件的說明,estimated_size 字段保存表空間的估計大小。表結(jié)構(gòu)見圖1。

其中的file__0 子目錄是本地磁盤中網(wǎng)頁文件在雙擊運行后產(chǎn)生的數(shù)據(jù)庫文件所保存的位置。

SQLite數(shù)據(jù)庫可以用SQLiteStudio、SQLiteSpy等軟件打開,并對其進行管理,可查看修改數(shù)據(jù)表的結(jié)構(gòu)與記錄。SQLit‐eStudio是開源且跨平臺的管理工具,沒有安裝過程解壓縮后即可使用。因SQLiteStudio中默認(rèn)數(shù)據(jù)庫擴展名為.db或.db3等,而瀏覽器產(chǎn)生的數(shù)據(jù)庫文件沒有擴展名,因此在add database選擇數(shù)據(jù)庫文件打開時,要選擇all files 這一類型,才能找到對應(yīng)數(shù)據(jù)庫文件。

SQLiteStudio 軟件在表結(jié)構(gòu)操作界面中,雙擊已有字段可查看修改該字段屬性,在已有字段下的空白位置雙擊可添加新字段。當(dāng)瀏覽器等其他進程正在獨占寫數(shù)據(jù)庫時,SQLiteStu‐dio 或其他應(yīng)用程序可能無法打開該數(shù)據(jù)庫,此時可復(fù)制生成數(shù)據(jù)庫的副本用于數(shù)據(jù)的查看與統(tǒng)計處理。

3.3 網(wǎng)絡(luò)課程中腳本語言訪問SQLite數(shù)據(jù)庫的編程實現(xiàn)

3.3.1 創(chuàng)建SQLite數(shù)據(jù)庫并插入學(xué)習(xí)記錄

不同學(xué)習(xí)網(wǎng)站同名的數(shù)據(jù)庫保存在不同的子目錄,同一網(wǎng)站不同名的數(shù)據(jù)庫保存為不同的文件。數(shù)據(jù)庫文件名都是通過匯總表中的唯一記錄號來標(biāo)識。

為網(wǎng)絡(luò)課程或?qū)W習(xí)網(wǎng)站創(chuàng)建名為LearnDb 的SQLite 數(shù)據(jù)庫。調(diào)用openDatabase 方法,這個方法在數(shù)據(jù)庫已存在時為打開數(shù)據(jù)庫,在數(shù)據(jù)庫不存在時新建數(shù)據(jù)庫文件。JS代碼如下:

var db=openDatabase(′LearnDb′,′1.0′,′Course Db′,1024*1024);

if(!db){ console.log("數(shù)據(jù)庫操作失敗!");}

else { console.log("數(shù)據(jù)庫操作成功!");}

創(chuàng)建或打開數(shù)據(jù)庫成功后,調(diào)用transaction函數(shù)執(zhí)行事務(wù),用于數(shù)據(jù)表的創(chuàng)建和數(shù)據(jù)的一系列插入操作。事務(wù)機制能控制事務(wù)中的插入、更新、刪除等操作都生效或都被取消。啟動事務(wù)并獲取當(dāng)前日期時間的代碼如下:

db.transaction( function(tx){ now=new Date();

var strtime = now.toLocaleDateString() + " " + now.toLocale‐TimeString();

調(diào)用executeSql 執(zhí)行SQL 語句函數(shù)創(chuàng)建名為“l(fā)earnRecord”的數(shù)據(jù)表,包含id 記錄號、title 主題、content 內(nèi)容、score 分?jǐn)?shù)、time 時間字段,其中TEXT 文本類型也可使用VARCHAR 可變長度字符類型。代碼如下:

tx.executeSql(′CREATE TABLE IF NOT EXISTS learnRe‐cord (id INTEGER PRIMARY KEY AUTOINCREMENT, title TEXT,content TEXT,score REAL,time TEXT)′,[],

function(tx,result){console.log(′表操作成功′);},

function(tx,error) { console.log (′表操作失敗:′ + error.mes‐sage);});

上面語句參數(shù)第二項為空數(shù)組,第三項為語句成功調(diào)用的回調(diào)函數(shù),第四項為語句失敗調(diào)用的回調(diào)函數(shù)。

創(chuàng)建表格成功后,再根據(jù)學(xué)習(xí)者的不同學(xué)習(xí)行為,調(diào)用ex‐ecuteSql 方法執(zhí)行插入語句操作,在數(shù)據(jù)庫表格中加入相應(yīng)學(xué)習(xí)記錄,相關(guān)代碼如下:

tx.executeSql(′INSERT INTO learnRecord (title,content,time)VALUES (?,?,?)′, ["結(jié)束單元測試","第四單元:數(shù)列的學(xué)習(xí)",strtime],

function(tx,result){console.log(′插入記錄成功′);},

function(tx,error){console.log(′插入記錄失敗′);});

tx.executeSql(′INSERT INTO learnRecord(title,content,score,time)VALUES(?,?,?,?)′,["單元測試成績","第四單元:數(shù)列的學(xué)習(xí)",87,strtime],

function(tx,result){console.log(′記錄分?jǐn)?shù)成功′);},

function(tx,error){console.log(′記錄分?jǐn)?shù)失敗′);});

上述代碼中的insert 語句替換成update、delete 等其他SQL語句,即可實現(xiàn)記錄的更新、刪除等操作,完成數(shù)據(jù)的各項管理維護任務(wù)。

3.3.2 讀取SQLite數(shù)據(jù)記錄

調(diào)用transaction 函數(shù),再調(diào)用executeSql 函數(shù)執(zhí)行查詢語句,可以從SQLite數(shù)據(jù)庫表中讀取數(shù)據(jù),代碼如下:

db.transaction(function(tx){

tx.executeSql(′SELECT*FROM learnRecord′,[],

function(tx,rs){

for(var i=0;i

document.getElementById("div1").innerHTML+=

rs.rows.item(i).title+""+rs.rows.item(i).time+"
";}},

function(tx,err){ console.log ("執(zhí)行查詢出錯"+err.mes‐sage);});});

其中rs.rows代表查詢得到的結(jié)果集中的所有記錄行集合,item(i)代表第i 條記錄,title 與time 分別為主題與時間字段,同理可訪問各記錄的其他字段,修改select 語句可實現(xiàn)數(shù)據(jù)的查詢與統(tǒng)計功能。

4 結(jié)束語

嵌入式數(shù)據(jù)庫的引入與應(yīng)用,是對網(wǎng)絡(luò)課程功能的拓展,在不增加網(wǎng)絡(luò)流量負(fù)擔(dān)和服務(wù)端存儲壓力的情況下,保留了更多個性化學(xué)習(xí)數(shù)據(jù)。這些數(shù)據(jù)能服務(wù)于學(xué)習(xí)者,幫助其發(fā)現(xiàn)問題,快速獲得成長。統(tǒng)計后的數(shù)據(jù)也可再收集到服務(wù)端,為網(wǎng)絡(luò)課程的升級提供依據(jù)。該技術(shù)具有良好的應(yīng)用前景。

猜你喜歡
數(shù)據(jù)庫課程
《無機化學(xué)》課程教學(xué)改革
云南化工(2021年6期)2021-12-21 07:31:42
數(shù)字圖像處理課程混合式教學(xué)改革與探索
軟件設(shè)計與開發(fā)實踐課程探索與實踐
計算機教育(2020年5期)2020-07-24 08:53:38
為什么要學(xué)習(xí)HAA課程?
數(shù)據(jù)庫
財經(jīng)(2017年15期)2017-07-03 22:40:49
數(shù)據(jù)庫
財經(jīng)(2016年15期)2016-06-03 07:38:02
數(shù)據(jù)庫
財經(jīng)(2016年3期)2016-03-07 07:44:46
數(shù)據(jù)庫
財經(jīng)(2016年6期)2016-02-24 07:41:51
“學(xué)而時習(xí)之”的課程值得贊賞
數(shù)據(jù)庫
財經(jīng)(2010年20期)2010-10-19 01:48:32
主站蜘蛛池模板: 黄色网在线| 亚洲中文精品人人永久免费| 亚洲欧洲AV一区二区三区| 国产成人精品男人的天堂下载| 午夜福利网址| 片在线无码观看| 人妖无码第一页| 午夜少妇精品视频小电影| 激情无码字幕综合| 香蕉综合在线视频91| 亚洲精品自在线拍| JIZZ亚洲国产| 免费又爽又刺激高潮网址| 精品剧情v国产在线观看| 久草视频福利在线观看| 91精品国产自产91精品资源| 午夜综合网| 日韩精品一区二区三区swag| 91精品视频网站| 狼友视频国产精品首页| 先锋资源久久| 91久久偷偷做嫩草影院| 免费在线播放毛片| 中文字幕久久波多野结衣| 亚洲国产日韩欧美在线| 亚洲欧美另类专区| 欧美日韩在线成人| 国产成人亚洲无码淙合青草| 在线无码九区| 综合色在线| 欧美激情综合| 国产精品香蕉| 免费jjzz在在线播放国产| 免费无码网站| 青青草原国产| 国产成人精品在线| 日韩少妇激情一区二区| 玖玖精品在线| 亚洲中文字幕久久精品无码一区 | 国产成人久久777777| 人妻无码中文字幕一区二区三区| 无码福利日韩神码福利片| 免费观看国产小粉嫩喷水| 午夜国产小视频| 亚洲精品国产综合99久久夜夜嗨| 亚洲人成在线精品| 亚洲视频免费在线| 日韩欧美中文在线| 成年av福利永久免费观看| 国产精品第三页在线看| www.91在线播放| 人妻出轨无码中文一区二区| 五月综合色婷婷| 亚洲欧美日韩成人高清在线一区| 久久国产精品嫖妓| 中文无码毛片又爽又刺激| 久久精品国产精品一区二区| 国产精品私拍99pans大尺度| 国产清纯在线一区二区WWW| 欧美成人午夜影院| 任我操在线视频| 国产人免费人成免费视频| 一本一道波多野结衣一区二区| 亚洲三级电影在线播放| 国产尤物视频网址导航| 97se亚洲综合在线| 9cao视频精品| 少妇露出福利视频| 国产在线观看91精品| 一本色道久久88| 国产自在线拍| a级毛片免费播放| 欧美特黄一级大黄录像| 婷婷色在线视频| 九九热这里只有国产精品| 午夜毛片福利| 午夜免费视频网站| 精品少妇人妻av无码久久| 亚洲乱伦视频| 久久黄色免费电影| 国产拍揄自揄精品视频网站| 国产成人1024精品下载|