基于數(shù)據(jù)挖掘的學(xué)生就業(yè)管理系統(tǒng)_第1頁
基于數(shù)據(jù)挖掘的學(xué)生就業(yè)管理系統(tǒng)_第2頁
基于數(shù)據(jù)挖掘的學(xué)生就業(yè)管理系統(tǒng)_第3頁
基于數(shù)據(jù)挖掘的學(xué)生就業(yè)管理系統(tǒng)_第4頁
基于數(shù)據(jù)挖掘的學(xué)生就業(yè)管理系統(tǒng)_第5頁
已閱讀5頁,還剩15頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、-. z考試成績(jī)?nèi)握n教師科技大學(xué)研究生考試試卷考試科目智能信息處理與數(shù)據(jù)挖掘?qū)I(yè)計(jì)算機(jī)應(yīng)用技術(shù)* 1606035 考生豐考生類別學(xué)術(shù)碩士考前須知1. 試題隨試卷交回;2. 試卷評(píng)閱后,一周送交研究生秘書處保存;3. 考生類別為學(xué)術(shù)碩士、專業(yè)學(xué)位碩士、在職人員攻讀碩士學(xué)位。摘要隨著計(jì)算機(jī)的普及應(yīng)用和升級(jí)開展,數(shù)據(jù)挖掘作為一個(gè)新興的、多學(xué)科穿插的應(yīng)用領(lǐng)域,正在各行各業(yè)的以信息分析為根底的決策支持系統(tǒng)活動(dòng)中扮演著越來越重要的角色。數(shù)據(jù)倉庫挖掘作為數(shù)據(jù)挖掘的一個(gè)重要研究分支,其主要目的是用于發(fā)現(xiàn)數(shù)據(jù)集中項(xiàng)之間的相關(guān)聯(lián)系,即關(guān)聯(lián)規(guī)則。數(shù)據(jù)挖掘是從大型數(shù)據(jù)庫中提取知識(shí)信息的主要手段,由于形式簡(jiǎn)單、易于理解

2、,因此,數(shù)據(jù)倉庫挖掘已廣泛應(yīng)用各個(gè)領(lǐng)域,用來檢驗(yàn)行業(yè)長(zhǎng)期形成的知識(shí)模式,或發(fā)現(xiàn)隱藏的新規(guī)律。隨著我國(guó)教育改革的不斷深入,高等教育得到了長(zhǎng)足的開展。當(dāng)前,在各類學(xué)校中,學(xué)校的數(shù)據(jù)庫建立已較完善,數(shù)據(jù)庫中存儲(chǔ)著大量的教育教學(xué)信息。據(jù)調(diào)查,這些隱藏著大量教育信息的歷史數(shù)據(jù)沒有被很好地利用,沒有好好挖掘隱藏在這些數(shù)據(jù)中的教育規(guī)律。致使在一些學(xué)校專業(yè)區(qū)分性不大,專業(yè)課設(shè)置沒有明顯的區(qū)分。畢業(yè)的學(xué)生卻很難找到適合本專業(yè)的工作。究其原因,除了課程設(shè)置不能跟上,學(xué)生的實(shí)際能力不能被培養(yǎng)到實(shí)際用人單位所要求的標(biāo)準(zhǔn)等原因外,還存在著很多隱藏在背后的因。最終造成了學(xué)生在承受完四、五年教育后,良好素質(zhì)沒有被開發(fā),能力

3、不夠。而具有實(shí)際工作能力的學(xué)生被專業(yè)或*些未被發(fā)現(xiàn)的因素所限制,本文研究從大量的學(xué)校教育信息中挖掘出正確的、可靠的、可信的關(guān)聯(lián)規(guī)則。本文利用數(shù)據(jù)倉庫技術(shù)、OLAP 技術(shù)、數(shù)據(jù)挖掘技術(shù)分析學(xué)校畢業(yè)生就業(yè)數(shù)據(jù)。通過對(duì)已畢業(yè)學(xué)生的專業(yè)、生源地、成績(jī)及就業(yè)時(shí)間等信息進(jìn)展聯(lián)機(jī)分析與數(shù)據(jù)挖掘,從不同角度、不同層次尋找出學(xué)生就業(yè)與否的在原因,發(fā)現(xiàn)學(xué)生對(duì)學(xué)校專業(yè)設(shè)置的需求,從而到達(dá)為專業(yè)設(shè)置和教育教學(xué)提供決策支持。AbstractAs puter being wildly used and upgraded, the data mining growing into a new rising and mult

4、i-disciplinary application field are playing a more and more important role in the information analysis of decision support system. Association mining is an important research branch of the data mining, and it aims at discovering the relationship among items in a data set. The data mining is the mai

5、n measure of deriving knowledge from large databases. Because of its simple form and it can be easily understood, association mining has been successfully applied to many fields. It not only can test the knowledge modes e*iting in the industry, but also can find some new rules hidden.As education in

6、novation in China being enhanced, higher education in been significantly developed.At present, in all kinds of schools,the school database has been well constructed and has stored enormous education and teaching information. According to some researches, the historical data with a large number of ed

7、ucational information of historical data has not been well used or dig the education rules hidden in the database out. Consequently, the majors of a number of higher education schools have little distinction,and the course schedules have no clear distinction.Graduates are hard to find suitable job a

8、ccording with their education e*perience.To analyze the reasons, besides current curriculum can not be kept up with the actual employers requirement,there are also many hidden reasons,which result in lackness of students ability after three to five-year education.However, some petent students have b

9、een constrained by majors or some undiscovered factors. The purpose of this article is to dig out correct,reliable and credible correlative rules from a large amount of education information.Based on data warehouse,OLAP technology and data mining,this thesis analyzes higher education school graduate

10、s employment data.Through students major, students location,education e*perience and employed time,on-line analysis and data mining has been carried out to find out that internal reason of employment status of the student from different aspects and different levels and discover major arrangement req

11、uirements from the students,which could offer a decision-making support for course design and education method.目錄摘要Abstract引言1.1研究的背景、目的和意義1.2數(shù)據(jù)挖掘的含義1.3國(guó)外開展和研究現(xiàn)狀第二章學(xué)生就業(yè)管理系統(tǒng)數(shù)據(jù)倉庫的設(shè)計(jì)與實(shí)現(xiàn)2.1確定指導(dǎo)主題2.2就業(yè)數(shù)據(jù)倉庫建模第三章數(shù)據(jù)挖掘在學(xué)生就業(yè)中的應(yīng)用3.1數(shù)據(jù)挖掘應(yīng)用流程3.2數(shù)據(jù)挖掘應(yīng)用流程第四章總結(jié)附錄-代碼一引言1.1研究的背景、目的和意義世界在進(jìn)步,人類在開展,各項(xiàng)技術(shù)都在不斷的開展和完善,當(dāng)然數(shù)據(jù)庫技

12、術(shù)也不會(huì)例外,儲(chǔ)存在數(shù)據(jù)庫中的數(shù)據(jù)量也在不斷的增大,當(dāng)然這也是得益于互聯(lián)網(wǎng)的出現(xiàn),互聯(lián)網(wǎng)的出現(xiàn)使人類的信息交流不再受到空間的限制,讓所有人可以通過互聯(lián)網(wǎng)十分方便的交換各種數(shù)據(jù)信息。在互聯(lián)網(wǎng)不斷的開展過程中,人們拿到的數(shù)據(jù)也像滾雪球一樣,越來越大,大量數(shù)據(jù)的背后隱藏著許多重要的信息,人們通過對(duì)其深入的分析,希望能從中得到那些十分重要或有價(jià)值的數(shù)據(jù)信息。數(shù)據(jù)庫系統(tǒng)并不能自動(dòng)的找出十分重要或有價(jià)值的數(shù)據(jù)信息,這就孕育出來數(shù)據(jù)挖掘。從這個(gè)詞的意思不難理解,人們擁有著大量的數(shù)據(jù)信息,要從大量的數(shù)據(jù)信息中找出隱藏在其中的十分重要或有價(jià)值的數(shù)據(jù)信息,就需要不斷的進(jìn)展掘。在現(xiàn)在數(shù)據(jù)挖掘已經(jīng)被廣泛的運(yùn)用在各個(gè)領(lǐng)

13、域,并且都取得的令人滿意的效果。在我們國(guó)家教育改革的不斷開展深入的過程中,高等教育也在大踏步的前進(jìn),高等院校如雨后春筍般的在增長(zhǎng)。隨著教育信息化的推進(jìn),幾乎所有學(xué)校的辦公室、教室都配有電腦,而且絕大多數(shù)的學(xué)校都建立有自己的校園網(wǎng)絡(luò),學(xué)校的所有數(shù)據(jù)信息都能在網(wǎng)絡(luò)上查詢到。這些數(shù)據(jù)信息里面我們將其分為三大類:第一類是學(xué)校的行政管理信息:如重要會(huì)議通知、教學(xué)簡(jiǎn)報(bào)、各種活動(dòng)報(bào)道等;第二類是教學(xué)信息:如課程安排、任課教師情況、教學(xué)質(zhì)量檢查情況等;第三類是學(xué)生信息:如學(xué)生的根本資料、每學(xué)期成績(jī)、表彰獲獎(jiǎng)情況等。在這三類信息中學(xué)生信息本該最為重要,但卻得不到重視,只是在學(xué)期末寄發(fā)成績(jī)單時(shí)才被使用。通過數(shù)據(jù)挖

14、掘技術(shù)所發(fā)現(xiàn)的專業(yè)、家庭經(jīng)濟(jì)狀況、地域分布與就業(yè)的關(guān)系,合理的引導(dǎo)學(xué)生選擇專業(yè),最終提高學(xué)生的就業(yè)率。從而對(duì)高等教育及其教學(xué)改革具有一定的指導(dǎo)性意義。1.2數(shù)據(jù)挖掘的含義數(shù)據(jù)挖掘data mining又稱數(shù)據(jù)庫中的知識(shí)發(fā)現(xiàn)Knowledge Discovery in Database,簡(jiǎn)稱KDD,比擬公認(rèn)的定義是由等人提出的:數(shù)據(jù)挖掘就是從大量的、不完全的、有噪聲的、模糊的、隨機(jī)的數(shù)據(jù)集中,提取隱含在其中的、人們事先不知道的、但又是潛在的有用的信息和知識(shí)的過程,提取的知識(shí)表示為概念Concepts、規(guī)則(Rules)、規(guī)律(Regularities)、模式(Patterns)等形式。數(shù)據(jù)挖掘是

15、一種決策支持過程,分析各組織原有的數(shù)據(jù),做出歸納的推理,從中挖掘出潛在的模式,為管理人員決策提供支持。1.3 國(guó)外開展和研究現(xiàn)狀相應(yīng)地,數(shù)據(jù)挖掘在國(guó)外商場(chǎng)、金融信用評(píng)估,欺詐監(jiān)測(cè)、電訊、科學(xué)、保險(xiǎn)等領(lǐng)域早已有不同層次的應(yīng)用。數(shù)據(jù)挖掘在商業(yè)領(lǐng)域有豐富應(yīng)用:客戶關(guān)系管理、欺詐檢測(cè)、供給鏈分析、醫(yī)療分析、文件分析文本挖掘、決策支持系統(tǒng)和財(cái)務(wù)分析。而在政府方面的應(yīng)用主要有財(cái)務(wù)管理、人力資源管理、欺詐偵測(cè)、分析社會(huì)現(xiàn)象、打擊恐懼主義、處理人們對(duì)政府?dāng)?shù)據(jù)的訪問。國(guó)數(shù)據(jù)挖掘還是一個(gè)很新的研究課題,并處于一個(gè)初步應(yīng)用的層次,但它所固有的為企業(yè)創(chuàng)造巨大經(jīng)濟(jì)效益的潛力,已使其很快有了許多成功的應(yīng)用,具有代表性的應(yīng)

16、用領(lǐng)域有市場(chǎng)預(yù)測(cè)、投資、制造業(yè)、金融、通訊等,數(shù)據(jù)挖掘目前還在國(guó)家資助975,863,基金的科研工程中有著重要的應(yīng)用價(jià)值。我國(guó)數(shù)據(jù)挖掘研究與開發(fā)的總體水平相當(dāng)于數(shù)據(jù)庫技術(shù)在20世紀(jì)70年代所處的地位,迫切需要類似于關(guān)系模式、DBMS系統(tǒng)和SQL查詢語言等理論和方法的指導(dǎo),才能使數(shù)據(jù)挖掘這項(xiàng)技術(shù)的應(yīng)用得以普遍推廣。預(yù)計(jì)在未來一段時(shí)間數(shù)據(jù)挖掘的研究焦點(diǎn)可能會(huì)集中到以下幾個(gè)方面:1發(fā)現(xiàn)語言的形式化描述,即研究專門用于知識(shí)發(fā)現(xiàn)的數(shù)據(jù)挖掘語言;2尋求數(shù)據(jù)挖掘過程中的可視化方法,使知識(shí)發(fā)現(xiàn)的過程能夠被用戶理解,也便于在知識(shí)發(fā)現(xiàn)的過程中進(jìn)展人機(jī)交互;3研究在網(wǎng)絡(luò)環(huán)境下的數(shù)據(jù)挖掘技術(shù)Web Mining,特別

17、是在因特網(wǎng)上建立DM效勞器,并且與數(shù)據(jù)庫效勞器配合,實(shí)現(xiàn) Web Mining;4加強(qiáng)對(duì)各種非構(gòu)造化數(shù)據(jù)的開采Data Mining for Audio& Video,如對(duì)文本數(shù)據(jù)、圖形數(shù)據(jù)、視頻圖像數(shù)據(jù)、聲音數(shù)據(jù)乃至綜合多媒體數(shù)據(jù)的開采;5處理的數(shù)據(jù)將會(huì)涉及到更多的數(shù)據(jù)類型;6交互式發(fā)現(xiàn);7知識(shí)的維護(hù)更新。1.4數(shù)據(jù)挖掘的根本技術(shù)1聚類/分割。聚類或分割是一種將數(shù)據(jù)分組方法類或集群是有著相似的模式或特征。各專題組從數(shù)據(jù)確定,而不是依賴預(yù)定義類分類。零售商可以利用聚類發(fā)現(xiàn)類似情況在他們的客戶群存在,使他們能夠創(chuàng)立和理解它們銷售和市場(chǎng)的不同群體。2關(guān)聯(lián)分析。尋找大量數(shù)據(jù)中項(xiàng)集之間的關(guān)聯(lián)或相關(guān)聯(lián)系

18、。例如通過對(duì)交易數(shù)據(jù)的分析,我們可能得出30%-40%購置紙尿布的男性顧客會(huì)同時(shí)購置啤酒這樣的關(guān)聯(lián)規(guī)則。關(guān)聯(lián)規(guī)則廣泛用于購物籃或事務(wù)數(shù)據(jù)分析。3序列模式。序列模式分析和關(guān)聯(lián)分析類似,其目的也是為了挖掘數(shù)據(jù)之間的聯(lián)系,但序列模式分析的側(cè)重點(diǎn)在于分析數(shù)據(jù)間的前后序列關(guān)系。序列模式分析描述的問題是:在給定交易序列數(shù)據(jù)庫中,每個(gè)序列是按照交易時(shí)間排列的一組交易集,挖掘序列函數(shù)作用在這個(gè)交易序列數(shù)據(jù)庫上,返回該數(shù)據(jù)庫中出現(xiàn)的高頻序列。4人工神經(jīng)網(wǎng)絡(luò)和遺傳算法。人工神經(jīng)網(wǎng)絡(luò)在數(shù)據(jù)挖掘中也扮演著非常重要的角色。人工神經(jīng)網(wǎng)絡(luò)可通過例如學(xué)習(xí),形成描述復(fù)雜非線性系統(tǒng)的非線性函數(shù),這實(shí)際上是得到了客觀規(guī)律的定量描人

19、工述。目前在數(shù)據(jù)挖掘中,最常使用的兩種神經(jīng)網(wǎng)絡(luò)是BP網(wǎng)絡(luò)和RBF網(wǎng)絡(luò)。學(xué)生就業(yè)管理系統(tǒng)數(shù)據(jù)倉庫的設(shè)計(jì)與實(shí)現(xiàn)建立學(xué)生就業(yè)數(shù)據(jù)倉庫首先要根據(jù)學(xué)生就業(yè)數(shù)據(jù)倉庫這個(gè)主題進(jìn)展建模,主題明確后,才能根據(jù)主題確定需要的表;建模完成后緊接著就是對(duì)就業(yè)數(shù)據(jù)倉庫進(jìn)展設(shè)計(jì),包括設(shè)計(jì)多維數(shù)據(jù)分析的事實(shí)表和維表;完成設(shè)計(jì)后就要加載數(shù)據(jù),在這個(gè)過程中要設(shè)計(jì)數(shù)據(jù)加載程序,包含將集成的細(xì)節(jié)數(shù)據(jù)轉(zhuǎn)化成不同綜合層次的數(shù)據(jù)綜合功能和將數(shù)據(jù)清洗、轉(zhuǎn)化和集成的裝載功能;最后進(jìn)展數(shù)據(jù)質(zhì)量評(píng)估。2.1確定指導(dǎo)主題確定指導(dǎo)主題實(shí)際就是劃分圍,根據(jù)圍選取數(shù)據(jù)明確分析目的。就業(yè)指導(dǎo)分析關(guān)注的四個(gè)指導(dǎo)主題是成績(jī)、專業(yè)、生源構(gòu)造、就業(yè)時(shí)間的影響分析

20、。成績(jī)影響分析。高等院校學(xué)生不僅在學(xué)校課程中學(xué)習(xí)文化知識(shí),還要學(xué)習(xí)更多的專業(yè)技能,提高學(xué)生的整體素質(zhì),為畢業(yè)后能盡快參加工作、走向社會(huì)做好準(zhǔn)備。因此,學(xué)生在學(xué)校的表現(xiàn)和智力成果由德育成績(jī)和智育成績(jī)組成,包括平時(shí)成績(jī)和參加學(xué)校組織的技能比賽的獲獎(jiǎng)情況。在面臨就業(yè)時(shí),德育和智育成績(jī)上下對(duì)學(xué)生的就業(yè)就會(huì)產(chǎn)生一定的影響,這是值得分析的一個(gè)問題。通過考察智育、德育等的因素,可以找出社會(huì)需要什么樣的職業(yè)技能人才。專業(yè)影響分析。雇主需要什么樣的專業(yè)技能人才,在一定程度成為了高等院校開設(shè)專業(yè)的一種向?qū)???梢酝ㄟ^各專業(yè)的學(xué)生就業(yè)的形勢(shì)的分析可進(jìn)一步指導(dǎo)學(xué)校對(duì)專業(yè)的設(shè)置。生源構(gòu)造影響分析。由于是全國(guó)圍的錄取,所以

21、學(xué)生會(huì)來自全國(guó)各地,每個(gè)人的家庭經(jīng)濟(jì)條件都不一樣。這些來自不同區(qū)域、不同類型的學(xué)生對(duì)他們就業(yè)區(qū)域、就業(yè)崗位、待遇都有不同的要求。所以對(duì)生源構(gòu)造的整體分析,可以為畢業(yè)生實(shí)習(xí)、就業(yè)提供有意義的指導(dǎo)。就業(yè)時(shí)間影響分析。在大環(huán)境的變動(dòng),同時(shí)影響到學(xué)生的就業(yè)率和就業(yè)質(zhì)量。所以對(duì)就業(yè)時(shí)間與專業(yè)的分析,很容易獲得哪些專業(yè)易于就業(yè)提出指導(dǎo)性建議。2.2就業(yè)數(shù)據(jù)倉庫建模數(shù)據(jù)倉庫就是將從不同數(shù)據(jù)源中提取出來的數(shù)據(jù)全部存儲(chǔ)到數(shù)據(jù)倉庫中,數(shù)據(jù)存儲(chǔ)的量很大,而且對(duì)數(shù)據(jù)查詢的要求也相當(dāng)高。一般的的數(shù)據(jù)建模都是從概念建模、邏輯建模、物理建模這樣的自上而下的建模方式。概念建模主要是以信息打包的方式;邏輯建模的方式多采用星型建

22、模方法和雪花建模方法;物理建模主要是以3NF和星型建模方式。概念建模概念模型是一個(gè)概念性的工具。效勞于目標(biāo)設(shè)計(jì)系統(tǒng)、收集信息等,在與用戶溝通的過程中來定義數(shù)據(jù)倉庫需要訪問的信息,包括當(dāng)前、將來和歷史相關(guān)的數(shù)據(jù)信息??梢栽谛枨蠓治鲭A段,確定操作數(shù)據(jù)、數(shù)據(jù)源以及一些附加數(shù)據(jù),設(shè)計(jì)容易理解的數(shù)據(jù)模型,有效地完成查詢和數(shù)據(jù)之間的映射。在本工程中使用的信息包圖是概念模型中最常用的一種。超立方體也是一種常用的概念模型,但當(dāng)維度超過三維后其直觀性非常的差,大大增加了數(shù)據(jù)的采集和表示困難,出于這種原因Hammergren于1997年提出了信息包圖可以在平面上展開超立方體,它讓超立方體的表示可視化了。信息包圖方

23、法要先明確分析的主題,接著圍繞這個(gè)主題裝載指標(biāo)、維度、粒度等信息。指標(biāo)是分析主題的評(píng)估指標(biāo)。而維度是用戶訪問評(píng)估信息的途徑。粒度是維度息的詳細(xì)程度。維度表和事實(shí)表設(shè)計(jì)將會(huì)直接影響到數(shù)據(jù)倉庫的響應(yīng)時(shí)間和分析結(jié)果,所以說數(shù)據(jù)倉庫構(gòu)建的關(guān)鍵問題是維度表和事實(shí)表的設(shè)計(jì)。維是最能反映用戶的分析或者觀察對(duì)象的角度,而且它必須表達(dá)出數(shù)據(jù)倉庫中數(shù)據(jù)粒度、數(shù)據(jù)的層次。要按既定的分析主題組織事實(shí)表和維度表,下列圖建立的就業(yè)指導(dǎo)數(shù)據(jù)倉庫概念模型就是用信息包圖方法。信息包圖邏輯建模邏輯建模是數(shù)據(jù)倉庫實(shí)施中的重要組成局部,從邏輯建模中能直觀看出工程的需求。邏輯模型就是要將明確的主題和維的信息映射到數(shù)據(jù)倉庫中的具體的表格

24、里面。星型模型和雪花模型都是常用星型模型。1、星型模型的建模理論是由中心一點(diǎn)向外擴(kuò)散,中心對(duì)象是事實(shí)表,外面假設(shè)干個(gè)對(duì)象是維表,星型模型就是由事實(shí)表和假設(shè)干個(gè)維表連接而成的。事實(shí)表的特點(diǎn)主要是包含的數(shù)字?jǐn)?shù)據(jù)能夠進(jìn)展匯總并提供有關(guān)各項(xiàng)動(dòng)作的歷史數(shù)據(jù)。作為外鍵的相關(guān)維度表的主鍵被包含在每個(gè)事實(shí)表中的一個(gè)或多個(gè)局部組成的索引中。星型模型能支持以決策者的想法和定義數(shù)據(jù)實(shí)體,滿足面向主題數(shù)據(jù)倉庫設(shè)計(jì)的需求,而信息包圖能提供完備的概念根底給星形圖的設(shè)計(jì)。星形圖包括維度、指標(biāo)和類別三個(gè)邏輯實(shí)體。指標(biāo)實(shí)體是位于星形圖中心的實(shí)體,給用戶活動(dòng)提供定量數(shù)據(jù),是根本實(shí)體和查詢活動(dòng)的中心。每一個(gè)指標(biāo)實(shí)體表示一系列相關(guān)事

25、實(shí),完成一項(xiàng)指定的功能,代表一個(gè)現(xiàn)實(shí)事務(wù)的綜合水平,只與每一個(gè)相關(guān)維度的一個(gè)點(diǎn)對(duì)應(yīng)。維度實(shí)體位于星形圖的星角上,其作用是限制用戶的查詢結(jié)果,到達(dá)過濾數(shù)據(jù),減小訪問圍的目的。2、雪花模型可以看做是增加了粒度層次的描述的星型模型,其中*些維是規(guī)化的,可把數(shù)據(jù)進(jìn)一步分解到附加的表中。可以用多表來描述一個(gè)層次構(gòu)造復(fù)雜的維來到達(dá)用戶需要的效果。根據(jù)數(shù)據(jù)倉庫應(yīng)用中的易使用與高性能的思想,結(jié)合本課題的設(shè)計(jì)需求,星型模型構(gòu)造相對(duì)簡(jiǎn)單能利用位圖索引提高查詢速度,而雪花模型構(gòu)造較為復(fù)雜,更適合用于處理維層級(jí)復(fù)雜的模型,本工程選用星型模型作為就業(yè)數(shù)據(jù)倉庫邏輯建模的模型,如下列圖所示:就業(yè)數(shù)據(jù)倉庫的星型模型物理建模邏

26、輯模型在數(shù)據(jù)倉庫中的實(shí)現(xiàn)就是數(shù)據(jù)倉庫的物理模型,包括物理存取方式、數(shù)據(jù)存放位置、數(shù)據(jù)存儲(chǔ)構(gòu)造以及存儲(chǔ)分配等。邏輯模型實(shí)現(xiàn)物理模型的根底,在進(jìn)展物理模型設(shè)計(jì)實(shí)現(xiàn)時(shí),需要考慮因素有:I/O存取時(shí)間、空間利用率和維護(hù)代價(jià)。從數(shù)據(jù)倉庫上講,實(shí)際存儲(chǔ)的模式包括關(guān)系模型和多維模型兩種。多維模型按照多維來存儲(chǔ)數(shù)據(jù)這樣查詢速度會(huì)非常快。因?yàn)槎嗑S存儲(chǔ)需要大量的存儲(chǔ)空間,所以在大容量的情況下性能會(huì)下降。并且索引在多維存儲(chǔ)框架中不好建立。因此多維存儲(chǔ)構(gòu)造一般應(yīng)用在數(shù)據(jù)量較小的,保存聚集數(shù)據(jù)的數(shù)據(jù)集市和OLAP效勞器中。在數(shù)據(jù)倉庫中的大量數(shù)據(jù)要進(jìn)展分析,要將有用的數(shù)據(jù)從這些數(shù)據(jù)中查找出來,物理模型中需要提供迅捷的查詢

27、速度是整個(gè)設(shè)計(jì)的關(guān)鍵所在,物理建模中索引技術(shù)、減少表連接操作、預(yù)聚集技術(shù)和分割技術(shù)都可以提高數(shù)據(jù)倉庫的查詢速度。 1、索引技術(shù)是在數(shù)據(jù)庫中以犧牲空間和索引維護(hù)時(shí)間為代價(jià)來加快表息檢索速度,因多維數(shù)據(jù)庫本身就是為了檢索而建立的一種存儲(chǔ)模型,所以多維數(shù)據(jù)庫中索引技術(shù)并不是很重要,使用位圖索引技術(shù)是數(shù)據(jù)倉庫用來減少存儲(chǔ)空間的一種技術(shù)。 2、減少表連接操作可以減少系統(tǒng)資源的暫用量,從而到達(dá)加快數(shù)據(jù)倉庫的查詢速度。因?yàn)閿?shù)據(jù)倉庫中維表和事實(shí)表的連接是可能存在的,所以要盡可能的減少表的連接操作。3、預(yù)聚集技術(shù)是通過預(yù)先聚集一些數(shù)據(jù)來加快分析的速度。預(yù)聚集技術(shù)在對(duì)需要聚集數(shù)據(jù)量大,聚集頻率高時(shí)采用可以到達(dá)加快

28、數(shù)據(jù)分析速率的效果。4、分割技術(shù)就是去除掉不使用的數(shù)據(jù),從而來提高數(shù)據(jù)分析速率。數(shù)據(jù)倉庫量的數(shù)據(jù)并一定所有都能使用上,有一局部數(shù)據(jù)使用不上的數(shù)據(jù),在進(jìn)展分析時(shí)需要將這些使用不到的數(shù)據(jù)進(jìn)展分割,這樣如果只分析那些有用的數(shù)據(jù)就可以加快分析的速度。根據(jù)本工程需要分析的主題,數(shù)據(jù)倉庫的物理表構(gòu)造如下:就業(yè)信息事事實(shí)表、成績(jī)檔次維表、專業(yè)維表、地區(qū)維表、就業(yè)時(shí)間維表、就業(yè)狀況維表、單位性質(zhì)維表,如下列圖所示:就業(yè)信息事實(shí)表成績(jī)檔次維表專業(yè)維表地區(qū)維表就業(yè)時(shí)間維表就業(yè)狀況維表單位性質(zhì)維表在完成數(shù)據(jù)倉庫的物理建模后,下一步就是建立數(shù)據(jù)倉庫數(shù)據(jù)庫,并建立事實(shí)表和維度表,并在所有表中的主要字段上建立索引。使用M

29、S SQL Server 2008關(guān)系數(shù)據(jù)庫管理系統(tǒng)作為數(shù)據(jù)倉庫的物理存儲(chǔ),根據(jù)數(shù)據(jù)倉庫物理建模,利用關(guān)系數(shù)據(jù)庫來構(gòu)建數(shù)據(jù)倉庫。要最終實(shí)現(xiàn)數(shù)據(jù)倉庫除了完成就業(yè)數(shù)據(jù)倉庫的設(shè)計(jì),還要先進(jìn)展數(shù)據(jù)的清洗、抽取、轉(zhuǎn)換、加載。三數(shù)據(jù)挖掘在學(xué)生就業(yè)中的應(yīng)用3.1數(shù)據(jù)挖掘應(yīng)用流程學(xué)生就業(yè)管理系統(tǒng)挖掘工具通過節(jié)點(diǎn)的連接以工作流的方式來實(shí)現(xiàn)數(shù)據(jù)挖掘過程。它能支持跨行業(yè)數(shù)據(jù)挖掘標(biāo)準(zhǔn)流程CRISPDM,本文的數(shù)據(jù)挖掘流程挖掘?qū)ο鬄榫蜆I(yè)數(shù)據(jù)倉庫,實(shí)施步驟流程如下列圖所示:數(shù)據(jù)挖掘?qū)嵤┎襟E流程圖數(shù)據(jù)挖掘流程依據(jù)過程模型CRISPDM可理解成這些步驟,首先進(jìn)展問題理解和提出,然后開場(chǎng)數(shù)據(jù)準(zhǔn)備,數(shù)據(jù)準(zhǔn)備完成后就進(jìn)展建立模型,

30、從而生成規(guī)則,最后做出評(píng)價(jià)和解釋。 1、問題理解和提出:分析、理解希望能從中發(fā)現(xiàn)學(xué)生就業(yè)與時(shí)間、成績(jī)、生源地、專業(yè)它們之間的聯(lián)系。 2、數(shù)據(jù)準(zhǔn)備:針對(duì)不同的分析目的,直接利用就業(yè)數(shù)據(jù)倉庫,通過學(xué)生就業(yè)管理系統(tǒng)挖掘工具前端處理工具,如增加記錄選項(xiàng)選擇、抽樣、匯總等等、字段選項(xiàng)類型、過濾等等節(jié)點(diǎn)來抽取數(shù)據(jù)倉庫中的一定數(shù)量的子集,建立數(shù)據(jù)挖掘庫。 3、建立模型:根據(jù)數(shù)據(jù)挖掘的目標(biāo)和數(shù)據(jù)的特征,選擇適宜的模型,選用學(xué)生就業(yè)管理系統(tǒng)挖掘工具中的以改良后的 Apriori 算法的多維關(guān)聯(lián)規(guī)則模型、來進(jìn)展挖掘分析。4、評(píng)價(jià)和解釋:對(duì)數(shù)據(jù)挖掘的結(jié)果進(jìn)展評(píng)價(jià),并能結(jié)合就業(yè)工作實(shí)際對(duì)結(jié)果進(jìn)展解釋。3.2基于關(guān)聯(lián)規(guī)

31、則的挖掘搜索單維頻繁謂詞就業(yè)信息事務(wù)表有較多維屬性,如要找到這些屬性所構(gòu)成的頻繁謂詞集,先要獲得各維屬性所全部包含的頻繁謂詞。利用SQL語言直接對(duì)數(shù)據(jù)庫進(jìn)展操作的方式。開場(chǎng)利用SQL中的Distinct語句對(duì)經(jīng)過數(shù)據(jù)預(yù)處理的就業(yè)信息事務(wù)表進(jìn)展操作,返回表里每個(gè)屬性維包含的所有謂詞。假設(shè)一個(gè)字段有重復(fù)的值,但是每個(gè)值只被選取一次,這時(shí)可使用關(guān)鍵字DISTINCT來做。SELECT DISDINCTFROM就業(yè)信息事務(wù)表其中的字段名稱是隨選擇的列不同而變化的量,不同的字段名稱會(huì)返回不同的值。接著掃描數(shù)據(jù)庫就業(yè)信息事務(wù)數(shù)據(jù)表。利用SQL中非常有用的集合函數(shù)函數(shù)COUNT語句對(duì)Distinct語句返回

32、的每一屬性值進(jìn)展計(jì)數(shù)。用這個(gè)函數(shù)我們可以得到一個(gè)表中有多少條記錄。例如:對(duì)性別字段,分別調(diào)用以下SQL語句:COUNT(*)FROM 就業(yè)信息事務(wù)表 WHERE 性別=男COUNT(*)FROM 就業(yè)信息事務(wù)表 WHERE 性別=女對(duì)所有字段都進(jìn)展上述操作,如果返回的計(jì)數(shù)值與就業(yè)信息事務(wù)表中總事務(wù)數(shù)的比值大于最小支持度min_sup,則保存下來,否則從謂詞集表中刪除。這樣下來對(duì)學(xué)生信息的每一維屬性而言,保存下來的都是滿足支持度的單維頻繁謂詞。最后在此一維頻繁謂詞根底上,進(jìn)展K維頻繁謂詞的挖掘,流程如下列圖所示:頻繁謂詞挖掘流程求取多維頻繁項(xiàng)集因?yàn)樵摴こ踢M(jìn)展的是多維關(guān)聯(lián)規(guī)則挖掘,則工程的核心算法

33、就是對(duì)多維頻繁謂詞集的求取。最根本的多維關(guān)聯(lián)規(guī)則算法是基于經(jīng)典的Apriori算法改造而得的,但大量候選頻繁謂詞集可能會(huì)在該算法中產(chǎn)生,這樣就會(huì)降低算法性能。我們對(duì)根本的多維關(guān)聯(lián)規(guī)則算法和基于Apriori不產(chǎn)生候選的多維關(guān)聯(lián)規(guī)則算法進(jìn)展了以下比擬分析。1、基于經(jīng)典的Apiori算法求多維頻繁謂詞得到一維頻繁謂詞后,為了發(fā)現(xiàn)頻繁2-謂詞集,需要將頻繁1-謂詞集進(jìn)展連接產(chǎn)生候選頻繁2-謂詞集,然后對(duì)其中的每個(gè)謂詞集計(jì)數(shù):假設(shè)滿足最小支持度則保存為頻繁2-謂詞集,否則丟棄;為了發(fā)現(xiàn)頻繁3-謂詞集,需要將頻繁2-謂詞集進(jìn)展連接和剪枝;以此類推,為了發(fā)現(xiàn)頻繁K-謂詞集,就需要將頻繁(K-1)-謂詞集進(jìn)

34、展連接和剪枝。上述算法在利用Apriori性質(zhì)由頻繁K-謂詞集求頻繁K+1謂詞集的過程中,必須先產(chǎn)生頻繁K+1候選謂詞集。我們的數(shù)據(jù)庫隨時(shí)間的增長(zhǎng)會(huì)越來越大、屬性維也會(huì)不斷地增多,則每次產(chǎn)生的候選集合的數(shù)量也會(huì)非常多,會(huì)給我們帶來較大的時(shí)間開銷。本課題在下面提出的算法就是針對(duì)這一個(gè)缺點(diǎn),使用遞歸的方式直接由短頻繁模式生成長(zhǎng)頻繁模式,從而防止了大量候選謂詞集的額外時(shí)間開銷。這樣也無需Apriori算法中的剪枝步驟,能加大算法效率。改良后的Apriori 算法流程圖如下列圖所示:改良后的Apriori算法流程圖不產(chǎn)生候選的多維關(guān)聯(lián)規(guī)則Apriori算法描述流程圖的核心是如何由頻繁 K-謂詞項(xiàng)求頻繁

35、K+1謂詞項(xiàng),在這里是通過函數(shù)的遞歸調(diào)用來實(shí)現(xiàn)的,整個(gè)過程如下:算法開場(chǎng)執(zhí)行后,首先找出頻繁一維謂詞集,然后在頻繁一維謂詞集的根底上,發(fā)現(xiàn)所有的頻繁K維謂詞集。例如,一維頻繁謂詞取為性別-男,則二維謂詞就取性別-男生源地-德陽。假設(shè)該二維模式的計(jì)數(shù)值滿足最小支持度,就繼續(xù)取三維謂詞:性別-男生源地-德陽畢業(yè)成績(jī)-高;假設(shè)該二維模式的計(jì)數(shù)值不滿足最小支持度,則所有含有性別-男生源地-德陽的多維模式就都不會(huì)再被掃描,算法就由三維謂詞轉(zhuǎn)為對(duì)二維謂詞性別-男生源地-進(jìn)展計(jì)數(shù),再作像前面的判斷。經(jīng)過不斷地在頻繁謂詞末尾添加后綴判斷,就能找出所有的頻繁K維謂詞集。產(chǎn)生強(qiáng)關(guān)聯(lián)規(guī)則強(qiáng)關(guān)聯(lián)規(guī)則流程圖關(guān)聯(lián)規(guī)則一般

36、都是基于支持度和置信度框架的,發(fā)現(xiàn)頻繁 K-謂詞集的過程,就是找出所有滿足最小支持度的頻繁謂詞項(xiàng)。然后我們就是要在這些頻繁謂詞項(xiàng)的根底上,通過滿足最小置信度來生產(chǎn)強(qiáng)關(guān)聯(lián)規(guī)則。強(qiáng)關(guān)聯(lián)規(guī)則的流程圖如上圖所示。相關(guān)性分析通過前面的多維關(guān)聯(lián)規(guī)則挖掘算法,我們能得到所有的頻繁維謂詞集,并能將它們都作為一系列的強(qiáng)關(guān)聯(lián)規(guī)則。然后對(duì)這些挖掘出的強(qiáng)關(guān)聯(lián)規(guī)則使用相關(guān)度的概念進(jìn)展相關(guān)性分析。對(duì)于每一條多維關(guān)聯(lián)規(guī)則,都會(huì)涉及到我們需要關(guān)心的*個(gè)屬性維,將它作為最后要輸出規(guī)則的結(jié)論記為B;而其他的屬性維就作為最后要輸出規(guī)則的條件記為A。AB作為頻繁謂詞項(xiàng),其計(jì)數(shù)值在算法過程中就已經(jīng)保存;由Apriori性質(zhì),AB的子集

37、A和B必是頻繁的,所以它們的計(jì)數(shù)值也已經(jīng)在算法過程中保存。因此,我們通過公式: 就能判斷每條規(guī)則的相關(guān)性。四、總結(jié)本文主要論述數(shù)據(jù)倉庫的構(gòu)建與數(shù)據(jù)挖掘技術(shù)及其應(yīng)用。將通過對(duì)已畢業(yè)學(xué)生數(shù)據(jù)信息專業(yè)、生源地、成績(jī)、就業(yè)時(shí)間進(jìn)展聯(lián)機(jī)分析與數(shù)據(jù)挖掘,找尋出對(duì)學(xué)生就業(yè)產(chǎn)生影響的原因所在,并到達(dá)為職業(yè)技術(shù)院校專業(yè)設(shè)置和教學(xué)提供決策支持。主要完成了以下幾方面的工作: 1、將現(xiàn)有的軟件工具進(jìn)展分析比擬,選擇較適用的數(shù)據(jù)倉庫平臺(tái)SQL Server2008及學(xué)生就業(yè)管理系統(tǒng)數(shù)據(jù)挖掘工具。2、通過使用SQL Server 2008來建立就業(yè)指導(dǎo)數(shù)據(jù)倉庫的設(shè)計(jì)與實(shí)現(xiàn)。3、在進(jìn)展數(shù)據(jù)挖掘的時(shí)候使用了改良后的 Apri

38、ori 算法,這個(gè)改良的算法防止了Apriori算法在數(shù)據(jù)量非常大的情況下給我們帶來的較大的開銷,提高了效率。4、進(jìn)展數(shù)據(jù)的深入挖掘后得到規(guī)則,對(duì)得到的規(guī)則能做出較為合理的解釋,說明這樣的數(shù)據(jù)挖掘是有一定的作用的,能提供給決策者較為準(zhǔn)確的參考信息,希望能在以后學(xué)院的開展中起到重要的作用。隨著社會(huì)的不斷開展,國(guó)家也日益重視高等院校的開展,高等院校的學(xué)生就業(yè)方式也變的多元化、自主化,各個(gè)高等院校在日趨劇烈的競(jìng)爭(zhēng)中如何脫穎而出已成為學(xué)校生存的關(guān)鍵所在。本課題的研究說明,就業(yè)數(shù)據(jù)倉庫的建立為決策分析提供了一定的根底,而將OLAP及數(shù)據(jù)挖掘技術(shù)應(yīng)用于就業(yè)指導(dǎo)領(lǐng)域的話,我們就能從就業(yè)信息中發(fā)現(xiàn)各種潛在規(guī)則

39、,以及發(fā)現(xiàn)就業(yè)率下降的原因所在。這將指導(dǎo)就業(yè)決策人員進(jìn)展就業(yè)策略地調(diào)整,科學(xué)的指導(dǎo)就業(yè)、合理開設(shè)專業(yè)、高效的開展宣傳,最終到達(dá)提高就業(yè)率和保證就業(yè)質(zhì)量的目標(biāo)。這些是對(duì)職業(yè)技術(shù)院校擴(kuò)大規(guī)模、提高辦學(xué)質(zhì)量具有重要的實(shí)踐意義。參考文獻(xiàn)1志華.Web數(shù)據(jù)挖掘在個(gè)性化網(wǎng)絡(luò)學(xué)習(xí)系統(tǒng)中的應(yīng)用研究.20082賀清碧,胡久永.數(shù)據(jù)挖掘技術(shù)綜述.民族大學(xué)學(xué)報(bào)(自然科學(xué)版).2003,29(3):328-3303紅巖,劍,國(guó)清.挖掘中的數(shù)據(jù)分類算法綜述.清華大學(xué)學(xué)報(bào)(自然科學(xué)版),2002,42(6):727-7304銀奎,廖麗,宋俊一數(shù)據(jù)挖掘原理.:機(jī)械工業(yè).2003附錄根據(jù)總體設(shè)計(jì)數(shù)據(jù)訪問層由兩局部組成,第一局

40、部設(shè)計(jì)成一個(gè)根底框架,通過接口過過具體數(shù)據(jù)庫;第二局部,設(shè)計(jì)相應(yīng)的代碼生成工具,完成實(shí)體類及管理類的設(shè)計(jì)。為方便調(diào)用,根本框架被設(shè)計(jì)成類庫的形式,類庫名AgileWeb.Framework,有關(guān)數(shù)據(jù)庫訪問的類文件均放在子空間 Data文件文下。一、根底框架中重要的類1、定義定動(dòng)程序定定.NE T支持的四種類型 public enum DatabaseType SQLServer, /SQL數(shù)據(jù)庫 OLEDB, /采用OLEDB類型數(shù)據(jù)庫 Oracle, /Oracle數(shù)據(jù) ODBC, /采用ODBC類型數(shù)據(jù)庫 2、從ADO.NET框架可以看出,針對(duì)各類數(shù)據(jù)庫訪問的類均要現(xiàn)相應(yīng)的接口,所有的Da

41、taReader從DbDataReader繼承,而DbDataReader的子類均要現(xiàn)IdataReader接口,利用這一特性,可以構(gòu)建一個(gè)與數(shù)據(jù)庫無關(guān)的BEDataReader。 public class BEDataReader : IDisposable private IDataReader dr; /接口IdataReader對(duì)象dr public BEDataReader() public BEDataReader(IDataReader i_dr) this.SetReader(i_dr); /初始化dr對(duì)象 public void Close() this.dr.Close()

42、; / 統(tǒng)計(jì)當(dāng)前D ataReader對(duì)象的字段個(gè)數(shù) public int FieldCount() int fieldCount = 0; if (this.dr != null) fieldCount = this.dr.FieldCount; return fieldCount; / 以object返回當(dāng)前DataReader對(duì)象所指記錄的字段值,以字段序號(hào)為參數(shù) public object Get(int inde*) return this.drinde*; / 以object返回當(dāng)前DataReader對(duì)象所指記錄的字段值,以字段名為參數(shù) public object Get(str

43、ing name) return this.drname; public bool Read() return this.dr.Read(); / 讓dr去指向具體類型的數(shù)據(jù)庫DataReader對(duì)象 public void SetReader(IDataReader sdr) this.dr = sdr as IDataReader; / 釋放dr的連接對(duì)象 public void Dispose() this.dr.Dispose(); 3、BEDataReader可以通過接口來完成對(duì)具體類型的DataReader類的調(diào)用,而具體的DataReader對(duì)象必須由相應(yīng)的命令對(duì)象來完成,而不同

44、類型數(shù)據(jù)庫的使用了不用的連接對(duì)象,BEmand提供了對(duì)連接對(duì)象和命令對(duì)象的封裝,執(zhí)行數(shù)據(jù)庫SQL,返回執(zhí)行結(jié)果。 public class BEmand protected IDbmand mand; /命令對(duì)象 protected IDbConnection Connection; /連接對(duì)象 private string CurrentDBName; /數(shù)據(jù)庫名稱 private DatabaseType DBType; / 數(shù)據(jù)庫類型,默認(rèn)SQL Server public bool hasActiveTransaction; /是否是用數(shù)據(jù)庫事務(wù) protected IDbTransa

45、ction Transaction; /事務(wù)對(duì)象 /默認(rèn)的構(gòu)造函數(shù) public BEmand() this.CurrentDBName = ; this.InitBEmand(, ); / 構(gòu)造函數(shù)使用SQL,作為參數(shù) public BEmand(string sql) this.CurrentDBName = ; this.InitBEmand(sql, ); / 構(gòu)造函數(shù)使用SQL和DBName作為參數(shù) public BEmand(string sql, string DBName) this.CurrentDBName = ; this.InitBEmand(sql, DBName);

46、 /命令對(duì)象開場(chǎng)事務(wù)操作 public void BeginTransaction() try /獲取事務(wù)對(duì)象 this.Transaction=this.Connection.BeginTransaction(); /在命令對(duì)象上是用事務(wù) this.mand.Transaction = this.Transaction; this.hasActiveTransaction = true; catch (E*ception e*ception) throw e*ception; /去除命令的參數(shù)對(duì)象 public void Clear() if (this.mand != null) this

47、.mand.Parameters.Clear(); /關(guān)閉數(shù)據(jù)庫的連接 public void Close() try this.Connection.Close(); catch /提交數(shù)據(jù)庫事務(wù) public void mit() try this.Transaction.mit(); catch (E*ception e*ception) throw e*ception; finally this.hasActiveTransaction = false; / 執(zhí)行非Select的SQL語句 public int E*ecuteNonQuery() int num; try num =

48、this.mand.E*ecuteNonQuery(); catch (E*ception e*ception) throw e*ception; return num; / 執(zhí)行Select查詢,返回IDataReader類型的對(duì)象 public IDataReader E*ecuteReader() IDataReader obj2; try obj2 = this.mand.E*ecuteReader(); catch (E*ception e*ception) throw e*ception; return obj2; / 初始化BEmand對(duì)象。 private void InitB

49、Emand(string sql, string DBName) string str = SQL; try / 訪問Web.Config文件中的數(shù)據(jù)庫類型信息 str = ConfigurationManager.AppSettingsDBType; catch / 根據(jù)str的值確定當(dāng)前數(shù)據(jù)庫的類型 if (str != null & str != SQL) if (str = ORACLE) this.DBType = DatabaseType.Oracle; else if (str = OLEDB) this.DBType = DatabaseType.OLEDB; else thi

50、s.DBType = DatabaseType.ODBC; else this.DBType = DatabaseType.SQLServer; /讓連接接口對(duì)象、命令接口對(duì)象指向相應(yīng)實(shí)際類型的數(shù)據(jù)庫訪問對(duì)象 this.CurrentDBName = DBName; switch (this.DBType) case DatabaseType.SQLServer: /SQL Server數(shù)據(jù)庫 this.Connection = new SqlConnection(dBConnectionString); this.mand = new Sqlmand(); break; case Datab

51、aseType.OLEDB: /OLEDB 數(shù)據(jù)庫 this.Connection = new OleDbConnection(dBConnectionString); this.mand = new OleDbmand(); break; case DatabaseType.Oracle: /Oracle數(shù)據(jù)庫 this.Connection = new OracleConnection(dBConnectionString); this.mand = new Oraclemand(); break; case DatabaseType.ODBC: /ODBC數(shù)據(jù)庫 this.Connect

52、ion = new OdbcConnection(dBConnectionString); this.mand = new Odbcmand(); break; this.Connection.Open(); this.mand.mandTe*t = sql; this.mand.Connection = this.Connection; /回滾當(dāng)前數(shù)據(jù)庫的事務(wù)操作 public void Rollback() this.hasActiveTransaction = false; if(this.Transaction!=null)&(this.Transaction.Connection !

53、= null) try this.Transaction.Rollback(); catch (E*ception e*ception) throw e*ception; / 為自定義的BEmand對(duì)象提供參數(shù)設(shè)置,根據(jù)類型創(chuàng)立不同的參數(shù)對(duì)象 public void SetParameters(string name, object nvalue) IDbDataParameter parameter = null; /參數(shù)對(duì)象的接口引用 try switch (this.DBType) case DatabaseType.SQLServer: parameter = new SqlParam

54、eter(); /SQL Server參數(shù)對(duì)象 break; case DatabaseType.OLEDB: parameter = new OleDbParameter(); /OLEDB參數(shù)對(duì)象 break; case DatabaseType.Oracle: parameter = new OracleParameter(); /ORACLE參數(shù)對(duì)象 break; case DatabaseType.ODBC: parameter = new OdbcParameter(); /ODBC參數(shù)對(duì)象 break; /對(duì)于參數(shù)長(zhǎng)度超過 4000的相應(yīng)的長(zhǎng)文本類型 if (nvalue.ToS

55、tring().Length 0*fa0) switch (this.DBType) case DatabaseType.SQLServer: (SqlParameter) parameter).SqlDbType = SqlDbType.Te*t; break; case DatabaseType.OLEDB: (OleDbParameter)parameter).OleDbTyp = OleDbType.LongVarChar; break; case DatabaseType.Oracle: (OracleParameter) parameter).OracleType = Oracle

56、Type.Blob; break; case DatabaseType.ODBC: (OdbcParameter)parameter).OdbcType = OdbcType.Te*t; break; parameter.ParameterName = name; /設(shè)置參數(shù)名字 parameter.Value = nvalue; /設(shè)置參數(shù)值 this.mand.Parameters.Add(parameter); /添加當(dāng)前參數(shù) catch (E*ception e*ception) throw e*ception; / 重新設(shè)置數(shù)據(jù)庫 SQL命令 public void SetSQL(s

57、tring appsql) try this.mand.mandTe*t = appsql; catch (E*ception e*ception) throw e*ception; / 命令類型屬性mandType public System.Data.mandType mandType get return this.mand.mandType; set this.mand.mandType = value; / 其他屬性的 get 和 set代碼 4、在數(shù)據(jù)庫查詢操作中,需要設(shè)置查詢條件,系統(tǒng)定義了條件類,用來用助設(shè)置查詢條件,減少 SQL拼接可能產(chǎn)生的錯(cuò)誤。/ 枚舉pareType設(shè)置

58、查詢的比擬方式。 public enum pareType None, /不比擬 Equal, /相等 Less, /小于 LessEqual, /小于等于 Greater, /大于 GreaterEqual, /大于等于 NotEqual, /不等于 Like, /Like子句 Between /Between子句 / 條件類的定義,考慮了Between需要兩個(gè)參數(shù) public class FieldCondition public pareType parision = pareType.Equal; public string Name; public object Value; pu

59、blic object Value2; 根據(jù)實(shí)際需要,把每個(gè)數(shù)據(jù)表映射成實(shí)體類,并創(chuàng)立相應(yīng)的方法,主要用來完成對(duì)數(shù)據(jù)庫添加、刪除、修改、查詢操作。因?yàn)槊總€(gè)表所做的工作相類似,代碼編代費(fèi)時(shí)費(fèi)力,且容易出錯(cuò)。這個(gè)局部需要提取數(shù)據(jù)表的構(gòu)造信息,然后完成對(duì)應(yīng)實(shí)體類的創(chuàng)立,也即表與實(shí)體對(duì)象的映射,并能把針對(duì)數(shù)據(jù)表的添加、刪除、修改、查詢方法封裝到一個(gè)管理類中。環(huán)境中連接SQL Server和Oracle除使用專門的提供程序外,還可以使用OLEDB方式連接,因此代碼生成器只需提供OLEDB和ODBC兩種方式連接數(shù)據(jù)庫就可以了。1、獲取數(shù)據(jù)庫中所有的表和視圖信息,可以通過連接對(duì)象提供的GetSchema(Tables)方法來獲取,此方式返回一個(gè)DataTable對(duì)象,包括了數(shù)據(jù)庫的所有表的信息,可以通過 DefaultView.RowFilter來過濾掉系統(tǒng)表。 DataTable schemaTable = conn.GetSchema(Tables); schemaTable.DefaultView.RowFilter = TABLE_TYPE=TABLE OR TABLE_TYPE=VIEW; /過濾數(shù)據(jù)庫系統(tǒng)表 schemaTable = schemaTable.DefaultView.

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論