陳軍民
摘要:《數(shù)據(jù)庫原理與應用》是一門典型的計算機專業(yè)課程。但由于數(shù)據(jù)庫應用的廣泛性,職教本科非計算機專業(yè)也有開設(shè)這門課程的需要。由于培訓目標與辦學層次不同,職教本科非計算機專業(yè)開設(shè)這門課有它的特殊性。筆者根據(jù)多年的教學經(jīng)驗,以職教本科電子商務專業(yè)為例,從課程培養(yǎng)目標、相關(guān)教育理論、整合優(yōu)化方案與教學內(nèi)容重新編排四個方面進行論述。
關(guān)鍵詞:教學改革;職教本科;數(shù)據(jù)庫原理與應用
《數(shù)據(jù)庫原理與應用》是一門典型的計算機專業(yè)課程。但由于數(shù)據(jù)庫應用的廣泛性,職教本科非計算機專業(yè)也有開設(shè)這門課程的需要,如電子商務、金融財會。對于計算機專業(yè)來說,開設(shè)這門課程都有一系列的前繼相關(guān)專業(yè)課。但對于非計算機專業(yè),由于培養(yǎng)目標側(cè)重點不同,沒有足夠的課時安排開設(shè)這些課程。而現(xiàn)在市面上的數(shù)據(jù)庫教材,幾乎都是基于學生已學過了相關(guān)前繼專業(yè)課程之后進行編排內(nèi)容的。如果教師不根據(jù)專業(yè)的培訓目標,學生的實際情況,對教學內(nèi)容進行重新整合與優(yōu)化,簡單按教材內(nèi)容對學生進行授課,學生學不懂,上課效果差,是必然的。
以下筆者根據(jù)多年的教學經(jīng)驗,以職教本科電子商務專業(yè)為例,從課程培養(yǎng)目標、相關(guān)教育理論、整合優(yōu)化方案與教學內(nèi)容重新編排四個方面進行論述。
1.課程培養(yǎng)目標
職教本科是近幾年出現(xiàn)的一種新的辦學模式,它的培養(yǎng)目標既不同于普通本科,又不同于高職??啤W生既要扎實的理論功底,又要熟練的操作技能。過于偏重理論教學,忽視學生的實踐操作能力,體現(xiàn)不出“職教”特點;過于偏重學生的實踐操作,而忽視學生理論體系的建立,與“高職”無異。
對于《數(shù)據(jù)庫原理與應用》課程來說,既要求學生熟練掌握數(shù)據(jù)庫管理平臺的操作,編程實現(xiàn)數(shù)據(jù)庫的增刪改查、存儲過程、觸發(fā)器,數(shù)據(jù)庫基本運行與維護;又要求學生理解數(shù)據(jù)庫的體系結(jié)構(gòu)、關(guān)系模型、關(guān)系運算及查詢優(yōu)化、范式理論、數(shù)據(jù)庫的概念設(shè)計、邏輯設(shè)計、物理設(shè)計。學生既要微觀上的動手操作,又要宏觀上認識理解;既要有操作與維護現(xiàn)有數(shù)據(jù)庫的實踐能力,又要掌握數(shù)據(jù)庫設(shè)計理論,能夠針對具體數(shù)據(jù)庫項目設(shè)計符合項目要求的數(shù)據(jù)庫。
在具體教學中,如何處理理論與實踐的關(guān)系,教學內(nèi)容怎么整合與優(yōu)化,對于《數(shù)據(jù)庫原理與應用》這門課程來說,是值得認真研究的。有些學校是將數(shù)據(jù)庫原理與應用分兩門課程,先后進行授課,理論與實踐脫節(jié)嚴重;有些學校盡管安排在一門課程中授課,但也是內(nèi)容上的簡單拼湊,并沒有充分整合,更談不上優(yōu)化,再加上“非計算機專業(yè)”,沒有相關(guān)的計算機專業(yè)知識進行支撐,教學效果可想而知。
2.相關(guān)教育理論
辯證唯物主義認為,一切認識都是由感性到理性,所有的理論都源于實踐,理論反過來指導我們的實踐,教學過程同樣如此。對于《數(shù)據(jù)庫原理與應用》課程來說,有完善的理論體系,又有成熟的實踐平臺。基于“實踐一理論一再實踐”的理念,首先在數(shù)據(jù)庫管理平臺上操作,讓學生得到一個對數(shù)據(jù)庫的感性認識,然后再提煉與歸納相應的數(shù)據(jù)庫理論知識,最后再將理論知識用于指導學生的實踐操作。多次反復,有利于學生對數(shù)據(jù)庫理論知識的理解與認識,實踐操作更有針對性與創(chuàng)造性。
建構(gòu)主義教學理論也認為,學習者的知識是在一定情境下,借助于他人的幫助,通過意義的建構(gòu)而獲得的。理想的學習環(huán)境應當包括情境、協(xié)作、交流和意義建構(gòu)四個部分?!稊?shù)據(jù)庫原理與應用》課程的教學,有成熟的數(shù)據(jù)庫管理系統(tǒng)平臺,可以給學生提供很好的學習情境,再通過老師與學生、學生與學生、學生與軟件之間的協(xié)作與交流,建構(gòu)數(shù)據(jù)庫的理論體系、數(shù)據(jù)庫設(shè)計理論,和在理論地指導下有針對性與創(chuàng)造性地對數(shù)據(jù)庫進行操作。
基于上述教育理論,處理好數(shù)據(jù)庫理論與實踐的關(guān)系,將現(xiàn)有教材內(nèi)容進行整合與優(yōu)化,是符合學生的認知特點與教育規(guī)律的。
3.整合優(yōu)化方案
根據(jù)筆者對本校及周邊兄弟院校職教本科非計算機專業(yè)的《數(shù)據(jù)庫原理與應用》課程教學,及市面上流行的數(shù)據(jù)庫教材內(nèi)容的調(diào)研,發(fā)現(xiàn)存在以下一些問題,并針對這些問題,采取相應的整合與優(yōu)化方案。
1)在開設(shè)該課程之前,一般只開設(shè)了《計算機基礎(chǔ)》課程,并沒有像計算機專業(yè)一樣,前期開設(shè)了程序設(shè)計、操作系統(tǒng)、數(shù)據(jù)結(jié)構(gòu)、離散數(shù)學、軟件工程等課程。因此在現(xiàn)有教材內(nèi)容的基礎(chǔ)上,教師有必要在相應的章節(jié)補充一些必要的專業(yè)知識。如:講解關(guān)系運算時,補充必要的離散數(shù)學知識;講解數(shù)據(jù)查詢時,補充條件表達式知識;講解數(shù)據(jù)庫程序設(shè)計時,補充數(shù)據(jù)結(jié)構(gòu)知識;講解數(shù)據(jù)庫設(shè)計理論中,補充軟件工程工程知識。
2)對于非計算機專業(yè)開設(shè)數(shù)據(jù)庫與計算機專業(yè)開設(shè)數(shù)據(jù)庫的課程目標是不一樣。作為計算機專業(yè)的學生,今后可能會面對大型數(shù)據(jù)庫項目,可能會從事專業(yè)數(shù)據(jù)庫管理員(DBA)工作,所以要求學生掌握關(guān)系運算語言進行推演,得到最優(yōu)化的數(shù)據(jù)查詢;要求用數(shù)學語言表示關(guān)系范式,并選擇適當?shù)姆妒?;要求用E-R圖等工具分析大型數(shù)據(jù)庫項目,閱讀與寫作相關(guān)軟件設(shè)計文檔;要求掌握數(shù)據(jù)庫的并發(fā)機制,對數(shù)據(jù)庫系統(tǒng)進行專業(yè)管理與系統(tǒng)優(yōu)化。
但對于非計算機專業(yè)來說,他們的主體培養(yǎng)目標是工作中需要用到數(shù)據(jù)庫,去輔助其它的業(yè)務工作。如電子商務專業(yè),學習數(shù)據(jù)庫主要是構(gòu)建網(wǎng)站平臺及簡單的數(shù)據(jù)庫系統(tǒng)維護;對于金融財會專業(yè),學習數(shù)據(jù)庫主要是一些業(yè)務查詢工作。
因此對現(xiàn)有教材的內(nèi)容,應進行部分內(nèi)容刪除、簡化。
3)非計算機專業(yè)的學生,在學習這門課程之前,只有計算機基礎(chǔ)中的電子表格(Excel)對數(shù)據(jù)庫的學習有所幫助。因此在講解數(shù)據(jù)庫相關(guān)知識時,可以將Excel的知識與概念進行遷移,并對數(shù)據(jù)庫的專業(yè)術(shù)語進行通俗化。如關(guān)系模式,就是一個二維表,元組就是電子表格中的一行記錄,屬性就是電子表格的一個字段,或一列。這樣就能減輕學習數(shù)據(jù)庫的難度。
4)非計算機專業(yè)的學生學習數(shù)據(jù)庫,立足點在應用,掌握必要的理論也是為了更好地應用。因此有必要改變教材的內(nèi)容編排,將數(shù)據(jù)庫實踐操作與數(shù)據(jù)庫理論充分融合。利用現(xiàn)在數(shù)據(jù)庫管理平臺,去理解數(shù)據(jù)庫理論知識,絕對不能與計算機專業(yè)一樣,純粹講解理論知識;數(shù)據(jù)庫理論知識,也應把握一個“度”,不能過于抽象,說白了,非計算機機專業(yè)數(shù)據(jù)庫的理論是一種應用理論;如關(guān)系運算語言,只介紹選擇、投影等的表示符號,而對于運算的描述,不要用關(guān)系語言去描述,對于他們來說,只會越描述,學生越糊涂,而應用自然語言,和具體數(shù)據(jù)表實例代替說明。對于數(shù)據(jù)范式,也是如此,不要過于數(shù)學化。
5)對于非計算機專業(yè)的學生,特別是當他們感到這門課程過于專業(yè),學習有難度時,往往會質(zhì)疑,學習這門課有什么用,對他們的專業(yè)用什么幫助。為了解決學生的疑問,讓學生更主動地學習這門課程,教師應對整個專業(yè)計劃有所了解,同步開什么或后續(xù)會開什么數(shù)據(jù)庫相關(guān)課程。教師應超越課程本身,設(shè)計專業(yè)案例。如電子商務專業(yè),一般同步開的是c#程序設(shè)計,后續(xù)開商務網(wǎng)站建設(shè),這時應該設(shè)計一個用C#語言編寫的網(wǎng)站,并訪問數(shù)據(jù)庫這樣的案例。將一些數(shù)據(jù)查詢語句,存儲過程作為C#的腳本在案例中進行應用,而不僅僅是在數(shù)據(jù)庫平臺上應用。在講解數(shù)據(jù)庫設(shè)計理論時,也可以設(shè)計一個學生熟悉的案例,如學生選課系統(tǒng),并與C#編寫的網(wǎng)站進行鏈接。這樣學生就會用專業(yè)視角的去認識數(shù)據(jù)庫的作用,從而更積極主動地去學習數(shù)據(jù)庫知識。
6)學生今后工作可能會面對市面上的一些主流數(shù)據(jù)庫軟件,因此在教學中不要局限于一門具體數(shù)據(jù)庫管理軟件,在集中研究一種數(shù)據(jù)庫管理平臺時,對其它主流數(shù)據(jù)庫管理軟件也應進行接觸與學習,幫助學生發(fā)現(xiàn)數(shù)據(jù)庫軟件的通用規(guī)律,掌握各種主流數(shù)據(jù)庫之間的轉(zhuǎn)換,包括Excel。
4.教學內(nèi)容重新編排
4.1數(shù)據(jù)庫緒論、軟件安裝與配置
4.1.1數(shù)據(jù)庫的應用(信息管理系統(tǒng)、網(wǎng)站系統(tǒng),特別是一些電商平臺網(wǎng)站)
4.1.2數(shù)據(jù)庫發(fā)展的三個階段:人工管理、文件管理、數(shù)據(jù)庫管理
預先準備好三個C#程序(普通的程序、訪問office文件的程序、訪問數(shù)據(jù)庫的程序),通過分別演示這些程序,自然導出人工管理階段程序與數(shù)據(jù)之間的關(guān)系,文件管理階段程序與數(shù)據(jù)之間的關(guān)系,數(shù)據(jù)庫管理階段程序與數(shù)據(jù)之間的關(guān)系。
4.1.3安裝與配置數(shù)據(jù)庫管理軟件,同時對數(shù)據(jù)庫中所涉及基本概念、術(shù)語進行講解,注意應從Excel中進行知識遷移
1)安裝過程中,適時講解:數(shù)據(jù)庫的安全認證方式;數(shù)據(jù)庫各種后臺服務與實例,前臺配置與管理界面;數(shù)據(jù)庫的相關(guān)目錄配置。
2)數(shù)據(jù)庫軟件的基本操作:數(shù)據(jù)庫的新建、附加、分離,將常用的EXCEL數(shù)據(jù)文件轉(zhuǎn)變?yōu)閷S脭?shù)據(jù)庫。
3)利用數(shù)據(jù)庫管理系統(tǒng)和一個具體的數(shù)據(jù)庫,講解數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)、數(shù)據(jù)庫系統(tǒng)結(jié)構(gòu)(三個模式、兩個映像)、數(shù)據(jù)庫系統(tǒng);講解三個世界:現(xiàn)實世界、信息世界、機器世界,三個模型:概念模型、數(shù)據(jù)模型(層次、網(wǎng)狀、關(guān)系)、物理模型,關(guān)系模型的數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)操作(增刪改查)、完整性約束(實體完整性、參照完整性、用戶自定義完整性)。
4)利用Excel電子表格與一個具體的數(shù)據(jù)庫,講解基礎(chǔ)概念:數(shù)據(jù)與數(shù)據(jù)類型、數(shù)據(jù)庫與表,關(guān)系模型概念:關(guān)系、元組、屬性、域、分量、主碼、外碼、候選碼;數(shù)據(jù)庫對表的基本要求。
4.2關(guān)系代數(shù)與數(shù)據(jù)查詢的等價實現(xiàn)
首先,準備一個現(xiàn)成的數(shù)據(jù)庫,附加到數(shù)據(jù)庫管理系統(tǒng),介紹數(shù)據(jù)查詢的基本語法、比較與條件運算符;
其次,介紹關(guān)系運算,并同步用數(shù)據(jù)查詢語句進行實現(xiàn)。
對于關(guān)系運算,僅要求學生掌握關(guān)系運算的書寫方法,而對于這種關(guān)系運算規(guī)則,不再講述用數(shù)學語言進行表示,而代替以文字描述、具體實例更好理解。
一個關(guān)系模式(二維表),用R(A1,A2,……,An)表示,其中A1,A2表示字段。等價查詢:Select*from R。
投影操作:πA1,A3……(R),文字解釋:選取一個二維表的部分列。投影操作的結(jié)果會減少列,行可能不變。在查詢語句中,改變Select語句后面的參數(shù)實現(xiàn)投影操作。
選擇操作:6F(R),文字解釋:根據(jù)條件F,選取二維表的部分行,操作的結(jié)果會減少行,列不變。在查詢語句中,用Where語句后面的條件表達式實現(xiàn)選擇操作。
笛卡爾積:R1xR2,文字解釋:R1的每一行與R2的每一行分別相連,操作的結(jié)果,列是原來兩個表列相加,行數(shù)是相乘。在查詢語句中,將兩個表名寫在From子句的后面,用逗號隔開即開。
連接操作:R1-R2,是有條件的笛卡爾積。運算結(jié)果是笛卡爾積的子集。在查詢語句中,from子句實現(xiàn)笛卡爾積,Where子句實現(xiàn)條件篩選。
除法操作:RI+R2,在R1中找出所有包含R2的行,所得到關(guān)系的列是R1列去掉R2的列。沒有直接對應的SQL語句能夠?qū)崿F(xiàn),要用兩次否定,Exist語句實現(xiàn)。
還有三個集合運算,交、并、差,分別用INTERSECRT、UNION,EXCEPT語句實現(xiàn)。
查詢優(yōu)化樹,優(yōu)化規(guī)則。列上的聚焦函數(shù)。分組匯總查詢:類似Excel中的分類匯總。嵌套查詢。
本講主要要給學生一個數(shù)據(jù)查詢的理念,數(shù)據(jù)查詢是基于關(guān)系代數(shù)的,應利用關(guān)系代數(shù)去理解查詢過程,并利用關(guān)系代數(shù)去優(yōu)化查詢。由于課時的限制,不應過于注重一些細節(jié)。只要掌握了基本理念,本科生有較強的自學與擴展能力。
查詢語句,應在c#例中實現(xiàn)。
4.3建立數(shù)據(jù)庫、數(shù)據(jù)表、索引、完整性約束、數(shù)據(jù)插入、刪除、修改
本講學生應根據(jù)他人給出的數(shù)據(jù)庫與數(shù)據(jù)表要求,要自己建立數(shù)據(jù)庫、數(shù)據(jù)表,理解完整性約束并遵守相關(guān)約束,根據(jù)應用的需要,建立索引。這些僅要求用可視化界面實現(xiàn)即可,沒有必要用代碼實現(xiàn)。
建立數(shù)據(jù)表時,應理解常用的數(shù)據(jù)類型。
掌握數(shù)據(jù)插入、刪除、修改的語句實現(xiàn),進一步理解完整性約束并遵守相關(guān)約束。
4.4數(shù)據(jù)庫編程、建立視圖、存儲過程、觸發(fā)器
數(shù)據(jù)庫編程,與其它計算機程序設(shè)計語言編程不一樣,它的主要目的是編寫存儲過程與觸發(fā)器,學生在掌握基本的編程語法,變量定義、控制結(jié)構(gòu)之后,就應馬上切人到編寫視圖、存儲過程與觸發(fā)器。
視圖、存儲過程與觸發(fā)器也應在c#案例中實現(xiàn)。
4.5關(guān)系規(guī)范化理論
本講的目的,是如何得到一個規(guī)范的二維表。
1)引用問題。給出一個數(shù)據(jù)表,進行插人、刪除、修改可能出現(xiàn)的各種異常。2)介紹函數(shù)依賴、完、數(shù)據(jù)庫設(shè)計全函數(shù)依賴與部分函數(shù)依賴、傳遞依賴。3)介紹三個范式。4)關(guān)系模式如何進行規(guī)范化。
4.6數(shù)據(jù)庫設(shè)計
本講學生應根據(jù)現(xiàn)實問題,得出應建一個什么樣的數(shù)據(jù)庫,數(shù)據(jù)庫有哪些表,及每個表的數(shù)據(jù)要求。
1)需求分析;2)概念設(shè)計;3)邏輯設(shè)計;4)物理設(shè)計。
4.7案例實訓
1)開發(fā)環(huán)境的搭建;2)相關(guān)技術(shù)介紹;3)現(xiàn)成C#案例分析;4)數(shù)據(jù)庫建立,鏈接,在C#中插入查詢語句、存儲過程、觸發(fā)器。
5.結(jié)束語
由于版面有限,教學內(nèi)容不便展開。總之,根據(jù)職教本科非計算機專業(yè)的具體情況,應對現(xiàn)有教材內(nèi)容,以及相應的教學辦法,進行大面積的改革,理論與實踐應充分整合與優(yōu)化。通過筆者對兩屆學生的試驗,教學效果很好。