劉東杰 王春光
【摘 要】本文主要是針對實踐課《數據庫課程設計》中學生常見的問題進行了分析和探討,目的是對開設的《數據庫課程設計》中的經驗教訓進行總結,以便于更好的開展這門課程,為國家培養更多的有用人才。
【關鍵詞】數據庫 邏輯結構 物理結構 E—R圖 視圖 索引
《數據庫課程設計》是計算機專業在學過《數據庫系統概論》課程之后開設的一門綜合性較強的實踐課程。其主要任務就是使學生進一步鞏固和理解所學的數據庫基本理論知識和技術,培養學生運用所學的知識和技術設計簡單數據庫的能力。在實踐中,學生在教師的指導下進行數據庫設計,在對知識的掌握和理解、解決問題的能力方面都得到了極大的提高。但是學生在進行數據庫設計時,也常常存在著一些問題。
一、數據庫設計各階段及主要任務
數據庫設計目前主要采用的是軟件工程的方法和理論,其過程大至分為六個階段,各個階段的任務和主要內容如下。
1.需求分析
需求分析的任務是首先對實際應用問題進行分析,詳細了解用戶需求,根據用戶的需求設計數據庫實現方案,方案中要考慮到今后系統的擴充和改變。主要內容是根據對用戶的調查和對問題的分析,畫出數據流程圖,編寫數據字典,確定新系統的功能,寫出需求分析報告。
2.概念設計
概念設計的任務和內容是在對用戶需求進行分析之后,對現實世界進行綜合、歸納與抽象,形成一個獨立于具體DBMS的、抽象表示現實世界的概念模型即E-R圖。
3.邏輯結構設計
邏輯結構設計的任務是將概念模型轉換為某個DBMS所支持的數據模型,主要是關系模型,并對其進行優化。主要內容是將E—R圖轉化為關系模型的基本表并對其進行優化。
4.數據庫物理設計
數據庫物理設計的任務是為邏輯數據模型選取一個最合適應用環境的物理結構(包括存儲結構和存取方法)。主要內容是設計數據庫的磁盤存儲方案和表的各種索引。
5.數據庫實施
數據庫實施的任務和主要內容是設計人員運用DBMS提供的數據語言及宿主語言,根據邏輯設計和物理設計的結果建立數據庫,編制與調試應用程序,組織數據入庫,并進行試運行。
6.數據庫運行和維護階段
數據庫運行和維護階段的任務是保證數據庫的正常運行并根據需要對數據庫進行必要的維護。應用系統經過試運行后即可投入正式運行。在數據庫系統運行過程中必須不斷地對其進行評價、調整與修改。學生在設計數據庫時這一階段的內容是對所設計的數據庫進行正確的評價,預計未來數據庫的發展,根據實際問題的具體情況,制定數據庫的備份計劃等。
二、學生在進行數據庫設計時常見的問題
1.數據庫設計與應用程序設計混淆
應用程序設計的目的是針對著一個應用問題,為用戶設計用于對數據進行處理的應用程序,而數據庫設計則是面對各類用戶的應用需求、多個應用問題,為用戶設計數據庫;應用程序設計的大至步驟是根據對問題的分析首先確定程序的功能模塊,然后再根據功能模塊的需要設計用于存儲數據的各種文件等,在此思想指導下形成的各種數據文件往往可以存在著數據冗余等問題,而數據庫的設計則是根據對用戶需求的分析,抽象出現實世界的概念模型E—R圖,并根據E—R圖設計用于存儲各個應用問題所需數據的數據庫,再根據應用問題的需要為用戶設計用戶視圖,供用戶使用。設計出的數據庫要具有結構化好、共享性高、冗余度低、數據獨立性強等特點。二者之間在目的和步驟上是有著根本區別的。
2. E-R圖設計錯誤多
E-R圖設計是數據庫設計的重點,它是數據庫邏輯結構形成的主要依據,也是數據庫設計的難點。E-R圖是描述現實世界的概念模型,是對實際應用問題進行分析后,從中抽象出實體和實體之間的聯系圖。盡管在理論課中老師講解了確定實體和實體之間聯系的基本方法,但是在實踐中,如何運用這些知識和方法,學生常常是顯得概念模糊、經驗不足。
3.不重視視圖的設計
視圖是數據庫的外模式,是根據用戶的需求而建立的虛表,它的數據來自于基本表,數據庫中只存放視圖的定義而不存放視圖的數據,只有使用它時才會根據視圖的定義組成臨時表,因此,它的建立完全是根據用戶的需要而建立的,不必考慮數據庫中對數據存儲的其它要求。它和數據庫的邏輯模式(即基本表)之間的映射關系,體現了數據庫的邏輯獨立性。
4.不重視物理設計
物理設計包括兩方面的內容:一是磁盤存儲空間的設計;二是索引的設計。磁盤存儲空間的設計限于問題的假設性(練習性題目)難以把握被學生忽略可以理解,但是索引設計則是數據庫設計中非常重要的一項內容,它將直接影響到數據庫的工作效率,這是實際應用中非常重要的問題。然而很多同學卻不重視這方面的設計,沒有或很少根據實際應用問題進行索引設計。
5.其它
數據庫設計過程中學生還經常犯的錯誤有基本資料不完整不正確,如數據字典、E-R圖等;實體的屬性設置不當;基本表不定義主鍵;參照表不定義外鍵等。
三、改進措施
針對上述問題和問題產生的原因,我覺得應該采取如下一些措施加以解決。
1.進行有針對性地講解
教師應該在理論課上針對一些在《數據庫課程設計》中經常發生的問題進行有真對性地進行講解。
2.增加實踐課
實踐課是培養學生動手能力的最好手段,也是檢驗學生知識掌握程度的最好方法,因此在教學中應適當增加實踐課的比例,增加學生解決實際問題的經驗。
3.對一些難點、重點加強指導
教師在《數據庫課程設計》中應該針對題目的要求,在一些難點、重點處加強指導,例如問題分析、E—R圖的設計等。
《數據庫課程設計》是一門綜合性較強的實踐課程,考核學生多方面的知識掌握,不但能培養學生的動手能力,還能培養學生綜合運用知識的能力和創新的能力,具有非常重要的教學意義,我們應該不斷地探索其教學過程,總結經驗,使該門課程能達到最好的教學效果,為社會培養更多的有用的人才。
參考文獻:
[1]薩師煊,王珊.數據庫系統概論.高等教育出版社.
[2]李俊山,孫滿囤,韓先鋒,李艷玲.數據庫系統原理與設計.西安交通大學出版社.
[3]張海藩.軟件工程.人民郵電出版社.
[4]陳佳.信息系統開發方法教程.清華大學出版社.