基于cs模式的人事工資管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)【畢業(yè)論文】_第1頁
基于cs模式的人事工資管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)【畢業(yè)論文】_第2頁
基于cs模式的人事工資管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)【畢業(yè)論文】_第3頁
基于cs模式的人事工資管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)【畢業(yè)論文】_第4頁
基于cs模式的人事工資管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)【畢業(yè)論文】_第5頁
已閱讀5頁,還剩51頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

PAGEPAGE基于CS模式的人事工資管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)目錄1緒論 11.1課題背景 11.2應(yīng)用現(xiàn)狀 21.3論文組織 22系統(tǒng)開發(fā)環(huán)境與技術(shù) 42.1Delphi語言的介紹 42.2SQLServer2000介紹 92.3C/S模式簡介 112.3.1C/S定義 112.3.2C/S體系結(jié)構(gòu)特點(diǎn) 112.4系統(tǒng)實(shí)現(xiàn)的關(guān)鍵技術(shù) 122.4.1ODBC接口技術(shù) 122.4.2ADO數(shù)據(jù)庫訪問技術(shù) 143需求分析 163.1系統(tǒng)的總體策劃 163.1.1系統(tǒng)目標(biāo) 163.1.2系統(tǒng)業(yè)務(wù)總體流程 173.2功能需求分析 183.2.1功能模塊分析 183.2.2系統(tǒng)客戶端功能模塊圖 193.3數(shù)據(jù)庫需求分析 194概要設(shè)計(jì) 224.1概念 224.2方法概要 245數(shù)據(jù)庫設(shè)計(jì) 265.1數(shù)據(jù)庫技術(shù)基礎(chǔ) 265.2數(shù)據(jù)表設(shè)計(jì) 275.3數(shù)據(jù)模式分析 316詳細(xì)設(shè)計(jì) 336.1啟動界面模塊 336.2登陸模塊設(shè)計(jì) 336.3主窗體模塊設(shè)計(jì) 346.3.1功能介紹 346.3.2模塊程序流程圖 346.4日常工作模塊的設(shè)計(jì) 346.4.1出盤模塊的設(shè)計(jì) 356.4.2工資查詢功能設(shè)計(jì) 366.5系統(tǒng)維護(hù)模塊設(shè)計(jì) 366.5.1用戶管理模塊 376.5.2工資結(jié)構(gòu)維護(hù)模塊 376.6報(bào)表系統(tǒng)模塊設(shè)計(jì) 377系統(tǒng)的實(shí)現(xiàn) 387.1登陸界面的實(shí)現(xiàn)與運(yùn)行 387.2數(shù)據(jù)庫設(shè)置界面的實(shí)現(xiàn) 387.3主界面實(shí)現(xiàn)與運(yùn)行 407.3.1功能介紹 407.3.2運(yùn)行界面 407.4員工資料查詢功能實(shí)現(xiàn)與運(yùn)行 407.4.1功能介紹 407.4.2功能實(shí)現(xiàn) 417.3工資查詢功能實(shí)現(xiàn) 437.3.1功能介紹 437.3.2功能實(shí)現(xiàn) 437.4員工基本信息輸入功能實(shí)現(xiàn) 447.4.1功能介紹 447.4.2功能實(shí)現(xiàn) 447.5出盤模塊實(shí)現(xiàn)與運(yùn)行 457.5.1功能介紹 457.5.2功能實(shí)現(xiàn) 467.6報(bào)表生成與打印 477.6.1模塊實(shí)現(xiàn)技術(shù) 477.6.2功能實(shí)現(xiàn) 477.7人事餅圖分析模塊實(shí)現(xiàn)與運(yùn)行 487.7.1模塊實(shí)現(xiàn)技術(shù) 487.7.2功能實(shí)現(xiàn) 488畢業(yè)設(shè)計(jì)總結(jié) 50參考文獻(xiàn) 51致謝 52PAGE11緒論1.1課題背景隨著計(jì)算機(jī)技術(shù)的飛速發(fā)展,計(jì)算機(jī)在企業(yè)管理中應(yīng)用的普及,利用計(jì)算機(jī)實(shí)現(xiàn)企業(yè)人事工資的管理勢在必行。不同的企業(yè)具有不同的人事、工資管理制度,這就決定了不同的企業(yè)需要不同的人事工資管理系統(tǒng)。隨著社會的發(fā)展和技術(shù)的進(jìn)步,各大公司、企業(yè)為了增強(qiáng)自身的競爭能力,開始對自己的組織形式和管理模式進(jìn)行變革,即從自上而下的層層管理逐漸轉(zhuǎn)變?yōu)橛刑囟氊?zé)的分支小組、業(yè)務(wù)流程重新組織的管理,企業(yè)信息管理也正在由集中式逐步轉(zhuǎn)向分散式,而C/S結(jié)構(gòu)恰好為這種管理模式的變革提供了具體實(shí)現(xiàn)手段和強(qiáng)有力的支持工具。[1]首先,從分布式處理的角度來看,以往那種一臺主機(jī)帶有多個(gè)終端的多用戶系統(tǒng)是按主機(jī)/終端結(jié)構(gòu)來設(shè)計(jì)的,是采取了一種集中方式,具有一個(gè)單一的、集中的數(shù)據(jù)庫,其數(shù)據(jù)存放在主機(jī)上,所有的處理任務(wù)都由主機(jī)來完成。主機(jī)需要承擔(dān)計(jì)算、處理、屏幕顯示以及控制全部的數(shù)據(jù)訪問和更新,即它是一個(gè)用于事務(wù)處理、數(shù)據(jù)庫訪問和本地用戶界面處理的中央處理器;而終端實(shí)際上是一個(gè)“傻瓜”終端,自身沒有處理能力,只是把用戶從鍵盤輸入的信息傳給主機(jī),并把主機(jī)傳來的信息顯示出來,且用戶界面是基于字符方式。這種模式已無法適應(yīng)當(dāng)代信息系統(tǒng)的發(fā)展,而且它的可靠性亦較差,故而必須走向分布式,把處理和數(shù)據(jù)進(jìn)行分布。其次是在分散化管理的問題上,在主機(jī)/終端結(jié)構(gòu)中,所有的權(quán)利都集中在主機(jī)上,同時(shí)所有的負(fù)擔(dān)也壓在了主機(jī)上,這樣就削弱了企業(yè)經(jīng)營活動的靈活性和生產(chǎn)制造的專業(yè)性。無法將某些生產(chǎn)管理經(jīng)營權(quán)真正交到具體的管理人員手中,使他們能夠積極有效地參與管理。C/S結(jié)構(gòu)有效地解決了主機(jī)/終端結(jié)構(gòu)的缺陷和問題。這種體系結(jié)構(gòu)是把系統(tǒng)分為前臺和后臺兩部分,前臺是用戶的智能工作站,用來完成計(jì)算和屏幕顯示;后臺包括數(shù)據(jù)庫服務(wù)器和文件服務(wù)器。數(shù)據(jù)庫服務(wù)器用來控制所有的數(shù)據(jù)訪問和更新,文件服務(wù)器作為物理的磁盤貯存器,用來存放中央數(shù)據(jù)文件。這種體系結(jié)構(gòu)合理地劃分了功能,均衡地分配了C/S上的負(fù)載,并減少了/networks/網(wǎng)絡(luò)傳輸。因而可為企業(yè)管理提供極快的響應(yīng)速度和較高的事務(wù)吞吐量,并可同時(shí)支持?jǐn)?shù)百個(gè)用戶。另外,相對于主機(jī)/終端系統(tǒng),它不僅投資要低的多,而且能夠有效地保護(hù)已有資源。這是由于主機(jī)/終端系統(tǒng)除需投入高額成本外,以后每增加一臺終端就會分走主機(jī)的一部分資源。當(dāng)終端增加到一定程度后即達(dá)到飽和,必須更換主機(jī),舊的主機(jī)則被淘汰;而在C/S結(jié)構(gòu)中,每增加一臺工作站,在分享系統(tǒng)資源的同時(shí)能夠增加系統(tǒng)的能力。當(dāng)數(shù)據(jù)庫服務(wù)器需要更新時(shí),一是較低、二是該服務(wù)器還可用作工作站,可有效地保護(hù)了/ediy/硬件的資源。故它是一種成本經(jīng)濟(jì)、高效、易于擴(kuò)充的好結(jié)構(gòu)。

再次,從企業(yè)管理的角度來看,特別是制造業(yè)企業(yè)的生產(chǎn)管理,只有這種基于C/S的系統(tǒng)結(jié)構(gòu)才能使分散化的管理思想真正得以實(shí)現(xiàn)。它的本地自治功能使每個(gè)場點(diǎn)/平臺均有一個(gè)自治的數(shù)據(jù)庫,其管理和控制具有獨(dú)立性,這使得生產(chǎn)第一線的管理者可擁有自己的數(shù)據(jù)和工具、以及一定的權(quán)限去靈活地解決自己的問題,而各級管理人員亦可依靠這種協(xié)調(diào)一致的分散控制、從協(xié)調(diào)中得到效率,從分散中得到下級的責(zé)任感、積極性、主動性和創(chuàng)造性,從而使決策更加切合實(shí)際。同時(shí),它的分布式查詢處理、分布式交換管理功能,又可使各級管理人員擁有用戶終端瓶頸處理能力,充分體現(xiàn)了分散化管理思想。以前很多公司的所用人事工資管理系統(tǒng)都是用單擊版的,面對目前的實(shí)際狀況,迫切需要開發(fā)一個(gè)C/S模式管理系統(tǒng)來適應(yīng)這一些工作。1.2應(yīng)用現(xiàn)狀隨著我國國民經(jīng)濟(jì)建設(shè)的蓬勃發(fā)展和具有中國特色的社會主義市場經(jīng)濟(jì)體制的迅速完善,各個(gè)行業(yè)都在積極使用現(xiàn)代化的手段,不斷改善服務(wù)質(zhì)量,提高工作效率,這些都在很大程度上給企業(yè)提出越來越嚴(yán)峻的挑戰(zhàn),對企業(yè)體系無論是在行政職能、企業(yè)管理水平以及優(yōu)質(zhì)服務(wù)上都提出更高的要求。建設(shè)一個(gè)科學(xué)高效的信息管理系統(tǒng)是解決這一問題的必由之路。企業(yè)內(nèi)部財(cái)務(wù)管理是該企業(yè)運(yùn)用現(xiàn)代化技術(shù)創(chuàng)造更多更高的經(jīng)濟(jì)效益的主要因素之一。工資管理作為企業(yè)內(nèi)部的一種財(cái)務(wù)管理也是如此,由于企業(yè)職工人數(shù)較多,每一位職工的具體實(shí)際情況也不盡相同,目前,公司使用的人事工資管理系統(tǒng)采用的是單擊版的,與C/S體系形成對比,傳統(tǒng)的系統(tǒng)數(shù)據(jù)庫應(yīng)用體系結(jié)構(gòu),例如基于主機(jī)-多終端的系統(tǒng),或基于LAN上文件服務(wù)器運(yùn)做的多用戶系統(tǒng),數(shù)據(jù)庫是屬于應(yīng)用程序“私有的”,即使它也可以將數(shù)據(jù)文件放置在某臺機(jī)器上供不同的用戶共同訪問(這種情形,稱為“文件服務(wù)器”),但所有的操作、規(guī)則,都是在一個(gè)包羅萬象的應(yīng)用程序內(nèi)部實(shí)現(xiàn)的。應(yīng)用程序因此具有最大的復(fù)雜性,即使是原班開發(fā)人馬,要想對已有功能加以擴(kuò)充也是很困難的,當(dāng)數(shù)據(jù)庫稍具復(fù)雜性(比如有稍多相互關(guān)聯(lián)的表與規(guī)則),其他的人員開發(fā)另外的程序共同操作這個(gè)數(shù)據(jù)庫的數(shù)據(jù),幾乎不具可行性,不能適應(yīng)公司發(fā)展的需要。1.3論文組織1、緒論部分緒論主要敘述課題提出背景,目前應(yīng)用現(xiàn)狀,C/S模式結(jié)構(gòu)系統(tǒng)開發(fā)的必要性。2、系統(tǒng)開發(fā)環(huán)境與技術(shù)部分介紹了本系統(tǒng)開發(fā)語言Delphi7.0和數(shù)據(jù)庫開發(fā)工具SQLServer2000的基本特點(diǎn),還介紹了C/S模式的定義與體系結(jié)構(gòu)特點(diǎn)以及系統(tǒng)實(shí)現(xiàn)的關(guān)鍵技術(shù)。需求分析部分結(jié)合軟件工程方法,對系統(tǒng)進(jìn)行需求分析、功能劃分、數(shù)據(jù)流圖設(shè)計(jì)。4、概要設(shè)計(jì)部分根據(jù)需求分析的結(jié)果,用戶概念數(shù)據(jù)模型表示數(shù)據(jù)及其相互間的聯(lián)系。并結(jié)合數(shù)據(jù)庫原理和功能劃分進(jìn)行E-R圖的繪制、數(shù)據(jù)庫結(jié)構(gòu)設(shè)計(jì)。5、數(shù)據(jù)庫設(shè)計(jì)部分介紹了數(shù)據(jù)庫基礎(chǔ)知識,并結(jié)合E-R圖和數(shù)據(jù)庫需求分析的要求,介紹了數(shù)據(jù)庫中所有數(shù)據(jù)表的設(shè)計(jì),并做了范式分析。6、詳細(xì)設(shè)計(jì)部分根據(jù)需求分析的結(jié)果,對系統(tǒng)進(jìn)行詳細(xì)設(shè)計(jì),主要介紹用Delphi和SQLServer2000實(shí)現(xiàn)每一個(gè)模塊的具體功能。7、系統(tǒng)實(shí)現(xiàn)部分根據(jù)詳細(xì)設(shè)計(jì)和前面部分的分析結(jié)果,介紹了系統(tǒng)查詢功能,系統(tǒng)出盤模塊,工資短信模塊等關(guān)鍵模塊的實(shí)現(xiàn)代碼以及關(guān)鍵技術(shù)。8、畢業(yè)設(shè)計(jì)總結(jié)部分介紹了設(shè)計(jì)體會和編程體會,并指出了系統(tǒng)設(shè)計(jì)中的不足和改進(jìn)的方向。2系統(tǒng)開發(fā)環(huán)境與技術(shù)2.1Delphi語言的介紹1、Delphi的基本特點(diǎn)計(jì)算機(jī)語言一代一代地從機(jī)器語言發(fā)展到高級語言,從復(fù)雜到簡單(其實(shí)也不簡單),體現(xiàn)了計(jì)算機(jī)科學(xué)技術(shù)的發(fā)展。計(jì)算機(jī)語言越高級,就越抽象越人性化,與低層硬件的關(guān)系就越少,使用起來就越方便。但無論計(jì)算機(jī)語言如何高級,都是對操作系統(tǒng)層的抽象,因此我們總可以找出理解高級語言背后的規(guī)律,那就是:高級語言寫的代碼只是為了描述人們的需求,而這些代碼要通過“翻譯器”翻譯成機(jī)器語言形式才能被機(jī)算機(jī)識別執(zhí)行。所謂的翻譯有兩種方式:一是編譯方式,代碼事先通過編譯器生成機(jī)器語言代碼,再由操作系統(tǒng)調(diào)度執(zhí)行,如Delphi語言、C++語言等;二是解釋方式,該方式在計(jì)算內(nèi)是邊解釋邊執(zhí)行,并不事先生目標(biāo)程序,如Basic語言、腳本語言等。解釋方式的特點(diǎn)運(yùn)行速度慢,對計(jì)算機(jī)硬件要求比較高。計(jì)算機(jī)語言定義描述人們需求的規(guī)則,在語言的背后是編譯器或解釋器。編譯器或解釋器的主要工作就是翻譯代碼,成為人與計(jì)算機(jī)交流的主要通道。這樣在操作系統(tǒng)不變的情況下,各種開發(fā)工具各顯神通,但最終都要生成計(jì)算機(jī)可執(zhí)行的代碼。所以無論用哪種計(jì)算機(jī)語言寫的程序要判斷其好與壞很大程度上依賴于該語言的編譯器或解釋器。Delphi的編譯器仍然是目前世界上最先進(jìn)最優(yōu)秀效率最高的編譯器。從高級語言的特點(diǎn)來看,它們基本上都是對操作系統(tǒng)提供的服務(wù)接口封裝,在此基礎(chǔ)上加入自己的語言特性,如OOP、指針、內(nèi)存管理模式等。2、Delphi的優(yōu)勢現(xiàn)在,市場上可以選購的應(yīng)用開發(fā)產(chǎn)品很多,流行的也有數(shù)十種。在目前市場上這些眾多的程序開發(fā)工具中,有些強(qiáng)調(diào)程語言的彈性與執(zhí)行效率;有些則偏重于可視化程序開發(fā)工具所帶來的便利性與效率的得高,各有各的優(yōu)點(diǎn)和特色,也滿足了不同用戶的需求。然而,語言的彈性和工具的便利性是密不可分的,只有便利的工具,卻沒有彈性的語言作支持,許多特殊化的處理動作必需要耗費(fèi)數(shù)倍的工夫來處理,使得原來所標(biāo)榜的效率提高的優(yōu)點(diǎn)失去了作用;相反,如果只強(qiáng)調(diào)程語言的彈性,卻沒有便利的工具作配合,會使一些即使非常簡單的界面處理動作,也會嚴(yán)重地浪費(fèi)程序設(shè)計(jì)師的寶貴時(shí)間。作為數(shù)據(jù)庫系統(tǒng)的開發(fā),Delphi是一個(gè)非常理想選擇[1]。數(shù)據(jù)庫應(yīng)用軟件開發(fā)的效率,縮短了開發(fā)周期,深受廣大數(shù)據(jù)庫應(yīng)用程序設(shè)計(jì)人員的喜愛。Delphi為數(shù)據(jù)庫應(yīng)用開發(fā)人員提供了豐富的數(shù)據(jù)庫開發(fā)組件,使數(shù)據(jù)庫應(yīng)用開發(fā)功能更強(qiáng)大,控制更靈活,編譯后的程序運(yùn)行速度更快。(1)優(yōu)秀的可視化開發(fā)環(huán)境Delphi屬于RAD(rapidapplicationdevelopment,快速應(yīng)用開發(fā))工具,這類工具的最大特點(diǎn)就是可視化的設(shè)計(jì)窗體以及能為窗體添加各種組件。此外,Delphi的編輯器除了具有一般代碼編輯器的功能外,它的CodeInsight技術(shù)省卻了很多人工輸入麻煩,是一項(xiàng)重要的創(chuàng)新。(2)高效率的編譯器Delphi的編譯器建立在Pascal編譯器的基礎(chǔ)上,可以說是針對Windows的最快的高級語言本地代碼編譯器。由于有編譯器的速度作保證,程序員可以經(jīng)常修改代碼,提高了開發(fā)效率,Delphi的編譯器不僅便宜速度快,而且生成的二進(jìn)制代碼短小,運(yùn)行效率很高。(3)結(jié)構(gòu)良好的編程語言Delphi采用了ObjectPascal作為它的編程語言。Pascal本身是一種結(jié)構(gòu)優(yōu)良的語言,Pascal編譯器的高效性也部分得益于此。ObjectPascal語言在早期Pascal語言的基礎(chǔ)上擴(kuò)展了面向?qū)ο蟮墓δ?而且很好的把握了復(fù)雜性和功能性的平衡,滿足了現(xiàn)代程序開發(fā)的需要。(4)對數(shù)據(jù)庫的靈活支持Delphi對數(shù)據(jù)庫的支持是它的一個(gè)突出優(yōu)點(diǎn),對于開發(fā)數(shù)據(jù)庫程序,Delphi是第一選擇。它可以滿足基于本地、客戶/服務(wù)器和ODBC數(shù)據(jù)庫平臺的應(yīng)用程序的各種需要,而且異常方便、高效。近來更是加強(qiáng)了對網(wǎng)絡(luò)數(shù)據(jù)庫的支持。(5)層次清晰和可伸縮的框架在大家有了一定的程序開發(fā)經(jīng)驗(yàn)后就知道,對于一個(gè)開發(fā)工具來說,只有好的開發(fā)環(huán)境和編程語言是不夠的,還需要有強(qiáng)大的類庫和組件庫來支持程序員的開發(fā)。Delphi在這方面做得非常好,從開始的VCL(VisualComponentLibrary)到現(xiàn)在的CLX(ComponentLibraryforCross-Platform),不僅功能強(qiáng)大,結(jié)構(gòu)可以擴(kuò)展,而且層次清晰,符合編程人員的直觀想法,使用起來方便。3、Delphi7.0控件用Delphi7.0開發(fā)數(shù)據(jù)庫應(yīng)用,重點(diǎn)是和各種數(shù)據(jù)庫組件打交道,當(dāng)然也要使用其它的一些組件,本節(jié)只對重要的幾個(gè)組件給與介紹。ADO數(shù)據(jù)訪問組件ADO數(shù)據(jù)對象(ActiveDataObjects)實(shí)際是一種提供訪問各種數(shù)據(jù)類型的鏈接機(jī)制[2]。ADO設(shè)計(jì)為一種極簡單的格式,通過ODBC的方法同數(shù)據(jù)庫接口中,可以使用任何一種ODBC數(shù)據(jù)源,即不止適合于SQLServer、Oracle、Access等數(shù)據(jù)庫應(yīng)用程序,也適合于Excel表格、文本文件、圖形文件和無格式的數(shù)據(jù)文件。ADO是基于OLE-DB之上的技術(shù),因此ADO通過其內(nèi)部的屬性和方法提供統(tǒng)一的數(shù)據(jù)訪問接口方法。ADO使您的客戶端應(yīng)用程序能夠通過OLEDB提供訪問和操作在數(shù)據(jù)庫服務(wù)器中的數(shù)據(jù)。ADO支持用于建立C/S和Web的應(yīng)用程序的主要功能。其主要優(yōu)點(diǎn)是易于使用、高速度、低內(nèi)存支出和占用磁盤空間較少。ADO同時(shí)具有遠(yuǎn)程數(shù)據(jù)服務(wù)(RDS)功能,通過RDS可以在一次往返過程中實(shí)現(xiàn)將數(shù)據(jù)從服務(wù)器移動到客戶端應(yīng)用程序和Web頁、在客戶端對數(shù)據(jù)進(jìn)行處然后將更新結(jié)果返回服務(wù)器的操作。Delphi7.0繼續(xù)對Microsoft的ADO訪問能力的支持。這種能力是通過一組新組件實(shí)現(xiàn)的,這些組件是ADO組件頁中,在組件面版的ADO頁上可以找到這些組件。利用在前面章節(jié)提到的TdataSet抽象類,ADO組件可以不通過BDE而直接實(shí)現(xiàn)ADO連接。這意味著只需要很少的代碼就可以實(shí)現(xiàn)該連接并且性能得到提高。利用ADO數(shù)據(jù)訪問組件,可以只使用ADO結(jié)構(gòu)與數(shù)據(jù)庫取得聯(lián)系并對其中的數(shù)據(jù)進(jìn)行操作,而在這些過程中完全不需要使用BDE。大多數(shù)的ADO連接和數(shù)據(jù)集組件都是與基于BDE的連接和數(shù)據(jù)集組件相類似的。TADOConnection組件與基于BDE的應(yīng)用程序中的TDataBase組件類似。TADOTable與TTable,TADOQuery與TQuery,以及TADOStoreProc和TStoredProc之間都具有這種類似的對應(yīng)關(guān)系。使用這些ADO組件的方式與我們常使用的數(shù)據(jù)訪問組件(基于BDE)都有許多相同之處。TADODataSet沒有直接的BDE對應(yīng)組件,但它提供了許多與TTable和TQuery相同的功能。同樣,TADOCommand也沒有相對應(yīng)的BDE組件,它是在Delphi/ADO環(huán)境中完成特定功能的組件。Delphi7.0通過ADO數(shù)據(jù)集訪問組件,可以不借助BDE數(shù)據(jù)引擎而是通過微軟的OLEDB來訪問更為廣泛的數(shù)據(jù)庫中的數(shù)據(jù)。ADO數(shù)據(jù)集訪問組件與常用的數(shù)據(jù)訪問組件是并列的關(guān)系。(2)數(shù)據(jù)控制類DataControl數(shù)據(jù)控制類負(fù)責(zé)數(shù)據(jù)庫數(shù)據(jù)的顯示,并把用戶對數(shù)據(jù)的修改傳回。這里的絕大多數(shù)組件,如DBText,DBEdit,DBMemo,DBImage,DBListBox,DBComboBox,DBCheckBox,DBRadioGroup,DBLookupListBox,DBLookupCombox,DBCtrGrid的功能和對應(yīng)的非數(shù)據(jù)感知組件相同,如TEdit框,TRadioGroups單選按鈕組等,只不過在顯示數(shù)據(jù)庫數(shù)據(jù)時(shí)要用而已。在系統(tǒng)中主要使用數(shù)據(jù)網(wǎng)格控件DBGrid和數(shù)據(jù)庫導(dǎo)航器控件DBNavigator。(3)數(shù)據(jù)訪問類DataAccess數(shù)據(jù)庫應(yīng)用系統(tǒng)中數(shù)據(jù)訪問是一個(gè)首要問題,都必須聯(lián)系一些數(shù)據(jù)庫和數(shù)據(jù)表文件。Delphi7.0提供了專門用于數(shù)據(jù)訪問的基類控件。主要包括數(shù)據(jù)源控件DataSource、客戶數(shù)據(jù)集控件ClientDataSet、數(shù)據(jù)集提供器控件DataSetProvider等等。TDataBase:當(dāng)一個(gè)基于BDE的數(shù)據(jù)庫應(yīng)用程序需要一個(gè)永久數(shù)據(jù)庫連接時(shí),需要定制向一個(gè)數(shù)據(jù)庫服務(wù)器的連接時(shí),需要事務(wù)控制和特殊的數(shù)據(jù)庫別名時(shí)就得用到TDataBase對象。特別是當(dāng)連接到一個(gè)遠(yuǎn)程的SQL數(shù)據(jù)庫服務(wù)器時(shí),如果要利用BDE進(jìn)行數(shù)據(jù)庫事務(wù)處理,那么,TDataBase對象的威力就體現(xiàn)出來了。在一個(gè)應(yīng)用程序中為每一個(gè)數(shù)據(jù)庫連接顯示的聲明TDataBase對象要根據(jù)需要而定,不是必需的。對一個(gè)數(shù)據(jù)庫連接,如果沒有顯示的聲明并實(shí)例化TDataBase對象,系統(tǒng)就會產(chǎn)生一個(gè)帶有默認(rèn)屬性的TDataBase對象。TdataSource對象用于在DataSet對象(包括Tquery,TStoredProc,Ttable等)和數(shù)據(jù)感知組件之間提供一個(gè)連接的紐帶,以便在窗體上顯示數(shù)據(jù)庫中的數(shù)據(jù),在數(shù)據(jù)庫中導(dǎo)航定位與編輯數(shù)據(jù)集中的數(shù)據(jù)。如果一個(gè)DataSet對象中的數(shù)據(jù)想在數(shù)據(jù)感知組件中顯示和修改,它就必須和TdataSource對象相聯(lián)系。同樣,一個(gè)數(shù)據(jù)感知組件如果想和數(shù)據(jù)源相聯(lián)系以便顯示和操縱數(shù)據(jù),就必須以TDataSource對象為中介。用Delphi7.0作數(shù)據(jù)庫應(yīng)用開發(fā)概括來說如下:先利用數(shù)據(jù)存取組件和實(shí)際的數(shù)據(jù)庫建立連接,并用TSession對象和TDataBase對象管理這些連接。然后以TDataSource對象為中介,用數(shù)據(jù)感知組件向用戶顯示數(shù)據(jù)庫的內(nèi)容并接受用戶的查詢和修改等操作。(4)SQL語言在Delphi中的應(yīng)用在Delphi中使用SQL語言非常方便,一般來說,都是通過Tquery組件來使用SQL語言的??梢栽赥Query組件的SQL屬性中設(shè)置SQL語句。設(shè)計(jì)程序時(shí),在該組件的屬性對話框中選擇SQL屬性,單擊帶省略號的按鈕,就可以打開StringListEditor對話框,然后我們就可以在對話框中添加SQL語句。還可以使用Delphi的SQLBuilder來自動生成SQL語句,這樣可以避免手工編寫SQL而可能造成的語法錯(cuò)誤。靜態(tài)SQL語句在程序設(shè)計(jì)時(shí)便已固定下來,它不包含任何參數(shù)和變量。動態(tài)SQL語句,也被稱作參數(shù)化的語句,在其中間包含著表示字段名或表名的參數(shù),例如下面的語句是一條動態(tài)SQL語句:Select*FromStudentsWhereStudentCode=:StudentCode;其中的變量StudentCode便是一個(gè)參數(shù)變量,它由一個(gè)冒號引導(dǎo),在程序運(yùn)行過程中,必須要為該參數(shù)賦值,該條SQL語句才能正確執(zhí)行,每次運(yùn)行應(yīng)用程序時(shí)可以為該參數(shù)變量賦予不同的值。為參數(shù)賦值有三種方法:1)根據(jù)參數(shù)在SQL語句中出現(xiàn)的順序,設(shè)置TQuery部件的Params屬性值為參數(shù)賦值。2)直接根據(jù)SQL語句中各參數(shù)的名字,調(diào)用ParamByName方法來為各參數(shù)賦值。3)將TQuery部件的DataSource屬性設(shè)置為另一個(gè)數(shù)據(jù)源,這樣將另一個(gè)數(shù)據(jù)源中與當(dāng)前TQuery部件的SQL語句中的參數(shù)名相匹配的字段值賦給其對應(yīng)的參數(shù)。利用這種方法也能實(shí)現(xiàn)所謂的連接查詢,創(chuàng)建主要—明細(xì)型數(shù)據(jù)庫應(yīng)用。在程序運(yùn)行過程中,要想設(shè)置TQuery部件的SQL屬性,必須首先調(diào)用Close方法,關(guān)閉TQuery部件,然后再調(diào)用Clear方法清除SQL屬性中現(xiàn)存的SQL命令語句,最后再調(diào)用Add方法為SQL屬性設(shè)置新的SQL命令語句。例如:Query1.Close{關(guān)閉Query1)Query1.SQL.Clear{清除SQL屬性中的SQL命令語句}Query1.SQL.Add(‘Select*FromStudents‘);Query1.SQL.Add(‘WhereName="Lucy"‘);在為TQuery部件設(shè)置SQL屬性時(shí)調(diào)用Close方法總是很安全的,如果TQuery部件已經(jīng)被關(guān)閉了,調(diào)用Close方法時(shí)不會產(chǎn)生任何影響。在應(yīng)用程序中為SQL屬性設(shè)置新的SQL命令語句時(shí),必須要調(diào)用Clear方法以清除SQL屬性中現(xiàn)存的SQL命令語句,如果不調(diào)用Clear方法,便調(diào)用Add方法向SQL屬性中設(shè)置SQL命令語句,那么新設(shè)置的SQL命令語句會追加在現(xiàn)存SQL命令語句后面,在程序運(yùn)行時(shí)常常會出現(xiàn)出乎意料的查詢結(jié)果甚至程序無法運(yùn)行下去。在這里要特別注意的,一般情況下TQuery部件的SQL屬性只能包含一條完整的SQL語句,它不允許被設(shè)置成多條SQL語句。當(dāng)然有些數(shù)據(jù)庫服務(wù)器也支持在TQuery部件的SQL屬性中設(shè)置多條SQL語句,只要數(shù)據(jù)庫服務(wù)器允許這樣,我們在編程時(shí)可以為SQL屬性設(shè)置多條SQL語句。在為TQuery部件設(shè)置完SQL屬性的屬性值之后,也即編寫好適當(dāng)?shù)腟QL程序之后,可以有多種方式來執(zhí)行SQL程序。在設(shè)計(jì)過程中,設(shè)置完TQuery部件的SQL屬性之后將其Active屬性的值置為True,這樣便可以執(zhí)行SQL屬性中的SQL程序,如果應(yīng)用中有與TQuery部件相連的數(shù)據(jù)瀏覽部件(如TDBGrid,TDBEdit等)那么在這些數(shù)據(jù)瀏覽部件中會顯示SQL程序的執(zhí)行結(jié)果。在應(yīng)用程序運(yùn)行過程中,通過程序調(diào)用TQuery部件的Open方法或ExcelSQL方法可以執(zhí)行其SQL屬性中的SQL程序。Open方法和ExcelSQL方法是不一樣的。Open方法只能用來執(zhí)行SQL語言的查詢語句(Select命令),并返回一個(gè)查詢結(jié)果集,而ExcelSQL方法還可以用來執(zhí)行其它常用的SQL語句(如INSERT,UPDATE,DELETE等命令),例如:Query1.Open(這樣會返回一個(gè)查詢結(jié)果集)如果調(diào)用Open方法,而沒有查詢結(jié)果時(shí),會出錯(cuò)。此時(shí)應(yīng)該調(diào)用ExcelSQL方法來代替Open方法。如:Query1.ExecSQL(沒有返回結(jié)果)當(dāng)然在設(shè)計(jì)應(yīng)用程序時(shí),程序設(shè)計(jì)人員是無法確定TQuery部件中的SQL語句是否會返回一個(gè)查詢結(jié)果的。對于這種情況應(yīng)當(dāng)用Try…Except模塊來設(shè)計(jì)程序。在Try部分調(diào)用Open方法,而在Except部分調(diào)用ExcelSQL方法,這樣才能保證程序的正確運(yùn)行。Delphi中用ADOQuery來使用SQL語句同樣十分方便。在ADOQuery組件中首先通過ConnectionString屬性值來聯(lián)接數(shù)據(jù)源,然后就通過雙擊SQL屬性值來寫入SQL語句。在Delphi中調(diào)用數(shù)據(jù)庫,就可以調(diào)用ADOQuery組件,通過修改其中的SQL屬性中的SQL語句來實(shí)現(xiàn)對數(shù)據(jù)庫的各項(xiàng)操作。值得注意的是,ADOQuery組件只有在激活的情況下才可以被正確地使用,這樣就提出了一個(gè)問題,也就是說,在每次修改ADOQuery組件的SQL屬性時(shí)都必須先行進(jìn)行關(guān)閉,待清除掉SQL中所有的SQL語句后才可以添加新的SQL語句。而且,在每一次修改完成以后,還應(yīng)該記得重新將ADOQuery激活。其它的使用方法與TQuery有許多的相似之處。2.2SQLServer2000介紹SQLServer2000[3]是Microsoft公司推出的SQLServer數(shù)據(jù)庫管理系統(tǒng)的最新版本,該版本繼承了SQLServer7.0版本的優(yōu)點(diǎn),同時(shí)又比它增加了許多更先進(jìn)的功能,具有使用方便可伸縮性好與相關(guān)軟件集成程度高等優(yōu)點(diǎn),可跨越從運(yùn)行MicrosoftWindows98的膝上型電腦到運(yùn)行MicrosoftWindows2000的大型多處理器的服務(wù)器等多種平臺使用,這些功能進(jìn)一步將SQLServer確立為OLTP、數(shù)據(jù)倉庫以及電子商務(wù)應(yīng)用程序的最佳數(shù)據(jù)庫平臺。SQLServer2000由兩個(gè)部分組成:服務(wù)器組件和客戶端工具。SQLServer的服務(wù)器組件是以Windows服務(wù)(WindowsServices)方式運(yùn)行的。一般認(rèn)為SQLServer包含四種Windows服務(wù)(這里我們關(guān)注OLTP、暫時(shí)不考慮OLAP),分別是:MSSQLServer、DTC(DistributedTransactionCoordinator)、SQLServerAgent、SearchService。MSSQLServer是最常用的服務(wù),一般的數(shù)據(jù)庫功能都是由它提供的,例如文件管理、查詢處理、數(shù)據(jù)存儲等;DTC是分布式事務(wù)協(xié)調(diào)器,支持跨越兩個(gè)或多個(gè)服務(wù)器的更新操作來保證事務(wù)的完整性;SQLServerAgent負(fù)責(zé)SQLServer自動化工作,如果需要SQLServer在指定時(shí)間執(zhí)行某一個(gè)存儲過程,就需要用到這個(gè)服務(wù)了;SearchService是全文查詢服務(wù),負(fù)責(zé)全文檢索方面的工作。SQLServer2000的客戶端工具包括——企業(yè)管理器、查詢分析器、事件探查器、服務(wù)管理器、客戶端網(wǎng)絡(luò)實(shí)用工具、服務(wù)器網(wǎng)絡(luò)實(shí)用工具、導(dǎo)入和導(dǎo)出數(shù)據(jù)(DTS)等等。服務(wù)器組件與客戶端工具功能上是配套的,客戶端工具需要用最簡單的形式表達(dá)最豐富的服務(wù)器組件的功能;服務(wù)器組件和客戶端工具物理上是離散的,即它們不是同一個(gè)程序。客戶端工具要與服務(wù)器組件連通,需要一些用于通訊的動態(tài)鏈接庫,SQLServer2000的通訊庫支持多種網(wǎng)絡(luò)協(xié)議,例如TCP/IP、命名管道等。SQLServer2000有很多版本:企業(yè)版、開發(fā)版、標(biāo)準(zhǔn)版、個(gè)人版等。每一個(gè)版本包含的客戶端工具基本上是一樣的,而服務(wù)器組件可能有些不同。所以在安裝SQLServer之前必須考慮操作系統(tǒng)和SQLServer版本是否兼容,根據(jù)操作系統(tǒng)選擇合適的SQLServer版本。SQL數(shù)據(jù)庫體系結(jié)構(gòu):SQL數(shù)據(jù)庫的體系結(jié)構(gòu)基本上也是三級模式。SQL術(shù)語與傳統(tǒng)的關(guān)系模型術(shù)語不同。在SQL中,外模式對應(yīng)于視圖,模式對應(yīng)于基本表,元組稱為“行”,屬性稱為“列”。內(nèi)模式對應(yīng)于存儲文件。模式:模式(Schema)是表和約束的集合。表:表(Table)是行(Row)的集合,每行是列(Column)的序列,每列對應(yīng)一個(gè)數(shù)據(jù)項(xiàng)。表可以是一個(gè)基本表,也可以是一個(gè)視圖,基本表是實(shí)際存儲在數(shù)據(jù)庫中的表。視圖:視圖是從基本表或其他視圖中導(dǎo)出的表,它本身不獨(dú)立存儲在數(shù)據(jù)庫中,也就是說數(shù)據(jù)庫中只存放視圖的定義而不存放視圖的數(shù)據(jù),視圖是一個(gè)虛表。存儲過程:存儲過程是一組為了完成特定功能的SQL語句集,經(jīng)編譯后存儲在數(shù)據(jù)庫中。用戶通過指定存儲過程的名字并給定參數(shù)來執(zhí)行它。2.3C/S模式簡介2.3.1C/S定義C/S模式是一種兩層結(jié)構(gòu)的系統(tǒng)[4]:第一層是在客戶機(jī)系統(tǒng)上結(jié)合了表示與業(yè)務(wù)邏輯;第二層是通過網(wǎng)絡(luò)結(jié)合了數(shù)據(jù)庫服務(wù)器。C/S模式主要由客戶應(yīng)用程序、服務(wù)器管理程序和中間件三個(gè)部分組成。首先,交互性強(qiáng)是C/S固有的一個(gè)優(yōu)點(diǎn)。在C/S中,客戶端有一套完整應(yīng)用程序,在出錯(cuò)提示、在線幫助等方面都有強(qiáng)大的功能,并且可以在子程序間自由切換。其次,C/S模式提供了更安全的存取模式。由于C/S配備的是點(diǎn)對點(diǎn)的結(jié)構(gòu)模式,采用適用于局域網(wǎng)、安全性可以得到可靠的保證。而B/S采用點(diǎn)對多點(diǎn)、多點(diǎn)對多點(diǎn)這種開放的結(jié)構(gòu)模式,并采用TCP/IP這一類運(yùn)用于Internet的開放性協(xié)議,其安全性只能依靠數(shù)據(jù)服務(wù)器上的管理密碼的數(shù)據(jù)庫來保證。由于C/S在邏輯結(jié)構(gòu)上比B/S少一層,對于相同的任務(wù),C/S完成的速度總比B/S快,使得C/S更利于處理大量數(shù)據(jù)。由于客戶端實(shí)現(xiàn)與服務(wù)器的直接相連,沒有中間環(huán)節(jié),因此響應(yīng)速度快。同時(shí)由于開發(fā)是針對性的,因此,操作界面漂亮,形式多樣,可以充分滿足客戶自身的個(gè)性化要求。但缺少通用性,業(yè)務(wù)的變更,需要重新設(shè)計(jì)和開發(fā),增加了維護(hù)和管理的難度,進(jìn)一步的業(yè)務(wù)拓展困難較多。不過此部分內(nèi)容對于管理制度成熟的倉庫企業(yè)而言,其困難度并不大。2.3.2C/S體系結(jié)構(gòu)特點(diǎn)客戶機(jī)/服務(wù)器(C/S)這個(gè)名詞雖然近年來報(bào)刊雜志上經(jīng)常出現(xiàn),但對這一術(shù)語至今尚無統(tǒng)一的定義。首先,客戶機(jī)/服務(wù)器可以被理解為是一個(gè)物理上分布的邏輯整體,它是由客戶機(jī)、服務(wù)器和連接支持部分組成。其中客戶機(jī)是體系結(jié)構(gòu)的核心部分,是一個(gè)面向最終用戶的接口設(shè)備或應(yīng)用程序。它是一項(xiàng)服務(wù)的消耗者,可向其他設(shè)備或應(yīng)用程序提出請求,然后再向用戶顯示所得信息;服務(wù)器是一項(xiàng)服務(wù)的提供者,它包含并管理數(shù)據(jù)庫和通信設(shè)備,為客戶請求過程提供服務(wù);連接支持是用來連接客戶機(jī)與服務(wù)器的部分,如網(wǎng)絡(luò)連接、網(wǎng)絡(luò)協(xié)議、應(yīng)用接口等。客戶機(jī)/服務(wù)器具有以下特點(diǎn)[4]:(1)可實(shí)現(xiàn)資源共享。C/S結(jié)構(gòu)中的資源是分布的,客戶機(jī)與服務(wù)器具有一對多的關(guān)系和運(yùn)行環(huán)境。用戶不僅可存取在服務(wù)器和本地工作站上的資源,還可以享用其他工作站上的資源,實(shí)現(xiàn)了資源共享。(2)可實(shí)現(xiàn)管理科學(xué)化和專業(yè)化。系統(tǒng)中的資源分布在各服務(wù)器和工作站上,可以采用分層管理和專業(yè)化管理相結(jié)合的方式,用戶有權(quán)去充分利用本部門、本領(lǐng)域的專業(yè)知識來參與管理,使得各級管理更加科學(xué)化和專業(yè)化。(3)可快速進(jìn)行信息處理。由于在C/S結(jié)構(gòu)中是一種基于點(diǎn)對點(diǎn)的運(yùn)行環(huán)境,當(dāng)一項(xiàng)任務(wù)提出請求處理時(shí),可以在所有可能的服務(wù)器間均衡地分布該項(xiàng)任務(wù)的負(fù)載。這樣,在客戶端發(fā)出的請求可由多個(gè)服務(wù)器來并行進(jìn)行處理,為每一項(xiàng)請求提供了極快的響應(yīng)速度和較高的事務(wù)吞吐量。(4)能更好地保護(hù)原有的資源。由于C/S是一種開放式的結(jié)構(gòu),可有效地保護(hù)原有的軟、硬件資源。以前,在其他環(huán)境下積累的數(shù)據(jù)和軟件均可在C/S中通過集成而保留使用,并且可以透明地訪問多個(gè)異構(gòu)的數(shù)據(jù)源和自由地選用不同廠家的數(shù)據(jù)應(yīng)用開發(fā)工具,具有高度的靈活性;而以前的硬件亦可完全繼續(xù)使用,當(dāng)在系統(tǒng)中增加硬件資源時(shí),不會減弱系統(tǒng)的能力,同時(shí)客戶機(jī)和服務(wù)器均可單獨(dú)地升級,故具有極好的可擴(kuò)充性。2.4系統(tǒng)實(shí)現(xiàn)的關(guān)鍵技術(shù)2.4.1ODBC接口技術(shù)數(shù)據(jù)庫管理系統(tǒng)發(fā)展到了今天,可以說已經(jīng)到了極致,諸如國際國內(nèi)的主流數(shù)據(jù)庫管理系統(tǒng)ORACLE、SYBASE、INFORMIX、INGRES、DB2等等,數(shù)據(jù)庫系統(tǒng)的技術(shù)已經(jīng)非常成熟,不同的數(shù)據(jù)庫管理系統(tǒng)都占據(jù)著各自的市場。這給人們帶來更大選擇自由度的同時(shí),也帶來了不少問題。對于管理信息系統(tǒng)和數(shù)據(jù)庫應(yīng)用系統(tǒng)的開發(fā),人們往往根據(jù)實(shí)際需求和習(xí)慣喜好采用不同的數(shù)據(jù)庫系統(tǒng)。應(yīng)用這些系統(tǒng),各單位各部門投入大量的人力、物力,相繼完成了一些管理系統(tǒng)。為了保護(hù)過去的投資,利用已建立的信息系統(tǒng),迫切需要一種能訪問多種數(shù)據(jù)庫的操作平臺,以便建立更大、更完備、更全面的信息管理系統(tǒng)。為了適應(yīng)這種需求,Microsoft推出了開放數(shù)據(jù)庫互連技術(shù)[5](OpenDataBaseConnectivity,簡稱ODBC)。開放數(shù)據(jù)庫互連技術(shù)實(shí)際上是一個(gè)數(shù)據(jù)庫訪問庫,它包含訪問不同數(shù)據(jù)庫所要求的ODBC驅(qū)動程序。應(yīng)用程序要操作不同類型的數(shù)據(jù)庫,只要調(diào)用ODBC所支持的函數(shù),動態(tài)鏈接到不同的驅(qū)動程序上即可。隨著ODBC技術(shù)的推出,許多開發(fā)工具軟件都把ODBC技術(shù)集成到自己的軟件中,如VisualBasic、VisualC++、PowerBuilder等等。ODBC基本概念:ODBC(OpenDatabaseConnectivity,開放數(shù)據(jù)庫互連)是微軟公司開放服務(wù)結(jié)構(gòu)(WOSA,WindowsOpenServicesArchitecture)中有關(guān)數(shù)據(jù)庫的一個(gè)組成部分,它建立了一組規(guī)范,并提供了一組對數(shù)據(jù)庫訪問的標(biāo)準(zhǔn)API(應(yīng)用程序編程接口)。這些API利用SQL來完成其大部分任務(wù)。ODBC本身也提供了對SQL語言的支持,用戶可以直接將SQL語句送給ODBC。一個(gè)基于ODBC的應(yīng)用程序?qū)?shù)據(jù)庫的操作不依賴任何DBMS,不直接與DBMS打交道,所有的數(shù)據(jù)庫操作由對應(yīng)的DBMS的ODBC驅(qū)動程序完成。也就是說,不論是FoxPro、Access還是Oracle數(shù)據(jù)庫,只要有相應(yīng)的ODBC驅(qū)動程序支持,均可用ODBCAPI進(jìn)行訪問。MicrosoftDeveloperStudio為大多數(shù)標(biāo)準(zhǔn)的數(shù)據(jù)庫格式提供了32位ODBC驅(qū)動器,包括Oracle、SQLServer、Access、Paradox、dBase、FoxPro、Excel以及MicrosoftText等。由此可見,ODBC的最大優(yōu)點(diǎn)是能以統(tǒng)一的方式處理幾乎所有的數(shù)據(jù)庫。一個(gè)完整的ODBC由下列幾個(gè)部件組成[6]:應(yīng)用程序(Application)。負(fù)責(zé)用戶與用戶接口之間的交互操作,調(diào)用ODBC函數(shù)以給出SQL請求并提取結(jié)果以及進(jìn)行錯(cuò)誤處理。ODBC管理器(Administrator)。該程序位于Windows95控制面板(ControlPanel)的32位ODBC內(nèi),其主要任務(wù)是管理安裝的ODBC驅(qū)動程序和管理數(shù)據(jù)源。驅(qū)動程序管理器(DriverManager)。是ODBC中最重要的部件,負(fù)責(zé)為應(yīng)用程序加載和調(diào)用驅(qū)動程序。它的功能是通過間接調(diào)用函數(shù)和使用動態(tài)鏈接庫(DLL)來實(shí)現(xiàn)的。ODBCAPI。一組對數(shù)據(jù)庫訪問的標(biāo)準(zhǔn)應(yīng)用程序編程接口。ODBC驅(qū)動程序。是一些DLL,執(zhí)行ODBC函數(shù)調(diào)用,呈送SQL請求給指定的數(shù)據(jù)源,并將結(jié)果返回給應(yīng)用程序。驅(qū)動程序也負(fù)責(zé)與任何訪問數(shù)據(jù)源的必要軟件層進(jìn)行交互作用,這種軟件層包括與底層網(wǎng)絡(luò)或文件系統(tǒng)接口的軟件。數(shù)據(jù)源。數(shù)據(jù)源包含了數(shù)據(jù)庫位置和數(shù)據(jù)庫類型等信息,實(shí)際上是一種數(shù)據(jù)連接的抽象。ODBC通過引入“數(shù)據(jù)源”的概念解決了網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)和主機(jī)的大范圍差異問題。各部件之間的關(guān)系如圖1所示。應(yīng)用程序要訪問一個(gè)數(shù)據(jù)庫,首先必須用ODBC管理器注冊一個(gè)數(shù)據(jù)源,管理器根據(jù)數(shù)據(jù)源提供的數(shù)據(jù)庫位置、數(shù)據(jù)庫類型及ODBC驅(qū)動程序等信息,建立起ODBC與具體數(shù)據(jù)庫的聯(lián)系。這樣,只要應(yīng)用程序?qū)?shù)據(jù)源名提供給ODBC,ODBC就能建立起與相應(yīng)數(shù)據(jù)庫的連接。在ODBC中,ODBCAPI不能直接訪問數(shù)據(jù)庫,必須通過驅(qū)動程序管理器與數(shù)據(jù)庫交換信息。驅(qū)動程序管理器負(fù)責(zé)將應(yīng)用程序?qū)DBCAPI的調(diào)用傳遞給正確的驅(qū)動程序,而驅(qū)動程序在執(zhí)行完相應(yīng)的操作后,將結(jié)果通過驅(qū)動程序管理器返回給應(yīng)用程序。數(shù)據(jù)源名數(shù)據(jù)源名(DSN)應(yīng)用程序ODBC管理器ODBCAPI(SQL)驅(qū)動程序管理器ODBC驅(qū)動程序數(shù)據(jù)源應(yīng)用層ODBC層數(shù)據(jù)層圖1ODBC組成部件圖2.4.2ADO數(shù)據(jù)庫訪問技術(shù)1、ADO簡介ADO全稱為ActiveXDateObject,它是一項(xiàng)數(shù)據(jù)庫訪問技術(shù)[7]。它提供了系統(tǒng)開發(fā)人員實(shí)時(shí)存取數(shù)據(jù)庫的能力。ADO非常簡化的接口使得原本復(fù)雜冗長的程序編寫工作變得簡單易學(xué),并且強(qiáng)有力地支持了各種應(yīng)用程序的復(fù)雜性的需求。ADO使用RecordSet(記錄集)對象作為數(shù)據(jù)的主要界面。ADO可以使用VBScript、JavaScript等腳本語言來控制數(shù)據(jù)庫的存取以及輸出查詢結(jié)果。2、ADO的操作流程,典型的ADO操作流程如下:(1)連接到數(shù)據(jù)源。(2)指定訪問數(shù)據(jù)源的命令,可以同時(shí)指定變量參數(shù),通常涉及Command對象。(3)執(zhí)行命令,例如一個(gè)Select腳本。(4)如果命令使數(shù)據(jù)按表中的行的形式返回,則將這些行存儲在易于檢查、操作或更改的緩存中。(5)在適當(dāng)?shù)那闆r下,可以通過修改緩存行的內(nèi)容一更新數(shù)據(jù)源。(6)提供常規(guī)方法檢測錯(cuò)誤,涉及Error對象。3、連接數(shù)據(jù)庫在Delphi中,連接數(shù)據(jù)源有兩種方式[8],一種是通過數(shù)據(jù)庫文件DSN連接數(shù)據(jù)庫,另一種是直接連接數(shù)據(jù)庫。這兩種方式都需要用到ADO的Connection對象。(1)通過數(shù)據(jù)庫文件DSN來連接數(shù)據(jù)庫,首先要配置數(shù)據(jù)庫文件DSN,連接代碼如下:<%設(shè)置DSN的物理路徑Strconn=”filedsn=d”\programfiles\commonfiles\BorlandShared\databaseDesktopWorkdir\user.dsn”Setconn=server.createobject(“adodb.connection”)Conn.openstrconn%>(2)直接連接到數(shù)據(jù)源,連接代碼如下:<%Strconn=”driver={MicrosoftSQLdriver(*.mdf);dbq=”&mappath(“database/rsgzmis.MDF”)Setobjconn=server.createobject(“adodb.connection”)Objconn.openstrcon%>

3需求分析3.1系統(tǒng)的總體策劃一個(gè)好的軟件的開發(fā),其策劃是非常關(guān)鍵的,它決定了以后的開發(fā)方向與框架。系統(tǒng)的策劃好比是房子建筑過程中的圖紙,成功的系統(tǒng)策劃是后期進(jìn)行系統(tǒng)開發(fā)與實(shí)現(xiàn)的重要保證。主要從系統(tǒng)功能,結(jié)構(gòu),內(nèi)容,風(fēng)格,流程等方面來考慮。3.1.1系統(tǒng)目標(biāo)系統(tǒng)應(yīng)符合公司人事、工資管理制度,并達(dá)到操作直觀、方便、實(shí)用、安全等要求。從上面的分析可以看出:系統(tǒng)設(shè)計(jì)必須從保證系統(tǒng)的變更性人手,設(shè)計(jì)出一個(gè)易于理解,容易維護(hù)的系統(tǒng)。為了分析具備什么特點(diǎn)的系統(tǒng)易于修改,必須先找出修改一個(gè)系統(tǒng)的困難來自何處。系統(tǒng)的修改,往往是某一個(gè)模塊或某一子系統(tǒng)的細(xì)節(jié)的一些變動,或者是子系統(tǒng)組合關(guān)系的某些變動,更常見的是某一局部的數(shù)據(jù)結(jié)構(gòu)或執(zhí)行語句的修改。這種修改的本身并不困難,困難在于找出需要修改的地方和這一修改對其他部分的影響。我們知道,系統(tǒng)各個(gè)部分之間存在控制、調(diào)用、數(shù)據(jù)交換等種種聯(lián)系。對某一局部的修改,可能直接或間接地影響到系統(tǒng)的其他部分。對A的修改波及B,而對B的修改又可以影響到C,E,……。人們把這種影響形象地稱為“水波效應(yīng)[7]”。因此要進(jìn)行系統(tǒng)某一個(gè)局部的修改,必須十分小心地追蹤這一修改所波及的各個(gè)部分。這是系統(tǒng)難于修改的主要原因。為了使系統(tǒng)容易修改,首先要使其容易被理解,需要注意以下幾個(gè)問題[9]:、以通信功能作為界面設(shè)計(jì)的核心。人機(jī)界面設(shè)計(jì)的關(guān)鍵是使人與計(jì)算機(jī)之間能夠準(zhǔn)確地交流信息。一方面,人向計(jì)算機(jī)輸入信息時(shí)應(yīng)當(dāng)盡量采取自然的方式;另一方面,計(jì)算機(jī)向人傳遞的信息必須準(zhǔn)確,不致引起誤解或混亂。另外,不要把內(nèi)部的處理、加工與人機(jī)界面混在一起(人機(jī)界面程序只是通信),以免互相干擾,影響速度。設(shè)計(jì)MIS時(shí),針對每一個(gè)功能,都要按照模塊化思想,使輸入、處理與輸出“涇渭分明”,充分體現(xiàn)人機(jī)界面的通信功能。這樣設(shè)計(jì)出來的程序不易出錯(cuò),而且易于維護(hù)。報(bào)表打印是MIS必備的功能之一,而且打印之前常常需要計(jì)算。計(jì)算與打印分開設(shè)計(jì),雖然消耗時(shí)間,但易于整個(gè)MIS系統(tǒng)的維護(hù)。2、界面必須始終一致。統(tǒng)一的人機(jī)界面不至于會增加用戶的負(fù)擔(dān),讓用戶始終用同一種方式思考與操作。最忌諱的是每換一個(gè)屏幕用戶就要換一套操作命令與操作方法。例如在整個(gè)系統(tǒng)可以以問號圖標(biāo)表示幫助,以磁盤圖標(biāo)表示存盤,以打印機(jī)圖標(biāo)表示打印等。3、界面必須使用戶隨時(shí)掌握任務(wù)的進(jìn)展情況。人機(jī)界面應(yīng)該能夠告訴用戶軟件運(yùn)行的進(jìn)度。特別是在需要較長時(shí)間的等待時(shí),必須讓用戶了解工作進(jìn)展情況,如可以設(shè)計(jì)已經(jīng)完成了百分之幾的任務(wù)進(jìn)度條等。目前,Windows下的應(yīng)用軟件無論大小,其安裝程序幾乎均做到了這一點(diǎn)。開發(fā)MIS軟件時(shí),這一點(diǎn)很值得借鑒。4、界面友好,使用方便。多數(shù)MIS軟件的數(shù)據(jù)輸入量較大。對于一些相對固定的數(shù)據(jù),不應(yīng)讓用戶頻頻輸入(特別是漢字),而應(yīng)讓用戶用鼠標(biāo)輕松選擇。例如,人事管理系統(tǒng)中的“文化程度”是相對固定的數(shù)據(jù),其值一般取“小學(xué)”、“初中”、“高中”、“大?!?、“大本”、“碩研”、“博研”等。錄入這類數(shù)據(jù)之前,MIS軟件應(yīng)在相應(yīng)位置彈出一個(gè)列表框,待用戶以鼠標(biāo)點(diǎn)擊,而不應(yīng)讓用戶每次都輸入這些漢字。總之,所開發(fā)的MIS在使用過程中,應(yīng)使用戶的數(shù)據(jù)輸入量降至最低限度減少用戶的干預(yù)量。實(shí)踐證明,用戶干預(yù)愈少,MIS系統(tǒng)的滿意程度愈高。3.1.2系統(tǒng)業(yè)務(wù)總體流程維護(hù)員工的基本信息:管理員對員工的員工工號,員工姓名,性別,政治面貌,學(xué)歷,出生日期,所屬部門,部門代碼,部門電話,職稱,職務(wù),入職時(shí)間,身份證號,聯(lián)系電話,家庭住址,手機(jī)號碼,Email,有效標(biāo)志等數(shù)據(jù)進(jìn)行維護(hù)管理。維護(hù)員工工資信息:要求在同一窗口上實(shí)現(xiàn)新員工工資新增和員工工資結(jié)構(gòu)調(diào)整。通過在出盤窗口上點(diǎn)擊右鍵選擇是新增還是修改員工工資信息,動態(tài)改變提交按鈕上顯示的信息,實(shí)現(xiàn)調(diào)整員工工資結(jié)構(gòu)的目的。公司工資管理基本流程如下:數(shù)據(jù)來源:將各部門送達(dá)的員工工資信息包括基本工資、獎(jiǎng)金、水電費(fèi)等作為數(shù)據(jù)來源,分為新增員工工資數(shù)據(jù)和老員工每月修改數(shù)據(jù)。數(shù)據(jù)的輸入:由工作人員通過新員工本月工資增加和老員工上月工資表修改完成。數(shù)據(jù)的統(tǒng)計(jì):由工作人員通過對修改后的上月工資表進(jìn)行計(jì)算得到每個(gè)人的實(shí)發(fā)工資以及總金額。表格的制作:由工作人員以修改、計(jì)算后的在上月工資表為藍(lán)本生成與銀行進(jìn)行數(shù)據(jù)交換的軟件即出盤[10]。同時(shí)可打印工資報(bào)表。在出盤發(fā)生錯(cuò)誤時(shí),要進(jìn)行出盤回滾操作,也就是恢復(fù)出盤前的數(shù)據(jù)存儲,刪除存在的下個(gè)月的工資記錄,以及本月的出盤成功標(biāo)志參數(shù)。其流程圖如圖2所示。維護(hù)員工基本信息維護(hù)員工基本信息維護(hù)員工工資信息數(shù)據(jù)統(tǒng)計(jì)表格制作出盤開始結(jié)束圖2業(yè)務(wù)總體流程圖3.2功能需求分析整個(gè)系統(tǒng)從總體上分為服務(wù)器端和客戶端兩部分,是一個(gè)基于C/S模式的人事工資管理系統(tǒng)。系統(tǒng)用戶應(yīng)該具有不同等級,即不同的權(quán)限。在服務(wù)器端,系統(tǒng)的主要設(shè)計(jì)就是數(shù)據(jù)庫的設(shè)計(jì),采用SQLServer2000來開發(fā),客戶端應(yīng)用程序通過ODBC數(shù)據(jù)庫接口技術(shù)和ADO數(shù)據(jù)庫訪問技術(shù)來實(shí)現(xiàn)與服務(wù)器端數(shù)據(jù)庫的連接,系統(tǒng)運(yùn)行在Windows平臺上,應(yīng)該有一個(gè)較好的圖形用戶界面,系統(tǒng)應(yīng)該簡單系統(tǒng)應(yīng)該具有很好的可擴(kuò)展性。3.2.1功能模塊分析系統(tǒng)整體上分為服務(wù)器端和客戶端兩部分,服務(wù)器端也就是數(shù)據(jù)庫的設(shè)計(jì)和實(shí)現(xiàn),客戶端即是所有用戶使用的系統(tǒng)前端平臺,兩部分通過輸入IP地址連接數(shù)據(jù)庫實(shí)現(xiàn)通信。論文第5部分會對服務(wù)器端,即數(shù)據(jù)庫功能做詳細(xì)介紹。下面是客戶端的功能模塊介紹。1、人事管理模塊(1)新員工檔案的輸入:增加新員工的基本檔案信息;(2)員工基本信息維護(hù):包括修改、刪除(刪除員工只是將該員工登記為無效,并不要求從表中刪除);(3)員工基本信息查看:普通用戶和管理員都可以進(jìn)行的操作;(4)員工基本信息查詢:支持多條件查詢,可以選擇某一部門、某一職位、某一職稱、學(xué)歷、性別等進(jìn)行查詢,也可以組合查詢,普通用戶和管理員都可以進(jìn)行的操作。(5)員工基本信息打印:對于進(jìn)行員工基本信息查詢得到的結(jié)果,可以對其進(jìn)行打印。(6)人事狀況餅圖[11]:公司人事組成的直觀表示。普通用戶和管理員都能夠進(jìn)行的操作。2、工資管理模塊(1)新員工工資新增;(2)員工工資管理;(3)員工工資查詢:通過輸入月份,員工號,可以對其相應(yīng)的工資進(jìn)行查詢。包括各單項(xiàng)工資賬目,本月合計(jì)賬目。普通用戶和管理員都能夠進(jìn)行的操作。(4)員工月工資單打?。簩T工工資查詢得到的結(jié)果,可以進(jìn)行打印。(5)出盤:按所規(guī)定的格式生成與銀行進(jìn)行數(shù)據(jù)交換的軟件,一般為文本文件;(6)出盤出錯(cuò)回滾:恢復(fù)出盤前的數(shù)據(jù),準(zhǔn)備重新出盤。3、系統(tǒng)維護(hù)功能(1)部門信息維護(hù):實(shí)現(xiàn)靈活的增減部門信息;(2)職務(wù)信息維護(hù):實(shí)現(xiàn)靈活的增減職務(wù)信息;(3)職稱信息維護(hù):實(shí)現(xiàn)靈活的增減職稱信息;(4)工資賬目維護(hù):能夠靈活的改變員工的薪水賬目;(5)用戶管理:包括新增用戶、刪除用戶、修改用戶密碼等。3.2.2系統(tǒng)客戶端功能模塊圖客戶端功能模塊圖如圖3所示。3.3數(shù)據(jù)庫需求分析數(shù)據(jù)庫是信息管理的基礎(chǔ)。數(shù)據(jù)庫的應(yīng)用已越來越廣泛,從小型的事務(wù)處理到大型的信息系統(tǒng)的構(gòu)建都越來越離不開數(shù)據(jù)庫。先進(jìn)的數(shù)據(jù)庫技術(shù)能夠保持系統(tǒng)數(shù)據(jù)的完整性,整體性,安全性和共享性。目前,一個(gè)國家的數(shù)據(jù)庫建設(shè)規(guī)模,數(shù)據(jù)庫信息量的大小,使用的頻度和使用技術(shù)的先進(jìn)程度已成為衡量這個(gè)國家信息化的重用標(biāo)志之一。數(shù)據(jù)庫結(jié)構(gòu)直接關(guān)系到各種功能的實(shí)現(xiàn)和程序運(yùn)行的效率,一個(gè)設(shè)計(jì)良好的數(shù)據(jù)庫,可以使管理系統(tǒng)的實(shí)現(xiàn)變得非常簡單,同時(shí)也可以加快數(shù)據(jù)庫的運(yùn)行速度,在系統(tǒng)的執(zhí)行過程中,可以加快檢索,提高效率。所以說,數(shù)據(jù)庫的設(shè)計(jì)是一個(gè)系統(tǒng)最重要的步驟。系統(tǒng)維護(hù)模塊系統(tǒng)維護(hù)模塊工資賬目維護(hù)職務(wù)信息維護(hù)部門信息維護(hù)職稱信息維護(hù)用戶管理人事工資管理系統(tǒng)工資查詢新員工工資新增老員工工資維護(hù)出盤工資報(bào)表工資管理模塊員工基本信息打印員工基本信息維護(hù)員工基本信息瀏覽員工基本信息查詢?nèi)耸聽顩r餅圖分析企業(yè)員工花名冊人事管理模塊新增用戶修改密碼刪除用戶圖3系統(tǒng)功能模塊圖從使用者的角度來看,信息系統(tǒng)是提供信息,輔助人們對環(huán)境進(jìn)行控制和進(jìn)行決策的系統(tǒng)。數(shù)據(jù)庫是信息系統(tǒng)的核心和基礎(chǔ)。它把信息系統(tǒng)中大量的數(shù)據(jù)按一定的模型組織起來,提供存儲,維護(hù),檢索數(shù)據(jù)的功能。是信息系統(tǒng)可以方便,及時(shí),準(zhǔn)確地從數(shù)據(jù)庫總獲得所需的信息。一個(gè)信息系統(tǒng)各個(gè)部分能否緊密地結(jié)合在一起以其如何結(jié)合,關(guān)鍵在數(shù)據(jù)庫。本系統(tǒng)數(shù)據(jù)庫的設(shè)計(jì)首先應(yīng)保證至少符合三范式要求,還要符合以下幾點(diǎn)要求:1、數(shù)據(jù)的完整性[12]是保證各個(gè)數(shù)據(jù)域的內(nèi)容有效,確保各個(gè)文件或表中的數(shù)據(jù)值的關(guān)系一致、確保數(shù)據(jù)庫中的數(shù)據(jù)可以成功和正確的更新。在數(shù)據(jù)庫的設(shè)計(jì)中包含3個(gè)方面:(1)實(shí)體完整性,就是定義一條記錄為某個(gè)特定表的惟一實(shí)體,也可以成為行完整性,它要求表中所有的記錄都有一個(gè)惟一的標(biāo)志符,即主鍵。(2)域完整性,就是指定一個(gè)數(shù)據(jù)集對于某個(gè)字段是否有效,并且確定該字段是否允許空。(3)參照完整性,維護(hù)主鍵和外鍵的關(guān)系,如果某一記錄被外鍵參考,那么這一記錄不能刪除,也不能修改其主鍵值。2、數(shù)據(jù)安全性:在此數(shù)據(jù)庫的設(shè)計(jì)中主要有兩大方面:(1)用戶標(biāo)識與鑒別即用戶名,每次用戶要求進(jìn)入系統(tǒng)時(shí),由系統(tǒng)進(jìn)行核對,通過鑒定后才能提供機(jī)器使用權(quán);(2)口令即用戶密碼,為了進(jìn)一步核實(shí)用戶,系統(tǒng)要求用戶輸入口令。4概要設(shè)計(jì)4.1概念概要設(shè)計(jì)基礎(chǔ)是完成需求分析后提供的需求說明書,用概念數(shù)據(jù)模型表示數(shù)據(jù)及其相互間的關(guān)系,這種數(shù)據(jù)模型是與DBMS無關(guān)的、面向現(xiàn)實(shí)世界的、易于理解的數(shù)據(jù)模型,其獨(dú)立于計(jì)算機(jī)的數(shù)據(jù)模型,獨(dú)立于計(jì)算機(jī)的軟硬件系統(tǒng),與用戶進(jìn)行交流十分方便。概念性數(shù)據(jù)模型[13]關(guān)心的是如何完整、正確地反映客觀實(shí)際情況,不關(guān)心在數(shù)據(jù)庫中如何實(shí)現(xiàn)。這種數(shù)據(jù)模式能真實(shí)地反應(yīng)用戶要求的實(shí)際情況,是一種容易被人們理解的直觀的數(shù)據(jù)庫結(jié)構(gòu)模式。同時(shí)也是一種相對穩(wěn)定統(tǒng)一的數(shù)據(jù)模式,一般情況下很少變動。概念性數(shù)據(jù)在用戶和設(shè)計(jì)者之間建立了橋梁,是設(shè)計(jì)數(shù)據(jù)庫結(jié)構(gòu)的基礎(chǔ)。概念設(shè)計(jì)中自頂向下的實(shí)體分析方法,即常用的實(shí)體聯(lián)系模型(簡稱E-R模型),對具體數(shù)據(jù)進(jìn)行抽象加工,將實(shí)體集合抽象成實(shí)體類型。用實(shí)體間聯(lián)系反映現(xiàn)實(shí)世界事物間的內(nèi)在聯(lián)系。E-R模型是建立概念性數(shù)據(jù)模型的有力工具。所有局部E-R模式都設(shè)計(jì)好了后,接下來就是把它們綜合成單一的全局概念結(jié)構(gòu)。全局概念結(jié)構(gòu)不僅要支持所有局部E-R模式,而且必須合理地表示一個(gè)完整、一致的數(shù)據(jù)庫概念結(jié)構(gòu)。在得到全局E-R模式后,為了提高數(shù)據(jù)庫系統(tǒng)的效率,還應(yīng)進(jìn)一步依據(jù)處理需求對E-R模式進(jìn)行優(yōu)化。一個(gè)好的全局E-R模式,除能準(zhǔn)確、全面地反映用戶功能需求外,還應(yīng)滿足下列條件:實(shí)體類型的個(gè)數(shù)要盡可能的少;實(shí)體類型所含屬性個(gè)數(shù)盡可能少;實(shí)體類型間聯(lián)系無冗余。通過對企業(yè)員工管理內(nèi)容、工資管理內(nèi)容和過程的分析,本人事工資管理系統(tǒng)系統(tǒng)應(yīng)設(shè)計(jì)的實(shí)體和屬性如下:員工(包括員工工號、員工姓名、學(xué)歷、性別、政治面貌、出生日期、所屬部門、職稱、職務(wù)、入職時(shí)間、身份證號、聯(lián)系電話、家庭住址、手機(jī)號碼、Email、有效標(biāo)志)部門(部門代號、部門名稱)職務(wù)(職務(wù)代號、職務(wù)名稱)職稱(職稱代號、職稱名稱)薪金結(jié)構(gòu)(月份、員工工號、薪水賬目、數(shù)目)薪水賬目(薪水賬目代號、薪水賬目名稱)為了后面數(shù)據(jù)庫的建立,首先對該系統(tǒng)的E-R模型進(jìn)行分析,并給出詳細(xì)圖形表示。1、公司員工E-R模型如圖5所示。員工工號員工工號員工姓名學(xué)歷歷4歷歷性別政治面貌出生日期所屬部門職稱職務(wù)身份證號家庭住址聯(lián)系電話手機(jī)號碼Email有效標(biāo)志員工圖5員工屬性圖2、公司部門E-R模型如圖6所示。部門部門代號部門部門代號部門名稱圖6公司部門屬性圖3、公司職務(wù)E-R模型如圖7所示。職務(wù)職務(wù)代號職務(wù)職務(wù)代號職務(wù)名稱圖7公司職務(wù)屬性圖4、公司職稱E-R模型如圖8所示。職稱職稱職稱代號職稱名稱圖8公司職稱屬性圖公司薪金結(jié)構(gòu)E-R模型如圖9所示。6、公司員工基本信息E-R模型如圖10所示。薪金結(jié)構(gòu)薪水賬目薪金結(jié)構(gòu)薪水賬目月份數(shù)目員工工號圖9公司薪金結(jié)構(gòu)屬性圖薪金結(jié)構(gòu)薪金結(jié)構(gòu)具有N薪水賬目具有職稱職務(wù)員工擁有具有擔(dān)任部門1N11N1N1N圖10公司員工基本信息E-R圖4.2方法概要本人事工資管理系統(tǒng)是采用面向?qū)ο蟮某绦蛟O(shè)計(jì)思想進(jìn)行編制的,整個(gè)系統(tǒng)由若干個(gè)表單、類、報(bào)表以及一個(gè)主菜單組成,有項(xiàng)目管理器統(tǒng)一管理全部程序的編寫和調(diào)試。用戶可以通過主菜單或總表單調(diào)用系統(tǒng)的各項(xiàng)功能。1、面向?qū)ο笤O(shè)計(jì)[14]不再是單純的從代碼的第一行一直編到最后一行,而是考慮如何創(chuàng)建類和對象,利用類和對象來簡化程序設(shè)計(jì),并提供代碼的封裝和可重用性,便于程序的維護(hù)與擴(kuò)展。2、所謂的對象是一種抽象的名稱,用來對應(yīng)實(shí)現(xiàn)世界存在的“東西”。一個(gè)窗口、一個(gè)按鈕、一個(gè)菜單都可視為一個(gè)對象,而按鈕對象、菜單對象、又會出現(xiàn)在窗口對象中,因此按鈕對象、菜單對象便是窗口的組件之一。對象內(nèi)部的數(shù)據(jù)是不能隨意更改的,必須由外部向其傳遞信息,再由對象按其方法加以處理。用戶無需知道其任何細(xì)節(jié),操作是封閉的,對象之間能通過函數(shù)調(diào)用相互通信。3、類可視為一個(gè)產(chǎn)品模具、一個(gè)模塊。在面向?qū)ο笤O(shè)計(jì)中,類是對象的原型,是對象的制作器。類的概念是面向?qū)ο蟪绦蛟O(shè)計(jì)最重要的特征。所謂類,是指由數(shù)據(jù)結(jié)構(gòu)及其相關(guān)操作所形成的集合,描述該類任一對象的共同的行為特征,是對一組性質(zhì)相同的對象的程序描述,概括了對象的共同性質(zhì)和數(shù)據(jù)。4、面向?qū)ο笤O(shè)計(jì)的核心是類的設(shè)計(jì)。例如:可以定義一個(gè)“工資查詢表單”類,該類中可以定義查詢的姓名、年齡、工資等等信息,則以此類為原型可以設(shè)計(jì)出眾多的“工資查詢表單”類的對象實(shí)例,這些實(shí)體都具有類中所定義的特征。5、設(shè)計(jì)的工資管理系統(tǒng)也是建立在一系列類基礎(chǔ)之上的,其編程的思想是:先根據(jù)一定的需要?jiǎng)?chuàng)建一系列的子類或直接調(diào)用Delphi提供的基類,編制程序時(shí),由這些類派生出相應(yīng)的對象,所派生出的對象繼承了其父類所有的功能,而且具有很好的封裝性,這樣就可利用派生出的對象像搭積木一樣來設(shè)計(jì)自己的程序。打個(gè)比方,就比如要制造一臺機(jī)器,首先要制造各種零件的模具,然后用制造好的模具生產(chǎn)出所需的零件,所有這些做完后,剩下的就只是如何把這些零件組裝起來,這樣一臺機(jī)器就很容易制造出來了。實(shí)際編程也是如此。每個(gè)表單都是由一定數(shù)量的對象按某一種方式組合在一起的,程序編制的核心是類的設(shè)計(jì)。

5數(shù)據(jù)庫設(shè)計(jì)數(shù)據(jù)庫設(shè)計(jì)也就是系統(tǒng)服務(wù)器端的設(shè)計(jì),本數(shù)據(jù)庫采用當(dāng)今流行的SQLServer2000來實(shí)現(xiàn)??蛻舳藨?yīng)用程序運(yùn)行時(shí),只需要通過輸入IP地址連接數(shù)據(jù)庫即可實(shí)現(xiàn)其功能。5.1數(shù)據(jù)庫技術(shù)基礎(chǔ)數(shù)據(jù)庫技術(shù)是計(jì)算機(jī)科學(xué)技術(shù)中的重要領(lǐng)域,也是應(yīng)用最廣的技術(shù)之一,而且已經(jīng)成為電子信息系統(tǒng)的重要核心技術(shù)。本章重點(diǎn)論述了數(shù)據(jù)庫系統(tǒng)的基本概念和數(shù)據(jù)庫管理系統(tǒng)。最后介紹了當(dāng)前流行的SQLServer2000的一些情況。數(shù)據(jù)庫系統(tǒng)[15]的基本概念有以下一些:(1)數(shù)據(jù)庫:長期存儲在計(jì)算機(jī)內(nèi)有組織的、大量的、共享的數(shù)據(jù)集合,具有最小的冗余度和較高的數(shù)據(jù)獨(dú)立性。(2)數(shù)據(jù):數(shù)據(jù)是描述事物的符號記錄,是數(shù)據(jù)庫中存儲的基本對象。(3)數(shù)據(jù)庫系統(tǒng):指在數(shù)據(jù)庫系統(tǒng)中引入數(shù)據(jù)庫后的系統(tǒng),一般由數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)、應(yīng)用系統(tǒng)、數(shù)據(jù)庫管理員和數(shù)據(jù)庫用戶構(gòu)成。(4)數(shù)據(jù)結(jié)構(gòu):是所研究的對象類型的集合。這些對象是數(shù)據(jù)庫的組成部分,包括數(shù)據(jù)內(nèi)容和數(shù)據(jù)之間的聯(lián)系兩部分,是對數(shù)據(jù)的靜態(tài)描述。(5)數(shù)據(jù)操作:對數(shù)據(jù)庫中各種對象允許執(zhí)行的操作的集合,包括操作本身和操作的規(guī)則,是對數(shù)據(jù)的靜態(tài)描述。(6)完整性規(guī)則:給定的數(shù)據(jù)及其之間的聯(lián)系具有的制約和依存的規(guī)則,以保證數(shù)據(jù)的正確、有效和相容。(7)數(shù)據(jù)的約束條件:約束條件是一組完整性規(guī)則的集合。數(shù)據(jù)庫管理系統(tǒng)(8)數(shù)據(jù)庫系統(tǒng):是具有數(shù)據(jù)庫管理功能的計(jì)算機(jī)系統(tǒng),它是有關(guān)硬件、軟件、數(shù)據(jù)和人員組合起來的為用戶提供信息服務(wù)的系統(tǒng)。數(shù)據(jù)庫系統(tǒng)是一個(gè)由外模式、概念模式和內(nèi)模式組成的多級系統(tǒng)結(jié)構(gòu)。數(shù)據(jù)庫管理系統(tǒng)應(yīng)該包括以下幾個(gè)方面的內(nèi)容:(9)數(shù)據(jù)庫管理功能:該功能包括系統(tǒng)配置和管理、數(shù)據(jù)存取和更新管理、數(shù)據(jù)完整性管理和數(shù)據(jù)安全性管理。(10)數(shù)據(jù)描述功能:定義數(shù)據(jù)庫的全局邏輯結(jié)構(gòu)、局部邏輯結(jié)構(gòu)和其他各種數(shù)據(jù)庫對象。數(shù)據(jù)庫的查詢及操縱功能:該功能包括數(shù)據(jù)庫檢索和修改。(11)數(shù)據(jù)庫維護(hù)功能:該功能包括數(shù)據(jù)引入引出管理、數(shù)據(jù)庫結(jié)構(gòu)維護(hù)、系統(tǒng)恢復(fù)功能和性能檢測等。5.2數(shù)據(jù)表設(shè)計(jì)作為Borland公司的桌面數(shù)據(jù)庫,SQLServer2000在Delphi中的應(yīng)用非常廣泛,為此我選用SQLServer2000數(shù)據(jù)庫來進(jìn)行數(shù)據(jù)庫的邏輯設(shè)計(jì)。根據(jù)前面定義的實(shí)體及實(shí)體之間的關(guān)系,形成數(shù)據(jù)庫的表格以及各個(gè)表之間的關(guān)系。為了減少數(shù)據(jù)冗余度,將職稱實(shí)體、部門實(shí)體、職務(wù)實(shí)體、薪水賬目實(shí)體放在同一個(gè)表里,以一個(gè)類型字段加以區(qū)分。對個(gè)關(guān)系選擇主健,按照關(guān)系模式的規(guī)范化進(jìn)行規(guī)范,消除數(shù)據(jù)依賴中不合適的部分,使模式中的各關(guān)系模式達(dá)到某種程度的“分離”。1、ygzlb(員工資料表)員工基本信息表用于存儲員工基本信息,為保證數(shù)據(jù)的一致和歷史資料的完整,表的記錄在一般的情況不能被刪除,如果發(fā)生員工離職,只更改其有效標(biāo)志為2(1代表有效員工;2代表無效員工),具體情況如表1所示。表1員工資料表字段序號列名列中文名數(shù)據(jù)類型備注1Ygh員工工號char(6)主鍵2Xm員工姓名Varchar(12)3Xb性別Varchar(2)4Zzmm政治面貌Varchar(4)5Xl學(xué)歷Varchar(12)6Qsrq出生日期Varchar(19)7Ssbm所屬部門Varchar(30)8Zc職稱Varchar(30)9Zw職務(wù)Varchar(30)10Rzsj入職時(shí)間Varchar(19)11Sfzh身份證號Varchar(20)12Gdlxdh聯(lián)系電話Varchar(16)續(xù)表1字段序號列名列中文名數(shù)據(jù)類型備注16Czy操作員Varchar(20)17Czrq操作時(shí)間Varchar(19)13Jtzz家庭住址Varchar(60)14Sjhm手機(jī)號碼Varchar(12)15EmailEmailVarchar(20)2、zwxxb(職務(wù)信息表)職務(wù)信息表用來存儲所有職務(wù)代碼對應(yīng)的職務(wù)名稱,它是員工資料表的子表之一。具體如表2所示。表2職務(wù)信息表字段序號列名列中文名數(shù)據(jù)類型備注1Zw職務(wù)代碼Varchar(10)主鍵2Zwmc職務(wù)名稱Varchar(30)3、zcxxb(職稱信息表)職稱信息表用來存儲所有職務(wù)代碼對應(yīng)的職稱名稱,它是員工資料表的子表之一。具體如表3所示。表3職稱信息表字段序號列名列中文名數(shù)據(jù)類型備注1Zc職稱代碼Varchar(10)主鍵2Zcmc職稱名稱Varchar(30)4、bmxxb(部門信息表)部門信息表也是員工資料表的一個(gè)子表,用來存儲公司部門信息,一個(gè)部門代碼對應(yīng)著唯一的部門名稱和部門電話。具體如表4所示。表4部門信息表字段序號列名列中文名數(shù)據(jù)類型備注1Ssbm所屬部門代碼Varchar(10)主鍵續(xù)表4字段序號列名列中文名數(shù)據(jù)類型備注2Ssbmmc所屬部門名稱Varchar(20)3Ssbmdh部門電話Varchar(10)5、Yhklb(用戶口令表)用戶口令表是為了便于多個(gè)用戶管理該系統(tǒng),建立此表,記錄用戶的登錄工號,口令和用戶權(quán)限。具體如表5所示。表5用戶口令表字段序號列名列中文名數(shù)據(jù)類型備注1

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論