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

國產化時代的數據庫原理教學與實踐改革

2023-01-02 12:07:12彭煜瑋彭智勇
軟件導刊 2022年11期
關鍵詞:案例數據庫功能

劉 斌,彭煜瑋,余 琍,彭智勇

(武漢大學計算機學院,湖北武漢 430072)

0 引言

數據庫原理是計算機專業的一門核心課程,數據庫技術的快速發展,給該課程教學帶來了許多新挑戰[1]。例如,隨著移動互聯網的飛速發展,人們可以使用手機等移動設備快速完成各種交易,與之對應數據庫中的各種記錄規模都在百萬級以上。而且,近幾年來企業對數據的安全越來越重視,國產數據庫替代國外數據庫成為一個很重要的趨勢[2]。數據庫課程的教學與實踐需要適應這些新需求:首先,數據庫的實踐環境要過渡到使用國產數據庫;其次,由于用戶數據庫中包含大量記錄,因此實踐環境需要模擬這種場景,才能使學生更深入地理解數據庫功能以及各種參數配置,使數據庫應用程序的性能滿足用戶需求[3];最后,國產數據庫研發需要大量專業人員,需要培養掌握數據庫內核技術的高端人才[4]。近年來,武漢大學數據庫課程組在教學與實踐中作出與之相適應的改革,通過加深和拓寬原理性知識傳授,設計多層次的數據庫系統實踐方案,培養了一批適應數據庫產業發展的合格人才。

1 融合式教學

融合式教學,是指將數據庫原理與數據庫系統功能進行關聯[5]。數據庫原理重點介紹關系數據庫相關知識,比較抽象。數據庫軟件給用戶呈現的是各種豐富的功能,每一個功能背后都隱藏著數據庫原理的核心知識,將兩者在課堂教學中進行有機關聯可以幫助學生更好地掌握相應的原理知識,使基礎理論學習不空洞,實踐環節有準備。

在數據庫原理知識點與課程實踐采用的國產數據庫管理系統功能之間建立3 種關聯:直接關聯、內涵關聯以及補充關聯。

(1)直接關聯。數據庫課本內容在數據庫管理系統(Database Management System,DBMS)中的直接體現,兩者之間是一一對應關系[6]。比如結構化查詢語言(Structured Query Language,SQL)的增刪改查功能,課本中SQL 語法規則使用的是標準的SQL,商用的DBMS 都支持兼容。課堂中講授SQL 語句時,學生可以直接在DBMS 中練習使用,這些知識點可以很平滑地進行過渡。

(2)內涵關聯。分析課本知識點與DBMS 功能之間本質上的聯系,以及DBMS 為什么要這樣設置功能,設置的目的是什么。比如數據庫原理中的事務內容,事務是數據庫原理的重要組成部分,課堂首先講授其具備的ACID 4個特性,其次講授事務的并發執行會帶來的3 種不一致性與解決不一致性的方法、事務的串行執行以及兩端鎖協議,最后講授事務的顯式定義begin transaction 語句、事務提交commit 語句以及回滾rollback 語句。這部分內容非常多,也比較難。

DBMS 功能體現在兩個方面:一是提供事務的顯式定義begin transaction 語句、事務提交commit 語句以及事務回滾rollback 語句,但是最重要的鎖對用戶是透明的;二是提供事務隔離級別的定義功能,對應語句為set transaction isolation level,并定義了4個隔離級別。數據庫原理中講授了不同的鎖協議,每一種鎖協議對應事務之間不同的隔離程度,從而清楚地闡述隔離級別和鎖之間的內在關聯。

在講述這部分內容時有一個難點:DBMS 為什么把隔離級別功能留給用戶?這樣做的原因是:用戶從實際需要出發,定義事務需要的最低隔離級別,以最大限度地提高DBMS 的事務吞吐能力。例如,對于一個應用系統來講,T1、T2 兩個事務可能理論上存在同時修改同一個數據的情況,因此需要高級別的隔離程度,如read repeatable。但是真實應用中可能T1、T2 按順序執行,根本不可能并發執行,所以可以把這兩個事務并發執行的隔離級別設置成read committed,從而最大限度地提高事務并發執行程度。經過以上分析,即能把原理、功能以及目的之間的關系講解清楚。

(3)補充關聯。主要是針對數據庫課本中相對比較宏觀、不夠具體以及DBMS 功能相對復雜的一些內容[7],可以利用DBMS 的功能細化知識點,使其更加豐富、具體。例如數據庫的物理設計,通常課本都是簡單幾行,但是DBMS有好幾個對應的功能點,比如表空間、塊使用百分比(PCTUSED)等。表空間是一個很抽象的概念,不好理解。數據庫中的數據最終都存儲在文件中,用戶可以設置多個文件。為了管理方便,建立了表空間的概念,多個邏輯上有關聯的文件可以劃分到一個表空間中,所以一個表空間包含多個數據文件,一個數據文件只能屬于一個表空間。經過以上分析,再進一步介紹表空間各種參數設置以及相應含義。最后可以結合數據訪問的速度要求,將數據存儲在固態硬盤、機械硬盤中。通過逐步深入,講解物理設計中數據的存儲位置、大小、磁盤性能等相關內容,使物理設計更加具體。

2 專業特色教學方案

武漢大學計算機學院共有計算機科學與技術、軟件工程、人工智能3 個專業。本科班分為計算機科學與技術班、計算機科學與技術卓工班、軟件工程班、軟件工程卓工班、弘毅班。針對不同班級,在課堂講授時有針對性地選擇難度不同的案例。

在計算機科學與技術班和計算機科學與技術卓工班的ER 圖授課中,經典的案例就是大學數據庫,包含學生、課程、教師實體,存在選課、授課聯系。該案例對學生來說比較易懂,但是也存在明顯缺點,就是太簡單。為此,根據武漢大學校運會有學生、教師共同參加的特點,選擇了大學運動會案例。案例的ER 圖如圖1 所示,組別的含義是學生參加學生組項目,教師參加青年組、中年組項目,轉換成關系模型后,數據模式包含了10 個關系,有一定的復雜程度,圖1中省去了部分屬性。

Fig.1 ER diagram of university sports meeting圖1 大學運動會ER圖

表1 展示了ER 圖知識點和運動會ER 圖之間的對應關系。通過該案例向學生形象說明了“兩個實體之間可以參與多種聯系”這個比較難理解的知識點。

Table 1 ER knowledge points and corresponding examples表1 ER圖知識點以及對應實例

因為該案例貼近學生生活,經過分析研討,90%的學生都可以順利地畫出ER 圖,并且可以得到正確的關系模型。在此基礎上進一步聯系實際,向學生指出:參與關系Attend(WNO,PrjNO,Group,Seq)對應比賽用的秩序冊,此時,不少學生才恍然大悟,明白了數據庫中的表、關系等在實際中的具體對應內容,切實體會到了課程理論知識的現實意義。

軟件工程專業學生在軟件開發能力上比其他專業的學生更強,因此課程教學對該專業學生的要求也更高。在軟件工程專業的數據庫課程教學中,除基本的數據庫增刪改查功能外,重點針對觸發器和存儲過程開展教學。最后結合高級程序設計語言,讓學生能夠實現批插入的功能。

軟件工程卓工班則結合事務和觸發器,讓學生掌握事務的不同隔離級別、事務執行過程中觸發器的作用以及破壞觸發器的約束條件導致的事務回滾等問題。

總之,數據庫系統課程教學針對不同專業特點,要求學生對國產DBMS 某一個方面的功能有深入了解,學習并掌握該功能更深更難的應用,達到深入用好國產數據庫軟件的目的,培養學生的鉆研精神以及自主學習能力[8]。

3 多渠道挖掘教學案例

SQL 語言是數據庫原理中一個重要的教學內容,也是學生感到比較困難的一個章節。學好SQL 語言是用好數據庫的基本要求,如果將來從事數據庫相關領域的工作,對SQL 編程也有較高要求。現在的畢業招聘考試一般都會涉及到SQL 語句編程,題目相對復雜,SQL 語句復雜意味著業務邏輯復雜,從業務邏輯到SQL 腳本是一個轉換過程。學生學會復雜的SQL 編程意味著其具備較強的轉換能力。轉換能力培養不是一蹴而就的,需要反復地訓練、體會,這就需要在課堂教學環節中進行訓練和一定的課后練習。

“學生選課數據庫”案例相對來說比較簡單,因此也很難提出比較復雜的問題。由于課堂時間有限,在有限的時間內介紹一個復雜且學生不熟悉的業務背景,要求學生理解需求并進行SQL 編程訓練,效果不一定很好。因此,需要從其他途徑挖掘合適的案例,改造成適合于課堂教學的形式[9]。

QQ 是學生們經常使用的社交工具,里面許多功能都可以作為課程案例,可以引導學生思考這些功能用SQL 語句怎么實現。比如QQ 的好友推薦功能,你和誰有幾個共同好友,但你們還不是好友。給出這樣的查詢:列出有4個共同好友但自身不是好友的用戶對,每個用戶對只出現一次。QQ 的好友信息可以用用戶表User 和好友表Friend表示,其中uid1 和uid2 都是外鍵,參照User 表中的uid 取值:User(uid,Name);Friend(uid1,uid2)。

雖然表結構比較簡單,問題也看似簡單,但是答案還是稍顯復雜。SQL 語句如下:

其他課程中也可以發現許多例子。針對人工智能專業學生的特點,選用關系存儲稀疏矩陣的案例。對于兩個不同矩陣matrix1(row,col,val)和matrix2(row,col,val),要求采用SQL 語句實現兩個稀疏矩陣的相乘,對應的SQL 語句如下:

該案例包含SELECT 語句的6 個子句,通過該SQL 語句,可以完整地說明6個子句的先后執行順序。

數據庫課程組經常展開教學研討,每位老師根據自己課程內容交流學生感興趣的問題。針對這些問題,各自提出合適的案例,然后將所有案例進行概括、整理,形成更多可用于教學的案例。

4 多層次課程實踐

數據庫課程實踐是數據庫教學的一個重要環節[9]。在實踐環節,首先要和其他課程做好相互銜接。比如在面向對象的程序設計語言課程中,老師很有可能布置利用JDBC 編寫Java 程序訪問數據庫的任務,因此在數據庫實踐中刪除這部分內容。在數據庫實踐環節主要側重于以下幾方面內容:

(1)國產數據庫部署。在數據庫選型上,講授幾種開源國產數據庫,例如PolarDB、OpenGauss、Oceanbase 等,提前讓學生選擇。這樣做的原因是國產數據庫適配的操作系統不是Windows,需要學生花時間學習與操作系統安裝相關的基礎知識。

(2)與國產數據庫廠商加強聯系,邀請工程師進課堂。在授課環節,邀請華為數據庫團隊的專家走進課堂,講授高斯數據庫的功能與特色,對國產數據庫起到了很好的宣傳推廣作用,避免了數據庫實踐環境言必稱MySQL 的局面。

(3)針對性地制定實踐內容。在軟件工程卓工班,側重于SQL 語句編程、觸發器以及事務實踐內容。在事務實踐中,提供腳本模擬兩個事務交叉執行,在不同的隔離級別下觀察事務執行結果,再反推在此情況下數據庫加鎖和釋放鎖的過程,從而讓學生更好地掌握各種封鎖協議。對于能力突出的學生,鼓勵其編寫模擬程序,一次性向數據庫中插入百萬條記錄,體會索引在連接查詢中的作用。最后使用SSD 和機械硬盤存儲數據,讓學生觀察對于同一個SQL 查詢語句,磁盤性能對查詢性能的影響。

(4)針對弘毅班的學生,開展迷你數據庫(miniDB)研制的課程實踐。弘毅班是教育部“基礎學科拔尖人才試驗計劃”在武漢大學的具體實施,培養有志于國產數據庫研究與開發的專業人才。弘毅班的課堂教學內容與其他班級不一樣,增加了數據庫系統實現部分的講解,并且第二學期有專門的數據庫系統實踐課程。在實踐中,每個小組5 名學生,分別負責存儲、編譯、執行、索引和事務。任務基本完成情況如表2,結果表明開發一個演示版的數據庫是可行的,相信經過一兩年完善,每一個小組均能完成該任務。

Table 2 Analysis and strategy of the results of database system development practice表2 數據庫系統開發實踐完成結果分析與對策

5 教學環節中的思政元素

思政教學,落實在大處,即引導學生增強愛國主義觀點[10]。而從小處看,則是要培養學生做一個健康、熱愛生活的人。在數據庫教學、實踐以及考試環節中,有針對性地、恰到好處地引入思政元素[11]。

例如在數據庫引言教學中,加入國產數據庫近年來的發展歷史以及在各個行業的顯著應用。在課堂重點分析天貓雙十一每秒支持58.3 萬筆交易背后的技術,以及對生活帶來的各種影響,讓學生明白國產數據庫不僅可實現國外先進數據庫的功能,甚至可以做得更好;同時介紹陽振坤老師用10 年時間搭建Oceanbase 數據庫的故事,激勵年輕有為的大學生們投身到國產數據庫研發中。

數據庫主要用于管理數據,在考試環節把國家發生的大事,同時也是學生感興趣的話題用數據庫形式表現出來。比如前幾年我國海軍的萬噸驅逐艦服役,在學生們中反響巨大。構建軍艦、級別、演習、士兵之間的ER 圖作為考題,考試結束時,學生們紛紛和老師討論該題目有哪些地方可以改進。對該題的得分進行統計,90%以上的學生均能拿到滿分。另外,將核酸檢測場景引入考試中,在學生解決問題的同時,也提醒其時時刻刻要遵循防疫規定。

6 教學與實踐效果

學期結束后,通過調查問卷的形式,針對教學、實踐和考試環節讓學生進行評價,結果如表3 所示。通過調查問卷可以發現,學生們對數據庫的課程改革基本比較滿意,相關知識點均掌握較好。

Table 3 Questionnaire of teaching and practice reform表3 教學與實踐效果調查問卷

通過融合式教學,80%以上的學生都能掌握事務隔離級別的設置,并能很好地理解掌握表空間的概念。在實踐環節利用表空間概念建立數據庫的步驟中,78%的學生都能建立表空間,再建立數據庫相應的表,而不是利用缺省的參數直接建表,從而加深了對物理設計的理解;10%的學生經過提醒后,能正確地理解表空間概念;10%左右的學生還是不太理解表空間的概念,經過打比方和目錄等概念的比較說明,在其他學生的幫助下才基本能夠理解。根據學生的專業特色設置不同教學方案,結果表明,85%以上的學生能較好地完成相應任務,其余15%的學生在參考了比較好的學生作業后,可以理解并進行修改,從而基本完成作業,表明其確實在程序編寫方面存在欠缺,利用計算機程序思維解決問題的能力需要提高,需要其他課程(例如高級程序設計)配合,通過多練習才能提升相關能力。在SQL 語句編寫課堂教學中,所有學生均能夠理解業務場景,15%左右的學生除缺少一個條件外,其余均能正確書寫。在課后作業中,80%的學生能編寫正確的SQL 語句。在以后的教學與實踐中,通過及時發現學習能力稍弱的學生,開展有針對性的幫助,可以進一步提高教學質量。

7 結語

國產數據庫已經應用于各行各業,數據庫技術也隨著其他軟硬件發展和用戶需求的變化而快速發展。數據庫教學與實踐必須時刻關注、適應這種變化,才能使數據庫原理課程教學與實踐與時俱進,培養出的學生才能緊跟數據庫發展的潮流。

猜你喜歡
案例數據庫功能
也談詩的“功能”
中華詩詞(2022年6期)2022-12-31 06:41:24
案例4 奔跑吧,少年!
少先隊活動(2021年2期)2021-03-29 05:40:48
隨機變量分布及統計案例拔高卷
關于非首都功能疏解的幾點思考
發生在你我身邊的那些治超案例
中國公路(2017年7期)2017-07-24 13:56:38
數據庫
財經(2017年2期)2017-03-10 14:35:35
數據庫
財經(2016年15期)2016-06-03 07:38:02
數據庫
財經(2016年3期)2016-03-07 07:44:46
數據庫
財經(2016年6期)2016-02-24 07:41:51
一個模擬案例引發的多重思考
中國衛生(2015年4期)2015-11-08 11:16:06
主站蜘蛛池模板: 人妻中文久热无码丝袜| 国产精品黄色片| 在线观看热码亚洲av每日更新| 重口调教一区二区视频| 国产波多野结衣中文在线播放| 欧美一级专区免费大片| 幺女国产一级毛片| 亚洲区一区| 麻豆AV网站免费进入| 国产成人8x视频一区二区| 真人免费一级毛片一区二区 | 欧美人在线一区二区三区| 欧美日韩综合网| 一区二区理伦视频| 中文字幕无线码一区| 亚洲日韩精品无码专区97| 中文字幕无线码一区| 亚洲人成网站在线观看播放不卡| 中文字幕无线码一区| 亚洲人成网站在线观看播放不卡| 亚洲第一视频免费在线| 在线毛片网站| 欧美亚洲一区二区三区在线| 国产精品无码一区二区桃花视频| 精品国产免费人成在线观看| 综合色亚洲| 国产美女在线观看| 欧美成人aⅴ| 欧美中文字幕一区| 色妞永久免费视频| 久久久久国产精品熟女影院| 亚洲成人黄色在线| 毛片卡一卡二| 日韩a在线观看免费观看| 亚洲精品成人片在线观看| 亚洲精品你懂的| 午夜国产精品视频| 欧美在线观看不卡| 日本免费一级视频| 亚洲欧美日韩成人高清在线一区| 农村乱人伦一区二区| 91精品伊人久久大香线蕉| 伦精品一区二区三区视频| AV在线麻免费观看网站| 中文字幕欧美日韩| 四虎永久在线精品国产免费| 91福利片| 亚洲成人精品| 欧洲极品无码一区二区三区| 亚洲国产精品一区二区第一页免 | 日韩在线永久免费播放| 久久狠狠色噜噜狠狠狠狠97视色| 亚洲视频在线青青| 伊人色天堂| 国产av剧情无码精品色午夜| 污视频日本| 永久免费精品视频| 亚洲Aⅴ无码专区在线观看q| 国产区在线观看视频| 国产精品丝袜视频| 色综合久久88色综合天天提莫| 国产成人一区二区| 中文字幕永久在线观看| 伊人欧美在线| 夜夜高潮夜夜爽国产伦精品| 91久久青青草原精品国产| 九九香蕉视频| 十八禁美女裸体网站| 成人在线综合| 亚洲欧美不卡视频| 青草午夜精品视频在线观看| 亚洲欧美一区二区三区图片| 99re这里只有国产中文精品国产精品 | www.99在线观看| 久久久久国色AV免费观看性色| 日本一区二区三区精品国产| 国产日韩欧美视频| 亚洲AⅤ无码国产精品| 一级毛片视频免费| 啪啪啪亚洲无码| а∨天堂一区中文字幕| 丰满的熟女一区二区三区l|