(蘇州大學計算機科學與技術學院,江蘇 蘇州 215006)
以操作系統(tǒng)、數(shù)據(jù)庫為代表的基礎軟件在信息系統(tǒng)中起著基礎性、平臺性的作用。它們對應用不可或缺,決定了應用系統(tǒng)的開發(fā)與執(zhí)行效率,是軟件產業(yè)鏈的王冠,承載著軟件生態(tài)。我國軟件產業(yè)主要集中在應用層,各類應用系統(tǒng)過多依賴國外或開源的基礎軟件,導致了“卡脖子”現(xiàn)象和信息安全等問題。
雖然我國政府充分認識到國產基礎軟件的重要性,大力倡導基礎軟件研發(fā)并給予了資金和項目上的政策傾斜。但是基礎軟件人才的匱乏嚴重制約了我國基礎軟件發(fā)展,亟須優(yōu)化數(shù)據(jù)庫等課程與實驗教學,使學生更好地認識數(shù)據(jù)庫系統(tǒng),理解RDBMS內核架構與功能模塊,最終具備包括RDBMS在內的基礎軟件的設計與開發(fā)能力。
在數(shù)據(jù)庫課程以操作系統(tǒng)、數(shù)據(jù)結構、編譯原理和程序設計等為前置課程。實驗教學中需要兼顧學生應用技能、系統(tǒng)思維、復雜工程能力的培養(yǎng)。具體來說,我們從RDBMS系統(tǒng)的使用與實現(xiàn)兩個角度(即兩個模塊)來開展課程的實驗教學,如圖1所示,下面將結合實際教學工作對相關內容分別闡述如下。
圖1 課程內容框架
在應用方面,重點培養(yǎng)實際業(yè)務場景中的數(shù)據(jù)庫運用能力,以RDBMS的操作與設計為主要內容,包括:
-虛擬機與數(shù)據(jù)庫管理系統(tǒng)的安裝與登錄,其中數(shù)據(jù)庫可以使用SQL Server/MySQL/PostgreSQL等傳統(tǒng)關系數(shù)據(jù)庫,也可以選擇OpenGauss作為數(shù)據(jù)庫開展課程實驗;
-數(shù)據(jù)定義語言,包含通過SQL語言完成數(shù)據(jù)庫的創(chuàng)建、更新、刪除,完成數(shù)據(jù)表、索引、視圖、完整性約束的創(chuàng)建、更新、刪除,了解相關關鍵參數(shù)的設置(例如增量大小等);
-數(shù)據(jù)操縱語言,包括基于數(shù)據(jù)庫基本表與視圖的數(shù)據(jù)插入、刪除、修改、查詢等基本操作的運用,以及觸發(fā)器、存儲過程的使用與編程;
-數(shù)據(jù)庫控制,包括訪問控制、數(shù)據(jù)庫的備份與恢復、事務隔離級別設置等,理解事務提交、回滾與鎖機制;
-數(shù)據(jù)庫性能測試,基于Tpcc等公開數(shù)據(jù)進行數(shù)據(jù)庫的性能評測;
-數(shù)據(jù)庫設計,基于給定業(yè)務場景,畫出ER圖,基于規(guī)范化理論設計合理的關系數(shù)據(jù)庫模式。
在系統(tǒng)實現(xiàn)方面,在數(shù)據(jù)庫原理的理解基礎上,大型基礎軟件的設計與實現(xiàn)能力主要目標,從RDBMS模塊化功能實現(xiàn)的角度設計課程實踐。具體來說,相關實驗可以依托SimpleDB等數(shù)據(jù)庫實驗資源,以RDBMS的存儲、查詢處理、事務管理模塊為主要內容開展實驗教學,具體包括:
-RDBMS存儲管理的設計與實現(xiàn),在該模塊中,學生需要理解數(shù)據(jù)庫中數(shù)據(jù)的表示、訪問與管理機制,設計并實現(xiàn)針對性的物理存儲結構(包括元組、數(shù)據(jù)庫塊、分區(qū)的基本結構等),支持包含變長子段元組的持久化存儲和連續(xù)、隨機訪問,設計并實現(xiàn)數(shù)據(jù)字典,對數(shù)據(jù)庫元信息進行有效的表示與管理;
-RDBMS高速緩沖區(qū)管理的設計與實現(xiàn),學習數(shù)據(jù)的緩存機制,設計并實現(xiàn)數(shù)據(jù)庫高速緩沖區(qū)的管理方法,利用LRU等經典策略完成Buffer Pool的數(shù)據(jù)置換,提升緩沖區(qū)數(shù)據(jù)的命中率以降低I/O;
-RDBMS數(shù)據(jù)操作的設計與實現(xiàn),這部分主要針對數(shù)據(jù)操作,在存儲結構之上支持SQL操作,包括select、insert、delete、join、group by、order by等,如課時有限,可以對Group By的功能進行簡化;
-RDBMS 查詢優(yōu)化的設計與實現(xiàn),學習B+樹等經典數(shù)據(jù)索引結構,通過索引技術為系統(tǒng)提供有效的數(shù)據(jù)存取路徑,提升單值查詢、范圍查詢、存在性查詢性能,在此基礎上,實現(xiàn)基于經典Cost模型的優(yōu)化器,利用left-deep-tree和動態(tài)規(guī)劃等思想實現(xiàn)Join操作的性能優(yōu)化;
-RDBMS事務管理的設計與實現(xiàn),該部分提供數(shù)據(jù)庫的事務管理,保證ACID特性,內容主要包括單粒度/多粒度兩階段封鎖、死鎖的檢測與解除等,基于日志的Redo、Undo及數(shù)據(jù)恢復可作為實驗設計的選做內容。
在課時安排方面,RDBMS操作的實驗設計(模塊1)預計16-20課時,RDBMS系統(tǒng)實現(xiàn)的實驗設計(模塊2)預計40-60課時。模塊2可以采用SimpleDB等課程資源,也可以基于文件系統(tǒng)選擇部分功能進行分組實驗。