高新凱
摘要:對于數(shù)據(jù)庫技術(shù)教師而言,培養(yǎng)出能夠設(shè)計、開發(fā)、維護數(shù)據(jù)庫系統(tǒng)的學(xué)生至關(guān)重要。傳統(tǒng)的教材和講授策略,由于偏重理論,少案例,重局部而輕整體,往往難以達成理想的教學(xué)效果。本文提出了一種以項目活動為導(dǎo)向的教學(xué)策略,與傳統(tǒng)策略相比,更能清楚地呈現(xiàn)各知識點在項目中的地位和作用,更能形象、直觀地傳遞數(shù)據(jù)庫的基本概念、理論和方法,更能顯著的提升學(xué)生設(shè)計、開發(fā)、維護數(shù)據(jù)庫的能力。
關(guān)鍵詞:項目教學(xué)策略;關(guān)系型數(shù)據(jù)庫;JAVA EE;MySQL;數(shù)據(jù)庫教學(xué)
中圖分類號:TP311 文獻標(biāo)識碼:A 文章編號:1009-3044(2019)05-0006-03
Project-Oriented Strategy in Relational Database Teaching
GAO Xin-kai
(Tianhe Academy of Guangdong Polytechnic Normal University, Guangzhou 510540, China)
Abstract: For database technology teachers, it is very important to have students master skills for designing, developing and maintaining database systems. Teachers who take traditional textbooks and teaching strategies, due to the emphasis on theory, fewer cases, focusing on local while ignoring the whole, often fail to achieve satisfacroty effect. This paper proposes a project-oriented strategy. Compared with traditional strategies, Project-oriented strategy can clearly show positions and roles of every knowledge point in project, and present the basic concepts, theories and methods more intuitively, and enhance students'ability to design, develop and maintain database more significantly.
Key words: Project-Oriented strategy; relational database; JAVA EE; MySQL; database teaching
1 問題的提出
在應(yīng)用型大學(xué),數(shù)據(jù)庫技術(shù)的課程目標(biāo)是 培養(yǎng)能夠設(shè)計數(shù)據(jù)庫、維護數(shù)據(jù)庫、進行BS(CS)架構(gòu)數(shù)據(jù)庫系統(tǒng)開發(fā)的工程師。傳統(tǒng)的教材、講授策略存在以下問題:
1)知識點編排順序 與開發(fā)環(huán)節(jié)使用知識點的順序不一致。面對教材中的幾十個知識點,學(xué)生 既難以判斷誰先用誰后用、孰輕孰重,又難以掌握知識點之間的內(nèi)在聯(lián)系。
2)重理論,輕實例。偏重理論概念,脫離應(yīng)用背景,使內(nèi)容變得生硬、抽象。學(xué)生理解起來已經(jīng)很吃力,更別提靈活應(yīng)用來解決實際問題了。
如果不解決上述問題,則培養(yǎng)出來的學(xué)生 知理論而缺實踐經(jīng)驗、知識點掌握度淺而不精、能夠掌握局部而無法駕馭整體。盡管在理論考試中也許能夠取得高分,但如果要完成從需求分析,到數(shù)據(jù)庫系統(tǒng)設(shè)計,再到功能開發(fā)這樣一個完整的項目過程,通常會非常吃力。
2 分析問題
問題a發(fā)生的原因在于,所選教材 不是某個具體項目開發(fā)過程的紀實談、經(jīng)驗談。換而言之,如果找一個涵蓋了教學(xué)大綱重點的具體項目, 然后按照開發(fā)環(huán)節(jié)的順序 來引入教學(xué)大綱中的知識點,問題a就會迎刃而解。學(xué)生瞬間就能明白 各知識點 誰先用到誰后用到,誰輕誰重。
問題b發(fā)生的原因在于,由于不同項目采用的技術(shù)不盡相同,所選教材在講解 某個知識點之前, 不可能言明 知識點在項目的應(yīng)用頻率、重要程度。 反過來說,一旦項目確定了, 則哪些知識點 貼近項目實際,哪些知識點屬于純理論(在項目中完全用不到) 也就隨之確定了。
綜上所述,以項目開發(fā)活動為主線來穿插講解知識點(筆者稱之為【項目教學(xué)策略】),能夠克服傳統(tǒng)策略的兩個短板。于講授、練習(xí)全部緊緊圍繞項目功能模塊開展,教師和學(xué)生能夠免受【重理論,輕實例】和【只見局部不見整體】的困擾。
筆者將【項目教學(xué)策略】應(yīng)用到2個班級的教學(xué)中,與傳統(tǒng)的講授策略相比,優(yōu)勢如下:
1)學(xué)生的學(xué)習(xí)興趣、效能感、開發(fā)能力顯著提高, 課堂互動頻繁、氣氛活躍;
2)學(xué)生能夠辨別哪些知識點重要、哪些局其次,能夠辨別每個知識點用在項目開發(fā)的哪個環(huán)節(jié);
3)學(xué)生能夠獨自走完 需求分析->數(shù)據(jù)庫結(jié)構(gòu)設(shè)計->數(shù)據(jù)庫行為設(shè)計->編碼實現(xiàn)數(shù)據(jù)庫操作 四個環(huán)節(jié),具備開發(fā)簡單數(shù)據(jù)庫應(yīng)用系統(tǒng)的能力。
3項目教學(xué)法實施要點
1)以完整的項目作為素材
筆者采用的是貼近校園環(huán)境的師生信息管理系統(tǒng)(主界面見圖1),該系統(tǒng)采用流行的B/S架構(gòu),主要技術(shù)如下:
表1 主要技術(shù)
[項 主要技術(shù) 前端 HTML5 +CSS3 +JQuery 后端 Servlet+DAO+JavaBean 前端后端通信 AJAX+JSON ]
服務(wù)端的DAO中,操作表數(shù)據(jù) 主要使用 PreparedStatement對象,例如根據(jù)學(xué)號查詢學(xué)生詳情:
PreparedStatement ps = conn.prepareStatement("select * from tbstudent where no=?");
ps.setString(1, no);
ResultSet rs = ps.executeQuery();
讓學(xué)生練習(xí)前,刪除掉所有prepareStatement函數(shù)的SQL字符串參數(shù),讓學(xué)生填寫。只有SQL語句填寫正確,才能夠在瀏覽器端看到查詢結(jié)果。這樣,不僅讓學(xué)生對SQL語句在 應(yīng)用系統(tǒng)中的地位和功能和 有直觀的了解,而且能夠激學(xué)生 產(chǎn)生強大的學(xué)習(xí)效能感,促成其將各種操作內(nèi)化成一種長久的習(xí)慣。
注:如果學(xué)生還未修完《Java面向?qū)ο缶幊獭罚瑒t宜花2個學(xué)時介紹Java中DAO的相關(guān)知識。
2)講解順序 不按教材章節(jié)編排順序,而是按各開發(fā)環(huán)節(jié)使用知識點的順序,先用的知識先講,后用的知識后講。
筆者將師生信息管理系統(tǒng)的設(shè)計開發(fā)工作劃分為六個環(huán)節(jié),即:需求分析->數(shù)據(jù)庫結(jié)構(gòu)設(shè)計->模擬數(shù)據(jù)制作->數(shù)據(jù)庫備份和還原->表的基本操作->存儲過程、觸發(fā)器、事務(wù)的使用。
3)每個開發(fā)環(huán)節(jié),先設(shè)計相應(yīng)的應(yīng)用場景,把教學(xué)大綱中的知識點 引入,然后再講結(jié)合案例、實驗講解知識點。
4 局限性
1)本文中的項目沒有涉及一些理論知識(例如關(guān)系代數(shù)、層次模型、網(wǎng)狀模型、BC范式、第四范式等知識點),所以沒有將上述知識穿插到 項目教學(xué)過程中。這些知識,可以另開一門選修課,供有需要的學(xué)生學(xué)習(xí)。
2)本策略旨在培養(yǎng)將已有的理論應(yīng)用到實際中的應(yīng)用型人才,如果要培養(yǎng)在數(shù)據(jù)庫理論領(lǐng)域進行研究創(chuàng)新的人才,本策略不合適。
參考文獻:
[1] 王彤,王良.案例教學(xué)法再數(shù)據(jù)庫原理課程中的應(yīng)用[J].計算機教育,2006(2).
[2] 雷景生.數(shù)據(jù)庫原理及應(yīng)用[M]. 2版.北京:清華大學(xué)出版,2015.
[3] 鄭阿奇.Java EE教程[M]. 2版.北京:清華大學(xué)出版, 2018.
[4] Silberschatz A.數(shù)據(jù)庫系統(tǒng)概念[M]. 6版.北京:機械工業(yè)出版社,2012.
[5] Baron Schwartz.高性能MySQL[M]. 3版.北京:電子工業(yè)出版社,2013.
[6] Hector Garcia Molina.數(shù)據(jù)庫系統(tǒng)實現(xiàn)[M]. 2版.北京:機械工業(yè)出版社,2010.
[7] 王亞平.數(shù)據(jù)庫系統(tǒng)工程師教程[M].北京:清華大學(xué)出版,2018.
【通聯(lián)編輯:謝媛媛】