摘 要:為了解決學生在學習“數據庫原理與安全”課程時興趣不高的問題,本文提出了一種將數據庫與深度學習結合的教學改革方法。在學習數據庫基本操作的基礎上,通過將數據庫的輸出數據與深度學習相結合,設計并開發了一個基于PyQt的界面平臺,在此平臺上,學生不僅能掌握數據庫的基本操作,還能使用深度學習的知識訓練一個預測數據的模型以及使用該模型對數據進行預測。本文的目標是通過將數據庫和深度學習相結合,激發學生學習數據庫的興趣,并進一步提升其編程能力和深度學習應用的能力。
關鍵詞:數據庫教學改革;深度學習;教學改革方法創新
中圖分類號:G643.0" 文獻標識碼:A
1 概述
“數據庫原理與安全”是信息類本科生很重要的一門專業基礎課,該門課可以為學生學習和掌握數據庫的知識,打下堅實的基礎。
當前一些關于“數據庫原理與安全”教學改革的創新方法主要包括:(1)線上線下相結合的混合教學模式改革[13];(2)面向應用型人才培養的教學改革[45];(3)實驗教學法[67];(4)基于新農科背景的農業工程人才培養教學法[8];(5)移動學習情境下的教學法[9];(6)面向新工科人才的培養方法[10];(7)融入思政教育的教學法[11]。
現有的“數據庫原理與安全”教學改革方法大多專注于數據庫本身,主要關注如何提升“數據庫原理與安全”課程的教學改革效果。然而,現有的改革方案并未考慮數據庫與其他學科領域的交叉融合問題。
人工智能如今已廣泛應用于生活的各個方面,如語音識別、人臉識別等,這些應用的核心依賴于深度學習算法。一般來說,信息類專業的大學生對人工智能有一定的基礎了解和興趣,但他們往往沒有深入接觸人工智能的核心技術——深度學習。
因此,將數據庫與深度學習相結合,即將數據庫的輸出作為輸入提供給深度神經網絡,利用這些數據對深度神經網絡進行訓練,并進一步測試訓練后的模型,這是一個新的探索方向。本項目旨在通過將數據庫和深度學習結合,在深度學習環境下推動“數據庫原理與安全”課程的教學改革。
2 從基本操作開始吸引學生興趣
學生在學習MySQL數據庫的基本操作時,學習了對數據庫中數據的增刪改查操作,可以由此開始展開課程,讓學生以輕松的方式參與課程。
2.1 連接數據庫以及創建數據庫和數據表
在進入控制臺之后,首先通過SQL語句新建數據庫和數據表:
CREATE DATABASES testdb;
CREATE TABLE test(
Column1 VARCHAR(255),
Column2 VARCHAR(255),);
2.2 講解數據表的基本操作
創建好數據表后,可以用Python的pymysql庫的connect方法來實現對數據的連接:
self.connection=pymysql.connect(host=host,user=user,password=password,database=database)。
連接到數據庫后,使用創建好的數據表,使用Python實現插入數據操作:
query=f“INSERT INTO {self.table} VALUES(%s,%s)”
cursor.execute(query,(first_col,second_col))
self.connection.commit()
INSERT語句可以將單條數據插入數據庫中,假如要插入的數據分別是1和0.4771,演示完后可以再補充講解如何添加多條數據。
提示數據插入成功后,可以查詢數據是否成功,可以點擊程序的“查詢數據”按鈕,其Python代碼為:
query=f“SELECT*FROM{self.table}”
cursor.execute(query)
result=cursor.fetchall()
除了使用程序的查詢數據功能查詢外,還可以用控制臺連接MySQL,使用SELECT語句對testdb數據庫查詢數據,這里使用的是查詢所有字段的功能,演示后可以再講解如何使用SELECT語句查詢數據表中的部分數據。
SELECT*FROM test;
查詢后,可以使用程序的“更新數據”功能對剛才插入的數據進行更新,假設現在需要更新第二列的數據為0.6553,更新之后可以再次進行查詢,檢查數據是否真的被更新,其Python代碼為:
query=f“UPDATE {self.table} SET Column2=%s WHERE Column1=%s”
cursor.execute(query,second_col,first_col))
self.connection.commit()
MySQL中進行數據刪除使用的是DELETE語句,這里DELETE語句用于刪除整條記錄,在使用DELETE語句時需要用WHERE指定刪除數據的條件,這里假設刪除條件為第一列數據為1,執行后整條數據都會被刪除。其Python代碼為:
query=f“DELETE FROM {self.table} WHERE Column1=%s”
cursor.execute(query,(first_col,))
self.connection.commit()
在講解這些對數據進行操作的Python語句時,大部分學生會發現這些Python語句和之前所學的對數據庫進行操作的語句很相似,很容易將其和前面所學的知識進行聯系,比較容易接受新學習的這些知識。當學生看到用Python實現的數據庫操作時,再給學生講解每個語句的具體使用,有利于學生接受。
3 介紹深度學習
講述如何使用MySQL數據庫中存儲的數據進行深度學習。
3.1 設計和訓練深度神經網絡
為了可以根據不同的任務需求動態加載不同的網絡結構,可以給學生講解此界面上的三種可選的神經網絡:DNN、CNN和LSTM,這樣在后續如果要更改模型只需要更改配置文件中的model_type,這里使用的是CNN。
Model=model_type
model=Model(tra_config,num_in,
num_out,hid_layer,hidden_dim)
在完成網絡類型選擇后,只需要進行配置文件的導入、訓練數據的讀取就可以進行訓練,最后將訓練后的模型和數據進行保存。
3.2 定義將預測結果批量寫入MySQL的函數
首先定義函數pred_result,其接收的參數results是深度學習預測后產生的數據。其次創建與數據庫的連接:
connection=pymysql.connect(**db_config)
這里使用pymysql的connect方法對定義的存儲著數據庫信息的變量db_config進行連接。在成功連接數據庫后,便可以通過批量執行INSERT語句來將預測出來的結果批量插入數據表中,最后將事務提交,保證之前的插入操作真正有效,寫入數據庫。
sql=“INSERT INTO pred_results(result)VALUES(%s)”
cursor.executemany(sql,[(result,)for
result in results])
connection.commit()
3.3 編寫將數據表中存儲的預測數據導出為csv文件的程序
df.to_csv(output_csv_path,index=False)
print(f“數據已成功導出到{output_csv_
path}”)
這里使用pandas庫的to_csv方法將數據庫中的數據導出為output.csv用于模型預測,這里需要和學生簡要講解。將這些功能實現后,編寫成一個程序,運行后連接數據庫,然后執行預測模型訓練。
出現預測模型訓練完成的提示后,可以使用預測模塊進行預測。提示數據預測完成后,可以查詢pred_results數據表中是否存儲了預測后的數據。
查詢后會發現,預測后產生的數據已經被存儲到了pred_results數據表中,這樣就實現了將深度學習中模型預測產生的數據存儲到MySQL數據庫中的功能。
結語
為了培養學生學習數據庫的積極性,使他們不再枯燥地學習數據庫的知識,本文將數據庫和深度學習相結合,提出了對“數據庫原理與安全”課程進行基于深度學習的教學改革研究。
參考文獻:
[1]梁君霞.基于SPOC線上線下混合模式教學改革實踐研究:以數據庫原理與應用課程為例[J].電腦知識與技術,2023,19(11):137139.
[2]馬丹,姜季春.數據庫原理線上線下混合式教學的探索與實踐[J].福建電腦,2023,39(04):117120.
[3]李朋.線上線下混合式教學模式改革:以數據庫技術及應用課程為例[J].遼寧經濟職業技術學院.遼寧經濟管理干部學院學報,2023(02):9395.
[4]李飛飛,吳曉,史紅玉,等.“金課”視域下基于應用型本科的數據庫原理及應用課程教學改革與實踐[J].電腦知識與技術,2023,19(14):122124.
[5]劉甜甜,王艷飛.應用型人才培養模式下“數據庫原理及應用”課程改革探索[J].科技風,2023(06):98100.
[6]余遠波,黃旭,林加論.基于創新能力培養的數據庫原理與應用課程綜合實驗教學改革研究[J].中國教育技術裝備,2023(03):140142+149.
[7]陳楠.數據庫原理課程創新實踐改革研究[J].電腦與電信,2023(04):4548.
[8]王晶,劉雙印,楊偉偉.新農科背景下農業工程人才培養的數據庫教學探究[J].智慧農業導刊,2023,3(14):145148.
[9]代冬鳳,陳巖巖,宋蓓蓓.移動學習情境下高職計算機專業教學模式探究:以《數據庫技術》為例[J].中國新通信,2023,25(10):143145.
[10]張曉麗.面向新工科人才培養的數據庫原理及應用課程改革研究[J].電腦知識與技術,2023,19(14):168170.
[11]常志玲,申子靜,趙鵬.數據庫系統課程思政教學設計探究[J].電腦知識與技術,2023,19(15):5153.
基金項目:本文得到教育部協同育人項目(No.23110 1841241255)和廣東技術師范大學四新教改項目“深度學習范式下《數據庫原理和安全》教學創新改革方法研究”資助
作者簡介:楊繼臣(1980— ),男,漢族,安徽阜陽人,博士研究生,副教授,主要從事數字內容生成和安全的研究;譚鈺霖(2004— ),男,漢族,山東臨沂人,本科在讀,研究方向:數字內容安全;賴國飛(2003— ),男,漢族,廣東清遠人,本科在讀,研究方向:數字內容安全。