2023年圖書倉庫管理系統_第1頁
2023年圖書倉庫管理系統_第2頁
2023年圖書倉庫管理系統_第3頁
2023年圖書倉庫管理系統_第4頁
2023年圖書倉庫管理系統_第5頁
已閱讀5頁,還剩60頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

圖書倉庫管理系統

摘要

本系統主要完成對圖書倉庫的庫存管理,包括圖書入庫、出庫、庫存,員工信息,

供應商信息以及密碼管理等六個方面。系統可以完成對各類信息的瀏覽、查詢、

添加、刪除、修改、報表等功能。

系統的核心是入庫、庫存和出庫三者之間的聯系,每一個表的修改都將聯動的影

響其它的表,當完成入庫或出庫操作時系統會自動地完成庫存的修改。查詢功能

也是系統的核心之一,在系統中即有單條件查詢和多條件查詢,也有精確查詢和

模糊查詢,系統不僅有靜態的條件查詢,也有動態生成的條件查詢,其目的都是

為了方便用戶使用。系統有完整的用戶添加、刪除和密碼修改功能,并具備報表

打印功能。

系統采用MicrosoftOffice中的Access2000來設計數據庫,并使用當前優秀

的開發工具一Delphi6.0,它有著最為靈活的數據庫結構,對數據庫應用有著

良好的支持。

論文主要介紹了本課題的開發背景,所要完成的功能和開發的過程。重點的說明

了系統設計的重點、設計思想、難點技術和解決方案。

關鍵字:數據庫,SQL語言,Delph6,數據庫組件,倉庫管理

目錄

第一章引

編號:

時間:2021年X月X日書山有路勤為徑,學海無涯苦作舟頁碼:第2頁共65頁

言..........................................................1

1.1課題來源...................................................1

1.2開發工具的選擇.............................................2

1.3所做的主要工作.............................................3

第二章數據庫概

論...................................................4

2.1數據庫的發展...............................................4

2.1.1數據庫的發展..........................................4

2.1.2數據庫階段的特點......................................5

2.1.3數據庫技術.............................................6

2.2數據庫理論基礎.............................................7

2.2.1數據庫模型..............................................7

2.2.2數據庫體系結

構........................................10

2.2.3數據的獨立性..........................................11

2.2.4范式..................................................11

2.3SQL語言基礎..............................................13

2.3.1SQL簡介..............................................13

2.3.2SQL查詢..............................................13

2.3.3SQL數據更新.........................................14

第三章數據庫開發工

具.............................................16

3.1Delphi6.0簡

介.............................................16

第2頁共65頁

編號:

時間:2021年X月X日書山有路勤為徑,學海無涯苦作舟頁碼:第3頁共65頁

3.2Delphi6.0控件.............................................

17

3.2.1AD0數據訪問組件....................................17

3.2.2數據控制類

DataControl..................................18

3.2.3數據訪問類

DataAccess..................................18

3.2.4SQL語言在Delphi中的應

用.............................19

3.3Access簡

介...............................................21

第四章系統總體設

計...............................................23

4.1系統需求分析.............................................23

4.2系統概要設計............................................25

4.2.1系統結構設

計.........................................25

4.2.2數據庫設

計...........................................27

4.2.2.1ER圖設計.......................................27

4.2.2.2數據庫表格設計...................................29

4.3系統詳細設計...............................................34

第五章系統應用程序設

計...........................................37

第3頁共65頁

編號:

時間:2021年X月X日書山有路勤為徑,學海無涯苦作舟頁碼:第4頁共65頁

5.1系統窗體模塊組成...........................................37

5.2數據模塊窗體設置...........................................38

5.3主窗體功能模塊的實現.......................................39

5.4入庫、出庫窗體模塊的實現...................................43

5.5查詢功能的實現.............................................51

5.6系統登陸窗體模塊的實現.....................................52

5.7用戶管理功能的實現.........................................54

5.7.1用戶管理主窗體.......................................54

5.7.2密碼修改窗體模塊的實現...............................54

5.7.3用戶注冊窗體模塊的實

現...............................55

5.7.4用戶注銷窗體模塊的實

現...............................57

結束

語.............................................................59

謝...............................................................60

參考文

獻...........................................................61

第一章引言

§1.1課題來源

隨著社會經濟的迅速發展和科學技術的全面進步,計算機事業的飛速發展,以計

算機與通信技術為基礎的信息系統正處于蓬勃發展的時期。隨著經濟文化水平的

顯著提高,人們對生活質量及工作環境的要求也越來越高。書籍做為人類的精神

第4頁共65頁

編號:

時間:2021年X月X日書山有路勤為徑,學海無涯苦作舟頁碼:第5頁共65頁

食糧,在現代社會中越來越受到重視,大量的書籍出現在市場上,人們有了各種

各樣不同的選擇。與此同時,為了管理大量的圖書,圖書倉庫也大量的出現,倉

庫的管理問題也就提上了日程。隨著圖書的大量增加,其管理難度也越來越大,

如何優化倉庫的日常管理也就成為了一個大眾化的課題。

在計算機飛速發展的今無將計算機這一信息處理利器應用于倉庫的日常管理已

是勢必所然,而且這也將為倉庫管理帶來前所未有的改變,它可以帶來意想不到

的效益,同時也會為企業的飛速發展提供無限潛力。采用計算機管理信息系統已

成為倉庫管理科學化和現代化的重要標志,它給企業管理來了明顯的經濟效益和

社會效益。主要體現在:

極大提高了倉庫工作人員的工作效率,大大減少了以往入出存流程繁瑣,雜亂,

周期長的弊端。

基于倉庫管理的全面自動化可以減少入庫管理出庫管理及庫存管理中的漏洞,

可以節約不少管理開支,增加企業收入。

倉庫的管理的操作自動化和信息的電子化,全面提高了倉庫的管理水平。

隨著我國改革開放的不斷深入,經濟飛速的發展,企業要想生存、發展,要想在

激烈的市場競爭中立于不敗之地,沒有現代化的管理是萬萬不行的,倉庫管理的

全面自動化信息化則是其中極其重要的部分;為了加快倉庫管理自動化的步伐

提高倉庫的管理業務處理效率,建立倉庫管理系統已變得十分心要。

入庫、庫存、出庫還是現在企業圖書倉庫管理的常規基本模式,雖然,最近又出

現了很多新的管理模式,如:基于零庫存思想的沃爾瑪特管理方式,但這些新的

思想在中國大部分企業的管理中還是難以實現的。所以如何設計好倉庫管理系統,

盡可能地減少倉庫管理的重復性和低效性就成為當前最為重要的問題。圖書倉庫

管理的核心是入庫、庫存和出庫之間的聯系,如何處理好三者之間的關系是系統

最為關鍵的部分。另外,員工信息和供應商信息管理也是倉庫管理中一個必不可

第5頁共65頁

編號:

時間:2021年X月X日書山有路勤為徑,學海無涯苦作舟頁碼:第6頁共65頁

少的部分,它提供著與入庫和出庫相關的地一些信息,使得整個系統更加完整,

更加實用。

通過對倉庫管理日常工作的詳細調查,搜集了大量的資料,從系統結構的組織,

功能的實現,技術的要求以及可行性等多方面進行考慮,認為本課題是一個適應

現今圖書倉庫管理需求的計算機信息管理系統具有一定的實際開發價值和使用

價值。

§1.2開發工具的選擇

自Java誕生以來,隨著Internet技術的普及和應用需求的變化,以第四代語言

為主的應用開發產品發生了較大的變化它們不僅已成為人們開發應用的開發工

具,而且很多產品已發展成為一種強有力的應用開發環境。這些新型的開發工具

通常以一種集成軟件包的形式提供給開發人員被稱為Studio(工作室)或Suite

(程序組)。例如,微軟的VisualStudio6.0,Borland公司的Delphi6.0等

數據庫輔助開發工具。

現在,市場上可以選購的應用開發產品很多,流行的也有數十種。目前在我國

市場上最為流行、使用最多、最為先進的可用作企業級開發工具的產品有:

Microsoft公司的VisualBasic6.0版

Microsoft公司的VisualC++6.0版

Borland公司的Delphi6.0版

在目前市場上這些眾多的程序開發工具中,有些強調程語言的彈性與執行效率;

有些則偏重于可視化程序開發工具所帶來的便利性與效率的得高,各有各的優點

和特色,也滿足了不同用戶的需求。然而,語言的彈性和工具的便利性是密不可

分的,只有便利的工具,卻沒有彈性的語言作支持,許多特殊化的處理動作必需

要耗費數倍的工夫來處理使得原來所標榜的效率提高的優點失去了作用相反

如果只強調程語言的彈性,卻沒有便利的工具作配合,會使一些即使非常簡單的

第6頁共65頁

編號:

時間:2021年X月X日書山有路勤為徑,學海無涯苦作舟頁碼:第7頁共65頁

界面處理動作,也會嚴重地浪費程序設計師的寶貴時間。

而Delphi是一個非常理想選擇。Delphi6是操作系統中快速應用開發環境的最

新版本它也是當前Windows平臺上第一個全面支持最新Web服務的快速開發工

具。無論是企業級用戶,還是個人開發者,都能夠利用Delphi6輕松、快捷地

構建新一代電子商務應用。Delphi6是惟一支持所有新出現的工業標準的RAD

環境,包括XML(擴展標記語言)/XSL(可擴展樣式語言),SOAP(簡單對象存

取協議)和WSDL(Web服務器描述語言)等。

Delphi6是可視化的快速應用程序開發語言它提供了可視化的集成開發環境,

這一環境為應用程序設計人員提供了一系列靈活而先進的工具可以廣泛地用于

種類應用程序設計。在Delphi6的集成開發環境中,用戶可以設計程序代碼、

運行程序、進行程序錯誤的調試等,可視化的開發方法降低了應用程序開發的難

度。Delphi的基礎編程語言是具有面向對象特性的Pascal語言,即Object

PascaloObjectPascal具有代碼穩定、可讀性好、編譯速度快等優點,并將

面向對象的概念移植到了Pascal語言中,使這種基礎語言有了新的發展空間。

使用Delphi6.0,我們幾乎可以作任何事情,還可以撰寫種各種類型的應用程

序,動態鏈接庫(DLL)、CON、或CORBA對象,CGI/ISAPI程序,MicrosoftBack

Office應用程序。程序的規模小到簡單的個人數據庫應用,大到復雜的企業的

多層次分布式系統,都可以使用Delphi進行開發,其友好的集成開發界面,可

視化的雙向開發模式,良好的數據庫應用支持高效的程序開發和程序運行,備受

廣大程序開發人員的好評。尤其是Delphi對數據庫應用的強大支持,大大提高

了數據庫應用軟件開發的效率,縮短了開發周期,深受廣大數據庫應用程序設計

人員的喜愛。Delphi為數據庫應用開發人員提供了豐富的數據庫開發組件,使

數據庫應用開發功能更強大,控制更靈活,編譯后的程序運行速度更快。

§1.3本文所做工作

第7頁共65頁

編號:

時間:2021年X月X日書山有路勤為徑,學海無涯苦作舟頁碼:第8頁共65頁

引言部分介紹了本系統的課題來源以及對數據庫開發工具的選擇。

第二章介紹了數據庫的發展,關系數據庫,數據庫體系結構,并系統介紹了SQL

語言,為設計和理解應用程序做了鋪墊。

第三章系統介紹了Delphi6.0及其部分控件SQL語言在Delphi6.0中的應用,

以及Access等。

第四章是本文的主體,按照軟件工程的要求,從需求分析開始,經過概要設計最

后到詳細設計,完成對整個系統的設計。

第五章根據第四章的設計結果利用Access2000和Delphi6.0進行了具體的窗

體和應用程序設計。

總結部分介紹了設計體會和編程體會并指出了系統設計中的不足和改進的方向

第二章數據庫概論

§2.1數據庫的發展

數據庫處理在信息系統的研究中一直是非常重要的主題,然而,近年來,隨著

WorldWideWeb(WW)的猛增及Internet技術的迅速發展,使得數據庫技術之時

成為最熱門技術之一。數據庫技術能使Internet應用超越具有早期應用特點的

簡單的發布。同時,Internet技術提供了一種向用戶發布數據庫內容的標準化

的訪問方法。這些技術沒有脫離經典數據庫技術的要求。它們只是加重了數據庫

技術的重要性。

數據庫的設計和開發及包括藝術有包括工程。理解用戶的需求,然后,把它們轉

變為有效的數據庫設計是一個藝術過程。把設計轉變為實際的數據庫,并且這些

數據庫帶有功能完備、高效能的應用,是一個工程過程。

數據庫的目的是幫助人們跟蹤事務。經典的數據庫應用涉及諸如訂單、顧客、工

作、員工、學生、電話之類的項,或其它數據量較大、需要密起關注的事務。最

第8頁共65頁

編號:

時間:2021年X月X日書山有路勤為徑,學海無涯苦作舟頁碼:第9頁共65頁

近,由于數據庫的普及數據庫技術已經被應用到了新的領域諸如用于Intemet

的數據庫或用于公司內聯網的數據庫。數據庫也被越來越多地應用于生成和維護

多媒體應用程序上。

計算機的數據處理應用,首先要把大量的信息以數據形式存放在存儲器中。存儲

器的容量、存儲速率直接影響到數據管理技術的發展。從1956年生產出第一臺

計算機到現在,存儲器的發展,為數據庫技術提供了良好的物質基礎。

使用計算機以后,數據處理的速度和規模,無論是相對于手工方式,還是機械方

式,都有無可比擬的優勢。通常在數據處理中,計算是比較簡單的而數據的管理

卻比較復雜。數據管理是指數據的收集、整理、組織、存儲、維護、檢索、傳送

等操作,這部分操作是數據處理業務的基本環節,而且是任何數據處理業務中必

不可少的共有部分。數據管理技術的優劣,將直接影響數據處理的效率。

2.1.1數據庫的發展

數據管理技術的發展,與硬件(主要是外存)、軟件、計算機應用的范圍有密切

的聯系。數據管理技術的發展經過三個階段:人工管理階段、文件系統階段和數

據庫階段。

人工管理階段和文件系統階段都有著相當多的缺陷,諸如數據冗余性,數據不

一致性以及數據聯系弱等等。也正是由于這些原因,促使人們研究新的數據管理

技術,從而產生了數據庫技術。

20世紀60年代末發生的三件大事層次模型IMS系統的推出關于網狀模型DBTG

報告的發表以及關于關系模型論文的連續發表標志著數據管理技術進入數據庫

階段。進入70年代以后,數據庫技術得到迅速發展,開發了許多有效的產品并

投入運行。數據庫系統克服了文件系統的缺陷,提供了對數據更高級更有效的管

理。

當進入數據庫階段后,隨著數據管理規模一再擴大,數據量急劇增加,為了提高

第9頁共65頁

編號:

時間:2021年X月X日書山有路勤為徑,學海無涯苦作舟頁碼:第1。頁共65頁

效率,開始時,人們只是對文件系統加以擴充,在應用文件中建立了許多輔助索

引,形成倒排文件系統。但這并不能最終解決問題。在20世紀60年代末,磁盤

技術取得重要進展,具有數百兆容量和快速存取的磁盤陸續進入市場,成本也不

高,為數據庫技術的產生提供了良好的物質條件。

2.1.2數據庫階段的特點

(1)減少數據的重復(Redundancycanbereduced)

當在一個非數據庫系統當中,每一個應用程序都有屬于他們自己的文件,由于無

法有系統建立的數據,因此常常會造成存儲數據的重復與浪費。例如:在一家公

司當中,人事管理程序與工資管理程序或許都會使用到職員與部門的信息或文件,

而我們可以運用數據庫的方法,把這兩個文件整理起來,以減少多余的數據,過

度地占用存儲空間。

(2)避免數據的不一致(Inconsistencycanavoid)

本項的特色,可以說是延伸前項的一個特點,要說明這樣的一個現象,我們可以

從下面這個實例來看:若是在同一家公司當中,職員甲在策劃部門工作,且職員

甲的記錄同時被存放在數據庫的兩個地方,而數據庫管理系統卻沒有對這樣重要

的情況加以控制,當其中一條數據庫被修改時,便會造成數據的不一致,但是,

對于一個健全的數據庫管理系統而言,將會對這樣的情況加以控制,但有時并不

需要刻意消除這種情形,應當視該數據庫的需求與效率來決定。

(3)數據共享(Datashared)

對于數據共享的意義,并不是只有針對數據庫設計的應用程序,可以使用數據庫

中的數據,對于其他撰寫好的應用程序,同樣可以對相同數據庫當中的數據進行

處理,進而達到數據共享的目的。

(4)強化數據的標準化(Standardcanbeenforced)

由數據庫管理系統,對數據做出統籌性的管理,對于數據的格式與一些存儲上的

第10頁共65頁

編號:

時間:2021年X月X日書山有路勤為徑,學海無涯苦作舟頁碼:第11頁共65頁

標準進行控制,如此一來,對于不同的環境的數據交換(DataInterchange)上

將有很大的幫助,也能提高數據處理的效率。

(5)實踐安全性的管理(Securityrestrictioncanbeapplied)

通過對數據庫完整的權限控制,數據庫管理者可以確認所有可供用戶存取數據的

合法途徑渠道,并且可以事先對一些較重要或關鍵性的數據進行安全檢查,以確

保數據存取時,能夠將任何不當損毀的情形降至最低。

(6)完整性的維護(Integritycanbemaintained)

所謂完整性的問題就是要確認某條數據在數據庫當中,是正確無誤的。正如(2)

所述,若是無法控制數據的不一致性,便會產生完整性不足的問題,所以,我們

會發現,當數據重復性高的時候,數據不完整的情形也會增加,當然,若是數據

庫的功能完整,將會大大地提高數據完整性,也會增加數據庫的維護能力與維護

簡便性。

(7)需求沖突會獲得平衡(Conflictingrequirementscanbebalance)

在一個較大型的企業當中,用戶不同的需求,往往會造成系統或數據庫在設計上

的困擾,但是一個合適的數據庫系統,可以通過數據庫管理員的管理,將會有效

地整理各方面的信息,對于一些較重要的應用程序,可以適時地提供較快速的數

據存取方法與格式,以平衡多個用戶在需求上的沖突。

上述七個方面構成了數據庫系統的主要特征。這個階段的程序和數據間的聯系可

用下圖表示:

2.1.3數據庫技術

從文件系統發展到數據庫系統是信息處理領域的一個重大變化。在文件系統階段,

人們關注的中心問題是系統功能的設計,因而程序設計處于主導地位,數據只起

著服從程序需要的作用。在數據庫方式下,信息處理觀念已為新體系所取代,數

據占據了中心位置。數據結構的設計成為信息系統首先關心的問題,而利用這些

第11頁共65頁

編號:

時間:2021年X月X日書山有路勤為徑,學海無涯苦作舟頁碼:第12頁共65頁

數據的應用程序設計則退居到以既定的數據結構為基礎的外圍地位。

目前世界上已有數百萬個數據庫系統在運行,其應用已經深入到人類社會生活的

各個領域,從企業管理、銀行業務、資源分配、經濟預測一直到信息檢索、檔案

管理、普查統計等。并在通信網絡基礎上,建立了許多國際性的聯機檢索系統。

我國20世紀90年代初在全國范圍內裝備了12個以數據庫技術為基礎的大型計

算機系統,這些系分布在郵電、計委、銀行、電力、鐵路、氣象、民航、情報、

公安、軍事、航天和財稅等行業。

數據庫技術還在不斷的發展,并且不斷地與其它計算機技術相互滲透。數據庫技

術與網絡通信技術相結合,產生了分布式數據庫系統。數據庫技術與面向對象技

術相結合,產生了面向對象數據庫系統。

在數據庫技術中有四個名詞,其概念應該分清。

(1)數據庫(database,DB):DB是統一管理的相關數據的集合。DB能為各種

用戶共享,具有最小冗余度,數據間聯系密切,而又有較高的數據獨立性。

(2)數據庫管理系統(DatabaseManagementSystem,DBMS):DBMS是位于用戶

與操作系統之間的一層數據管理軟件,為用戶或應用程序提供訪問DB的方法,

包括DB的建立、查詢、更新及各種數據控制。DBMS總是基于某種數據模型,可

以分為層次型、網狀型、關系型和面向對象型DBMS。

(3)數據庫系統(DatabaseSystem,DBS):DBS是實現有組織地、動態地存儲

大量關聯數據,方便多用戶訪問的計算機軟件、硬件和數據資源組成的系統,即

采用了數據庫技術的計算機系統。

(4)數據庫技術:這是一門研究數據庫的結構、存儲、管理和使用的軟件學科。

數據庫技術是操作系統的文件系統基礎上發展起來的。而DBMS本身要在操作系

統的支持下才能工作。數據庫不僅用到數據結構的知識,而且豐富了數據結構的

內容。在關系數據庫中要用到集合論、數理邏輯的理論。因此,數據庫技術是一

第12頁共65頁

編號:

時間:2021年X月X日書山有路勤為徑,學海無涯苦作舟頁碼:第13頁共65頁

門綜合性較強的學科。

§2.2數據庫理論基礎

2.2.1數據庫模型

從20世紀50年代中期開始,計算機的應用由科學研究部門逐步擴展到企業、行

政部門。至60年代,數據處理成為計算機的主要應用。數據庫技術作為數據管

理技術,是計算機軟件領域的一個重要分支,產生于60年代末。現已形成相當

規模的理論體系和實用技術。

模型是對現實世界的抽象。在數據庫技術中,我們用模型的概念描述數據庫的結

構與語義,對現實世界進行抽象,表示實體類型及實體間聯系的模型稱為“數據

模型”。

目前廣泛作用的數據模型可分為兩種類型。

一種是獨立于計算機系統的模型,完全不涉及信息在系統中的表示,只是用來描

述某個特定組織所關心的信息結構,這類模型稱為“概念數據模型”。要領模

型用于建立信息世界的數據模型,強調其語義表達功能,應該概念簡單、清晰,

易于用戶理解,它是現實世界的第一層抽象,是用戶和數據庫設計人員之間進行

交流的工具。這一其中著名的模型是“實體聯系模型”。

另一種數據模型是直接面向數據庫的邏輯結構,它是現實世界的第二層抽象這

類模型涉及到計算機系統和數據庫管理系統又稱為“結構數據模型”。例如,

層次、網狀、關系、面向對象等模型。這類模型有嚴格的形式化定義,以便于在

計算機系統中實現。

(1)層次模型。用樹型結構表示實體類型及實體間聯系的數據模型。樹的結點

是記錄類型,每個非根結點有且只有一個父結點。上一層記錄類型和下一層記錄

類型間聯系是1:N聯系。

層次模型的特點是記錄之間的聯系通過指針實現,查詢效率較高。但層次模型有

第13頁共65頁

編號:

時間:2021年X月X日書山有路勤為徑,學海無涯苦作舟頁碼:第14頁共65頁

兩個缺點:一是只能表示1:N聯系,雖然有多種輔助手段實現了M:N聯系,但

都較復雜,用戶不易掌握,二是由于樹型結構層次順序的嚴格和復雜,引起數據

的查詢和更新操作也很復雜,因此,編寫應用程序也很復雜。

(2)網狀模型。用有向圖結構表示實體類型及實體間聯系的數據模型。。1969

年DBTG報告提出的數據模型是網狀模型的主要代表。有向圖中的結點是記錄類

型,有向邊表示從箭尾一端的記錄類型到箭頭一端的記錄類型間聯系是1:N聯

系。

網狀模型的特點:記錄之間聯系通過指針實現,M:N聯系也容易實現(每個M

:N聯系可拆成兩個1:N聯系),查詢效率較高。網狀模型的缺點是編寫應用程

序比較復雜,程序員必須熟悉數據庫的邏輯結構。由于層次系統和網狀系統的應

用程序編制比較復雜,因此,從20世紀80年代中期起,其市場已被關系系統所

取代。但是使用這兩種模型建立起的許多數據庫仍然在正常運轉,只是在外層加

了個關系數據庫語言的接口。網狀模型有許多成功的產品,20世紀70年代的產

品大部分網狀系統,例如,Honeywell公司的IDS/IkHP公司的IMAGE/3000.

Burroughs公司的DMSIRUmivac公司的DMS1100,Cullinet公司的IDMS,Cimcom

公司的TOTAL等

(3)關系模型。關系模型的主要是用二維表格結構表達實體集,用外鍵表示實

體間聯系。關系模型是由若干個關系模式組成的集合。關系模式相當于前面提到

的記錄類型,它的實例稱為關系,每個關系實際上是一張二維表格。

關系模型和層次、網狀模型的最大判別是用關鍵碼而不是用指針導航數據,表格

簡單用戶易懂,編程時并不涉及存儲結構,訪問技術等細節。關系模型是數學化

模型。SQL語言是關系數據庫的標準化語言,已得到了廣泛的應用。20世紀70

年代對關系數據庫的研究主要集中在理論和實驗系統的開發方面。80年代初才

形成產品但很快得到廣泛的應用和普及并最終取代了層次、網狀數據庫產品。

第14頁共65頁

編號:

時間:2021年X月X日書山有路勤為徑,學海無涯苦作舟頁碼:第15頁共65頁

現在市場上典型的關系DBMS產品有DB2、ORACLE、SYBASE>INFORMIX和微機型

產品Foxpro>Access等。

關系模型和網狀、層次模型的最大區別是:關系模型用表格數據而不是通過指針

鏈來表示和實現實體間聯系。關系模型的數據結構簡單、易懂。只需用簡單的查

詢語句就可對數據庫進行操作。

關系模型是數學化的模型,可把表格看成一個集合,因此集合論、數理邏輯等知

識可引入到關系模型中來。關系模型已是一個成熟的有前途的模型,已得到廣泛

應用。

(4)面向對象模型。目前,關系數據庫的使用已相當普遍,但是,現實世界中

仍然存在著許多含有復雜數據結構的應用領域,例如,CAD數據、圖形數據等,

而關系模型在這方面的處理能力就顯得力不從心。因此,人們需要更高級的數據

庫技術來表達這類信息。面向對象的概念最早出現在程序設計語言中,隨后迅速

滲透到計算機領域的每一個分支。面向對象數據庫是面向對象概念與數據庫技術

相結合的產物。

面向對象模型能完整地描述現實世界的數據結構,具有豐富的表達能力,但模型

相對較復雜,涉及的知識面也廣,因此面向對象數據庫尚未達到關系數據庫那樣

的普及程度。

2.2.2數據庫體系結構

數據庫的體系結構分三級:內部級(internal),概念級(conceptual)和外部

級(extemal)。這個三級結構有時也稱為“三級模式結構”,或“數據抽象的

三個級別”,最早是在1971年通過的DBTG報告中提出,后來收入在1975年的

美國ANSI/SPARC報告中。雖然現在DBMS的產品多種多樣,在不同的操作系統支

持下工作,但是大多數系統在總的體系結構上都具有三級模式的結構特征。從某

第15頁共65頁

編號:

時間:2021年X月X日書山有路勤為徑,學海無涯苦作舟頁碼:第16頁共65頁

個角度看到的數據特性稱為“數據視圖”(dataview)。

外部級最接近用戶,是單個用戶所能看到的數據特性。單個用戶使用的數據視圖

的描述稱為“外模式”。

概念級涉及到所有用戶的數據定義,是全局的數據視圖。全局數據視圖的描述稱

為“概念模式”。

內部級最接近于物理存儲設備,涉及到實際數據存儲的結構。物理存儲數據視圖

的描述稱為“內模式”。

數據庫的三級模式結構是數據的三個抽象級別。它把數據的具體組織留給DBMS

去做,用戶只要抽象地處理數據,而不必關心數據在計算機中的表示和存儲,這

樣就減輕了用戶使用系統的負擔。

三級結構之間往往差別很大,為了實現這三個抽象級別的聯系和轉換,DBMS在

三級結構之間提供兩個層次的映象(mappings):外模式/模式映象,模式/內模

式映象。此處模式是概念模式的簡稱。

2.2.3數據的獨立性

由于數據庫系統采用三級模式結構,因此系統具有數據獨立性的特點。在數據庫

技術中,數據獨立性是指應用程序和數據之間相互獨立,不受影響。數據獨立性

分成物理數據獨立性和邏輯數據獨立性兩級。

(1)物理數據獨立性

如果數據庫的內模式要進行修改,即數據庫的存儲設備和存儲方法有所變化,那

么模式/內模式映象也要進行相當的修改,使概念模式盡可能保持不變。也就是

對內模式的修改盡量不影響概念模式當然對于外模式和應用程序的影響更小,

這樣,我們稱數據庫達到了物理數據獨立性。

(2)邏輯數據獨立性

如果數據庫的概念模式要進行修改,譬如增加記錄類型或增加數據項,那么外模

第16頁共65頁

編號:

時間:2021年X月X日書山有路勤為徑,學海無涯苦作舟頁碼:第17頁共65頁

式/模式映象也要進行相應的修改,使外模式盡可能保持不變。也就是對概念模

式的修改盡量不影響外模式和應用程序,這樣,我們稱數據庫達到了邏輯數據獨

立性。

現有關系系統產品均提供了較高的物理獨立性而對邏輯獨立性的支持尚有欠缺,

例如,對外模式的數據更新受到限制等。

2.2.4范式

建立起一個良好的數據指標體系,是建立數據結構和數據庫的最重要的一環。一

個良好的數據指標體系是建立DB的必要條件,但不是充分條件。我們完全可以

認為所建指標體系中的一個指標類就是關系數據庫中的一個基本表而這個指標

類下面的一個個具體指標就是這個基本表中的一個字段。但如果直接按照這種方

式建庫顯然還不能算最佳。對于指標體系中數據的結構在建庫前還必須進行規范

化的重新組織。

在數據的規范化表達中,一般將一組相互關聯的數據稱為一個關系(relation),

而在這個關系下的每個數據指標項則被稱為數據元素(dataelement),這種關系

落實到具體數據庫上就是基本表而數據元素就是基本表中的一個字段(field)。

規范化表達還規定在每一個基本表中必須定義一個數據元素為關鍵字(key),它

可以唯一地標識出該表中其它相關的數據元素。在規范化理論中表是二維的,它

有如下四個性質:

在表中的任意一列上,數據項應屬于同一個屬性(如圖中每一列都存放著不同合

同記錄的同一屬性數據)。

表中所有行都是不相同的,不允許有重復組項出現(如圖中每一行都是一個不同

的合同記錄)。

在表中,行的順序無關緊要(如圖中每行存的都是合同記錄,至于先放哪一個合

同都沒關系)。

第17頁共65頁

編號:

時間:2021年X月X日書山有路勤為徑,學海無涯苦作舟頁碼:第18頁共65頁

在表中,列的順序無關緊要,但不能重復(如圖中合同號和合同名誰先誰后都沒

關系,但二者不可重復或同名)。

在對表的形式進行了規范化定義后,數據結構還有五種規范化定義,定名為規范

化模式稱為范式。在這五種范式中,一般只用前三種,對于常用系統就足夠了。

而且這五種范式是“向上兼容”的,即滿足第五范式的數據結構自動滿足一、二、

三、四范式,滿足第四范式的數據結構自動滿足第一、二、三范式,……,依此

類推。

第一范式(firstnormalform,簡稱1stNF)就是指在同一表中沒有重復項出現,

如果有則應將重復項去掉。這個去掉重復項的過程就稱之為規范化處理。在本文

所討論的開發方法里,1stNF實際上是沒有什么意義的。因為我們按規范化建

立的指標體系和表的過程都自動保證了所有表都滿足1stNFo

第二范式(secondnormalform,簡稱2ndNF)是指每個表必須有一個(而且僅一

個)數據元素為主關鍵字(primarykey),其它數據元素與主關鍵字一一對應。例

如,在圖19.7中如果我們將合同號定義為主關鍵字(其它數據元素中的記錄數據

都有可能重名,故不能作為主關鍵字),故只要知道了一個合同記錄的合同號,

就可以唯一地在同一行中找到該合同的任何一項具體信息。通常我們稱這種關系

為函數依賴(functionaldepEndence)關系。即表中其它數據元素都依賴于主關

鍵字,或稱該數據元素唯一地被主關鍵字所標識。

第三范式(thirdnormalform,簡稱3rdNF)就是指表中的所有數據元素不但要

能夠唯一地被主關鍵字所標識,而且它們之間還必須相互獨立,不存在其它的函

數關系。也就是說對于一個滿足了2ndNF的數據結構來說,表中有可能存在某

些數據元素依賴于其它非關鍵宇數據元素的現象,必須加以消除。

為防止數據庫出現更新異常、插入異常、刪除異常、數據冗余太大等現象,關系

型數據庫要盡量按關系規范化要求進行數據庫設計。

第18頁共65頁

編號:

時間:2021年X月X日書山有路勤為徑,學海無涯苦作舟頁碼:第19頁共65頁

§2.3SQL語言基礎

2.3.1SQL簡介

用戶對數據庫的使用,是通過數據庫管理系統提供的語言來實現的。不同的數據

庫管理系統提供不同的數據庫語言。關系數據庫管理系統幾乎都提供關系數據庫

標準語言----SQLo

SQL的全稱是StructuredQueryLanguage,即結構化查詢語言。SQL語句可以

從關系數據庫中獲得數據,也可以建立數據庫、增加數據、修改數據。1986年

ANSI采用SQL語言作為關系數據庫系統的標準語言,后被國際化標準組織(ISO)

采納為國際標準。SQL語言使用方便、功能豐富、簡潔易學,是操作數據庫的工

業標準語言,得到廣泛地應用。例如關系數據庫產品DB2、ORACLE等都實現了

SQL語言。同時,其它數據庫產品廠家也紛紛推出各自的支持SQL的軟件或者與

SQL的接口軟件。這樣SQL語言很快被整個計算機界認可。

SQL語言是一種非過程化語言它一次處理一個記錄集合對數據提供自動導航。

SQL語言允許用戶在高層的數據結構上工作,而不對單個記錄進行操作。SQL語

言不要求用戶指定數據的存取方法,而是使用查詢優化器,由系統決定對指定數

據存取的最快速手段。當設計者在關系表上定義了索引時,系統會自動利用索引

進行快速檢索,用戶不需知道表上是否有索引或者有什么類型的索引等細節。

SQL語言可以完成許多功能,例如:

?查詢數據

?在數據庫表格中插入、修改和刪除記錄

?建立、修改和刪除數據對象

?控制對數據和數據對象的存取

第19頁共65頁

編號:

時間:2021年X月X日書山有路勤為徑,學海無涯苦作舟頁碼:第20頁共65頁

?確保數據庫的一致性和完整性等

2.3.2SQL查詢

數據查詢是關系運算理論在SQL語言中的主要體現,SELECT語句是SQL查詢的

基本語句,當我們在對一個數據庫進各種各樣的操作時,使用的最多的就是數據

查詢,在以SQL為基礎的關系數據庫中,使用的最多的就是SELECT查詢語句。

SELECT語句的完整句法如下:

SELECT目標表的列名或列表達式序列

FROM基本表和(或)視圖序列

[WHERE行條件表達式]

[GROUPBY列名序列]

[HAVING組條件表達式]

[ORDERBY列名[ASC|DEAC]???]

我在SELECT語句中還使用了大量的保留字和通配符以進行各種各樣的條件查詢。

在系統中有大量的查詢按鈕,其使用了大量的查詢語句,而且這些查詢語句大部

分使用的是模糊查詢,所以大量的使用了模式匹配符LIKE(判斷值是否與指定的

字符通配格式相符)。在包含LIKE的查詢語句中可以使用兩個通配符:%(百分

號):與零個或多個字符組成的字符串匹配;_(下劃線):與單個字符匹配。系

統中的條件判斷往往包含多個條件,這時就需要使用邏輯運算符NOT、AND,OR(用

于多條件的邏輯連接),謂詞ALL以及保留字DISTINCT等等。做為SELECT語句

還有很多的使用方法,這里就不再敘述。

2.3.3SQL數據更新

使用數據庫的目的是為了有效地管理數據,而數據的插入、刪除和修改則是必不

可少的一個功能在本系統中就大量地使用了數據插入、刪除和修改這三種操作,

現做一個簡單地介紹。

第20頁共65頁

編號:

時間:2021年X月X日書山有路勤為徑,學海無涯苦作舟頁碼:第21頁共65頁

?數據插入

往數據庫的基本表中插入數據使用的是INSERT語句,其方式有兩種:一種是元

組值的插入,另一種是查詢結果的插入。在本系統中使用的是前一種方式,其句

法如下:

INSERTINTO基本表名(列表名)VALUES(元組值)

?數據刪除

往數據庫的基本表中刪除數據使用的是DELETE語句,其句法如下:

DELETEFROM基本表名[WHERE條件表達式]

在些作一點說明,刪除語句實際上是“SELECT*FROM基本表名[WHERE條件表

達式]”和DELETE操作的結合,每找到一個元組,就把它刪除。此外,DELETE

語句只能從一個基本表中刪除元組,WHERE子句中條件可以嵌套,也可以是來自

幾個基本表的復合條件。

?數據修改

當需要修改基本表中元組的某些列值時,可以用UPDATE語句實現其句法如下:

UPDATE基本表名

SET列名=值表達式[,列名=值表達式…]

[WHERE條件表達式]

在Delphi中使用SQL語句是很方便的,一般來說,都是通過TQue:ry組件來使用

SQL語言的。有一點要進行說明,雖然通過TQuery組件來使用SQL語言很方便,

但考慮到自己對不同組件的理解程度、個人習慣以及其它各個方面,在本系統中

我采用的是ADO組件來對數據庫進行操作。最簡單的方法比如在TADOQuery組件

的SQL屬性中就可以鍵入SQL語句,至于詳細的使用方法在后面進行介紹。

第三章數據庫開發工具

§3.1Delphi6.0簡介

第21頁共65頁

編號:

時間:2021年X月X日書山有路勤為徑,學海無涯苦作舟頁碼:第22頁共65頁

Delphi類可以粗略地分成兩部分:一部分是組件類,這些組件類通常以某種方

式出現在組件面板上,當用戶從組件面板上點取一個類的圖標后,在程序中就自

動生成了該類的對象(非可視組件除外);另一部分是功能類,這此功能類的對

象通常出現在程序代碼中,起著不可代替的作用,但是這些功能類在組件面板上

是找不到的。在Delphi中,每一個類的祖先都是Tobject類,整個類的層次結構

就像一棵倒掛的樹,在最頂層的樹根即為Tobject類。這樣,按照面向對象編程

的基本思想,就使得用戶可用Tobject類這個類型代替任何其它類的數據類型。

實際上在Delphi的類庫中,Tobject類派生出了為數相當眾多的子類,它們形

成了一個龐大的體系,通常情況下,如果不自行開發組件,就不必了解整個類的

體系結構,只用到類層次樹的葉結點就足夠了。

凡是做過程序開發的人都知道從來沒有單純的數據應用程序,也就是說,數據庫

應用程序必須和用戶界面(可以是圖形界面,也可以是命令接口)元素相結合,

只講界面或只講數據庫本身都構不成數據庫應用程序,因而用Delphi6.0開發

數據庫應用程序就隱含著界面開發。Delphi6中的VCL組件可用圖3T來說明。

組件在Delphi程序的開發中是最顯眼的角色。大家知道,在編寫程序時一般都

開始于在組件面板上選擇組件并定義組件間的相互作用。但也有一些組件不在組

件面板上例如Tform和Tapplication(典型的非可視組件”組件是Tcomponents

派生出來的子類,可以流的形式存放在DFM文件中,具有事件和Publish屬性。

窗口組件類是窗口化的可視化組件類,在Delphi的類庫中占有最大的份額。在

實際編程中,窗口組件類的對象都有句柄,可以接受輸入焦點和包含其它組件。

圖形組件與窗口組件并列,是另一大類組件。圖形組件不是基于窗口的,因而不

能有窗口句柄,不能接受輸入焦點和包含其它組件。從圖8-43中可以看出,圖

形組件的基類是TgraphicControl,在實際編程中,它們必須寄生于它們的宿

主一一窗口組件類的對象,由它們的擁有者負責其顯示,而且它們還能觸發一些

第22頁共65頁

編號:

時間:2021年X月X日書山有路勤為徑,學海無涯苦作舟頁碼:第23頁共65頁

和鼠標活動相關的事件。圖形控件最典型的例子是Tlabel和TspeedButton。由

此可以看出圖形組件的功能很弱有讀者會問圖形組件的用處何在呢?其實使用

圖形組件的最大好處在于節省資源,正是因為它們的功能較弱,所以使用的系統

資源就要少。在一個應用程序中,如果能在不影響其功能的前提下合理大量地使

用圖形組件,將會大減少程序對系統資源的消耗。

非可視

溫馨提示

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

評論

0/150

提交評論