基于遺傳算法的自動排課系統(tǒng)畢業(yè)設(shè)計_第1頁
基于遺傳算法的自動排課系統(tǒng)畢業(yè)設(shè)計_第2頁
基于遺傳算法的自動排課系統(tǒng)畢業(yè)設(shè)計_第3頁
基于遺傳算法的自動排課系統(tǒng)畢業(yè)設(shè)計_第4頁
基于遺傳算法的自動排課系統(tǒng)畢業(yè)設(shè)計_第5頁
已閱讀5頁,還剩55頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、摘要隨著科學(xué)技術(shù)和社會信息技術(shù)的不斷提高,計算機科學(xué)的日漸成熟,其強大的功能已為人們深刻認識,它在人類社會的各個領(lǐng)域發(fā)揮著越來越重要的作用,給人們的生活帶來了極大的便利,成為推動社會發(fā)展的首要技術(shù)動力。排課是學(xué)校教學(xué)管理中十分重要、又相當(dāng)復(fù)雜的工作之一。解決好教學(xué)工作中的排課問題對整個教學(xué)計劃的進行,有著十分重要的意義。首先對排課的已有算法作了相關(guān)的調(diào)查研究,決定采用遺傳算法。通過設(shè)計實現(xiàn)基于遺傳算法的自動排課系統(tǒng),研究了遺傳算法在排課系統(tǒng)中的應(yīng)用。關(guān)鍵詞:遺傳算法、自動排課、Java。 AbstractAlong with science technical and community in

2、formation technical increases continuously, calculator science is gradually mature, its mighty function has behaved deep cognition, and it has entered the human social each realm erupts to flick the more and more important function, bringing our life biggest of convenience. Curriculum arrangement is

3、 an important and complicated working in school, so solving the problem is of great importance for teaching programming. Investigated and studied the algorithm existed, determine that adopt genetic algorithm. Through Design Implementation the Auto Course Arrangement Management System Base on Genetic

4、 Algorithm, researched the application of genetic algorithm in the Course Arrangement Management System.Keywords: Genetic Algorithm Auto Course Arrangement Management Java.第一章 緒論1.1排課系統(tǒng)研究背景排課是學(xué)校教學(xué)管理中十分重要、又相當(dāng)復(fù)雜的管理工作之一,其實質(zhì)就是為學(xué)校所設(shè)置的課程安排時間和地點,從而使整個教學(xué)能夠有計劃有秩序的進行。迄今為止,對課程表的研究工作已經(jīng)進行了長達四十多年之久,取得了豐碩的成果。但是,仍然

5、存在許多不足之處,例如規(guī)模大、約束(條件)復(fù)雜以及規(guī)律不斷變化等,因此課程表問題至今仍未完全解決。課程表的編排是一個涉及多種因素的組合規(guī)劃問題,它要保證在課程安排中教師、學(xué)生、教室不能產(chǎn)生沖突(所謂沖突,就是將需上不同課程的兩個或多個班安排在了同一時間、同一教室,或為同一教師在同一時間段安排了多門課程等情況),并且要滿足教師的要求和資源限制等約束條件。目前,國內(nèi)的大部分學(xué)校仍然采用手工排課的方法。手工排課工作的主要手段是“擺牌”,就是在一個畫有空課表的版面上將有課名的小牌擺在適當(dāng)?shù)奈恢蒙?,邊擺邊觀察,邊調(diào)整,憑借經(jīng)驗將各門課擺在合理的位置上,最后形成一個有效的課程表。這種辦法沒有一定的規(guī)律,沒

6、有理論指導(dǎo),更沒有數(shù)據(jù)模型,具有很大的盲目性。所以,要為上千名學(xué)生和上百名教師安排出合理的課程表,往往需要花費教務(wù)處人員很多的時間,工作量大,排出的課程表不宜調(diào)整。隨著中國教育體制改革的不斷深入,學(xué)生人數(shù)的不斷上升,課程設(shè)置不斷向深度和廣度發(fā)展,手工排課的缺點就越來越突出。由于計算機具有運算速度快、處理能力強等特點,很自然地就進入到這一應(yīng)用領(lǐng)域中。用計算機進行排課能夠快速地得到滿足約束條件的可行結(jié)果,具有排課時間短、省人力和質(zhì)量高的優(yōu)點,不但能使教務(wù)人員從繁雜的排課任務(wù)中解脫出來,而且對于推動教學(xué)的發(fā)展也起到非常重要的作用。每個學(xué)期開學(xué)時,教務(wù)管理工作中的課程表安排問題,都是教務(wù)處面臨的一項艱

7、巨任務(wù)。排課問題是一個非常棘手卻又亟待解決的問題,通常都是使用傳統(tǒng)的人工手動排課方法。手工排課不僅勞動強度大,而且排課效率低,很難排出一個讓人滿意的課程表。時間,教師,教室,班級,課程等限制問題更是難以解決,使用計算機進行自動排課已經(jīng)成為近年來的熱點話題。教學(xué)管理的信息化需要計算機輔助排課,而排課理論的研究和軟件技術(shù)的成熟己為我們提供了計算機自動排課的重要手段,研究一種準確、高效、實用、自動化程度高的排課系統(tǒng)己經(jīng)成為可能。1.2排課系統(tǒng)國內(nèi)外現(xiàn)狀排課問題是NP完全問題,許多學(xué)者分別在理論、啟發(fā)式搜索技術(shù)應(yīng)用求解、專家系統(tǒng)應(yīng)用求解和遺傳算法應(yīng)用求解上作了很多研究。國外從20世紀50年代末就對排課

8、問題展開了研究。1963年Gotlieb在他的文章中提出了排課問題的數(shù)學(xué)模型2,它標志著排課問題的研究正式跨越了科學(xué)的殿堂。之后,人們對排課問題的算法做了許多探索,但由于排課問題是NP完全問題,并且易受實際問題邊界的影響,大多數(shù)求解結(jié)果都不夠理想。Ferland3等人和吳金榮4把排課問題化成整數(shù)規(guī)劃來解決,但計算量很大,其僅僅適用于規(guī)模很小的課表編排,對于大規(guī)模復(fù)雜的排課情況,至今沒有一個切實可行的算法;何永太5和胡順仁6等人試圖用圖論中的染色問題來求解排課問題,可惜圖的染色問題本身也是NP完全問題。由于問題的復(fù)雜,許多文章利用啟發(fā)式函數(shù)來解決排課問題,大多數(shù)啟發(fā)方法都是模擬手工排課的過程來實

9、現(xiàn)的。由于實際的排課問題存在各種各樣的限制條件與特殊要求,對這些因素處理的好壞就顯得尤為重要。進入20世紀90年代,國外對排課問題的研究仍然非?;钴S。如印度Vastapur大學(xué)管理學(xué)院的Arabinda Tripathy、加拿大Montreal大學(xué)的Jean Aubin和JacqueSA Ferland以及Charles Fleutent等。Arabinda Tripathy的工作是針對以“人”為單位進行課表編排的。他運用拉格朗日松弛法和分支定界技術(shù)求解,這種方法的缺點是為了減少變量的個數(shù),人為造成科目間的沖突。A.Tripathy還研究了研究生課表編排問題,他采用多重課組的方法來處理沖突(即

10、根據(jù)學(xué)生選課的矛盾情況,將人數(shù)多的課程在一星期內(nèi)開多次)。JacQuesA.Ferland等人則把排課問題分成兩個子問題:時間表問題和分組問題。在時間表問題中,根據(jù)學(xué)生注冊情況、教師和教室的可利用情況形成一個主時間表。對于選課人數(shù)較多的大課,一個星期要分成幾個時間段來上,分組問題就是將學(xué)生分給各時間段。兩個問題相關(guān)聯(lián),通過懲罰因子來構(gòu)造啟發(fā)函數(shù)。他們研制的SAPHIR課程調(diào)度決策支持系統(tǒng)分為數(shù)據(jù)處理、自動優(yōu)化、交互優(yōu)化等幾個模塊。該系統(tǒng)解決矛盾的主要方法也是采用多重課組。在國內(nèi),對于排課系統(tǒng)的研發(fā),林漳希和林堯瑞1984年發(fā)表了該課題上的實驗性研究成果。成形的系統(tǒng)有大連理工大學(xué)1998年推出的

11、教學(xué)調(diào)度系統(tǒng)版本3.00和由清華大學(xué)計算機與信息管理中心開發(fā)的綜合教務(wù)管理系統(tǒng)TISER。這些應(yīng)用界面很友好的排課軟件己經(jīng)可以幫助排課人員大大提高工作效率。這些系統(tǒng)大多數(shù)都是模擬手工排課,以“班”為單位,只能在排課過程中輔助工作人員進行排課,并沒有一套完善有效的自動排課算法。當(dāng)人工輸入的條件達到一定的限制程度時,軟件運行就有可能出現(xiàn)死鎖現(xiàn)象,使得系統(tǒng)的實際應(yīng)用非常困難19。后期人工調(diào)整的工作量并不比重新排課的工作量小很多。一旦出現(xiàn)了這種現(xiàn)象,就要把所有的數(shù)據(jù)作廢或者打亂重排,之前做的工作都付諸東流。高校的課程、教室、教師等因素都十分復(fù)雜,排課所需數(shù)據(jù)量也十分龐大,所以造成的時間、人力損失也非常

12、巨大。課程表問題又稱時間表問題,是一個多因素的優(yōu)化決策問題,也是組合規(guī)劃中的典型問題,是NP完全的1。對于排課問題的解決,研究人員己經(jīng)使用了各種不同的算法,但由于該問題的復(fù)雜性,所求解也只能是較為合理、較為滿意的解。隨著人工智能的發(fā)展,特別是在計算智能領(lǐng)域的拓展,借鑒于生物界進化思想和遺傳算法,由于其超強的并行搜索能力,以及在解決優(yōu)化問題中表現(xiàn)出來的高度魯棒性,它已經(jīng)被廣泛應(yīng)用于各個領(lǐng)域。目前,很多研究人員已使用遺傳算法來求解排課問題,如文獻20使用遺傳算法優(yōu)化教室的合理利用,文獻21的用自適應(yīng)的遺傳算法求解大學(xué)課表安排問題,文獻22的基于遺傳算法排課系統(tǒng)的設(shè)計與實現(xiàn)等等。這些應(yīng)用說明,使用遺

13、傳算法來解決排課問題,其結(jié)果還是令人較為滿意的。教學(xué)排課問題是學(xué)校每個排課人員最頭痛的問題。短時間內(nèi)沒有一個方法來達到學(xué)校教師滿意的結(jié)果。其最大的困難是硬件資源的限制。排課人員在硬件資源兼顧的條件下難于短時間內(nèi)排出教師滿意的課表?!案F舉法”可將所有的方式列出然后找出最佳解,但成本太高,時間太長。如一個星期有n個時段可排課,有m位教師需要參與排課平均每位教師一個星期要上i堂課。其排課的組合數(shù)有nm*i次??梢姼F舉法的復(fù)雜度有多高。遺傳算法是一種通過模擬自然進化過程搜索最優(yōu)解的方法。本文試圖以遺傳算法來實現(xiàn)排課問題的最佳解。本課題研究的目的就是實現(xiàn)基于遺傳算法的排課系統(tǒng),并在VB下具體實現(xiàn),滿足日

14、常需求。1.3排課常用算法比較1.3.1貪心算法貪心法(greedy method)是一種改進了的分級處理方法,逐步構(gòu)造最優(yōu)解。它從問題的某一個初始解出發(fā),在一定的標準下做出一系列的貪心選擇(選擇一旦做出,就不可再更改),即當(dāng)前狀態(tài)下看上去最優(yōu)的選擇逐步逼近給定的目標以盡可能快的速度求得更好的解 當(dāng)達到算法中的某一步不能再繼續(xù)前進時則停止。貪心算法的核心是在所選擇的策略中,選一個權(quán)值最優(yōu)的策略作為當(dāng)前策略。因此貪心算法的好壞主要決定于權(quán)值的確定。在排課系統(tǒng)中,貪心算法是從排課問題的某一初始狀態(tài)出發(fā)依據(jù)給出的貪心策略朝最終排好全部課程這個目標前進一步,判斷是否可以求出可行解的一個解元素如果可以則

15、繼續(xù)依據(jù)貪心策略向給定目標前進求出下一個解元素。直到前進不能再繼續(xù)時停止。最后由所有得到的解元素組成問題的一個可行解。此時算法結(jié)束。貪心算法的缺點在于解的效果比較差而最大優(yōu)勢在于極低的時間復(fù)雜度。能做到某種意義上的局部最優(yōu)。它具有不可后撤性,可以有后效性一般情況下不滿足最優(yōu)化原理。并且不適用于解決可行性問題僅適用于較容易得到可行解的最優(yōu)性問題。為了盡量減小貪心算法帶來的副作用。使得最后得到的解更接近最優(yōu)解??梢栽谒惴ūM可能多的地方使用有效的最優(yōu)化算法(如動態(tài)規(guī)劃)。貪心算法還可以為搜索算法提供較優(yōu)的初始界值。1.3.2回溯算法回溯算法也叫試探法它是一種系統(tǒng)地搜索問題的解的方法,可以被認為是一個

16、有過剪枝的DFS(深度優(yōu)先搜索)過程。它按優(yōu)先條件向前搜索,以達到目標,但當(dāng)搜索到某一步時發(fā)現(xiàn)原先的選擇并不優(yōu)或達不到目標。就退回一步重新選擇。而滿足回溯條件的某個狀態(tài)點稱之為回溯點。具體到計算機智能排課系統(tǒng)中,選優(yōu)條件即為排課數(shù)學(xué)模型中的約束條件群(需求集中的元素特征與資源集中的元素特征相互作用形成的數(shù)學(xué)關(guān)系)若不滿足約束條件群,該選擇即為不優(yōu)或達不到目標 當(dāng)遍歷該步驟的所有可能仍未滿足約束條件群則該狀態(tài)滿足了回溯條件,該狀態(tài)點即為回溯點?;厮菟惴ń鉀Q排課問題時首先要描述解的形式,定義一個解空間它包含問題的所有解:其次構(gòu)造狀態(tài)空間樹,這棵樹的每條完整路徑都代表了一種解的可能:再次是構(gòu)造約束函

17、數(shù),通過描述合法解的一般特征用于去除不合法的解,從而避免繼續(xù)搜索出這個不合法解的剩余部分:然后通過深度優(yōu)先搜索完成回溯。設(shè)置初始化的方案(給變量賦初值,讀入已知數(shù)據(jù)等);變換方式去試探。若全部試完則轉(zhuǎn) ; 判斷此法是否成功(通過約束函數(shù)),不成功則轉(zhuǎn) ; 試探成功則前進一步再試探;正確方案還未找到則轉(zhuǎn) ; 已找到一種方案則記錄并打印;退回一步(回溯),若未退到根則轉(zhuǎn) ; 已退到根節(jié)點則排課結(jié)束或打印無排課結(jié)果?;厮莘ㄟm用于解的組合數(shù)相當(dāng)大但仍然有限的那一類問題。它的一個有重要的特性是在搜索執(zhí)行的同時產(chǎn)生解空問。在搜索期間的任何時刻僅保留從開始節(jié)點到當(dāng)前節(jié)點的路徑。因此回溯算法的空間需求為一個常

18、數(shù),即從開始節(jié)點起最長路徑的長度。這個特性非常重要因為解空間的大小通常是最長路徑長度的指數(shù)或階乘。所以如果要存儲全部解空間的話。再多的空間也不夠用。其缺點是時間復(fù)雜度較大因此在采用時還需要謹慎。最好是和其它的算法結(jié)合使用。1.3.3遺傳算法遺傳算法是模擬達爾文的遺傳選擇和自然淘汰的生物進化過程的計算模型,是一種通過模擬自然進化過程搜索最優(yōu)解的方法,它是有美國Michigan大學(xué)J.Holland教授于1975年首先提出來的,并出版了頗有影響的專著Adaptation in Natural and Artificial Systems,GA這個名稱才逐漸為人所知,J.Hilland教授所提出的G

19、A通常為簡單遺傳算法(SGA)。 遺傳算法是從代表問題可能潛在的解集的一個種群(population)開始的,而一個種群則由經(jīng)過基因(gene)編碼的一定數(shù)目的個體(individual)組成。每個個體實際上是染色體(chromosome)帶有特征的實體。染色體作為遺傳物質(zhì)的主要載體,即多個基因的集合,其內(nèi)部表現(xiàn)(即基因型)是某種基因組合,它決定了個體的形狀的外部表現(xiàn),如黑頭發(fā)的特征是由染色體中控制這一特征的某種基因組合決定的。因此,在一開始需要實現(xiàn)從表現(xiàn)型到基因型的映射即編碼工作。由于仿照基因編碼的工作很復(fù)雜,我們往往進行簡化,如二進制編碼,初代種群產(chǎn)生之后,按照適者生存和優(yōu)勝劣汰的原理,逐

20、代(generation)演化產(chǎn)生出越來越好的近似解,在每一代,根據(jù)問題域中個體的適應(yīng)度(fitness)大小挑選(selection)個體,并借助于自然遺傳學(xué)的遺傳算子(genetic operators)進行組合交叉(crossover)和變異(mutation),產(chǎn)生出代表新的解集的種群。這個過程將導(dǎo)致種群像自然進化一樣的后生代種群比前代更加適應(yīng)于環(huán)境,末代種群中的最優(yōu)個體經(jīng)過解碼(decoding),可以作為問題近似最優(yōu)解。遺傳算法是一類可用于復(fù)雜系統(tǒng)優(yōu)化的具有魯棒性的搜索算法,與傳統(tǒng)的優(yōu)化算法相比,主要有以下特點:1、 遺傳算法以決策變量的編碼作為運算對象。傳統(tǒng)的優(yōu)化算法往往直接決策

21、變量的實際植本身,而遺傳算法處理決策變量的某種編碼形式,使得我們可以借鑒生物學(xué)中的染色體和基因的概念,可以模仿自然界生物的遺傳和進化機理,也使得我們能夠方便的應(yīng)用遺傳操作算子。2、 遺傳算法直接以適應(yīng)度作為搜索信息,無需導(dǎo)數(shù)等其它輔助信息。3、 遺傳算法使用多個點的搜索信息,具有隱含并行性。4、 遺傳算法使用概率搜索技術(shù),而非確定性規(guī)則。根據(jù)其算法特點,遺傳算法非常適合于應(yīng)用到排課處理中。具體應(yīng)用方式將在后面設(shè)計部分詳細說明。1.4遺傳算法國內(nèi)外現(xiàn)狀進入90年代,遺傳算法迎來了興盛發(fā)展時期,無論是理論研究還是應(yīng)用研究都成了十分熱門的課題。尤其是遺傳算法的應(yīng)用研究顯得格外活躍,不但它的應(yīng)用領(lǐng)域擴

22、大,而且利用遺傳算法進行優(yōu)化和規(guī)則學(xué)習(xí)的能力也顯著提高,同時產(chǎn)業(yè)應(yīng)用方面的研究也在摸索之中。此外一些新的理論和方法在應(yīng)用研究中亦得到了迅速的發(fā)展,這些無疑均給遺傳算法增添了新的活力。遺傳算法的應(yīng)用研究已從初期的組合優(yōu)化求解擴展到了許多更新、更工程化的應(yīng)用方面。隨著應(yīng)用領(lǐng)域的擴展,遺傳算法的研究出現(xiàn)了幾個引人注目的新動向:一是基于遺傳算法的機器學(xué)習(xí),這一新的研究課題把遺傳算法從歷來離散的搜索空間的優(yōu)化搜索算法擴展到具有獨特的規(guī)則生成功能的嶄新的機器學(xué)習(xí)算法。這一新的學(xué)習(xí)機制對于解決人工智能中知識獲取和知識優(yōu)化精煉的瓶頸難題帶來了希望。二是遺傳算法正日益和神經(jīng)網(wǎng)絡(luò)、模糊推理以及混沌理論等其它智能計

23、算方法相互滲透和結(jié)合,這對開拓21世紀中新的智能計算技術(shù)將具有重要的意義。三是并行處理的遺傳算法的研究十分活躍。這一研究不僅對遺傳算法本身的發(fā)展,而且對于新一代智能計算機體系結(jié)構(gòu)的研究都是十分重要的。四是遺傳算法和另一個稱為人工生命的嶄新研究領(lǐng)域正不斷滲透。所謂人工生命即是用計算機模擬自然界豐富多彩的生命現(xiàn)象,其中生物的自適應(yīng)、進化和免疫等現(xiàn)象是人工生命的重要研究對象,而遺傳算法在這方面將會發(fā)揮一定的作用,五是遺傳算法和進化規(guī)劃(Evolution Programming,EP)以及進化策略(Evolution Strategy,ES)等進化計算理論日益結(jié)合。EP和ES幾乎是和遺傳算法同時獨立

24、發(fā)展起來的,同遺傳算法一樣,它們也是模擬自然界生物進化機制的智能計算方法,即同遺傳算法具有相同之處,也有各自的特點。目前,這三者之間的比較研究和彼此結(jié)合的探討正形成熱點。1991年D.Whitey在他的論文中提出了基于領(lǐng)域交叉的交叉算子(Adjacency based crossover),這個算子是特別針對用序號表示基因的個體的交叉,并將其應(yīng)用到了TSP問題中,通過實驗對其進行了驗證。D.H.Ackley等提出了隨即迭代遺傳爬山法(Stochastic Iterated Genetic Hill-climbing,SIGH)采用了一種復(fù)雜的概率選舉機制,此機制中由m個“投票者”來共同決定新個

25、體的值(m表示群體的大?。嶒灲Y(jié)果表明,SIGH與單點交叉、均勻交叉的神經(jīng)遺傳算法相比,所測試的六個函數(shù)中有四個表現(xiàn)出更好的性能,而且總體來講,SIGH比現(xiàn)存的許多算法在求解速度方面更有競爭力。H.Bersini和G.Seront將遺傳算法與單一方法(simplex method)結(jié)合起來,形成了一種叫單一操作的多親交叉算子(simplex crossover),該算子在根據(jù)兩個母體以及一個額外的個體產(chǎn)生新個體,事實上他的交叉結(jié)果與對三個個體用選舉交叉產(chǎn)生的結(jié)果一致。同時,文獻還將三者交叉算子與點交叉、均勻交叉做了比較,結(jié)果表明,三者交叉算子比其余兩個有更好的性能。國內(nèi)也有不少的專家和學(xué)者對

26、遺傳算法的交叉算子進行改進。2002年,戴曉明等應(yīng)用多種群遺傳并行進化的思想,對不同種群基于不同的遺傳策略,如變異概率,不同的變異算子等來搜索變量空間,并利用種群間遷移算子來進行遺傳信息交流,以解決經(jīng)典遺傳算法的收斂到局部最優(yōu)值問題。2004年,趙宏立等針對簡單遺傳算法在較大規(guī)模組合優(yōu)化問題上搜索效率不高的現(xiàn)象,提出了一種用基因塊編碼的并行遺傳算法(Building-block Coded Parallel GA,BCPGA)。該方法以粗粒度并行遺傳算法為基本框架,在染色體群體中識別出可能的基因塊,然后用基因塊作為新的基因單位對染色體重新編碼,產(chǎn)生長度較短的染色體,在用重新編碼的染色體群體作為

27、下一輪以相同方式演化的初始群體。2005年,江雷等針對并行遺傳算法求解TSP問題,探討了使用彈性策略來維持群體的多樣性,使得算法跨過局部收斂的障礙,向全局最優(yōu)解方向進化。1.5研究目標及內(nèi)容研究目標對遺傳算法進行研究,進而將其應(yīng)用到排課系統(tǒng)中,利用計算機來模擬手工排課工作,可以抽象問題中的各個要素,數(shù)學(xué)表達各種約束條件,并根據(jù)課表的組織形式和普遍存在的規(guī)律,縮減了問題空間的搜索范圍,有效組織了排課知識,使其在一定程度上呈現(xiàn)智能化。研究內(nèi)容學(xué)校排課問題本質(zhì)上是時間表問題的一類典型應(yīng)用實例,是為了解決課程安排對時間和空間資源的有效利用并避免相互沖突。在排課過程中需要考慮課程教學(xué)效果、滿足教師特殊要

28、求等多項優(yōu)化指標,將各門課程安排到相應(yīng)的時間和教室。1)排課問題具體研究的內(nèi)容如下:(1)遺傳算法的理論(2)排課問題的建模(3)遺傳算法在自動排課中的應(yīng)用方法(4)排課算法的實現(xiàn)2)排課問題具體研究的重點和難點如下:(1)深入理解遺傳算法理論。(2)排課問題的建模,包括排課問題的要素以及排課過程的約束條件等。(3)遺傳算法在排課問題中的應(yīng)用方法,包括基因編碼、初始種群的產(chǎn)生、適應(yīng)度函數(shù)、控制參數(shù)的設(shè)定等。(4)排課問題本身的求解規(guī)模過于龐大,各要素之間的關(guān)聯(lián)層出不窮,以及人們對多個課表優(yōu)劣評定的準則存在差異,在求解排課問題的過程中,會面對難以窮盡的組合和多個模糊目標的優(yōu)化問題,實際解決時會受

29、到一些制約。3)排課問題具體研究方法如下:采用循序漸進的方法進行研究,首先必須要學(xué)習(xí)遺傳算法,在學(xué)習(xí)的基礎(chǔ)上進行深入研究,對現(xiàn)行的遺傳算法進行一些改進,然后對排課問題進行建模,分析排課問題的要素和約束條件。最后將遺傳算法應(yīng)用到排課系統(tǒng)中,提出一種具體的應(yīng)用方法并實現(xiàn)排課算法。研究過程中要借助于大量的文獻資料,必須要先學(xué)習(xí)理論,在理論的基礎(chǔ)上再進行實踐。4)排課問題具體研究步驟如下:(1)大量閱讀關(guān)于遺傳算法的相關(guān)文獻,理解算法原理。(2)研究排課問題,對排課問題進行建模。(3)對遺傳算法進行一些改進。(4)提出遺傳算法在自動排課中的應(yīng)用方法。(5)進行系統(tǒng)的概要設(shè)計和詳細設(shè)計。(6)編碼實現(xiàn)排

30、課算法。(7)對系統(tǒng)進行測試和運行。(8)對系統(tǒng)進行回歸測試和功能完善。5)排課問題研究用到的工具與框架如下:(1)MyEclipse6.0;(2)開發(fā)的環(huán)境:JDK1.5;(3)UML建模工具:PowerDesigner12.5;(4)MS SQL Server 2000;1.5.3研究意義排課系統(tǒng)是教學(xué)管理系統(tǒng)中的一項重要內(nèi)容,排課結(jié)果的優(yōu)劣直接影響到學(xué)校的正常教學(xué)秩序,甚至影響教學(xué)質(zhì)量。排課管理的主要任務(wù)是把全校各年級所開設(shè)的課程進行匯總,然后根據(jù)教學(xué)計劃和教學(xué)資源制訂全校各班級的課程表,優(yōu)化配置各種教學(xué)資源,使教學(xué)工作科學(xué)、高效順利的進行。研究的意義就在于設(shè)計一個好的智能排課系統(tǒng),從而

31、減輕了教學(xué)管理工作者的勞動強度,提高了工作效率,規(guī)范了教學(xué)管理工作流程。第二章 相關(guān)技術(shù)基礎(chǔ)本章介紹開發(fā)中用到的相關(guān)技術(shù)。2.1 MyEclipse Enterprise Workbench 介紹MyEclipse企業(yè)級工作平臺(MyEclipse Enterprise Workbench ,簡稱MyEclipse)是對Eclipse IDE的擴展,利用它我們可以在數(shù)據(jù)庫和JavaEE的開發(fā)、發(fā)布,以及應(yīng)用程序服務(wù)器的整合方面極大的提高工作效率。它是功能豐富的JavaEE集成開發(fā)環(huán)境,包括了完備的編碼、調(diào)試、測試和發(fā)布功能,完整支持HTML, Struts, JSF, CSS, JavaScr

32、ipt, SQL, Hibernate。Eclipse是著名的跨平臺的自由集成開發(fā)環(huán)境(IDE)。最初主要用來Java語言開發(fā),但是目前亦有人通過插件使其作為其他計算機語言比如C+和Python的開發(fā)工具。Eclipse的本身只是一個框架平臺,但是眾多插件的支持使得Eclipse擁有其他功能相對固定的IDE軟件很難具有的靈活性。許多軟件開發(fā)商以Eclipse為框架開發(fā)自己的IDE。Eclipse 最初由OTI和IBM兩家公司的IDE產(chǎn)品開發(fā)組創(chuàng)建,起始于1999年4月。IBM提供了最初的Eclipse代碼基礎(chǔ),包括Platform、JDT 和PDE。目前由IBM牽頭,圍繞著Eclipse項目已

33、經(jīng)發(fā)展成為了一個龐大的Eclipse聯(lián)盟,有150多家軟件公司參與到Eclipse項目中,其中包括Borland、Rational Software、Red Hat及Sybase等。Eclipse是一個開發(fā)源碼項目,它其實是 Visual Age for Java的替代品,其界面跟先前的Visual Age for Java差不多,但由于其開放源碼,任何人都可以免費得到,并可以在此基礎(chǔ)上開發(fā)各自的插件,因此越來越受人們關(guān)注。近期還有包括Oracle在內(nèi)的許多大公司也紛紛加入了該項目,并宣稱Eclipse將來能成為可進行任何語言開發(fā)的IDE集大成者,使用者只需下載各種語言的插件即可。2.2.1

34、Eclipse開發(fā)環(huán)境Eclipse開發(fā)環(huán)境被稱為Workbench,它主要由三個部分組成:透視圖(Perspective)、編輯窗口(Editor)和視圖(View)15。所有文件的顯示和編輯都包含在編輯窗口里。默認情況下打開的多個文件是以標簽(Tag)方式在同一個窗口中排列的。視圖是配合編輯窗口并提供了多種相關(guān)信息和瀏覽方式。視圖是任何IDE開發(fā)環(huán)境的核心,用好視圖也就是用好工DE開發(fā)環(huán)境。透視圖可以自定義每個視圖中包含的視圖種類,也可自定義一個新透視圖。一個透視圖包括一個或多個編輯窗口和視圖。2.2.2 Eclipse的主要特點Eclipse的主要特點有以下幾方面:(l)開放的可擴展的I

35、DEEclipse平臺是一個開放的可擴展的功E。Eclipse平臺是建造模塊和構(gòu)造并運行集成軟件開發(fā)工具的基礎(chǔ)。Eclipse平臺允許工具建造者獨立開發(fā)與其它工具無縫集成的工具,用戶甚至無須去分辨一個工具功能在哪里結(jié)束,而另一個工具功能在哪里開始。(2)成功的底層圖形界面從Java誕生至今,己經(jīng)在太多的領(lǐng)域取得成功,然而它卻很少在圖形接口程序上嶄露頭角。究其原因,Java語言缺省的圖形接口開發(fā)包AWT和SWING實在是難辭其咎,無論速度和外觀,它們都難以讓人接受。如今,E。 1ipse組織編寫的SWT開發(fā)包,為Java程序員提供了AWT和SWING之外的一個更好的選擇。SWT本身僅僅是Ecli

36、pse組織為了開發(fā)Eclipse集成開發(fā)環(huán)境所編寫的一組底層圖形接口API?;蛟S是無心插柳,又或是有意為之。至今為止,SWT無論是在性能和外觀上,都超越了Sun公司提供的AWT和SWING。目前, Eclipse IDE版本已經(jīng)開發(fā)到了3.2版本,SWT已經(jīng)十分穩(wěn)定。這里穩(wěn)定包含兩層意思:指性能上的穩(wěn)定,其中的關(guān)鍵是源于SWT的設(shè)計理念。SWT最大化了操作系統(tǒng)的圖形構(gòu)API,就是說,只要操作系統(tǒng)提供了相應(yīng)圖形的構(gòu)件,SWT才自己去做一個模擬的實現(xiàn)??梢钥闯鯯盯性能上的穩(wěn)定大多時候取決于相應(yīng)操作系統(tǒng)圖形構(gòu)件的穩(wěn)定性。指 SWTAPI包中的類,方法的名稱和結(jié)構(gòu)已經(jīng)少有改變,程序員不用擔(dān)心由于Ecl

37、ipse組織開發(fā)進度過快(Eclipse IDE每天都會發(fā)布一個Nightly版本),而導(dǎo)致自己的程序代碼變化過大。從一個版本的SWT更新至另一個版本,通常只是需要簡單將SWT包換掉就可以了。(3)強大的插件加載功能可以通過不斷地加載插件來實現(xiàn)同其它產(chǎn)品的合作。整個E。 1ipse體系結(jié)構(gòu)就像一個大拼圖,可以不斷地向上加插件,同時,現(xiàn)有插件上還可以再加插件,進而實現(xiàn)功能的擴展。目前,Eclipse已經(jīng)開始提供C語言開發(fā)的功能插件。更難能可貴的是,Eclipse是一個開放源代碼的項目,任何人都可以下載Eclipse的源代碼,并且在此基礎(chǔ)上開發(fā)自己的功能插件。也就是說,只要有人需要,就會有建立在E

38、clipse。之上的COBOL、Perl、Python等語言的開發(fā)插件出現(xiàn)。同時可以通過開發(fā)新的插件擴展現(xiàn)有插件的功能,例如在現(xiàn)有的Java開發(fā)環(huán)境中加入Tomcat服務(wù)器插件。Ec11spe插件可以無限擴展,而且有著統(tǒng)一的外觀、操作和系統(tǒng)資源管理,這也是Ec11pse的潛力所在。(4)可以通過導(dǎo)入一些CVS相關(guān)的插件來實現(xiàn)版本管理控制的便宜性Eclipse平臺提供了對于直接從工作區(qū)進行團隊開發(fā)操作的支持。這種支持允許開發(fā)人員并發(fā)地與幾個獨立的資源庫以及不同版本的代碼或項目進行交互。工作區(qū)中的資源允許團隊支持組件處理版本和配置管理問題。當(dāng)然,單個工作區(qū)也可以同時訪問不同類型的資源庫。Eclip

39、se平臺并沒有提供它自己的代碼管理解決方案,它總是依靠外部系統(tǒng)。E1ipse平臺只對一個源代碼管理系統(tǒng)提供內(nèi)置支持一一并發(fā)版本控制系統(tǒng)CVS。(5)充分的幫助文檔值得提出的還有,在下載了Eclipse的多國語言翻譯包之后,所有的菜單和聯(lián)機幫助文檔都己經(jīng)翻譯成了中文,使用起來比較方便。2.2 SQL Server 2005Microsoft SQL Server 2005是軟件開發(fā)中使用非常廣泛的數(shù)據(jù)庫管理系統(tǒng),它是由美利堅合眾國的微軟公司開發(fā)并推出的數(shù)據(jù)庫開發(fā)、管理系統(tǒng)。它是由一系列的圖形工具整合在一起構(gòu)成的,這些圖形工具主要有服務(wù)器管理、企業(yè)管理器和查詢分析器。服務(wù)器管理的主要功能是啟動和關(guān)

40、閉數(shù)據(jù)庫服務(wù)。企業(yè)管理器的主要功能是創(chuàng)建、修改和備份數(shù)據(jù)庫。查詢分析器的主要功能是交互執(zhí)行標準T-SQL語句、SQL函數(shù)和存儲過程,而且具有圖形化的查詢分析功能。SQL Server 2005作為一款數(shù)據(jù)庫開發(fā)與分析的軟件,能夠方便快捷的為可伸縮性的電子商務(wù)、企業(yè)ERP和數(shù)據(jù)倉庫等創(chuàng)建出優(yōu)秀的解決方案。在SQL SERVER的2005版出現(xiàn)時,Internet網(wǎng)絡(luò)已興起,所以它為網(wǎng)絡(luò)應(yīng)用程序的開發(fā)和設(shè)計做了很多工作,能很好的適應(yīng)網(wǎng)路應(yīng)用程序的數(shù)據(jù)管理和數(shù)據(jù)分析。在開發(fā)電子商務(wù)、數(shù)據(jù)倉庫應(yīng)用時,如果采用由SQL SERVER 2005作為核心組件之一的Windows DNA(Distribute

41、d Internet Architecture)架構(gòu),能夠使得整個應(yīng)用的開發(fā)周期大大縮短。另外,SQL SERVER 2005全方位支持HTTP和XML(Extensible Markup Language)擴展標示語言。SQL Server 2005具有著性能高和企業(yè)級可伸縮性的特點。SQL Server 2005安裝部署與Windows NT操作系統(tǒng)之上,與操作系統(tǒng)一起提供了對多處理器、大內(nèi)存和64位硬件平臺的支持。而且SQL Server 2005還支持WindowsNT的多路群集,為較大規(guī)模的應(yīng)用提供了良好的支持。在可管理性和易用性方面,SQL Server的上一個版本7.0在行業(yè)內(nèi)就

42、處于領(lǐng)先地位,而升級版的2005不僅在可管理性和易用性方面做了大量改進,而且在性能、擴展性和安全性方面也做了許多改進。SQL Server 2005能為具有商務(wù)活動的網(wǎng)絡(luò)站點提供優(yōu)異的性能,具有商務(wù)活動的網(wǎng)絡(luò)站點對性能、可管理性、易用性都有較高的要求,而SQL Server 2005能夠很好的做到這些。SQL Server 2005的特點歸納后如下:1SQL Server 2005的數(shù)據(jù)分析性能是非常高效的SQL Server 2005具有高效的數(shù)據(jù)操作機制。SQL Server 2005在處理查詢時,能夠智能優(yōu)化SQL語句,對Where條件中的多個條件進行分析,找出最佳的過濾及交叉順序,并且

43、可以將優(yōu)化好的SQL語句緩存起來,下次再有同樣的SQL查詢時將直接使用緩存的優(yōu)化過的SQL語句。2SQL Server 2005的業(yè)務(wù)擴展性是靈活的數(shù)據(jù)倉庫技術(shù)直接回答的是業(yè)務(wù)問題,其實現(xiàn)方式也是以解決一個個業(yè)務(wù)需求的形式組織的。隨著新業(yè)務(wù)的出 業(yè)務(wù)需求建設(shè)新的模型,這種堆疊形式的建設(shè)方式為整個系統(tǒng)隨業(yè)務(wù)的發(fā)展而平穩(wěn)發(fā)展提供了良好的條件。3 SQL Server 2005的安全性是與操作系統(tǒng)集成在一起的Microsoft SQL Server 2005的安全性是與操作系統(tǒng)集成在一起的,從而可以利用windows的強大功能,為數(shù)據(jù)庫用戶實現(xiàn)更高的安全性。操作系統(tǒng)提供了OLAP管理器,通過OLAP

44、管理器強大而專業(yè)的管理功能,實現(xiàn)對用戶權(quán)限的更為細致和專業(yè)的劃分和控制。Microsoft SQL Server 2005具有細致而全面的安全設(shè)置選項。數(shù)據(jù)庫用戶具有不同的級別劃分,數(shù)據(jù)庫管理員可以根據(jù)實際情況,對數(shù)據(jù)庫用戶進行細致的級別劃分,使得數(shù)據(jù)系統(tǒng)的安全性更有保障。由高到低的級別依次為服務(wù)器級、數(shù)據(jù)庫級、多維數(shù)據(jù)集挖掘模型級、維度成員級和單元級。4SQL Server 2005的易用性SQL Server 2005的企業(yè)管理器是圖形化工具,界面顯示與操作方式都與Windows操作系統(tǒng)的類似,在當(dāng)前Windows普及的背景下,開發(fā)人員可以很快上手并熟悉,基本不用化太多時間專門的學(xué)習(xí)SQL

45、 Server 2005軟件的使用。SQL Server 2005可以對工作負載進行動態(tài)優(yōu)化,根據(jù)最優(yōu)的參數(shù)設(shè)置進行智能調(diào)節(jié),從而盡可能減輕數(shù)據(jù)維護管理人員的工作量。SQL Server 2005還為開發(fā)人員提供了各種常用操作的向?qū)С绦蚣肮δ軓姶蟮膱D形化編輯器。向?qū)С绦蚩梢宰岄_發(fā)人員能夠在圖形化界面下,按向?qū)У牟僮魈崾局鸩酵瓿上嚓P(guān)操作,極大的方便了開發(fā)人員的使用。圖形化編輯器更是使得開發(fā)人員可以通過幾次選擇操作,就能完成本來需要手敲的腳本,大大提高了開發(fā)人員的開發(fā)效率,而且降低了出錯率。SQL Server 2005還提供了將數(shù)據(jù)導(dǎo)入導(dǎo)出向?qū)?,可以方便的將?shù)據(jù)庫中導(dǎo)出到Excel、txt等格式

46、文件中,也可以這些格式文件中導(dǎo)入數(shù)據(jù)。第三章 系統(tǒng)分析與初步設(shè)計系統(tǒng)分析與初步設(shè)計是軟件開發(fā)中的一個重要階段,是建立系統(tǒng)初步模型的。3.1系統(tǒng)分析的工作步驟 問題提出可行性分析 下達初步設(shè)計任務(wù)書 組織隊伍,明確分工 制定初步設(shè)計大綱下達各子系統(tǒng)設(shè)計任務(wù)書需求調(diào)查與分析確定系統(tǒng)功能目標設(shè)計系統(tǒng)總體結(jié)構(gòu) 功能模型設(shè)計 信息分類編碼設(shè)計 初步建立信息模型 界面劃分及內(nèi)外接口要求 確定系統(tǒng)配置 實施進度計劃 組織機構(gòu)設(shè)計 經(jīng)費預(yù)算 經(jīng)濟效益分析 編寫分析階段文檔資料 修改 評審圖 3-1 系統(tǒng)分析的工作步驟首先,是問題提出,即需求的提出,要解決做什么的問題。我們遇到了什么問題,我們的需求是什么。為完

47、成我們的需求,我們需要做的系統(tǒng)都需要什么功能。系統(tǒng)分析的核心是目標分析與需求分析。目標分析是進行組織系統(tǒng)的目標分析和計算機系統(tǒng)目標分析;需求分析是對功能需求和信息需求進行分析。這個階段的主要目標是針對要開發(fā)的開發(fā)項目,明確系統(tǒng)開發(fā)的目標和用戶的信息需求,提出系統(tǒng)的邏輯方案。這個階段的成果是系統(tǒng)方案說明書或稱總體方案, 系統(tǒng)方案說明書是整個系統(tǒng)分析階段的工作總結(jié),是系統(tǒng)分析人員和用戶交流的主要手段,是系統(tǒng)設(shè)計階段工作的重要依據(jù)。3.2問題提出即需求提出排課是學(xué)校教學(xué)管理中十分重要、又相當(dāng)復(fù)雜的管理工作之一,其實質(zhì)就是為學(xué)校所設(shè)置的課程安排時間和地點,從而使整個教學(xué)能夠有計劃有秩序的進行。迄今為止

48、,對課程表的研究工作已經(jīng)進行了長達四十多年之久,取得了豐碩的成果。但是,仍然存在許多不足之處,例如規(guī)模大、約束(條件)復(fù)雜以及規(guī)律不斷變化等,因此課程表問題至今仍未完全解決。課程表的編排是一個涉及多種因素的組合規(guī)劃問題,它要保證在課程安排中教師、學(xué)生、教室不能產(chǎn)生沖突(所謂沖突,就是將需上不同課程的兩個或多個班安排在了同一時間、同一教室,或為同一教師在同一時間段安排了多門課程等情況),并且要滿足教師的要求和資源限制等約束條件??紤]到排課的特殊性和復(fù)雜性,我們決定采用基于遺傳算法進行排課。所以簡單說,實現(xiàn)基于遺傳算法的排課系統(tǒng),就是用戶提出的需求。因為是畢業(yè)設(shè)計,用戶假定為某高校。3.3系統(tǒng)的可

49、行性分析l 經(jīng)濟可行性經(jīng)濟可行性研究的目的是使新系統(tǒng)能達到以最小的開發(fā)成本取得最佳的經(jīng)濟效益。需要作投資估算,對開發(fā)中所需人員、硬軟件支持以及其它費用進行估算,并對系統(tǒng)投入使用后帶來的經(jīng)濟效益進行估計。由于該學(xué)校硬件基礎(chǔ)設(shè)施較好,具備開發(fā)的基本條件,資金到位,而且開發(fā)是從大處著眼,從小處實施,開發(fā)費用相對比較透明,易與控制,系統(tǒng)開發(fā)完成后將給學(xué)校帶來的經(jīng)濟效益是明顯的。因此在經(jīng)濟上是可行的。l 技術(shù)可行性技術(shù)可行性研究就是弄清現(xiàn)有技術(shù)條件能否順利完成開發(fā)工作,硬軟件配置能否滿足開發(fā)的需要,開發(fā)的風(fēng)險等。l 社會可行性該系統(tǒng)使用人員學(xué)歷相對較高、經(jīng)驗豐富、素質(zhì)較高,因此在管理上,人員素質(zhì)上都是可

50、行的??尚行苑治龅淖詈蟪晒菍懗隹尚行苑治鰣蟾???尚行苑治鰣蟾姘ㄏ铝袃?nèi)容:1) 學(xué)校的戰(zhàn)略目標,新系統(tǒng)的總體目標及主要功能;2) 擬定新系統(tǒng)的總體方案;3) 從技術(shù)、經(jīng)濟、社會等方面論證技術(shù)方案的可行性;4) 制定投資規(guī)劃和開發(fā)計劃在系統(tǒng)初步調(diào)查的基礎(chǔ)上,明確了存在的主要問題和建立新系統(tǒng)的初步設(shè)想,進一步對系統(tǒng)目標、范圍等因素進行分析研究。3.4系統(tǒng)功能目標基于遺傳算法的排課系統(tǒng),在充分調(diào)查高校教學(xué)排課管理后,經(jīng)過分析,得出以下功能目標:l 基礎(chǔ)信息管理1) 特殊教室管理:搜索、查看、添加、修改和刪除特殊教室信息。2) 教師信息管理:搜索、查看、添加、修改和刪除教師信息。3) 課程信息管理:

51、搜索、查看、添加、修改和刪除課程信息。4) 班級信息管理:搜索、查看、添加、修改和刪除班級信息。l 排課設(shè)置管理1) 學(xué)期課程計劃管理:實現(xiàn)對專業(yè)課程計劃的設(shè)置和維護。2) 班級課程及任課教師管理:實現(xiàn)對班級課程的設(shè)置和維護,及班級課程的任課教師的設(shè)置和維護l 排課管理1) 自動排課:按照選定的學(xué)期時間,根據(jù)基礎(chǔ)信息和排課設(shè)置的數(shù)據(jù)進行基于遺傳算法的自動排課。2) 手工排課及課表調(diào)整:能夠手工排課,可對自動排課的結(jié)果進行手動修改,保存時系統(tǒng)檢測報告沖突。3) 教師及班級課表打?。喊蠢蠋煷蛴?、按班級打印課表。3.5系統(tǒng)總體結(jié)構(gòu)設(shè)計通過中學(xué)排課特點的研究,針對需求,將整個排課系統(tǒng)分為基礎(chǔ)信息管理、

52、排課設(shè)置管理和排課管理三部分。如圖3-2所示?;谶z傳算法的排課系統(tǒng)基礎(chǔ)信息管理排課設(shè)置管理排課管理特殊教室管理課程信息管理學(xué)期課程計劃管理教師信息管理自動排課班級信息管理班級課程及任課教師設(shè)置手工排課及課表調(diào)整班級課表打印教師課表打印圖3-2 系統(tǒng)結(jié)構(gòu)圖第四章 數(shù)據(jù)庫設(shè)計數(shù)據(jù)庫設(shè)計是應(yīng)用程序開發(fā)的重要部分。本章將詳細介紹本系統(tǒng)的數(shù)據(jù)庫設(shè)計。4.1數(shù)據(jù)庫設(shè)計原則進行數(shù)據(jù)庫設(shè)計時,需要保證數(shù)據(jù)獨立性和數(shù)據(jù)完整性,還需要遵守3NF范式標準,這些都是基本要求。根據(jù)露天煤礦設(shè)備管理系統(tǒng)開發(fā)的實際情況,還有以下幾點需要注意:(l) 數(shù)據(jù)庫對象命名的規(guī)范化。在給數(shù)據(jù)庫對象起名時,為了易于識別和記憶,應(yīng)該盡

53、可能的采用有意義的單詞和縮寫字符及下劃線構(gòu)成,這樣做可以使代碼可讀性更好有利于維護。名字的長度一般不要大于30字符,起名的風(fēng)格要盡可能的使用統(tǒng)一的風(fēng)格。(2)適當(dāng)?shù)氖褂脭?shù)據(jù)冗余。并不是嚴格遵守3NF的數(shù)據(jù)庫設(shè)計就是好的,適當(dāng)?shù)氖褂脭?shù)據(jù)冗余,可以提升數(shù)據(jù)庫的運行效率。數(shù)據(jù)冗余過多的數(shù)據(jù)庫設(shè)計,很容易產(chǎn)生“臟數(shù)據(jù)”,但冗余對查詢的效率是有提升效果的,冗余減少了不同表之間的聯(lián)合操作。所以在有些情況下,可以適當(dāng)?shù)氖褂脭?shù)據(jù)冗余,雖然這使得數(shù)據(jù)庫滿足的范式有所降低,但在能保證不出現(xiàn)“臟數(shù)據(jù)”的情況下,這樣做可以提高效率。(3)在數(shù)據(jù)庫的設(shè)計和程序開發(fā)過程中,盡量采用對數(shù)據(jù)庫性能有利的方式。比如存儲過程的合

54、理使用就可以提升數(shù)據(jù)庫的運行速度。存儲過程可以將一系列的數(shù)據(jù)庫操作組合在一起一次性完成,減少了程序與數(shù)據(jù)庫之間交互的次數(shù),而且也減少了對數(shù)據(jù)庫連接資源的占用。又比如索引的使用也可以提升數(shù)據(jù)庫的訪問效率。當(dāng)然索引也不是越多越好,索引的使用要根據(jù)實際,創(chuàng)建適合需求的索引,從而達到提升系統(tǒng)的運行效率的目的。 (4)不采用或少采用表間關(guān)聯(lián)。強制性的表間關(guān)聯(lián)能夠保證數(shù)據(jù)的完整性和一致性。如果嚴格按照規(guī)范來進行數(shù)據(jù)庫設(shè)計,表間關(guān)聯(lián)通常都會比較多。在對有關(guān)聯(lián)關(guān)系的表進行操作時,數(shù)據(jù)回去檢查關(guān)聯(lián)約束,這會占用系統(tǒng)的資源。因此在本系統(tǒng)的數(shù)據(jù)庫中一般都不添加主外鍵約束,而通過系統(tǒng)的業(yè)務(wù)規(guī)則處理來實現(xiàn)約束。設(shè)計一個

55、良好的數(shù)據(jù)庫,對程序開發(fā)及實施后的運行和維護都是非常重要的。所以設(shè)計數(shù)據(jù)庫一定要下足功夫,不能馬虎行事。4.2數(shù)據(jù)庫E-R圖采用ER圖(實體關(guān)系圖)的方法進行數(shù)據(jù)結(jié)構(gòu)分析. ER圖設(shè)計方法是一種通過ER圖來描述現(xiàn)實世界信息結(jié)構(gòu)的DB設(shè)計方法, ER圖由實體、屬性、聯(lián)系三部分組成。(實體名)(屬性名)(聯(lián)系名)實體聯(lián)系屬性圖4-1 ER圖基本圖素本系統(tǒng)主要ER圖如圖4-2,圖中實體的屬性只畫出重要的部分。課程班級教室類型學(xué)期課程計劃m1班級課程及任課教師nmn課程名學(xué)期(時間)對應(yīng)關(guān)系教師11學(xué)期(年級)每周課時每周課時班級人數(shù)課程表關(guān)系特殊教室教室類型容量關(guān)系10-1圖4-2 主要ER圖4.3數(shù)據(jù)庫物理結(jié)構(gòu)設(shè)計數(shù)據(jù)庫設(shè)計原則:a.盡可能減少數(shù)據(jù)冗余和重復(fù)在滿足需要的前提下,應(yīng)盡量按照關(guān)系數(shù)據(jù)庫的理論方法去設(shè)計一個數(shù)據(jù)庫,減少數(shù)據(jù)冗余。本關(guān)系模式基本達到了(3NF)。 b.增加必要的數(shù)據(jù)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論