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