文章編號(hào):1672-5913(2015)07-0059-05
中圖分類號(hào):G642
摘要:以數(shù)據(jù)庫(kù)概論課程教學(xué)中具有代表性的知識(shí)點(diǎn)為例,闡述“研究式”教學(xué)理念的探索與實(shí)踐過(guò)程并作深入分析。
關(guān)鍵詞:數(shù)據(jù)庫(kù)概論;“研究式”教學(xué);關(guān)系代數(shù);連接操作;精品課程
0 引 言
課程建設(shè)中要明確授課的3個(gè)層次。首先,需要將課程內(nèi)容的基本概念、基本原理和基本方法以生動(dòng)形象的形式講解清楚,這些稱為課程內(nèi)容的知識(shí)點(diǎn),也是掌握課程內(nèi)容的基礎(chǔ);其次,在知識(shí)點(diǎn)的講解過(guò)程中將多個(gè)知識(shí)點(diǎn)組織起來(lái),通過(guò)對(duì)知識(shí)點(diǎn)的綜合,幫助學(xué)生在更好地掌握知識(shí)點(diǎn)的同時(shí),培養(yǎng)學(xué)生的組織和綜合能力,此為能力點(diǎn);第3層次的教學(xué)是培養(yǎng)學(xué)生的創(chuàng)新能力,通過(guò)“研究式”教學(xué)將研究變成學(xué)生的自覺(jué)思維。授課的3個(gè)層次如圖1所示。
1 關(guān)于“研究式”教學(xué)的探索
研究的過(guò)程是發(fā)現(xiàn)問(wèn)題、解決問(wèn)題和評(píng)價(jià)結(jié)果的過(guò)程,“研究式”教學(xué)要培養(yǎng)學(xué)生的觀察能力、定義能力、解決能力和論證評(píng)價(jià)能力,實(shí)現(xiàn)從傳統(tǒng)“知識(shí)傳遞式”教學(xué)到在教師引導(dǎo)下的現(xiàn)象觀察、真理探索和問(wèn)題求解的“課題研究式”教學(xué)轉(zhuǎn)換。學(xué)生通過(guò)對(duì)課程內(nèi)容的“研究式”學(xué)習(xí),激發(fā)學(xué)習(xí)熱情,變被動(dòng)接受為主動(dòng)思考與探索,有效地提高學(xué)習(xí)積極性和效果。將發(fā)現(xiàn)問(wèn)題、解決問(wèn)題和評(píng)價(jià)結(jié)果的研究過(guò)程有機(jī)地融于教學(xué)過(guò)程中是研究式教學(xué)方法的關(guān)鍵。
1)引導(dǎo)學(xué)生通過(guò)觀察現(xiàn)象發(fā)現(xiàn)問(wèn)題。
觀察能力是研究者必須具備的基本素質(zhì),能通過(guò)觀察現(xiàn)象發(fā)現(xiàn)問(wèn)題是觀察能力的體現(xiàn)。教師在以往教學(xué)中常常將問(wèn)題及其解決的方法講解到位,卻忽略引導(dǎo)學(xué)生思考和分析問(wèn)題的由來(lái)以及學(xué)生觀察能力的培養(yǎng)。例如,在數(shù)據(jù)庫(kù)概論課程的“數(shù)據(jù)庫(kù)完整性”知識(shí)點(diǎn)的教學(xué)中,教師一般會(huì)詳細(xì)地講解數(shù)據(jù)庫(kù)完整性的概念、3類完整性及違約處理等內(nèi)容,卻忽略引導(dǎo)學(xué)生觀察和思考“系統(tǒng)為什么要考慮數(shù)據(jù)庫(kù)完整性”“可能破壞數(shù)據(jù)庫(kù)完整性的因素有哪些”等問(wèn)題,特別是基于具體事例引導(dǎo)學(xué)生討論這些問(wèn)題。
2)培養(yǎng)學(xué)生定義問(wèn)題的能力。
在觀察到問(wèn)題之后,如何抽象并定義問(wèn)題是研究工作的基礎(chǔ)。數(shù)據(jù)庫(kù)概論課程教學(xué)中有大量概念和定義的講解,但教師不重視講解從具體問(wèn)題中抽象出概念和定義的方法。所謂抽象是對(duì)實(shí)際的人、物、事和概念進(jìn)行人為處理,抽取所關(guān)心的共同特征,忽略非本質(zhì)的細(xì)節(jié),把這些特征用各種概念精確地加以描述。抽象一般分以下3種。
(1)分類(classification)。分類用于抽象現(xiàn)實(shí)世界中一組對(duì)象的類型。具體而言,分類就是為具有某些共同特性和行為的對(duì)象定義一個(gè)概念,它抽象了對(duì)象值和型之間的“is member of'’語(yǔ)義。例如,在學(xué)生信息管理系統(tǒng)中,李明是學(xué)生,具有學(xué)生共同的特性和行為:學(xué)號(hào)、姓名、專業(yè)、選修課程,如圖2所示。
(2)聚集(aggregation)。聚集用于抽象對(duì)象類型和組成成分之間的“is part of’語(yǔ)義,E-R模型中若干屬性的聚集組成實(shí)體型,就是這種抽象,如圖3所示。
(3)概括(generalization)。概括用于抽象對(duì)象類型之間的“is subset of'’語(yǔ)義。例如,某商店的商品包括日用品、電子產(chǎn)品和農(nóng)用物資等,而電子產(chǎn)品又包括冰箱、彩電和空調(diào)等,如圖4所示,同時(shí)從圖4可以看到分類和概括之間的區(qū)別。
在數(shù)據(jù)庫(kù)概論課程的整個(gè)教學(xué)過(guò)程中,這3類抽象能力的示范和培養(yǎng)將有力地提升學(xué)生定義問(wèn)題的能力。例如,通過(guò)定義數(shù)據(jù)庫(kù)的3類完整性概念,培養(yǎng)學(xué)生的分類和概括能力。
3)培養(yǎng)解決問(wèn)題的能力。
一般而言,解決問(wèn)題的能力包括推理、證明和設(shè)計(jì)的能力。表1是分別用于培養(yǎng)學(xué)生解決問(wèn)題的推理能力、證明能力和設(shè)計(jì)能力的相關(guān)教學(xué)內(nèi)容。
例1:在“數(shù)據(jù)庫(kù)并發(fā)控制”教學(xué)中,首先通過(guò)實(shí)例分析“DBMS對(duì)并發(fā)事務(wù)不同的調(diào)度可能會(huì)產(chǎn)生不同的結(jié)果”,接著引導(dǎo)學(xué)生思考“什么是并發(fā)調(diào)度正確性的標(biāo)準(zhǔn)”“直觀上串行調(diào)度是正確的”“執(zhí)行結(jié)果等價(jià)于串行調(diào)度的調(diào)度也是正確的”,推出“可串行化(serializable)調(diào)度是并發(fā)事務(wù)正確調(diào)度的準(zhǔn)則”。對(duì)于“如何判斷可串行化”,依然需要推理能力。在教學(xué)中,教師可通過(guò)圖文并茂的形式(如圖5所示)幫助學(xué)生既理解概念,又學(xué)到方法。
例2:在“數(shù)據(jù)庫(kù)完整性”教學(xué)中,首先引出問(wèn)題“如何設(shè)計(jì)系統(tǒng)以實(shí)現(xiàn)數(shù)據(jù)庫(kù)完整性維護(hù)”,然后解決3個(gè)基本問(wèn)題:①如何表達(dá)完整性約束條件;②如何檢查完整性約束條件及何時(shí)檢查;③違反約束條件時(shí)如何處理,最后得出實(shí)現(xiàn)數(shù)據(jù)庫(kù)完整性的系統(tǒng)需包括:①提供定義完整性約束條件的機(jī)制;②提供完整性檢查的方法;③違約處理。通過(guò)這個(gè)例子我們可以看到,學(xué)生解決問(wèn)題能力的培養(yǎng)可以有機(jī)地融于教學(xué)中。
4)培養(yǎng)論證評(píng)價(jià)的能力。
所謂論證評(píng)價(jià)能力,就是引導(dǎo)學(xué)生思考一個(gè)數(shù)據(jù)庫(kù)系統(tǒng)的各種設(shè)計(jì)方法好的標(biāo)準(zhǔn)是什么以及如何進(jìn)行評(píng)價(jià)等問(wèn)題。例如,在講解數(shù)據(jù)庫(kù)的封鎖并發(fā)控制技術(shù)時(shí),教師可使用圖6形象地分析“采用封鎖技術(shù)的調(diào)度”與“可串行化調(diào)度(即正確的調(diào)度)”之間的關(guān)系,在此基礎(chǔ)上引出使用封鎖技術(shù)的策略——兩段鎖協(xié)議??梢?jiàn),論證評(píng)價(jià)不僅有助于理解“封鎖技術(shù)”,更重要的是讓學(xué)生記住封鎖協(xié)議的意義。
3 “研究式”教學(xué)的實(shí)踐
3.1 示例1:關(guān)系代數(shù)的除運(yùn)算
關(guān)系代數(shù)是一種抽象的查詢語(yǔ)言,它用關(guān)系運(yùn)算來(lái)表達(dá)查詢。除運(yùn)算是關(guān)系代數(shù)中學(xué)生最不易理解和掌握的一個(gè)知識(shí)點(diǎn),采取“研究式”教學(xué)模式可以取得良好的教學(xué)效果。
1)從引例出發(fā),引導(dǎo)學(xué)生觀察和發(fā)現(xiàn)引入“除運(yùn)算”的必要性。
以學(xué)生一課程數(shù)據(jù)庫(kù)為例,考慮查詢“至少選修1號(hào)課程和3號(hào)課程的學(xué)生號(hào)碼”。
假設(shè)有學(xué)生選課關(guān)系SC(見(jiàn)表1):
這個(gè)查詢的關(guān)系代數(shù)表達(dá)式為: ,但是如果查詢要求是“選修了全部課程的學(xué)生號(hào)碼”,同時(shí)全部課程是動(dòng)態(tài)變化的,那么查詢語(yǔ)句如何寫呢?顯然使用前述的關(guān)系運(yùn)算難以表達(dá),需要引入—個(gè)新的運(yùn)算符。
2)抽象相關(guān)的查詢要求,定義關(guān)系代數(shù)的除運(yùn)算。
分析包含“至少”“全部”等信息的查詢要求及結(jié)果,發(fā)現(xiàn)這類查詢的共性。使用圖7抽象查詢“至少選修1號(hào)課程和3號(hào)課程的學(xué)生號(hào)碼”的運(yùn)算及結(jié)果,可以看到“÷”運(yùn)算表達(dá)的含義及結(jié)果。于是,定義關(guān)系代數(shù)的“除運(yùn)算”如下:設(shè)有關(guān)系R(x,y)和S(Y),其中X、y可以是單個(gè)屬性或?qū)傩约瑒t除法運(yùn)算定義為
這就是說(shuō),關(guān)系R除以關(guān)系S所得的商是一個(gè)新的關(guān)系P(X),P是R中滿足下列條件的元組在X上的投影:元組在X上分量值x的像集Yx包含關(guān)系集S。
3)通過(guò)課堂和課后練習(xí),提高學(xué)生應(yīng)用“除運(yùn)算”表達(dá)查詢的能力。
假設(shè)有課程關(guān)系C(見(jiàn)表2):
應(yīng)用除運(yùn)算表達(dá)查詢“選修了全部課程的學(xué)生號(hào)碼”的表達(dá)式為: 。如果查詢要求是“選修了全部課程的學(xué)生學(xué)號(hào)和姓名”,查詢表達(dá)式又怎樣呢?類似的查詢還有“查詢至少選修‘劉力’老師所授全部課程的學(xué)生姓名”“查詢?nèi)繉W(xué)生都選修課程的課程號(hào)和課程名”等。
4)以示例說(shuō)明除運(yùn)算不是基本運(yùn)算,引進(jìn)它并不增加語(yǔ)言的能力,但可以簡(jiǎn)化代數(shù)表達(dá)式。
如果記圖7中除關(guān)系為K,那么有:
還有等價(jià)的表達(dá)式嗎?教師可通過(guò)對(duì)等價(jià)表達(dá)式的思考,有效地加強(qiáng)學(xué)生對(duì)除運(yùn)算的理解和應(yīng)用能力。
3.2 示例2:關(guān)系連接(join)操作的實(shí)現(xiàn)
教材中有些理論內(nèi)容都是從以往的研究中得來(lái)的。示例1以“還原”課本理論的歷史狀態(tài)和研究過(guò)程的形式,進(jìn)行“研究式”的教學(xué);而另一種形式的“研究式”教學(xué)則是在講解理論知識(shí)的基礎(chǔ)上,引導(dǎo)學(xué)生進(jìn)行進(jìn)一步地、深層次地思考,如在新的應(yīng)用背景、約束條件或技術(shù)條件下重新審視教材示例。
關(guān)系查詢往往涉及多表,對(duì)多個(gè)表進(jìn)行的查詢稱為連接查詢,其中的連接操作是查詢處理中最耗時(shí)的操作之一。對(duì)于連接操作的算法實(shí)現(xiàn),教材一般僅就等值連接或自然連接最常用的實(shí)現(xiàn)算法進(jìn)行介紹[2-3],包括:①嵌套循環(huán)方法(nested loop);②排序一合并方法(sort-mergejoin或merge join);③索引連接方法(indd2hwEi4/F7ua7eu6BKbmXg==exjoin);④hash join方法。教師可在“研究式”教學(xué)中,引導(dǎo)學(xué)生思考和研究連接操作及其計(jì)算代價(jià)等內(nèi)容。
1)引導(dǎo)學(xué)生劃分不同的連接操作,分析不同類型連接操作的異同。
分類:連接操作可分為一般(內(nèi))連接、等值連接、自然連接和外連接等。在各種連接中,還有單個(gè)表的連接、兩個(gè)表的連接和多個(gè)表的連接;在外連接中又有左外連接、右外連接和全外連接等。
分析異同:一般(內(nèi))連接、等值連接和自然連接滿足交換律和結(jié)合律,即:
連接的交換律:設(shè)E1和E2是關(guān)系代數(shù)表達(dá)式,F(xiàn)是連接運(yùn)算的條件,則有:
連接的結(jié)合律:設(shè)E1、E2和E3是關(guān)系代數(shù)表達(dá)式,F(xiàn)1和F2是連接運(yùn)算的條件,則有:
左(右)外連接顯然不滿足交換律,那么“自然左外連接操作滿足結(jié)合律嗎?”通過(guò)如下反例可證明不滿足。
此外,選擇對(duì)自然連接的分配律,在自然左外連接操作下,有以下的等式與不等式:
,其中, 僅使用E1的屬性。
,其中, 僅使用E2的屬性。
2)引導(dǎo)學(xué)生分析與思考多個(gè)連接(join)的操作次序與計(jì)算代價(jià)的關(guān)系。
大多數(shù)查詢將投影和選擇下推后可以表示為多表連接查詢,因此,無(wú)論是傳統(tǒng)的數(shù)據(jù)庫(kù)還是并行數(shù)據(jù)庫(kù),查詢優(yōu)化都是圍繞著多表連接操作進(jìn)行。
首先,計(jì)算多表連接中可能的連接組合。例如, ,當(dāng)n=3時(shí),有12種不同的連接組合,它們是:
如n-5,此數(shù)是1680。當(dāng),z增大時(shí),這個(gè)數(shù)字迅速增長(zhǎng)。當(dāng)n-7,此數(shù)變?yōu)?65280;當(dāng)n=10,此數(shù)大于176億!一般而言,對(duì)于n個(gè)關(guān)系,有 個(gè)不同的連接組合。
然后,討論如何確定多表連接的操作次序,常用的策略包括以下幾個(gè)。
(l)枚舉法:多表連接中可能的連接組合稱為問(wèn)題的解空間,枚舉法就是通過(guò)解空間中的每個(gè)可能解找到最優(yōu)解,當(dāng)解空間增大時(shí)求解效率相當(dāng)?shù)汀?/p>
(2)啟發(fā)式算法:尋求一種能產(chǎn)生可行解的啟發(fā)式規(guī)則,找到最優(yōu)解或近似最優(yōu)解,但在不同的應(yīng)用背景、限定條件或體系結(jié)構(gòu)下會(huì)有不同的啟發(fā)式規(guī)則,因此該方法不具有通用性,也不能保證所得的結(jié)果最優(yōu)。
(3)搜索算法:在可行解集合的一個(gè)子集內(nèi)進(jìn)行搜索,搜索算法的隨機(jī)性和盲目性不能保證得到最優(yōu)解,該算法需要結(jié)合一些啟發(fā)知識(shí)才能在一定程度上達(dá)到要求。
(4)遺傳算法:這是模擬生物在自然環(huán)境中的遺傳和進(jìn)化過(guò)程而形成的一種自適應(yīng)全局優(yōu)化概率搜索算法,它將原問(wèn)題的解空間映射到位串空間中,然后再實(shí)施遺傳操作,強(qiáng)調(diào)個(gè)體基因結(jié)構(gòu)的變化對(duì)其適應(yīng)度的影響。
除了以上的常用方法,還可以引導(dǎo)學(xué)生進(jìn)行一系列研究,例如,圍繞關(guān)系R,對(duì)于要執(zhí)行的兩個(gè)join操作Rx join R和Ry join R,假設(shè)它們的連接屬性分別為Ax和Ay。那么,Rx join R先執(zhí)行的總計(jì)算代價(jià)低于(等于)Ry join R先執(zhí)行的總計(jì)算代價(jià)的充要條件為 。當(dāng) 時(shí), 應(yīng)先于 執(zhí)行,該關(guān)系記為 join R;當(dāng) 時(shí),不論Rx join尺先執(zhí)行還是 先執(zhí)行,總計(jì)算代價(jià)都相等,該關(guān)系記為 。當(dāng)圍繞關(guān)系尺存在多個(gè)join操作時(shí),操作間的before關(guān)系存在傳遞性,即圍繞關(guān)系R,對(duì)于要執(zhí)行的3個(gè)相關(guān)的Jom操作 和 ,假設(shè)連接屬性分別為 ,那么,若存在 和 ,則 。
證明:由
由式
當(dāng)圍繞關(guān)系R存在多個(gè)join操作時(shí),操作間的before和equal關(guān)系也存在如下的傳遞性:
若存在 和 ,則R (證明略)。
當(dāng)圍繞關(guān)系R存在多個(gè)join操作時(shí),操作間的equal和before關(guān)系也存在如下的傳遞性:
若存在 和 ,則
(證明略)。
在進(jìn)行了以上的形式化研究后,教師可以設(shè)計(jì)一個(gè)算法,確定多個(gè)相關(guān)連接的操作次序,傳遞關(guān)系的存在可以保證每一次優(yōu)選出來(lái)的JOln操作在執(zhí)行次序上優(yōu)于下一次優(yōu)選出來(lái)的join操作。
4 結(jié)語(yǔ)
總的說(shuō)來(lái),在數(shù)據(jù)庫(kù)概論精品課程建設(shè)過(guò)程中,針對(duì)該課程的特點(diǎn)、學(xué)生的總體情況、授課教師多年在數(shù)據(jù)庫(kù)方向研究的優(yōu)勢(shì),筆者對(duì)“研究式”教學(xué)的內(nèi)容、形式和方法進(jìn)行了探索與實(shí)踐??梢哉f(shuō),“研究式”教學(xué)在激發(fā)學(xué)生的興趣、幫助學(xué)生深刻理解問(wèn)題本身及其解決方法的基礎(chǔ)上,調(diào)動(dòng)了學(xué)生的學(xué)習(xí)積極性,有力地激發(fā)了學(xué)生探究新興研究課題的興趣,強(qiáng)化了學(xué)生在教與學(xué)中的主體地位。同時(shí),“研究式”教學(xué)也促進(jìn)了教師的相關(guān)科研工作,因此“教學(xué)與科研相結(jié)合”在“研究式”教學(xué)下具有自然結(jié)合的特點(diǎn)。
總之,“研究式”教學(xué)對(duì)培養(yǎng)學(xué)生的創(chuàng)新能力、增強(qiáng)學(xué)生學(xué)習(xí)和研究的動(dòng)力、提高學(xué)生了解科研動(dòng)態(tài)和新興研究方向的興趣等方面都有極其重要的促進(jìn)作用,我們將在今后的教學(xué)過(guò)程中不斷研究和總結(jié),進(jìn)一步完善“研究式”教學(xué)的質(zhì)量。