□周 飚
目前,企事業(yè)單位的絕大部分管理活動仍然通過基于關(guān)系型數(shù)據(jù)庫的管理信息系統(tǒng)來完成。關(guān)系型數(shù)據(jù)庫是針對聯(lián)機(jī)事務(wù)處理(OLTP)系統(tǒng)進(jìn)行設(shè)計(jì)的,為企事業(yè)單位的信息化建立了不可磨滅的功勛,關(guān)系型數(shù)據(jù)庫所存儲的數(shù)據(jù)是經(jīng)過嚴(yán)格定義并且和具體業(yè)務(wù)緊密綁定在一起的結(jié)構(gòu)化數(shù)據(jù)。隨著大數(shù)據(jù)應(yīng)用的迅猛發(fā)展,這些結(jié)構(gòu)化數(shù)據(jù)已經(jīng)成為大數(shù)據(jù)必不可少的數(shù)據(jù)來源之一,關(guān)系型數(shù)據(jù)庫系統(tǒng)將在大數(shù)據(jù)應(yīng)用當(dāng)中繼續(xù)作出貢獻(xiàn)。
以關(guān)系型數(shù)據(jù)庫技術(shù)為基礎(chǔ)的就業(yè)崗位有信息系統(tǒng)管理和維護(hù)、電子商務(wù)平臺技術(shù)支持、大數(shù)據(jù)環(huán)境數(shù)據(jù)采集和查詢、數(shù)據(jù)庫系統(tǒng)二次設(shè)計(jì)與開發(fā)等。如何讓學(xué)生適應(yīng)和勝任這些就業(yè)崗位需求,適應(yīng)大數(shù)據(jù)發(fā)展的需要呢?搞好高職院校關(guān)系型數(shù)據(jù)庫課程教學(xué),探索出符合高職院校實(shí)際情況的數(shù)據(jù)庫教學(xué)思路和方法,是擺在每位高職院校數(shù)據(jù)庫教學(xué)工作者面前的問題。
關(guān)系型數(shù)據(jù)庫最典型的數(shù)據(jù)結(jié)構(gòu)是表,由二維表及其之間的聯(lián)系所組成的一個數(shù)據(jù)組織,它實(shí)現(xiàn)了數(shù)據(jù)的統(tǒng)一存取,支持使用簡單易學(xué)的SQL語句進(jìn)行數(shù)據(jù)的操縱、查詢和控制,開設(shè)關(guān)系型數(shù)據(jù)庫相關(guān)課程,學(xué)習(xí)曲線較為平緩,學(xué)生容易上手和理解,許多大數(shù)據(jù)專業(yè)都會開設(shè)關(guān)系型數(shù)據(jù)庫課程。學(xué)生學(xué)完這門課程,對管理和維護(hù)關(guān)系型數(shù)據(jù)庫及其數(shù)據(jù)建立起良好的理解,能夠?yàn)閼?yīng)用系統(tǒng)設(shè)計(jì)和開發(fā)打下基礎(chǔ)。
(一)數(shù)據(jù)庫課程傳統(tǒng)教學(xué)現(xiàn)狀分析。
1.重理論。對關(guān)系代數(shù)、范式理論等做了過多的理論講解,而對于應(yīng)用開發(fā)來說不會涉及太多太深這方面的理論。不注重對具體需求和具體任務(wù)的分析。
2.重語法。著重講解數(shù)據(jù)定義、數(shù)據(jù)更新、數(shù)據(jù)查詢等SQL語法。不注重講解根據(jù)不同需求編寫SQL的思路和方法。
3.重基本操作。偏重講解數(shù)據(jù)庫管理工具的基本操作。不注重分析SQL語句的具體執(zhí)行流程。
(二)高職學(xué)生學(xué)習(xí)特點(diǎn)分析。目前進(jìn)入高職院校學(xué)習(xí)的學(xué)生,知識的聯(lián)系性和系統(tǒng)性不太完善,邏輯思維能力相對較差,不能舉一反三。很多同學(xué)缺乏對軟件項(xiàng)目的整體認(rèn)識,對分析和解決數(shù)據(jù)庫相關(guān)問題的能力亟需提高。同時,同學(xué)們學(xué)習(xí)信息技術(shù)的積極性是很高的。如何保護(hù)和引導(dǎo)同學(xué)們學(xué)習(xí)數(shù)據(jù)庫技術(shù)的積極性,激發(fā)學(xué)習(xí)潛力、提高創(chuàng)新能力?如何量體裁衣、學(xué)以致用?這些問題都需要深入研究,敢于實(shí)踐,從而進(jìn)一步提高關(guān)系型數(shù)據(jù)庫教學(xué)水平。
(一)項(xiàng)目案例教學(xué)法。以一個小型實(shí)用的管理信息系統(tǒng)后臺數(shù)據(jù)庫開發(fā)周期貫穿整個教學(xué)過程,開發(fā)周期分為需求分析與整理、理解實(shí)體模型、建立概念模型、轉(zhuǎn)換關(guān)系模型、規(guī)范化設(shè)計(jì)可實(shí)施的數(shù)據(jù)庫型、數(shù)據(jù)定義、數(shù)據(jù)更新到數(shù)據(jù)查詢等階段,教學(xué)過程將依據(jù)這些階段進(jìn)行劃分,每個階段緊緊圍繞實(shí)際項(xiàng)目展示,將同學(xué)們劃分成多個團(tuán)隊(duì),每個階段進(jìn)行任務(wù)分解、人員分工、需求分析、整理解決思路、理論知識點(diǎn)講解和演示、完成任務(wù)、里程碑總結(jié)和交流。整個教學(xué)過程以學(xué)生為主體,學(xué)生做教師幫,教師僅在知識點(diǎn)講解和演示環(huán)節(jié)中為項(xiàng)目服務(wù)。
(二)任務(wù)驅(qū)動式教學(xué)法。在真實(shí)的案例基礎(chǔ)上,將案例分解為若干相對獨(dú)立又具有一定聯(lián)系的任務(wù)。每個任務(wù)均先提出任務(wù)目標(biāo),接著讓學(xué)生討論和分析任務(wù),教師講解需要用到的知識點(diǎn)并現(xiàn)場演示解決類似問題,學(xué)生類比完成任務(wù),體現(xiàn)“學(xué)以致用,活學(xué)活用”的教學(xué)理念,任務(wù)完成之后進(jìn)行里程碑評價(jià)和總結(jié),積累經(jīng)驗(yàn)。
(三)迭代編程演示法。迭代編程演示法實(shí)際上借鑒了敏捷開發(fā)模式,在進(jìn)行現(xiàn)場編碼演示時,不是一次性編寫完成全部代碼,而根據(jù)具體問題,從整體到局部,從主干到細(xì)節(jié),層層推進(jìn),邊分析邊編寫,每次編寫一個可運(yùn)行的SQL,最后編寫出完整的SQL。通過這種編程教學(xué)方法,既可以復(fù)習(xí)前面學(xué)過的知識,又可以培養(yǎng)學(xué)生分析問題的能力,還可以提高學(xué)生的編程能力。以網(wǎng)上書城后臺數(shù)據(jù)庫為例,該數(shù)據(jù)庫包括book表,member表和sell表,分別用來存放網(wǎng)上書城在線銷售的全部圖書、所有注冊會員、圖書銷售記錄?,F(xiàn)有一個需求:查找bookstore數(shù)據(jù)庫中客戶訂購的圖書書名、作者、訂購冊數(shù)和訂購時間。編寫過程分5次迭代,說明如下。
第1次:根據(jù)結(jié)果集中需要展示的字段項(xiàng),確定需要從哪些表獲取數(shù)據(jù),分別寫出單表查詢SQL,觀察每一個表的結(jié)構(gòu)及數(shù)據(jù),注意包含主外鍵。
SELECT * FROM book;
SELECT * FROM sell;
第2次:根據(jù)這些表寫出全連接查詢SQL
SELECT book.圖書編號,book.書名,book.作者,sell.圖書編號,sell.訂購冊數(shù),sell.訂購時間FROM book,sell;
第3次:分析等值連接條件
Book.圖書編號=Sell.圖書編號;
第4次:寫出where子句,完善SQL
SELECT book.圖書編號,book.書名,book.作者,sell.圖書編號,sell.訂購冊數(shù),sell.訂購時間FROM book,sell WHERE Book.圖書編號=Sell.圖書編號;
第5次:去掉多余的數(shù)據(jù)項(xiàng)
SELECT book.書名,book.作者,sell.訂購冊數(shù),sell.訂購時間FROM book,sell
WHERE Book.圖書編號=Sell.圖書編號。
(四)跨課程進(jìn)行技術(shù)整合。開發(fā)一套完整的管理信息系統(tǒng),除了后臺數(shù)據(jù)庫的設(shè)計(jì)和開發(fā)外,還要具有方便易用的圖形用戶界面以及功能完備的邏輯處理程序模塊。在集中實(shí)訓(xùn)階段,可以給學(xué)生展示基于Java和MySQL實(shí)現(xiàn)的管理信息系統(tǒng),通過界面可視化操作引入Java中的JDBC基礎(chǔ)教學(xué),讓同學(xué)們知道一套應(yīng)用系統(tǒng)是多種技術(shù)的綜合運(yùn)用才能完成。在這一階段,同學(xué)們既能夠進(jìn)一步鞏固所學(xué)的關(guān)系型數(shù)據(jù)庫知識,又能夠深入學(xué)習(xí)JDBC。
Java數(shù)據(jù)庫連接JDBC是一種用于執(zhí)行SQL語句的Java API,由一組用Java語言編寫的類和接口組成,可以為多種關(guān)系型數(shù)據(jù)庫提供統(tǒng)一訪問,這樣可以通過Java編程執(zhí)行數(shù)據(jù)定義語句、數(shù)據(jù)操縱語句、數(shù)據(jù)控制語句等SQL語句。采用講練結(jié)合的方式,講解JDBC編程基礎(chǔ),包括加載數(shù)據(jù)庫驅(qū)動、建立和獲取數(shù)據(jù)庫連接、創(chuàng)建語句對象、執(zhí)行SQL語句及處理結(jié)果。學(xué)生根據(jù)學(xué)到的JDBC知識自主探索編程實(shí)現(xiàn)數(shù)據(jù)庫操作。
關(guān)系型數(shù)據(jù)庫在目前企業(yè)信息化管理應(yīng)用非常廣泛,在很多高職院校計(jì)算機(jī)相關(guān)專業(yè)開設(shè)了這門課。本研究結(jié)合項(xiàng)目開發(fā)經(jīng)驗(yàn)和教學(xué)經(jīng)驗(yàn),教學(xué)將圍繞實(shí)際項(xiàng)目展開,將項(xiàng)目分解為若干任務(wù),始終以學(xué)生為主體并組建團(tuán)隊(duì),教師幫助學(xué)生弄懂理論并演示相關(guān)實(shí)例,學(xué)生模仿解決實(shí)際任務(wù)??缯n程技術(shù)整合教學(xué),讓同學(xué)們能夠提升項(xiàng)目實(shí)戰(zhàn)經(jīng)驗(yàn),培養(yǎng)學(xué)生的創(chuàng)新意識和能力。