萬常選 廖國瓊 吳京慧 劉喜平 劉愛紅
摘要:本文介紹“數據庫系統(tǒng)原理”課程的目標與體系,給出自編教材《數據庫系統(tǒng)原理與設計》及其配套實驗教材《數據庫系統(tǒng)原理與設計實驗教程》的內容與結構安排,分析教材的主要特色,包括重視數據庫模式導航、數據庫設計、數據庫管理系統(tǒng)和數據庫應用開發(fā)等,并對該課程教學過程中開展的大作業(yè)教學改革進行了探討。
關鍵詞:數據庫系統(tǒng)原理;教材建設;大作業(yè)教學
中圖分類號:G642 文獻標識碼:B
數據庫系統(tǒng)是計算機系統(tǒng)的重要組成部分,是企業(yè)、機構、互聯(lián)網乃至整個信息社會賴以運轉的基礎,在當今信息社會中扮演著越來越重要的角色。正是由于數據庫具有重要的基礎地位,數據庫理論與技術教育已成為現代計算機科學和相關學科教育中的核心部分,所有計算機相關專業(yè)的學生都有必要掌握和熟悉數據庫理論與技術。
通過多年的數據庫課程教學,我們發(fā)現學生在學習了數據庫課程之后,仍然不會“用”數據庫——不會設計數據庫,不會管理數據庫,不會開發(fā)數據庫應用程序。帶著這些問題,我們進行了一系列數據庫課程教學改革探索與實踐,并取得了一定的成績。如我校的“數據庫系統(tǒng)及應用”于2007年立項為國家精品課程;清華大學出版社于2009年出版了我們的研究成果——《數據庫系統(tǒng)原理與設計》及其配套實驗教材《數據庫系統(tǒng)原理與設計實驗教程》。
本文主要對“數據庫系統(tǒng)原理”課程目標及課程體系,出版教材的內容、結構及特色,大作業(yè)教學改革等方面進行分析與探討。
1課程目標與課程體系
1.1目標
我校“數據庫系統(tǒng)原理”課程教學主要面向計算機科學與技術專業(yè)、信息管理與信息系統(tǒng)專業(yè)的本科生。根據由教育部高等學校計算機科學與技術教學指導委員會最新編制的《高等學校計算機科學與技術專業(yè)核心課程教學實施方案》中數據庫教學實施方案的分類(科學型、工程型和應用型),并結合我校培養(yǎng)特色,我們主要培養(yǎng)應用型復合性人才。該課程強調理論與實踐相結合,主要培養(yǎng)目標為:
(1) 培養(yǎng)學生具有較強的數據抽象和數據建模能力,能夠深刻理解不同數據模型的特點和適用范圍,并具備利用某種數據模型構建實際應用邏輯模型的能力;
(2) 培養(yǎng)學生具有一定的系統(tǒng)分析與設計能力,能夠理解數據庫系統(tǒng)的體系結構和系統(tǒng)組成,能對數據庫管理系統(tǒng)的實現原理進行簡單分析;
(3) 培養(yǎng)學生具有較強的數據庫設計和應用開發(fā)能力,能夠靈活運用一種數據庫語言及應用開發(fā)工具解決實際應用問題;
(4) 培養(yǎng)學生自主學習能力、創(chuàng)新能力和團隊協(xié)作精神,從應用中發(fā)現問題、提出問題、分析問題和解決問題的能力——問題求解能力;
(5) 培養(yǎng)學生使用和維護數據庫能力,能夠在掌握數據庫基本原理的基礎上,掌握一種主流數據庫管理系統(tǒng)的使用和維護方法。
1.2課程體系
“數據庫系統(tǒng)原理”課程體系主要由以下部分組成:
(1) 數據模型——主線。
① 概念模型:E-R模型。
② 邏輯模型:關系模型(數據結構、操作和約束)。
③ 物理模型:存儲結構、索引技術等。
(2) 數據庫系統(tǒng)——核心。
① 數據庫管理系統(tǒng):存儲結構與索引、查詢與優(yōu)化、完整性與安全、事務與恢復等。
②人員:數據庫管理員、系統(tǒng)分析員和數據庫設計人員、數據庫應用程序員以及終端用戶等。
③ 支撐軟件及硬件系統(tǒng):操作系統(tǒng)及各種硬件資源。
(3) 數據庫應用——動力。
① 應用需求分析:業(yè)務需求及處理流程、功能需求及數據需求分析、業(yè)務規(guī)則分析等。
② 數據庫設計:數據庫概念模型、邏輯模型和物理模型等。
③ 數據庫應用開發(fā):數據庫應用系統(tǒng)的體系結構、常用數據庫訪問技術和數據庫應用開發(fā)技術等。
2教材內容與結構安排
結合“數據庫系統(tǒng)原理”課程培養(yǎng)目標和課程體系,《數據庫系統(tǒng)原理與設計》主要內容與結構安排如下:
(1) 數據庫系統(tǒng)基本概念(第1章)。該部分介紹了數據、數據管理、數據庫、數據庫管理系統(tǒng)和數據庫系統(tǒng)等基本概念,同時也介紹了數據模型、數據抽象、數據庫模式等概念。
(2) 關系數據庫基礎(第2章和第3章)。第2章介紹了關系模型(關系數據結構、關系操作和關系完整性約束條件)以及關系代數;第3章介紹了關系數據庫的標準語言——SQL,包括數據定義DDL語言、數據控制DCL語言和數據操縱DML語言。
(3) 關系數據庫設計(第4章至第6章)。第4章介紹了數據庫建模方法,包括實體-聯(lián)系模型基本概念、概念模型設計過程以及如何將E-R模型轉化為關系模型;第5章介紹了關系數據庫設計理論,著重講述了函數依賴及規(guī)范化理論;第6章通過一個實例演示了關系數據庫設計過程。
(4) 關系數據庫管理系統(tǒng)(第7至10章)。第7章介紹了關系數據庫物理存儲結構,包括文件組織、記錄組織、索引技術以及物理數據庫設計;第8章介紹了查詢處理技術,包括查詢處理過程、各種關系操作算法以及查詢優(yōu)化技術;第9章講述了數據庫完整性和安全技術,包括數據庫安全性、完整性的基本概念和措施,游標、存儲過程和觸發(fā)器以及應用與安全設計;第10章闡述了事務管理和恢復相關技術。
(5) 數據庫應用開發(fā)(第11章和第12章)。第11章介紹了數據庫應用系統(tǒng)的體系結構、常用數據庫訪問技術和數據庫應用開發(fā)技術;第12章介紹了Web數據庫基本概念,討論了Web數據庫訪問技術,并介紹了XML數據庫基本概念。
《數據庫系統(tǒng)原理與設計實驗教程》按照《數據庫系統(tǒng)原理與設計》主教材內容的順序,緊扣數據庫理論設計實驗,有助于學生深刻理解和掌握數據庫系統(tǒng)原理,培養(yǎng)學生的數據庫設計及應用開發(fā)能力。本書在簡單介紹了SQL Server 2000的特點、安裝與使用、體系結構、數據類型、函數和流控制語句后,共安排了13個實驗:簡單查詢、復雜查詢、數據定義操作、數據更新操作、查詢執(zhí)行計劃、安全性定義與檢查、完整性定義與檢查、游標與存儲過程、觸發(fā)器、事務處理、數據庫模式腳本設計、C/S模式的數據庫應用開發(fā)和B/S模式的數據庫應用開發(fā)。每一個實驗都包括實驗目的與要求、實驗案例和實驗內容3部分,每一類實驗中安排了相關知識介紹,以幫助學生回顧實驗相關知識。
3教材特色
目前,雖然數據庫教材很多,但是很難找到完全滿足我們需要的教材。本套教材的編寫初衷是寫出讓學生會“用”且“夠用”數據庫的教材。雖然不一定完全達到目標,但至少我們已開始了有益的嘗試。本套教材主要有4個特色,一是強調數據庫模式導航圖,二是強調數據庫設計,三是強調數據庫管理系統(tǒng),四是強調數據庫應用開發(fā)。
3.1數據庫模式導航圖
數據庫模式導航圖強化對關系數據庫模式的理解,以模式導航圖為工具,使學生深刻理解關系數據庫查詢原理,靈活掌握關系代數和SQL查詢語言。
例如,學生選課數據庫SCDB的模式導航圖如圖1所示。其中,開課班是弱實體集,它依賴于標識實體集課程,且假設課程班號cClsaaNo可唯一標識某門課程的開課班。那么可使用標識實體集課程的主碼courseNo與cClsaaNo結合起來唯一標識開課班中的實體。
給定一個查詢需求,基于數據庫模式導航圖構造其關系代數表達式或SQL查詢的步驟如下:
(1) 明確該查詢涉及到哪些屬性;
(2) 明確該查詢涉及到哪些關系;
(3) 根據數據庫模式導航圖,通過多對一聯(lián)系(或一對多聯(lián)系),把所有涉及的關系連接起來,每一個多對一聯(lián)系(或一對多聯(lián)系)都可以表示為外碼屬性的自然連接。
例1:針對SCDB數據庫,查找“吳文君”老師教過的2008級學生的姓名。
① 該查詢共涉及3個屬性,分別是職工名teacher Name、年級grade和學生姓名studentName,職工名teacherName和年級grade都是用于選擇條件。
② 共涉及3個關系,分別是教師關系Teacher、班級關系Class和學生關系Student。
③ 學生關系Student與班級關系Class之間是多對一聯(lián)系;學生關系Student和教師關系Teacher之間是多對多聯(lián)系,這種多對多聯(lián)系可通過幾個多對一聯(lián)系進行連通。根據圖2所示的數據庫模式導航圖,可以得到該查詢需要涉及5個關系:Class、Student、Teacher、SC和CourseClass,它們之間的聯(lián)系如圖2所示。
④ 根據圖2所示的數據庫模式導航圖,可得到關系代數表達式為:
∏studentName((((σgrade=2008Class ? Student) ? SC) ? Course Class) ? σteacherName='吳文君'Teacher)
3.2數據庫設計
數據庫設計是以案例為驅動,通過分析應用需求來介紹數據庫建模的基本方法,使學生深刻理解關系數據庫設計思想,提高數據庫設計能力。
數據庫設計相關內容安排在第4、5、6章以及第7.6、9.6節(jié)等章節(jié),逐層推進介紹。第4、5章介紹了數據庫設計的基本原理,第6章通過一個綜合數據庫設計實例啟發(fā)式地引領學生學會需求分析、概念建模和邏輯建模。
綜合數據庫設計實例內容包括:
(1) 需求描述和系統(tǒng)邊界;
(2) 需求分析,包括業(yè)務需求及處理流程、功能需求及數據需求分析、業(yè)務規(guī)則分析等;
(3) 確定實體集及屬性;
(4) 確定聯(lián)系集及E-R圖;
(5) 檢查是否滿足需求,并改進E-R圖;
(6) 邏輯數據庫設計;
(7) 模式求精;
(8) 進一步思考。
該數據庫設計過程是啟發(fā)式、遞進式的分析過程,可以配合大作業(yè)活動達到教學目的。
3.3數據庫管理系統(tǒng)
(1) 增加關系數據庫物理存儲結構、查詢處理和查詢優(yōu)化等內容,一是有利于學生從底層的角度理解SQL查詢,二是有利于學生更好地理解關系數據庫的物理設計,三是有利于學生更好地理解關系數據庫的優(yōu)點和缺點。該部分內容可根據授課對象的不同有選擇地開展教學。
(2) 從使用者的角度,以應用需求為驅動介紹數據庫的事務、并發(fā)、恢復和完整性、安全性等內容。
3.4數據庫應用開發(fā)
增加數據庫應用開發(fā)和Web數據庫技術介紹,使學生能了解數據庫常用訪問方法和Web數據庫的原理和實現技術,為后續(xù)學習和數據庫應用開發(fā)實踐打下基礎。
4大作業(yè)教學改革
作為一種培養(yǎng)學生綜合能力的教學手段,大作業(yè)制度對于創(chuàng)新型人才的培養(yǎng)具有重要的意義。大作業(yè)制度的實踐使教師主體和學生主體親密合作、協(xié)調互動,構建起學生在學習過程中自主式學習的主體地位和教師在教學過程中引導式教學的主體地位,達到了提高學生綜合能力的良好教學效果。
大作業(yè)教學活動的整個過程就是學生圍繞大作業(yè)開展“自主學習”,完成課題任務的過程;大作業(yè)教學手段是通過學生充分地展示個性才能,培養(yǎng)學生的自主精神,挖掘學生的潛能;大作業(yè)教學的目的是因材施教,發(fā)展學生個性。
大作業(yè)驅動下的雙主體互動式教學模式的主要舉措如下:
(1) 教學內容課題化。合理設計課題是大作業(yè)驅動的關鍵,需要教師精心策劃。設計選題時,既要有明確的目的、任務和要求,讓學生“有事可做”,又要考慮學生已有的知識結構和能力,讓學生“有事能做”,還要與學生的興趣相結合,讓學生“有事愿做”。
(2) 分工合作責任化。責任化的目的是實現團隊學習、分工合作、共同提高。大作業(yè)選題設計時,要有指導性的成員分工安排,形成人人參與、團隊合作的大作業(yè)共同體。
(3) 完成任務主體化。在完成大作業(yè)的過程中,一方面教師不要事先給出具體的方案和技術路線,給學生留有足夠的思維空間,充分發(fā)揮學生的自主式學習意識,引導學生創(chuàng)造性地提出解決問題的方案、技術路線;另一方面,教師針對學生實踐中遇到的問題,要及時地通過互動式討論,引導學生解決問題,正確引導學生的創(chuàng)新思維。
(4) 學習成果作品化。學生個人或小組的學習成果,需要以作品的形式呈現,并在班級內交流。有利于提高學生的寫作能力,使認知系統(tǒng)化、有序化。
(5) 評價標準公開化。要想正確地引導和評價學生,必須先創(chuàng)建客觀公正的評價標準和評價方法,讓學生明確努力的方向并自我評價,以增強學生的自主意識和對問題的注意力。采用理論考試與實踐考核相結合、傳統(tǒng)考試與上機考試相結合、大作業(yè)與小作業(yè)評價相結合的考核方式,注重綜合素質的提高,強化實踐教學,培養(yǎng)動手能力。
(6) 成果評價民主化。每個小組在完成大作業(yè)過程中都付出了辛勤勞動,取得了一定成績,要為每個小組提供一個展示研究成果的機會,培養(yǎng)學生發(fā)現問題、思考問題和解決問題的學習能力,促使學生養(yǎng)成學習他人長處的良好習慣。在答辯過程中,通過回答其他同學的問題和向其他組提出問題,學生的傾聽、觀察、分析、概括、歸納、講解、提問、辯論、思維等多種能力得到提高。
本課程采用了上述大作業(yè)驅動下的雙主體互動式教學模式。大作業(yè)過程及進度安排如下:
(1) 選題:說明選題的原因、確定系統(tǒng)目標及邊界(第2~3周)。
(2) 需求分析:業(yè)務需求及處理流程分析、功能需求及數據需求分析、業(yè)務規(guī)則分析等(第5~7周)。
(3) 數據庫設計:包括概念設計、邏輯設計、物理設計等(第8~10周)。
(4) B/S或C/S結構的應用系統(tǒng)實現(第10~13周)。
(5) 設計報告(第14~15周)。
通過做大作業(yè),不僅增強了學生的自信心,促進了學生主動學習,培養(yǎng)了學生的創(chuàng)新思維和創(chuàng)新能力,提高了學生的綜合素質,而且促進了教師努力鉆研業(yè)務和教學方法,提高了教師的科研能力。
5總結
經過多年的教學改革探索與實踐,我們一直在思考:對于計算機相關專業(yè)的本科生來說,需要掌握哪些數據庫知識?回答這個問題并不容易。這是因為數據庫知識非常豐富,而且課時有限,學生不可能了解所有數據庫知識。另外,不同用戶使用數據庫時的視角是不同的。數據庫系統(tǒng)的用戶大致可分為4類:數據庫管理員、系統(tǒng)分析員和數據庫設計人員、數據庫應用程序員以及終端用戶。計算機相關專業(yè)的學生既可能做數據庫管理員,也可能成為系統(tǒng)分析員和數據庫設計員,更可能是數據庫應用程序員。
因此,我們試圖編寫一套讓學生會“用”數據庫的教材,該套教材的主要特色是強調數據庫模式導航圖、強調數據庫設計、強調數據庫管理系統(tǒng)、強調數據庫應用開發(fā),并通過配套的大作業(yè)活動,使學生在掌握數據庫基本知識、基本理論和基本方法的基礎上,具有較強的數據庫設計、數據庫系統(tǒng)管理和應用開發(fā)能力,并能夠靈活運用數據庫技術解決實際應用問題;培養(yǎng)學生自主學習能力、創(chuàng)新能力和團隊協(xié)作精神,從應用中發(fā)現問題、提出問題、分析問題和解決問題的能力——問題求解能力。
參考文獻:
[1] 萬常選,廖國瓊,吳京慧,等. 數據庫系統(tǒng)原理與設計[M]. 北京:清華大學出版社,2009.
[2] 吳京慧,劉愛紅,廖國瓊,等. 數據庫系統(tǒng)原理與設計實驗教程[M]. 北京:清華大學出版社,2009.
[3] 萬常選,吳京慧,廖國瓊,等. 數據庫系列課程中創(chuàng)新性學習模式的探索與實踐[J]. 計算機教育,2009(15):13-15,22.
[4] 吳京慧. 培養(yǎng)學生創(chuàng)新能力的實踐教學方式的研究[J]. 計算機教育,2007(22):109 -112.
[5] 教育部高等學校計算機科學與技術教學指導委員會. 高等學校計算機科學與技術專業(yè)核心課程教學實施方案[M]. 北京:高等教育出版社,2009.