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