畢業(yè)設計圖書倉庫管理信息系統(tǒng)設計_第1頁
畢業(yè)設計圖書倉庫管理信息系統(tǒng)設計_第2頁
畢業(yè)設計圖書倉庫管理信息系統(tǒng)設計_第3頁
畢業(yè)設計圖書倉庫管理信息系統(tǒng)設計_第4頁
畢業(yè)設計圖書倉庫管理信息系統(tǒng)設計_第5頁
已閱讀5頁,還剩56頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、圖書倉庫管理系統(tǒng)摘 要本系統(tǒng)主要完成對圖書倉庫的庫存管理,包括圖書入庫、出庫、庫存,員工信息,供應商信息以及密碼管理等六個方面。系統(tǒng)可以完成對各類信息的瀏覽、查詢、添加、刪除、修改、報表等功能。系統(tǒng)的核心是入庫、庫存和出庫三者之間的聯(lián)系,每一個表的修改都將聯(lián)動的影響其它的表,當完成入庫或出庫操作時系統(tǒng)會自動地完成庫存的修改。查詢功能也是系統(tǒng)的核心之一,在系統(tǒng)中即有單條件查詢和多條件查詢,也有精確查詢和模糊查詢,系統(tǒng)不僅有靜態(tài)的條件查詢,也有動態(tài)生成的條件查詢,其目的都是為了方便用戶使用。系統(tǒng)有完整的用戶添加、刪除和密碼修改功能,并具備報表打印功能。系統(tǒng)采用Microsoft Office中的A

2、ccess 2000來設計數(shù)據(jù)庫,并使用當前優(yōu)秀的開發(fā)工具Delphi 6.0 ,它有著最為靈活的數(shù)據(jù)庫結構,對數(shù)據(jù)庫應用有著良好的支持。論文主要介紹了本課題的開發(fā)背景,所要完成的功能和開發(fā)的過程。重點的說明了系統(tǒng)設計的重點、設計思想、難點技術和解決方案。關鍵字:數(shù)據(jù)庫,SQL語言,Delph 6,數(shù)據(jù)庫組件,倉庫管理目 錄第一章 引言 11.1 課題來源 11.2 開發(fā)工具的選擇 21.3 所做的主要工作 3第二章 數(shù)據(jù)庫概論 42.1 數(shù)據(jù)庫的發(fā)展 4 2.1.1 數(shù)據(jù)庫的發(fā)展 4 2.1.2 數(shù)據(jù)庫階段的特點 5 2.1.3 數(shù)據(jù)庫技術 62.2 數(shù)據(jù)庫理論基礎 7 2.2.1 數(shù)據(jù)庫模

3、型 7 2.2.2 數(shù)據(jù)庫體系結構 10 2.2.3 數(shù)據(jù)的獨立性 11 2.2.4 范式 112.3 SQL語言基礎 13 2.3.1 SQL簡介 13 2.3.2 SQL查詢 13 2.3.3 SQL數(shù)據(jù)更新 14第三章數(shù)據(jù)庫開發(fā)工具 163.1 Delphi 6.0 簡介 163.2 Delphi 6.0 控件 173.2.1 ADO數(shù)據(jù)訪問組件 17 3.2.2 數(shù)據(jù)控制類DataControl 18 3.2.3 數(shù)據(jù)訪問類DataAccess 18 3.2.4 SQL語言在Delphi中的應用 193.3 Access 簡介 21第四章 系統(tǒng)總體設計 234.1 系統(tǒng)需求分析 234

4、.2 系統(tǒng)概要設計 25 4.2.1 系統(tǒng)結構設計 25 4.2.2 數(shù)據(jù)庫設計 27 ER圖設計 27 數(shù)據(jù)庫表格設計294.3系統(tǒng)詳細設計34第五章 系統(tǒng)應用程序設計 375.1 系統(tǒng)窗體模塊組成375.2 數(shù)據(jù)模塊窗體設置385.3 主窗體功能模塊的實現(xiàn)395.4 入庫、出庫窗體模塊的實現(xiàn)435.5 查詢功能的實現(xiàn)515.6 系統(tǒng)登陸窗體模塊的實現(xiàn)525.7 用戶管理功能的實現(xiàn)54 5.7.1 用戶管理主窗體 545.7.2 密碼修改窗體模塊的實現(xiàn) 54 5.7.3 用戶注冊窗體模塊的實現(xiàn) 55 5.7.4 用戶注銷窗體模塊的實現(xiàn) 57結束語 59致謝 6

5、0參考文獻 61 第一章 引 言 1.1 課題來源隨著社會經(jīng)濟的迅速發(fā)展和科學技術的全面進步,計算機事業(yè)的飛速發(fā)展,以計算機與通信技術為基礎的信息系統(tǒng)正處于蓬勃發(fā)展的時期。隨著經(jīng)濟文化水平的顯著提高,人們對生活質量及工作環(huán)境的要求也越來越高。書籍做為人類的精神食糧,在現(xiàn)代社會中越來越受到重視,大量的書籍出現(xiàn)在市場上,人們有了各種各樣不同的選擇。與此同時,為了管理大量的圖書,圖書倉庫也大量的出現(xiàn),倉庫的管理問題也就提上了日程。隨著圖書的大量增加,其管理難度也越來越大,如何優(yōu)化倉庫的日常管理也就成為了一個大眾化的課題。在計算機飛速發(fā)展的今天,將計算機這一信息處理利器應用于倉庫的日常管理已是勢必所然

6、,而且這也將為倉庫管理帶來前所未有的改變,它可以帶來意想不到的效益,同時也會為企業(yè)的飛速發(fā)展提供無限潛力。采用計算機管理信息系統(tǒng)已成為倉庫管理科學化和現(xiàn)代化的重要標志,它給企業(yè)管理來了明顯的經(jīng)濟效益和社會效益。主要體現(xiàn)在:極大提高了倉庫工作人員的工作效率,大大減少了以往入出存流程繁瑣,雜亂,周期長的弊端。基于倉庫管理的全面自動化,可以減少入庫管理、出庫管理及庫存管理中的漏洞,可以節(jié)約不少管理開支,增加企業(yè)收入。倉庫的管理的操作自動化和信息的電子化,全面提高了倉庫的管理水平。隨著我國改革開放的不斷深入,經(jīng)濟飛速的發(fā)展,企業(yè)要想生存、發(fā)展,要想在激烈的市場競爭中立于不敗之地,沒有現(xiàn)代化的管理是萬萬

7、不行的,倉庫管理的全面自動化、信息化則是其中極其重要的部分。為了加快倉庫管理自動化的步伐,提高倉庫的管理業(yè)務處理效率,建立倉庫管理系統(tǒng)已變得十分心要。入庫、庫存、出庫還是現(xiàn)在企業(yè)圖書倉庫管理的常規(guī)基本模式,雖然,最近又出現(xiàn)了很多新的管理模式,如:基于零庫存思想的沃爾瑪特管理方式,但這些新的思想在中國大部分企業(yè)的管理中還是難以實現(xiàn)的。所以如何設計好倉庫管理系統(tǒng),盡可能地減少倉庫管理的重復性和低效性就成為當前最為重要的問題。圖書倉庫管理的核心是入庫、庫存和出庫之間的聯(lián)系,如何處理好三者之間的關系是系統(tǒng)最為關鍵的部分。另外,員工信息和供應商信息管理也是倉庫管理中一個必不可少的部分,它提供著與入庫和出

8、庫相關的地一些信息,使得整個系統(tǒng)更加完整,更加實用。通過對倉庫管理日常工作的詳細調查,搜集了大量的資料,從系統(tǒng)結構的組織,功能的實現(xiàn),技術的要求以及可行性等多方面進行考慮,認為本課題是一個適應現(xiàn)今圖書倉庫管理需求的計算機信息管理系統(tǒng),具有一定的實際開發(fā)價值和使用價值。1.2 開發(fā)工具的選擇自Java誕生以來,隨著Internet技術的普及和應用需求的變化,以第四代語言為主的應用開發(fā)產(chǎn)品發(fā)生了較大的變化,它們不僅已成為人們開發(fā)應用的開發(fā)工具,而且很多產(chǎn)品已發(fā)展成為一種強有力的應用開發(fā)環(huán)境。這些新型的開發(fā)工具通常以一種集成軟件包的形式提供給開發(fā)人員,被稱為Studio(工作室)或Suite(程序組

9、)。例如,微軟的Visual Studio 6.0,Borland公司的Delphi 6.0等數(shù)據(jù)庫輔助開發(fā)工具。 現(xiàn)在,市場上可以選購的應用開發(fā)產(chǎn)品很多,流行的也有數(shù)十種。目前在我國市場上最為流行、使用最多、最為先進的可用作企業(yè)級開發(fā)工具的產(chǎn)品有:Microsoft公司的Visual Basic 6.0版Microsoft公司的Visual C+6.0版Borland公司的Delphi 6.0版在目前市場上這些眾多的程序開發(fā)工具中,有些強調程語言的彈性與執(zhí)行效率;有些則偏重于可視化程序開發(fā)工具所帶來的便利性與效率的得高,各有各的優(yōu)點和特色,也滿足了不同用戶的需求。然而,語言的彈性和工具的便利

10、性是密不可分的,只有便利的工具,卻沒有彈性的語言作支持,許多特殊化的處理動作必需要耗費數(shù)倍的工夫來處理,使得原來所標榜的效率提高的優(yōu)點失去了作用;相反,如果只強調程語言的彈性,卻沒有便利的工具作配合,會使一些即使非常簡單的界面處理動作,也會嚴重地浪費程序設計師的寶貴時間。而Delphi是一個非常理想選擇。Delphi 6 是操作系統(tǒng)中快速應用開發(fā)環(huán)境的最新版本。它也是當前Windows平臺上第一個全面支持最新Web服務的快速開發(fā)工具。無論是企業(yè)級用戶,還是個人開發(fā)者,都能夠利用Delphi 6 輕松、快捷地構建新一代電子商務應用。Delphi 6 是惟一支持所有新出現(xiàn)的工業(yè)標準的RAD環(huán)境,包

11、括XML(擴展標記語言)/XSL(可擴展樣式語言),SOAP(簡單對象存取協(xié)議)和WSDL(Web服務器描述語言)等。Delphi 6 是可視化的快速應用程序開發(fā)語言,它提供了可視化的集成開發(fā)環(huán)境,這一環(huán)境為應用程序設計人員提供了一系列靈活而先進的工具,可以廣泛地用于種類應用程序設計。在Delphi 6 的集成開發(fā)環(huán)境中,用戶可以設計程序代碼、運行程序、進行程序錯誤的調試等,可視化的開發(fā)方法降低了應用程序開發(fā)的難度。Delphi的基礎編程語言是具有面向對象特性的Pascal語言,即Object Pascal 。Object Pascal具有代碼穩(wěn)定、可讀性好、編譯速度快等優(yōu)點,并將面向對象的概

12、念移植到了Pascal語言中,使這種基礎語言有了新的發(fā)展空間。使用Delphi 6.0 ,我們幾乎可以作任何事情,還可以撰寫種各種類型的應用程序,動態(tài)鏈接庫(DLL)、CON、或CORBA對象,CGI/ISAPI程序,Microsoft Back Office應用程序。程序的規(guī)模小到簡單的個人數(shù)據(jù)庫應用,大到復雜的企業(yè)的多層次分布式系統(tǒng),都可以使用Delphi進行開發(fā),其友好的集成開發(fā)界面,可視化的雙向開發(fā)模式,良好的數(shù)據(jù)庫應用支持高效的程序開發(fā)和程序運行,備受廣大程序開發(fā)人員的好評。尤其是Delphi對數(shù)據(jù)庫應用的強大支持,大大提高了數(shù)據(jù)庫應用軟件開發(fā)的效率,縮短了開發(fā)周期,深受廣大數(shù)據(jù)庫應

13、用程序設計人員的喜愛。Delphi為數(shù)據(jù)庫應用開發(fā)人員提供了豐富的數(shù)據(jù)庫開發(fā)組件,使數(shù)據(jù)庫應用開發(fā)功能更強大,控制更靈活,編譯后的程序運行速度更快。1.3 本文所做工作引言部分介紹了本系統(tǒng)的課題來源以及對數(shù)據(jù)庫開發(fā)工具的選擇。第二章介紹了數(shù)據(jù)庫的發(fā)展,關系數(shù)據(jù)庫,數(shù)據(jù)庫體系結構,并系統(tǒng)介紹了SQL語言,為設計和理解應用程序做了鋪墊。第三章系統(tǒng)介紹了Delphi 6.0及其部分控件,SQL語言在Delphi 6.0中的應用,以及Access等。第四章是本文的主體,按照軟件工程的要求,從需求分析開始,經(jīng)過概要設計最后到詳細設計,完成對整個系統(tǒng)的設計。第五章根據(jù)第四章的設計結果利用Access 20

14、00和Delphi 6.0進行了具體的窗體和應用程序設計。總結部分介紹了設計體會和編程體會,并指出了系統(tǒng)設計中的不足和改進的方向 第二章 數(shù)據(jù)庫概論2.1 數(shù)據(jù)庫的發(fā)展數(shù)據(jù)庫處理在信息系統(tǒng)的研究中一直是非常重要的主題,然而,近年來,隨著World Wide Web(WWW)的猛增及Internet技術的迅速發(fā)展,使得數(shù)據(jù)庫技術之時成為最熱門技術之一。數(shù)據(jù)庫技術能使Internet應用超越具有早期應用特點的簡單的發(fā)布。同時,Internet技術提供了一種向用戶發(fā)布數(shù)據(jù)庫內容的標準化的訪問方法。這些技術沒有脫離經(jīng)典數(shù)據(jù)庫技術的要求。它們只是加重了數(shù)據(jù)庫技術的重要性。數(shù)據(jù)庫的設計和開發(fā)及包括藝術有包

15、括工程。理解用戶的需求,然后,把它們轉變?yōu)橛行У臄?shù)據(jù)庫設計是一個藝術過程。把設計轉變?yōu)閷嶋H的數(shù)據(jù)庫,并且這些數(shù)據(jù)庫帶有功能完備、高效能的應用,是一個工程過程。數(shù)據(jù)庫的目的是幫助人們跟蹤事務。經(jīng)典的數(shù)據(jù)庫應用涉及諸如訂單、顧客、工作、員工、學生、電話之類的項,或其它數(shù)據(jù)量較大、需要密起關注的事務。最近,由于數(shù)據(jù)庫的普及,數(shù)據(jù)庫技術已經(jīng)被應用到了新的領域,諸如用于Internet的數(shù)據(jù)庫或用于公司內聯(lián)網(wǎng)的數(shù)據(jù)庫。數(shù)據(jù)庫也被越來越多地應用于生成和維護多媒體應用程序上。計算機的數(shù)據(jù)處理應用,首先要把大量的信息以數(shù)據(jù)形式存放在存儲器中。存儲器的容量、存儲速率直接影響到數(shù)據(jù)管理技術的發(fā)展。從1956年生產(chǎn)

16、出第一臺計算機到現(xiàn)在,存儲器的發(fā)展,為數(shù)據(jù)庫技術提供了良好的物質基礎。使用計算機以后,數(shù)據(jù)處理的速度和規(guī)模,無論是相對于手工方式,還是機械方式,都有無可比擬的優(yōu)勢。通常在數(shù)據(jù)處理中,計算是比較簡單的而數(shù)據(jù)的管理卻比較復雜。數(shù)據(jù)管理是指數(shù)據(jù)的收集、整理、組織、存儲、維護、檢索、傳送等操作,這部分操作是數(shù)據(jù)處理業(yè)務的基本環(huán)節(jié),而且是任何數(shù)據(jù)處理業(yè)務中必不可少的共有部分。數(shù)據(jù)管理技術的優(yōu)劣,將直接影響數(shù)據(jù)處理的效率。2.1.1 數(shù)據(jù)庫的發(fā)展數(shù)據(jù)管理技術的發(fā)展,與硬件(主要是外存)、軟件、計算機應用的范圍有密切的聯(lián)系。數(shù)據(jù)管理技術的發(fā)展經(jīng)過三個階段:人工管理階段、文件系統(tǒng)階段和數(shù)據(jù)庫階段。人工管理階段

17、和文件系統(tǒng)階段都有著相當多的缺陷,諸如數(shù)據(jù)冗余性 ,數(shù)據(jù)不一致性以及數(shù)據(jù)聯(lián)系弱等等。也正是由于這些原因,促使人們研究新的數(shù)據(jù)管理技術,從而產(chǎn)生了數(shù)據(jù)庫技術。20世紀60年代末發(fā)生的三件大事,層次模型IMS系統(tǒng)的推出、關于網(wǎng)狀模型DBTG報告的發(fā)表以及關于關系模型論文的連續(xù)發(fā)表標志著數(shù)據(jù)管理技術進入數(shù)據(jù)庫階段。進入70年代以后,數(shù)據(jù)庫技術得到迅速發(fā)展,開發(fā)了許多有效的產(chǎn)品并投入運行。數(shù)據(jù)庫系統(tǒng)克服了文件系統(tǒng)的缺陷,提供了對數(shù)據(jù)更高級更有效的管理。當進入數(shù)據(jù)庫階段后,隨著數(shù)據(jù)管理規(guī)模一再擴大,數(shù)據(jù)量急劇增加,為了提高效率,開始時,人們只是對文件系統(tǒng)加以擴充,在應用文件中建立了許多輔助索引,形成倒排

18、文件系統(tǒng)。但這并不能最終解決問題。在20世紀60年代末,磁盤技術取得重要進展,具有數(shù)百兆容量和快速存取的磁盤陸續(xù)進入市場,成本也不高,為數(shù)據(jù)庫技術的產(chǎn)生提供了良好的物質條件。2.1.2 數(shù)據(jù)庫階段的特點(1)減少數(shù)據(jù)的重復(Redundancy can be reduced)當在一個非數(shù)據(jù)庫系統(tǒng)當中,每一個應用程序都有屬于他們自己的文件,由于無法有系統(tǒng)建立的數(shù)據(jù),因此常常會造成存儲數(shù)據(jù)的重復與浪費。例如:在一家公司當中,人事管理程序與工資管理程序或許都會使用到職員與部門的信息或文件,而我們可以運用數(shù)據(jù)庫的方法,把這兩個文件整理起來,以減少多余的數(shù)據(jù),過度地占用存儲空間。(2)避免數(shù)據(jù)的不一致(

19、Inconsistency can avoid)本項的特色,可以說是延伸前項的一個特點,要說明這樣的一個現(xiàn)象,我們可以從下面這個實例來看:若是在同一家公司當中,職員甲在策劃部門工作,且職員甲的記錄同時被存放在數(shù)據(jù)庫的兩個地方,而數(shù)據(jù)庫管理系統(tǒng)卻沒有對這樣重要的情況加以控制,當其中一條數(shù)據(jù)庫被修改時,便會造成數(shù)據(jù)的不一致,但是,對于一個健全的數(shù)據(jù)庫管理系統(tǒng)而言,將會對這樣的情況加以控制,但有時并不需要刻意消除這種情形,應當視該數(shù)據(jù)庫的需求與效率來決定。 (3)數(shù)據(jù)共享(Data shared)對于數(shù)據(jù)共享的意義,并不是只有針對數(shù)據(jù)庫設計的應用程序,可以使用數(shù)據(jù)庫中的數(shù)據(jù),對于其他撰寫好的應用程序

20、,同樣可以對相同數(shù)據(jù)庫當中的數(shù)據(jù)進行處理,進而達到數(shù)據(jù)共享的目的。(4)強化數(shù)據(jù)的標準化(Standard can be enforced)由數(shù)據(jù)庫管理系統(tǒng),對數(shù)據(jù)做出統(tǒng)籌性的管理,對于數(shù)據(jù)的格式與一些存儲上的標準進行控制,如此一來,對于不同的環(huán)境的數(shù)據(jù)交換(Data Interchange)上將有很大的幫助,也能提高數(shù)據(jù)處理的效率。(5)實踐安全性的管理(Security restriction can be applied)通過對數(shù)據(jù)庫完整的權限控制,數(shù)據(jù)庫管理者可以確認所有可供用戶存取數(shù)據(jù)的合法途徑渠道,并且可以事先對一些較重要或關鍵性的數(shù)據(jù)進行安全檢查,以確保數(shù)據(jù)存取時,能夠將任何不當

21、損毀的情形降至最低。(6)完整性的維護(Integrity can be maintained)所謂完整性的問題,就是要確認某條數(shù)據(jù)在數(shù)據(jù)庫當中,是正確無誤的。正如(2)所述,若是無法控制數(shù)據(jù)的不一致性,便會產(chǎn)生完整性不足的問題,所以,我們會發(fā)現(xiàn),當數(shù)據(jù)重復性高的時候,數(shù)據(jù)不完整的情形也會增加,當然,若是數(shù)據(jù)庫的功能完整,將會大大地提高數(shù)據(jù)完整性,也會增加數(shù)據(jù)庫的維護能力與維護簡便性。(7)需求沖突會獲得平衡(Conflicting requirements can be balance)在一個較大型的企業(yè)當中,用戶不同的需求,往往會造成系統(tǒng)或數(shù)據(jù)庫在設計上的困擾,但是一個合適的數(shù)據(jù)庫系統(tǒng),可

22、以通過數(shù)據(jù)庫管理員的管理,將會有效地整理各方面的信息,對于一些較重要的應用程序,可以適時地提供較快速的數(shù)據(jù)存取方法與格式,以平衡多個用戶在需求上的沖突。上述七個方面構成了數(shù)據(jù)庫系統(tǒng)的主要特征。這個階段的程序和數(shù)據(jù)間的聯(lián)系可用下圖表示: 2.1.3 數(shù)據(jù)庫技術從文件系統(tǒng)發(fā)展到數(shù)據(jù)庫系統(tǒng)是信息處理領域的一個重大變化。在文件系統(tǒng)階段,人們關注的中心問題是系統(tǒng)功能的設計,因而程序設計處于主導地位,數(shù)據(jù)只起著服從程序需要的作用。在數(shù)據(jù)庫方式下,信息處理觀念已為新體系所取代,數(shù)據(jù)占據(jù)了中心位置。數(shù)據(jù)結構的設計成為信息系統(tǒng)首先關心的問題,而利用這些數(shù)據(jù)的應用程序設計則退居到以既定的數(shù)據(jù)結構為基礎的外圍地位。

23、目前世界上已有數(shù)百萬個數(shù)據(jù)庫系統(tǒng)在運行,其應用已經(jīng)深入到人類社會生活的各個領域,從企業(yè)管理、銀行業(yè)務、資源分配、經(jīng)濟預測一直到信息檢索、檔案管理、普查統(tǒng)計等。并在通信網(wǎng)絡基礎上,建立了許多國際性的聯(lián)機檢索系統(tǒng)。我國20世紀90年代初在全國范圍內裝備了12個以數(shù)據(jù)庫技術為基礎的大型計算機系統(tǒng),這些系分布在郵電、計委、銀行、電力、鐵路、氣象、民航、情報、公安、軍事、航天和財稅等行業(yè)。數(shù)據(jù)庫技術還在不斷的發(fā)展,并且不斷地與其它計算機技術相互滲透。數(shù)據(jù)庫技術與網(wǎng)絡通信技術相結合,產(chǎn)生了分布式數(shù)據(jù)庫系統(tǒng)。數(shù)據(jù)庫技術與面向對象技術相結合,產(chǎn)生了面向對象數(shù)據(jù)庫系統(tǒng)。在數(shù)據(jù)庫技術中有四個名詞,其概念應該分清。

24、(1)數(shù)據(jù)庫(database,DB):DB是統(tǒng)一管理的相關數(shù)據(jù)的集合。DB能為各種用戶共享,具有最小冗余度,數(shù)據(jù)間聯(lián)系密切,而又有較高的數(shù)據(jù)獨立性。(2)數(shù)據(jù)庫管理系統(tǒng)(Database Management System,DBMS):DBMS是位于用戶與操作系統(tǒng)之間的一層數(shù)據(jù)管理軟件,為用戶或應用程序提供訪問DB的方法,包括DB的建立、查詢、更新及各種數(shù)據(jù)控制。DBMS總是基于某種數(shù)據(jù)模型,可以分為層次型、網(wǎng)狀型、關系型和面向對象型DBMS。(3)數(shù)據(jù)庫系統(tǒng)(Database System,DBS):DBS是實現(xiàn)有組織地、動態(tài)地存儲大量關聯(lián)數(shù)據(jù),方便多用戶訪問的計算機軟件、硬件和數(shù)據(jù)資源組

25、成的系統(tǒng),即采用了數(shù)據(jù)庫技術的計算機系統(tǒng)。(4)數(shù)據(jù)庫技術:這是一門研究數(shù)據(jù)庫的結構、存儲、管理和使用的軟件學科。數(shù)據(jù)庫技術是操作系統(tǒng)的文件系統(tǒng)基礎上發(fā)展起來的。而DBMS本身要在操作系統(tǒng)的支持下才能工作。數(shù)據(jù)庫不僅用到數(shù)據(jù)結構的知識,而且豐富了數(shù)據(jù)結構的內容。在關系數(shù)據(jù)庫中要用到集合論、數(shù)理邏輯的理論。因此,數(shù)據(jù)庫技術是一門綜合性較強的學科。2.2數(shù)據(jù)庫理論基礎2.2.1 數(shù)據(jù)庫模型從20世紀50年代中期開始,計算機的應用由科學研究部門逐步擴展到企業(yè)、行政部門。至60年代,數(shù)據(jù)處理成為計算機的主要應用。數(shù)據(jù)庫技術作為數(shù)據(jù)管理技術,是計算機軟件領域的一個重要分支,產(chǎn)生于60年代末?,F(xiàn)已形成相當

26、規(guī)模的理論體系和實用技術。模型是對現(xiàn)實世界的抽象。在數(shù)據(jù)庫技術中,我們用模型的概念描述數(shù)據(jù)庫的結構與語義,對現(xiàn)實世界進行抽象,表示實體類型及實體間聯(lián)系的模型稱為“數(shù)據(jù)模型” 。目前廣泛作用的數(shù)據(jù)模型可分為兩種類型。一種是獨立于計算機系統(tǒng)的模型,完全不涉及信息在系統(tǒng)中的表示,只是用來描述某個特定組織所關心的信息結構,這類模型稱為“概念數(shù)據(jù)模型” 。要領模型用于建立信息世界的數(shù)據(jù)模型,強調其語義表達功能,應該概念簡單、清晰,易于用戶理解,它是現(xiàn)實世界的第一層抽象,是用戶和數(shù)據(jù)庫設計人員之間進行交流的工具。這一其中著名的模型是“實體聯(lián)系模型” 。另一種數(shù)據(jù)模型是直接面向數(shù)據(jù)庫的邏輯結構,它是現(xiàn)實世界

27、的第二層抽象。 這類模型涉及到計算機系統(tǒng)和數(shù)據(jù)庫管理系統(tǒng),又稱為“結構數(shù)據(jù)模型” 。例如,層次、網(wǎng)狀、關系、面向對象等模型。這類模型有嚴格的形式化定義,以便于在計算機系統(tǒng)中實現(xiàn)。(1)層次模型。用樹型結構表示實體類型及實體間聯(lián)系的數(shù)據(jù)模型。樹的結點是記錄類型,每個非根結點有且只有一個父結點。上一層記錄類型和下一層記錄類型間聯(lián)系是1N聯(lián)系。層次模型的特點是記錄之間的聯(lián)系通過指針實現(xiàn),查詢效率較高。但層次模型有兩個缺點:一是只能表示1N聯(lián)系,雖然有多種輔助手段實現(xiàn)了MN聯(lián)系,但都較復雜,用戶不易掌握,二是由于樹型結構層次順序的嚴格和復雜,引起數(shù)據(jù)的查詢和更新操作也很復雜,因此,編寫應用程序也很復雜

28、。(2)網(wǎng)狀模型。用有向圖結構表示實體類型及實體間聯(lián)系的數(shù)據(jù)模型。1969年DBTG報告提出的數(shù)據(jù)模型是網(wǎng)狀模型的主要代表。有向圖中的結點是記錄類型,有向邊表示從箭尾一端的記錄類型到箭頭一端的記錄類型間聯(lián)系是1N聯(lián)系。網(wǎng)狀模型的特點:記錄之間聯(lián)系通過指針實現(xiàn),MN聯(lián)系也容易實現(xiàn)(每個MN聯(lián)系可拆成兩個1N聯(lián)系),查詢效率較高。網(wǎng)狀模型的缺點是編寫應用程序比較復雜,程序員必須熟悉數(shù)據(jù)庫的邏輯結構。由于層次系統(tǒng)和網(wǎng)狀系統(tǒng)的應用程序編制比較復雜,因此,從20世紀80年代中期起,其市場已被關系系統(tǒng)所取代。但是使用這兩種模型建立起的許多數(shù)據(jù)庫仍然在正常運轉,只是在外層加了個關系數(shù)據(jù)庫語言的接口。網(wǎng)狀模型

29、有許多成功的產(chǎn)品,20世紀70年代的產(chǎn)品大部分網(wǎng)狀系統(tǒng),例如,Honeywell公司的IDS/、HP公司的IMAGE/3000、Burroughs公司的DMS、Umivac公司的DMS1100、Cullinet公司的IDMS、Cimcom公司的TOTAL等(3)關系模型。關系模型的主要是用二維表格結構表達實體集,用外鍵表示實體間聯(lián)系。關系模型是由若干個關系模式組成的集合。關系模式相當于前面提到的記錄類型,它的實例稱為關系,每個關系實際上是一張二維表格。關系模型和層次、網(wǎng)狀模型的最大判別是用關鍵碼而不是用指針導航數(shù)據(jù),表格簡單用戶易懂,編程時并不涉及存儲結構,訪問技術等細節(jié)。關系模型是數(shù)學化模型

30、。SQL語言是關系數(shù)據(jù)庫的標準化語言,已得到了廣泛的應用。20世紀70年代對關系數(shù)據(jù)庫的研究主要集中在理論和實驗系統(tǒng)的開發(fā)方面。80年代初才形成產(chǎn)品,但很快得到廣泛的應用和普及,并最終取代了層次、網(wǎng)狀數(shù)據(jù)庫產(chǎn)品?,F(xiàn)在市場上典型的關系DBMS產(chǎn)品有DB2、ORACLE、SYBASE、INFORMIX和微機型產(chǎn)品Foxpro、Access等。關系模型和網(wǎng)狀、層次模型的最大區(qū)別是:關系模型用表格數(shù)據(jù)而不是通過指針鏈來表示和實現(xiàn)實體間聯(lián)系。關系模型的數(shù)據(jù)結構簡單、易懂。只需用簡單的查詢語句就可對數(shù)據(jù)庫進行操作。關系模型是數(shù)學化的模型,可把表格看成一個集合,因此集合論、數(shù)理邏輯等知識可引入到關系模型中來

31、。關系模型已是一個成熟的有前途的模型,已得到廣泛應用。(4)面向對象模型。目前,關系數(shù)據(jù)庫的使用已相當普遍,但是,現(xiàn)實世界中仍然存在著許多含有復雜數(shù)據(jù)結構的應用領域,例如,CAD數(shù)據(jù)、圖形數(shù)據(jù)等,而關系模型在這方面的處理能力就顯得力不從心。因此,人們需要更高級的數(shù)據(jù)庫技術來表達這類信息。面向對象的概念最早出現(xiàn)在程序設計語言中,隨后迅速滲透到計算機領域的每一個分支。面向對象數(shù)據(jù)庫是面向對象概念與數(shù)據(jù)庫技術相結合的產(chǎn)物。面向對象模型能完整地描述現(xiàn)實世界的數(shù)據(jù)結構,具有豐富的表達能力,但模型相對較復雜,涉及的知識面也廣,因此面向對象數(shù)據(jù)庫尚未達到關系數(shù)據(jù)庫那樣的普及程度。2.2.2 數(shù)據(jù)庫體系結構數(shù)

32、據(jù)庫的體系結構分三級:內部級(internal),概念級(conceptual)和外部級(external)。這個三級結構有時也稱為“三級模式結構”,或“數(shù)據(jù)抽象的三個級別”,最早是在1971年通過的DBTG報告中提出,后來收入在1975年的美國ANSI/SPARC報告中。雖然現(xiàn)在DBMS的產(chǎn)品多種多樣,在不同的操作系統(tǒng)支持下工作,但是大多數(shù)系統(tǒng)在總的體系結構上都具有三級模式的結構特征。從某個角度看到的數(shù)據(jù)特性稱為“數(shù)據(jù)視圖”(data view)。外部級最接近用戶,是單個用戶所能看到的數(shù)據(jù)特性。單個用戶使用的數(shù)據(jù)視圖的描述稱為“外模式”。概念級涉及到所有用戶的數(shù)據(jù)定義,是全局的數(shù)據(jù)視圖。全局

33、數(shù)據(jù)視圖的描述稱為“概念模式”。內部級最接近于物理存儲設備,涉及到實際數(shù)據(jù)存儲的結構。物理存儲數(shù)據(jù)視圖的描述稱為“內模式”。數(shù)據(jù)庫的三級模式結構是數(shù)據(jù)的三個抽象級別。它把數(shù)據(jù)的具體組織留給DBMS去做,用戶只要抽象地處理數(shù)據(jù),而不必關心數(shù)據(jù)在計算機中的表示和存儲,這樣就減輕了用戶使用系統(tǒng)的負擔。三級結構之間往往差別很大,為了實現(xiàn)這三個抽象級別的聯(lián)系和轉換,DBMS在三級結構之間提供兩個層次的映象(mappings):外模式/模式映象,模式/內模式映象。此處模式是概念模式的簡稱。2.2.3 數(shù)據(jù)的獨立性由于數(shù)據(jù)庫系統(tǒng)采用三級模式結構,因此系統(tǒng)具有數(shù)據(jù)獨立性的特點。在數(shù)據(jù)庫技術中,數(shù)據(jù)獨立性是指應

34、用程序和數(shù)據(jù)之間相互獨立,不受影響。數(shù)據(jù)獨立性分成物理數(shù)據(jù)獨立性和邏輯數(shù)據(jù)獨立性兩級。(1)物理數(shù)據(jù)獨立性如果數(shù)據(jù)庫的內模式要進行修改,即數(shù)據(jù)庫的存儲設備和存儲方法有所變化,那么模式/內模式映象也要進行相當?shù)男薷?,使概念模式盡可能保持不變。也就是對內模式的修改盡量不影響概念模式,當然,對于外模式和應用程序的影響更小,這樣,我們稱數(shù)據(jù)庫達到了物理數(shù)據(jù)獨立性。(2)邏輯數(shù)據(jù)獨立性如果數(shù)據(jù)庫的概念模式要進行修改,譬如增加記錄類型或增加數(shù)據(jù)項,那么外模式/模式映象也要進行相應的修改,使外模式盡可能保持不變。也就是對概念模式的修改盡量不影響外模式和應用程序,這樣,我們稱數(shù)據(jù)庫達到了邏輯數(shù)據(jù)獨立性?,F(xiàn)有關

35、系系統(tǒng)產(chǎn)品均提供了較高的物理獨立性,而對邏輯獨立性的支持尚有欠缺,例如,對外模式的數(shù)據(jù)更新受到限制等。2.2.4 范式建立起一個良好的數(shù)據(jù)指標體系,是建立數(shù)據(jù)結構和數(shù)據(jù)庫的最重要的一環(huán)。一個良好的數(shù)據(jù)指標體系是建立DB的必要條件,但不是充分條件。我們完全可以認為所建指標體系中的一個指標類就是關系數(shù)據(jù)庫中的一個基本表,而這個指標類下面的一個個具體指標就是這個基本表中的一個字段。但如果直接按照這種方式建庫顯然還不能算最佳。對于指標體系中數(shù)據(jù)的結構在建庫前還必須進行規(guī)范化的重新組織。在數(shù)據(jù)的規(guī)范化表達中,一般將一組相互關聯(lián)的數(shù)據(jù)稱為一個關系(relation),而在這個關系下的每個數(shù)據(jù)指標項則被稱為

36、數(shù)據(jù)元素(data element),這種關系落實到具體數(shù)據(jù)庫上就是基本表,而數(shù)據(jù)元素就是基本表中的一個字段(field)。規(guī)范化表達還規(guī)定在每一個基本表中必須定義一個數(shù)據(jù)元素為關鍵字(key),它可以唯一地標識出該表中其它相關的數(shù)據(jù)元素。在規(guī)范化理論中表是二維的,它有如下四個性質:在表中的任意一列上,數(shù)據(jù)項應屬于同一個屬性(如圖中每一列都存放著不同合同記錄的同一屬性數(shù)據(jù))。 表中所有行都是不相同的,不允許有重復組項出現(xiàn)(如圖中每一行都是一個不同的合同記錄)。在表中,行的順序無關緊要(如圖中每行存的都是合同記錄,至于先放哪一個合同都沒關系)。 在表中,列的順序無關緊要,但不能重復(如圖中合同號

37、和合同名誰先誰后都沒關系,但二者不可重復或同名)。 在對表的形式進行了規(guī)范化定義后,數(shù)據(jù)結構還有五種規(guī)范化定義,定名為規(guī)范化模式,稱為范式。在這五種范式中,一般只用前三種,對于常用系統(tǒng)就足夠了。而且這五種范式是“向上兼容”的,即滿足第五范式的數(shù)據(jù)結構自動滿足一、二、三、四范式,滿足第四范式的數(shù)據(jù)結構自動滿足第一、二、三范式,依此類推。第一范式(first normal form,簡稱1st NF)就是指在同一表中沒有重復項出現(xiàn),如果有則應將重復項去掉。這個去掉重復項的過程就稱之為規(guī)范化處理。在本文所討論的開發(fā)方法里,1st NF實際上是沒有什么意義的。因為我們按規(guī)范化建立的指標體系和表的過程都

38、自動保證了所有表都滿足1st NF。 第二范式(second normal form,簡稱 2nd NF)是指每個表必須有一個(而且僅一個)數(shù)據(jù)元素為主關鍵字(primary key),其它數(shù)據(jù)元素與主關鍵字一一對應。例如,在圖l9.7中如果我們將合同號定義為主關鍵字(其它數(shù)據(jù)元素中的記錄數(shù)據(jù)都有可能重名,故不能作為主關鍵字),故只要知道了一個合同記錄的合同號,就可以唯一地在同一行中找到該合同的任何一項具體信息。通常我們稱這種關系為函數(shù)依賴(functional depEndence)關系。即表中其它數(shù)據(jù)元素都依賴于主關鍵字,或稱該數(shù)據(jù)元素唯一地被主關鍵字所標識。第三范式(third norm

39、al form,簡稱 3rd NF)就是指表中的所有數(shù)據(jù)元素不但要能夠唯一地被主關鍵字所標識,而且它們之間還必須相互獨立,不存在其它的函數(shù)關系。也就是說對于一個滿足了 2nd NF的數(shù)據(jù)結構來說,表中有可能存在某些數(shù)據(jù)元素依賴于其它非關鍵宇數(shù)據(jù)元素的現(xiàn)象,必須加以消除。為防止數(shù)據(jù)庫出現(xiàn)更新異常、插入異常、刪除異常、數(shù)據(jù)冗余太大等現(xiàn)象,關系型數(shù)據(jù)庫要盡量按關系規(guī)范化要求進行數(shù)據(jù)庫設計。2.3 SQL語言基礎2.3.1 SQL簡介用戶對數(shù)據(jù)庫的使用,是通過數(shù)據(jù)庫管理系統(tǒng)提供的語言來實現(xiàn)的。不同的數(shù)據(jù)庫管理系統(tǒng)提供不同的數(shù)據(jù)庫語言。關系數(shù)據(jù)庫管理系統(tǒng)幾乎都提供關系數(shù)據(jù)庫標準語言SQL。SQL 的全稱

40、是Structured Query Language,即結構化查詢語言。SQL語句可以從關系數(shù)據(jù)庫中獲得數(shù)據(jù),也可以建立數(shù)據(jù)庫、增加數(shù)據(jù)、修改數(shù)據(jù)。1986年ANSI采用SQL語言作為關系數(shù)據(jù)庫系統(tǒng)的標準語言,后被國際化標準組織(ISO)采納為國際標準。SQL語言使用方便、功能豐富、簡潔易學,是操作數(shù)據(jù)庫的工業(yè)標準語言,得到廣泛地應用。例如關系數(shù)據(jù)庫產(chǎn)品DB2、ORACLE等都實現(xiàn)了SQL語言。同時,其它數(shù)據(jù)庫產(chǎn)品廠家也紛紛推出各自的支持SQL的軟件或者與SQL的接口軟件。這樣SQL語言很快被整個計算機界認可。SQL語言是一種非過程化語言,它一次處理一個記錄集合,對數(shù)據(jù)提供自動導航。SQL語言

41、允許用戶在高層的數(shù)據(jù)結構上工作,而不對單個記錄進行操作。SQL語言不要求用戶指定數(shù)據(jù)的存取方法,而是使用查詢優(yōu)化器,由系統(tǒng)決定對指定數(shù)據(jù)存取的最快速手段。當設計者在關系表上定義了索引時,系統(tǒng)會自動利用索引進行快速檢索,用戶不需知道表上是否有索引或者有什么類型的索引等細節(jié)。SQL語言可以完成許多功能,例如: 查詢數(shù)據(jù) 在數(shù)據(jù)庫表格中插入、修改和刪除記錄 建立、修改和刪除數(shù)據(jù)對象 控制對數(shù)據(jù)和數(shù)據(jù)對象的存取 確保數(shù)據(jù)庫的一致性和完整性等2.3.2 SQL查詢數(shù)據(jù)查詢是關系運算理論在SQL語言中的主要體現(xiàn),SELECT 語句是SQL查詢的基本語句,當我們在對一個數(shù)據(jù)庫進各種各樣的操作時,使用的最多的

42、就是數(shù)據(jù)查詢,在以SQL為基礎的關系數(shù)據(jù)庫中,使用的最多的就是SELECT查詢語句。SELECT語句的完整句法如下:SELECT 目標表的列名或列表達式序列FROM 基本表和(或)視圖序列WHERE 行條件表達式GROUP BY 列名序列HAVING 組條件表達式ORDER BY列名 ASCDEAC我在SELECT語句中還使用了大量的保留字和通配符以進行各種各樣的條件查詢。在系統(tǒng)中有大量的查詢按鈕,其使用了大量的查詢語句,而且這些查詢語句大部分使用的是模糊查詢,所以大量的使用了模式匹配符LIKE(判斷值是否與指定的字符通配格式相符)。在包含LIKE的查詢語句中可以使用兩個通配符:%(百分號):

43、與零個或多個字符組成的字符串匹配;_(下劃線):與單個字符匹配。系統(tǒng)中的條件判斷往往包含多個條件,這時就需要使用邏輯運算符NOT、AND、OR(用于多條件的邏輯連接),謂詞ALL以及保留字DISTINCT等等。做為SELECT語句還有很多的使用方法,這里就不再敘述。2.3.3 SQL數(shù)據(jù)更新使用數(shù)據(jù)庫的目的是為了有效地管理數(shù)據(jù),而數(shù)據(jù)的插入、刪除和修改則是必不可少的一個功能。在本系統(tǒng)中就大量地使用了數(shù)據(jù)插入、刪除和修改這三種操作,現(xiàn)做一個簡單地介紹。數(shù)據(jù)插入往數(shù)據(jù)庫的基本表中插入數(shù)據(jù)使用的是INSERT語句,其方式有兩種:一種是元組值的插入,另一種是查詢結果的插入。在本系統(tǒng)中使用的是前一種方式

44、,其句法如下:INSERT INTO 基本表名(列表名)VALUES(元組值)數(shù)據(jù)刪除往數(shù)據(jù)庫的基本表中刪除數(shù)據(jù)使用的是DELETE語句,其句法如下:DELETE FROM 基本表名 WHERE 條件表達式在些作一點說明,刪除語句實際上是“SELECT * FROM 基本表名 WHERE 條件表達式”和DELETE操作的結合,每找到一個元組,就把它刪除。此外,DELETE語句只能從一個基本表中刪除元組,WHERE子句中條件可以嵌套,也可以是來自幾個基本表的復合條件。數(shù)據(jù)修改當需要修改基本表中元組的某些列值時,可以用UPDATE語句實現(xiàn),其句法如下:UPDATE基本表名SET列名=值表達式,列名

45、=值表達式WHERE條件表達式在Delphi中使用SQL語句是很方便的,一般來說,都是通過TQuery組件來使用SQL語言的。有一點要進行說明,雖然通過TQuery組件來使用SQL語言很方便,但考慮到自己對不同組件的理解程度、個人習慣以及其它各個方面,在本系統(tǒng)中我采用的是ADO組件來對數(shù)據(jù)庫進行操作。最簡單的方法比如在TADOQuery組件的SQL屬性中就可以鍵入SQL語句,至于詳細的使用方法在后面進行介紹。第三章 數(shù)據(jù)庫開發(fā)工具3.1 Delphi 6.0 簡介Delphi類可以粗略地分成兩部分:一部分是組件類,這些組件類通常以某種方式出現(xiàn)在組件面板上,當用戶從組件面板上點取一個類的圖標后,

46、在程序中就自動生成了該類的對象(非可視組件除外);另一部分是功能類,這此功能類的對象通常出現(xiàn)在程序代碼中,起著不可代替的作用,但是這些功能類在組件面板上是找不到的。在Delphi中,每一個類的祖先都是Tobject類,整個類的層次結構就像一棵倒掛的樹,在最頂層的樹根即為Tobject類。這樣,按照面向對象編程的基本思想,就使得用戶可用Tobject類這個類型代替任何其它類的數(shù)據(jù)類型。實際上在Delphi的類庫中,Tobject類派生出了為數(shù)相當眾多的子類,它們形成了一個龐大的體系,通常情況下,如果不自行開發(fā)組件,就不必了解整個類的體系結構,只用到類層次樹的葉結點就足夠了。凡是做過程序開發(fā)的人都

47、知道從來沒有單純的數(shù)據(jù)應用程序,也就是說,數(shù)據(jù)庫應用程序必須和用戶界面(可以是圖形界面,也可以是命令接口)元素相結合,只講界面或只講數(shù)據(jù)庫本身都構不成數(shù)據(jù)庫應用程序,因而用Delphi 6.0開發(fā)數(shù)據(jù)庫應用程序就隱含著界面開發(fā)。Delphi6中的VCL組件可用圖3-1來說明。組件在Delphi程序的開發(fā)中是最顯眼的角色。大家知道,在編寫程序時一般都開始于在組件面板上選擇組件并定義組件間的相互作用。但也有一些組件不在組件面板上,例如Tform和Tapplication(典型的非可視組件)。組件是Tcomponents派生出來的子類,可以流的形式存放在DFM文件中,具有事件和Publish屬性。窗

48、口組件類是窗口化的可視化組件類,在Delphi的類庫中占有最大的份額。在實際編程中,窗口組件類的對象都有句柄,可以接受輸入焦點和包含其它組件。圖形組件與窗口組件并列,是另一大類組件。圖形組件不是基于窗口的,因而不能有窗口句柄,不能接受輸入焦點和包含其它組件。從圖8-43中可以看出,圖形組件的基類是TgraphicControl,在實際編程中,它們必須寄生于它們的宿主窗口組件類的對象,由它們的擁有者負責其顯示,而且它們還能觸發(fā)一些和鼠標活動相關的事件。圖形控件最典型的例子是Tlabel和TspeedButton。由此可以看出圖形組件的功能很弱,有讀者會問圖形組件的用處何在呢?其實使用圖形組件的最

49、大好處在于節(jié)省資源,正是因為它們的功能較弱,所以使用的系統(tǒng)資源就要少。在一個應用程序中,如果能在不影響其功能的前提下合理大量地使用圖形組件,將會大減少程序對系統(tǒng)資源的消耗。非可視組件是與可視組件相并列的另一類組件,非可視組件在程序運行中是不可見的(除各種對話框組件之外,事實上有人認為對話框組件不能歸入非可視組件,應該是另一種介于可視與非可視之間的組件)。3.2 Delphi 6.0 控件用Delphi6開發(fā)數(shù)據(jù)庫應用,重點是和各種數(shù)據(jù)庫組件打交道,當然也要使用其它的一些組件,現(xiàn)在就我在系統(tǒng)設計中所使用的重要組件給與簡單介紹。3.2.1 ADO數(shù)據(jù)訪問組件ADO數(shù)據(jù)對象(Active Data

50、Objects)實際是一種提供訪問各種數(shù)據(jù)類型的鏈接機制。ADO設計為一種極簡單的格式,通過ODBC的方法同數(shù)據(jù)庫接口中,可以使用任何一種ODBC數(shù)據(jù)源,即不止適合于SQL Server、Oracle、Access等數(shù)據(jù)庫應用程序,也適合于Excel表格、文本文件、圖形文件和無格式的數(shù)據(jù)文件。ADO是基于OLE-DB之上的技術,因此ADO通過其內部的屬性和方法提供統(tǒng)一的數(shù)據(jù)訪問接口方法。ADO使您的客戶端應用程序能夠通過OLE DB提供訪問和操作在數(shù)據(jù)庫服務器中的數(shù)據(jù)。ADO支持用于建立C/S和Web的應用程序的主要功能。其主要優(yōu)點是易于使用、高速度、低內存支出和占用磁盤空間較少。ADO同時具

51、有遠程數(shù)據(jù)服務(RDS)功能,通過RDS可以在一次往返過程中實現(xiàn)將數(shù)據(jù)從服務器移動到客戶端應用程序和Web頁、在客戶端對數(shù)據(jù)進行處然后將更新結果返回服務器的操作。Delphi 6.0繼續(xù)對Microsoft的ADO訪問能力的支持。這種能力是通過一組新組件實現(xiàn)的,這些組件是在企業(yè)版的ADO組件頁中,在組件面版的ADO頁上可以找到這些組件。利用在前面章節(jié)提到的TdataSet抽象類,ADO組件可以不通過BDE而直接實現(xiàn)ADO連接。這意味著只需要很少的代碼就可以實現(xiàn)該連接并且性能得到提高。利用ADO數(shù)據(jù)訪問組件,可以只使用ADO結構與數(shù)據(jù)庫取得聯(lián)系并對其中的數(shù)據(jù)進行操作,而在這些過程中完全不需要使用

52、BDE。大多數(shù)的ADO連接和數(shù)據(jù)集組件都是與基于BDE的連接和數(shù)據(jù)集組件相類似的。TADOConnection組件與基于BDE的應用程序中的Tdatabase組件類似。TADOTable與Ttable,TADOQuery與Tquery,以及TADOStoreProc和TstoredProc之間都具有這種類似的對應關系。使用這些ADO組件的方式與我們常使用的數(shù)據(jù)訪問組件(基于BDE)都有許多相同之處。TTADODataSet沒有直接的BDE對應組件,但它提供了許多與Ttable和Tquery相同的功能。同樣,TADOCommand也沒有相對應的BDE組件,它是在Delphi/ADO環(huán)境中完成特定

53、功能的組件。Delphi 6.0通過ADO數(shù)據(jù)集訪問組件,可以不借助BDE數(shù)據(jù)引擎而是通過微軟的OLEDB來訪問更為廣泛的數(shù)據(jù)庫中的數(shù)據(jù)。ADO數(shù)據(jù)集訪問組件與常用的數(shù)據(jù)訪問組件是并列的關系。在系統(tǒng)中我主要使用的是ADOTablet和ADOQuery兩個組件。3.2.2 數(shù)據(jù)控制類DataControl數(shù)據(jù)控制類負責數(shù)據(jù)庫數(shù)據(jù)的顯示,并把用戶對數(shù)據(jù)的修改傳回。這里的絕大多數(shù)組件,如DBText, DBEdit, DBMemo, DBImage, DBListBox, DBComboBox, DBCheckBox, DBRadioGroup, DBLookupListBox, DBLookupC

54、ombox, DBCtrGrid的功能和對應的非數(shù)據(jù)感知組件相同,如TEdit框,TRadioGroups單選按鈕組等,只不過在顯示數(shù)據(jù)庫數(shù)據(jù)時要用而已。在系統(tǒng)中主要使用數(shù)據(jù)網(wǎng)格控件DBGrid和數(shù)據(jù)庫導航器控件DBNavigator。3.2.3 數(shù)據(jù)訪問類DataAccess數(shù)據(jù)庫應用系統(tǒng)中數(shù)據(jù)訪問是一個首要問題,包括單用戶和 C/S系統(tǒng),都必須聯(lián)系一些數(shù)據(jù)庫和數(shù)據(jù)表文件。Delphi 6 提供了專門用于數(shù)據(jù)訪問的基類控件。主要包括數(shù)據(jù)源控件DataSource、客戶數(shù)據(jù)集控件ClientDataSet、數(shù)據(jù)集提供器控件DataSetProvider等等。Tdatabase:當一個基于BDE的數(shù)據(jù)庫應用程序需要一個永久數(shù)據(jù)庫連接時,需要定制向一個數(shù)據(jù)庫服務器的連接時,需要事務控制和特殊的數(shù)據(jù)庫別名時就得用到Tdatabase對象。特別是當連接到一個遠程的SQL數(shù)據(jù)庫服務器時,如果要利用BDE進行數(shù)據(jù)庫事務處理,那么,TDatab

溫馨提示

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

評論

0/150

提交評論