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