(蘇州大學計算機科學與技術(shù)學院,江蘇 蘇州 215006)
以操作系統(tǒng)、數(shù)據(jù)庫為代表的基礎(chǔ)軟件在信息系統(tǒng)中起著基礎(chǔ)性、平臺性的作用。它們對應(yīng)用不可或缺,決定了應(yīng)用系統(tǒng)的開發(fā)與執(zhí)行效率,是軟件產(chǎn)業(yè)鏈的王冠,承載著軟件生態(tài)。我國軟件產(chǎn)業(yè)主要集中在應(yīng)用層,各類應(yīng)用系統(tǒng)過多依賴國外或開源的基礎(chǔ)軟件,導(dǎo)致了“卡脖子”現(xiàn)象和信息安全等問題。
雖然我國政府充分認識到國產(chǎn)基礎(chǔ)軟件的重要性,大力倡導(dǎo)基礎(chǔ)軟件研發(fā)并給予了資金和項目上的政策傾斜。但是基礎(chǔ)軟件人才的匱乏嚴重制約了我國基礎(chǔ)軟件發(fā)展,亟須優(yōu)化數(shù)據(jù)庫等課程與實驗教學,使學生更好地認識數(shù)據(jù)庫系統(tǒng),理解RDBMS內(nèi)核架構(gòu)與功能模塊,最終具備包括RDBMS在內(nèi)的基礎(chǔ)軟件的設(shè)計與開發(fā)能力。
在數(shù)據(jù)庫課程以操作系統(tǒng)、數(shù)據(jù)結(jié)構(gòu)、編譯原理和程序設(shè)計等為前置課程。實驗教學中需要兼顧學生應(yīng)用技能、系統(tǒng)思維、復(fù)雜工程能力的培養(yǎng)。具體來說,我們從RDBMS系統(tǒng)的使用與實現(xiàn)兩個角度(即兩個模塊)來開展課程的實驗教學,如圖1所示,下面將結(jié)合實際教學工作對相關(guān)內(nèi)容分別闡述如下。

圖1 課程內(nèi)容框架
在應(yīng)用方面,重點培養(yǎng)實際業(yè)務(wù)場景中的數(shù)據(jù)庫運用能力,以RDBMS的操作與設(shè)計為主要內(nèi)容,包括:
-虛擬機與數(shù)據(jù)庫管理系統(tǒng)的安裝與登錄,其中數(shù)據(jù)庫可以使用SQL Server/MySQL/PostgreSQL等傳統(tǒng)關(guān)系數(shù)據(jù)庫,也可以選擇OpenGauss作為數(shù)據(jù)庫開展課程實驗;
-數(shù)據(jù)定義語言,包含通過SQL語言完成數(shù)據(jù)庫的創(chuàng)建、更新、刪除,完成數(shù)據(jù)表、索引、視圖、完整性約束的創(chuàng)建、更新、刪除,了解相關(guān)關(guān)鍵參數(shù)的設(shè)置(例如增量大小等);
-數(shù)據(jù)操縱語言,包括基于數(shù)據(jù)庫基本表與視圖的數(shù)據(jù)插入、刪除、修改、查詢等基本操作的運用,以及觸發(fā)器、存儲過程的使用與編程;
-數(shù)據(jù)庫控制,包括訪問控制、數(shù)據(jù)庫的備份與恢復(fù)、事務(wù)隔離級別設(shè)置等,理解事務(wù)提交、回滾與鎖機制;
-數(shù)據(jù)庫性能測試,基于Tpcc等公開數(shù)據(jù)進行數(shù)據(jù)庫的性能評測;
-數(shù)據(jù)庫設(shè)計,基于給定業(yè)務(wù)場景,畫出ER圖,基于規(guī)范化理論設(shè)計合理的關(guān)系數(shù)據(jù)庫模式。
在系統(tǒng)實現(xiàn)方面,在數(shù)據(jù)庫原理的理解基礎(chǔ)上,大型基礎(chǔ)軟件的設(shè)計與實現(xiàn)能力主要目標,從RDBMS模塊化功能實現(xiàn)的角度設(shè)計課程實踐。具體來說,相關(guān)實驗可以依托SimpleDB等數(shù)據(jù)庫實驗資源,以RDBMS的存儲、查詢處理、事務(wù)管理模塊為主要內(nèi)容開展實驗教學,具體包括:
-RDBMS存儲管理的設(shè)計與實現(xiàn),在該模塊中,學生需要理解數(shù)據(jù)庫中數(shù)據(jù)的表示、訪問與管理機制,設(shè)計并實現(xiàn)針對性的物理存儲結(jié)構(gòu)(包括元組、數(shù)據(jù)庫塊、分區(qū)的基本結(jié)構(gòu)等),支持包含變長子段元組的持久化存儲和連續(xù)、隨機訪問,設(shè)計并實現(xiàn)數(shù)據(jù)字典,對數(shù)據(jù)庫元信息進行有效的表示與管理;
-RDBMS高速緩沖區(qū)管理的設(shè)計與實現(xiàn),學習數(shù)據(jù)的緩存機制,設(shè)計并實現(xiàn)數(shù)據(jù)庫高速緩沖區(qū)的管理方法,利用LRU等經(jīng)典策略完成Buffer Pool的數(shù)據(jù)置換,提升緩沖區(qū)數(shù)據(jù)的命中率以降低I/O;
-RDBMS數(shù)據(jù)操作的設(shè)計與實現(xiàn),這部分主要針對數(shù)據(jù)操作,在存儲結(jié)構(gòu)之上支持SQL操作,包括select、insert、delete、join、group by、order by等,如課時有限,可以對Group By的功能進行簡化;
-RDBMS 查詢優(yōu)化的設(shè)計與實現(xiàn),學習B+樹等經(jīng)典數(shù)據(jù)索引結(jié)構(gòu),通過索引技術(shù)為系統(tǒng)提供有效的數(shù)據(jù)存取路徑,提升單值查詢、范圍查詢、存在性查詢性能,在此基礎(chǔ)上,實現(xiàn)基于經(jīng)典Cost模型的優(yōu)化器,利用left-deep-tree和動態(tài)規(guī)劃等思想實現(xiàn)Join操作的性能優(yōu)化;
-RDBMS事務(wù)管理的設(shè)計與實現(xiàn),該部分提供數(shù)據(jù)庫的事務(wù)管理,保證ACID特性,內(nèi)容主要包括單粒度/多粒度兩階段封鎖、死鎖的檢測與解除等,基于日志的Redo、Undo及數(shù)據(jù)恢復(fù)可作為實驗設(shè)計的選做內(nèi)容。
在課時安排方面,RDBMS操作的實驗設(shè)計(模塊1)預(yù)計16-20課時,RDBMS系統(tǒng)實現(xiàn)的實驗設(shè)計(模塊2)預(yù)計40-60課時。模塊2可以采用SimpleDB等課程資源,也可以基于文件系統(tǒng)選擇部分功能進行分組實驗。