2023年圖書倉庫管理系統(tǒng)_第1頁
2023年圖書倉庫管理系統(tǒng)_第2頁
2023年圖書倉庫管理系統(tǒng)_第3頁
2023年圖書倉庫管理系統(tǒng)_第4頁
2023年圖書倉庫管理系統(tǒng)_第5頁
已閱讀5頁,還剩60頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

圖書倉庫管理系統(tǒng)

摘要

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

供應(yīng)商信息以及密碼管理等六個(gè)方面。系統(tǒng)可以完成對各類信息的瀏覽、查詢、

添加、刪除、修改、報(bào)表等功能。

系統(tǒng)的核心是入庫、庫存和出庫三者之間的聯(lián)系,每一個(gè)表的修改都將聯(lián)動的影

響其它的表,當(dāng)完成入庫或出庫操作時(shí)系統(tǒng)會自動地完成庫存的修改。查詢功能

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

模糊查詢,系統(tǒng)不僅有靜態(tài)的條件查詢,也有動態(tài)生成的條件查詢,其目的都是

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

打印功能。

系統(tǒng)采用MicrosoftOffice中的Access2000來設(shè)計(jì)數(shù)據(jù)庫,并使用當(dāng)前優(yōu)秀

的開發(fā)工具一Delphi6.0,它有著最為靈活的數(shù)據(jù)庫結(jié)構(gòu),對數(shù)據(jù)庫應(yīng)用有著

良好的支持。

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

了系統(tǒng)設(shè)計(jì)的重點(diǎn)、設(shè)計(jì)思想、難點(diǎn)技術(shù)和解決方案。

關(guān)鍵字:數(shù)據(jù)庫,SQL語言,Delph6,數(shù)據(jù)庫組件,倉庫管理

目錄

第一章引

編號:

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

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

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

1.2開發(fā)工具的選擇.............................................2

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

第二章數(shù)據(jù)庫概

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

2.1數(shù)據(jù)庫的發(fā)展...............................................4

2.1.1數(shù)據(jù)庫的發(fā)展..........................................4

2.1.2數(shù)據(jù)庫階段的特點(diǎn)......................................5

2.1.3數(shù)據(jù)庫技術(shù).............................................6

2.2數(shù)據(jù)庫理論基礎(chǔ).............................................7

2.2.1數(shù)據(jù)庫模型..............................................7

2.2.2數(shù)據(jù)庫體系結(jié)

構(gòu)........................................10

2.2.3數(shù)據(jù)的獨(dú)立性..........................................11

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

2.3SQL語言基礎(chǔ)..............................................13

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

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

2.3.3SQL數(shù)據(jù)更新.........................................14

第三章數(shù)據(jù)庫開發(fā)工

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

3.1Delphi6.0簡

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

第2頁共65頁

編號:

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

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

17

3.2.1AD0數(shù)據(jù)訪問組件....................................17

3.2.2數(shù)據(jù)控制類

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

3.2.3數(shù)據(jù)訪問類

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

3.2.4SQL語言在Delphi中的應(yīng)

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

3.3Access簡

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

第四章系統(tǒng)總體設(shè)

計(jì)...............................................23

4.1系統(tǒng)需求分析.............................................23

4.2系統(tǒng)概要設(shè)計(jì)............................................25

4.2.1系統(tǒng)結(jié)構(gòu)設(shè)

計(jì).........................................25

4.2.2數(shù)據(jù)庫設(shè)

計(jì)...........................................27

4.2.2.1ER圖設(shè)計(jì).......................................27

4.2.2.2數(shù)據(jù)庫表格設(shè)計(jì)...................................29

4.3系統(tǒng)詳細(xì)設(shè)計(jì)...............................................34

第五章系統(tǒng)應(yīng)用程序設(shè)

計(jì)...........................................37

第3頁共65頁

編號:

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

5.1系統(tǒng)窗體模塊組成...........................................37

5.2數(shù)據(jù)模塊窗體設(shè)置...........................................38

5.3主窗體功能模塊的實(shí)現(xiàn).......................................39

5.4入庫、出庫窗體模塊的實(shí)現(xiàn)...................................43

5.5查詢功能的實(shí)現(xiàn).............................................51

5.6系統(tǒng)登陸窗體模塊的實(shí)現(xiàn).....................................52

5.7用戶管理功能的實(shí)現(xiàn).........................................54

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

5.7.2密碼修改窗體模塊的實(shí)現(xiàn)...............................54

5.7.3用戶注冊窗體模塊的實(shí)

現(xiàn)...............................55

5.7.4用戶注銷窗體模塊的實(shí)

現(xiàn)...............................57

結(jié)束

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

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

參考文

獻(xiàn)...........................................................61

第一章引言

§1.1課題來源

隨著社會經(jīng)濟(jì)的迅速發(fā)展和科學(xué)技術(shù)的全面進(jìn)步,計(jì)算機(jī)事業(yè)的飛速發(fā)展,以計(jì)

算機(jī)與通信技術(shù)為基礎(chǔ)的信息系統(tǒng)正處于蓬勃發(fā)展的時(shí)期。隨著經(jīng)濟(jì)文化水平的

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

第4頁共65頁

編號:

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

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

各樣不同的選擇。與此同時(shí),為了管理大量的圖書,圖書倉庫也大量的出現(xiàn),倉

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

如何優(yōu)化倉庫的日常管理也就成為了一個(gè)大眾化的課題。

在計(jì)算機(jī)飛速發(fā)展的今無將計(jì)算機(jī)這一信息處理利器應(yīng)用于倉庫的日常管理已

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

的效益,同時(shí)也會為企業(yè)的飛速發(fā)展提供無限潛力。采用計(jì)算機(jī)管理信息系統(tǒng)已

成為倉庫管理科學(xué)化和現(xiàn)代化的重要標(biāo)志,它給企業(yè)管理來了明顯的經(jīng)濟(jì)效益和

社會效益。主要體現(xiàn)在:

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

周期長的弊端。

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

可以節(jié)約不少管理開支,增加企業(yè)收入。

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

隨著我國改革開放的不斷深入,經(jīng)濟(jì)飛速的發(fā)展,企業(yè)要想生存、發(fā)展,要想在

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

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

提高倉庫的管理業(yè)務(wù)處理效率,建立倉庫管理系統(tǒng)已變得十分心要。

入庫、庫存、出庫還是現(xiàn)在企業(yè)圖書倉庫管理的常規(guī)基本模式,雖然,最近又出

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

思想在中國大部分企業(yè)的管理中還是難以實(shí)現(xiàn)的。所以如何設(shè)計(jì)好倉庫管理系統(tǒng),

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

管理的核心是入庫、庫存和出庫之間的聯(lián)系,如何處理好三者之間的關(guān)系是系統(tǒng)

最為關(guān)鍵的部分。另外,員工信息和供應(yīng)商信息管理也是倉庫管理中一個(gè)必不可

第5頁共65頁

編號:

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

少的部分,它提供著與入庫和出庫相關(guān)的地一些信息,使得整個(gè)系統(tǒng)更加完整,

更加實(shí)用。

通過對倉庫管理日常工作的詳細(xì)調(diào)查,搜集了大量的資料,從系統(tǒng)結(jié)構(gòu)的組織,

功能的實(shí)現(xiàn),技術(shù)的要求以及可行性等多方面進(jìn)行考慮,認(rèn)為本課題是一個(gè)適應(yīng)

現(xiàn)今圖書倉庫管理需求的計(jì)算機(jī)信息管理系統(tǒng)具有一定的實(shí)際開發(fā)價(jià)值和使用

價(jià)值。

§1.2開發(fā)工具的選擇

自Java誕生以來,隨著Internet技術(shù)的普及和應(yīng)用需求的變化,以第四代語言

為主的應(yīng)用開發(fā)產(chǎn)品發(fā)生了較大的變化它們不僅已成為人們開發(fā)應(yīng)用的開發(fā)工

具,而且很多產(chǎn)品已發(fā)展成為一種強(qiáng)有力的應(yīng)用開發(fā)環(huán)境。這些新型的開發(fā)工具

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

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

數(shù)據(jù)庫輔助開發(fā)工具。

現(xiàn)在,市場上可以選購的應(yīng)用開發(fā)產(chǎn)品很多,流行的也有數(shù)十種。目前在我國

市場上最為流行、使用最多、最為先進(jìn)的可用作企業(yè)級開發(fā)工具的產(chǎn)品有:

Microsoft公司的VisualBasic6.0版

Microsoft公司的VisualC++6.0版

Borland公司的Delphi6.0版

在目前市場上這些眾多的程序開發(fā)工具中,有些強(qiáng)調(diào)程語言的彈性與執(zhí)行效率;

有些則偏重于可視化程序開發(fā)工具所帶來的便利性與效率的得高,各有各的優(yōu)點(diǎn)

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

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

要耗費(fèi)數(shù)倍的工夫來處理使得原來所標(biāo)榜的效率提高的優(yōu)點(diǎn)失去了作用相反

如果只強(qiáng)調(diào)程語言的彈性,卻沒有便利的工具作配合,會使一些即使非常簡單的

第6頁共65頁

編號:

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

界面處理動作,也會嚴(yán)重地浪費(fèi)程序設(shè)計(jì)師的寶貴時(shí)間。

而Delphi是一個(gè)非常理想選擇。Delphi6是操作系統(tǒng)中快速應(yīng)用開發(fā)環(huán)境的最

新版本它也是當(dāng)前Windows平臺上第一個(gè)全面支持最新Web服務(wù)的快速開發(fā)工

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

構(gòu)建新一代電子商務(wù)應(yīng)用。Delphi6是惟一支持所有新出現(xiàn)的工業(yè)標(biāo)準(zhǔn)的RAD

環(huán)境,包括XML(擴(kuò)展標(biāo)記語言)/XSL(可擴(kuò)展樣式語言),SOAP(簡單對象存

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

Delphi6是可視化的快速應(yīng)用程序開發(fā)語言它提供了可視化的集成開發(fā)環(huán)境,

這一環(huán)境為應(yīng)用程序設(shè)計(jì)人員提供了一系列靈活而先進(jìn)的工具可以廣泛地用于

種類應(yīng)用程序設(shè)計(jì)。在Delphi6的集成開發(fā)環(huán)境中,用戶可以設(shè)計(jì)程序代碼、

運(yùn)行程序、進(jìn)行程序錯(cuò)誤的調(diào)試等,可視化的開發(fā)方法降低了應(yīng)用程序開發(fā)的難

度。Delphi的基礎(chǔ)編程語言是具有面向?qū)ο筇匦缘腜ascal語言,即Object

PascaloObjectPascal具有代碼穩(wěn)定、可讀性好、編譯速度快等優(yōu)點(diǎn),并將

面向?qū)ο蟮母拍钜浦驳搅薖ascal語言中,使這種基礎(chǔ)語言有了新的發(fā)展空間。

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

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

Office應(yīng)用程序。程序的規(guī)模小到簡單的個(gè)人數(shù)據(jù)庫應(yīng)用,大到復(fù)雜的企業(yè)的

多層次分布式系統(tǒng),都可以使用Delphi進(jìn)行開發(fā),其友好的集成開發(fā)界面,可

視化的雙向開發(fā)模式,良好的數(shù)據(jù)庫應(yīng)用支持高效的程序開發(fā)和程序運(yùn)行,備受

廣大程序開發(fā)人員的好評。尤其是Delphi對數(shù)據(jù)庫應(yīng)用的強(qiáng)大支持,大大提高

了數(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.3本文所做工作

第7頁共65頁

編號:

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

引言部分介紹了本系統(tǒng)的課題來源以及對數(shù)據(jù)庫開發(fā)工具的選擇。

第二章介紹了數(shù)據(jù)庫的發(fā)展,關(guān)系數(shù)據(jù)庫,數(shù)據(jù)庫體系結(jié)構(gòu),并系統(tǒng)介紹了SQL

語言,為設(shè)計(jì)和理解應(yīng)用程序做了鋪墊。

第三章系統(tǒng)介紹了Delphi6.0及其部分控件SQL語言在Delphi6.0中的應(yīng)用,

以及Access等。

第四章是本文的主體,按照軟件工程的要求,從需求分析開始,經(jīng)過概要設(shè)計(jì)最

后到詳細(xì)設(shè)計(jì),完成對整個(gè)系統(tǒng)的設(shè)計(jì)。

第五章根據(jù)第四章的設(shè)計(jì)結(jié)果利用Access2000和Delphi6.0進(jìn)行了具體的窗

體和應(yīng)用程序設(shè)計(jì)。

總結(jié)部分介紹了設(shè)計(jì)體會和編程體會并指出了系統(tǒng)設(shè)計(jì)中的不足和改進(jìn)的方向

第二章數(shù)據(jù)庫概論

§2.1數(shù)據(jù)庫的發(fā)展

數(shù)據(jù)庫處理在信息系統(tǒng)的研究中一直是非常重要的主題,然而,近年來,隨著

WorldWideWeb(WW)的猛增及Internet技術(shù)的迅速發(fā)展,使得數(shù)據(jù)庫技術(shù)之時(shí)

成為最熱門技術(shù)之一。數(shù)據(jù)庫技術(shù)能使Internet應(yīng)用超越具有早期應(yīng)用特點(diǎn)的

簡單的發(fā)布。同時(shí),Internet技術(shù)提供了一種向用戶發(fā)布數(shù)據(jù)庫內(nèi)容的標(biāo)準(zhǔn)化

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

技術(shù)的重要性。

數(shù)據(jù)庫的設(shè)計(jì)和開發(fā)及包括藝術(shù)有包括工程。理解用戶的需求,然后,把它們轉(zhuǎn)

變?yōu)橛行У臄?shù)據(jù)庫設(shè)計(jì)是一個(gè)藝術(shù)過程。把設(shè)計(jì)轉(zhuǎn)變?yōu)閷?shí)際的數(shù)據(jù)庫,并且這些

數(shù)據(jù)庫帶有功能完備、高效能的應(yīng)用,是一個(gè)工程過程。

數(shù)據(jù)庫的目的是幫助人們跟蹤事務(wù)。經(jīng)典的數(shù)據(jù)庫應(yīng)用涉及諸如訂單、顧客、工

作、員工、學(xué)生、電話之類的項(xiàng),或其它數(shù)據(jù)量較大、需要密起關(guān)注的事務(wù)。最

第8頁共65頁

編號:

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

近,由于數(shù)據(jù)庫的普及數(shù)據(jù)庫技術(shù)已經(jīng)被應(yīng)用到了新的領(lǐng)域諸如用于Intemet

的數(shù)據(jù)庫或用于公司內(nèi)聯(lián)網(wǎng)的數(shù)據(jù)庫。數(shù)據(jù)庫也被越來越多地應(yīng)用于生成和維護(hù)

多媒體應(yīng)用程序上。

計(jì)算機(jī)的數(shù)據(jù)處理應(yīng)用,首先要把大量的信息以數(shù)據(jù)形式存放在存儲器中。存儲

器的容量、存儲速率直接影響到數(shù)據(jù)管理技術(shù)的發(fā)展。從1956年生產(chǎn)出第一臺

計(jì)算機(jī)到現(xiàn)在,存儲器的發(fā)展,為數(shù)據(jù)庫技術(shù)提供了良好的物質(zhì)基礎(chǔ)。

使用計(jì)算機(jī)以后,數(shù)據(jù)處理的速度和規(guī)模,無論是相對于手工方式,還是機(jī)械方

式,都有無可比擬的優(yōu)勢。通常在數(shù)據(jù)處理中,計(jì)算是比較簡單的而數(shù)據(jù)的管理

卻比較復(fù)雜。數(shù)據(jù)管理是指數(shù)據(jù)的收集、整理、組織、存儲、維護(hù)、檢索、傳送

等操作,這部分操作是數(shù)據(jù)處理業(yè)務(wù)的基本環(huán)節(jié),而且是任何數(shù)據(jù)處理業(yè)務(wù)中必

不可少的共有部分。數(shù)據(jù)管理技術(shù)的優(yōu)劣,將直接影響數(shù)據(jù)處理的效率。

2.1.1數(shù)據(jù)庫的發(fā)展

數(shù)據(jù)管理技術(shù)的發(fā)展,與硬件(主要是外存)、軟件、計(jì)算機(jī)應(yīng)用的范圍有密切

的聯(lián)系。數(shù)據(jù)管理技術(shù)的發(fā)展經(jīng)過三個(gè)階段:人工管理階段、文件系統(tǒng)階段和數(shù)

據(jù)庫階段。

人工管理階段和文件系統(tǒng)階段都有著相當(dāng)多的缺陷,諸如數(shù)據(jù)冗余性,數(shù)據(jù)不

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

技術(shù),從而產(chǎn)生了數(shù)據(jù)庫技術(shù)。

20世紀(jì)60年代末發(fā)生的三件大事層次模型IMS系統(tǒng)的推出關(guān)于網(wǎng)狀模型DBTG

報(bào)告的發(fā)表以及關(guān)于關(guān)系模型論文的連續(xù)發(fā)表標(biāo)志著數(shù)據(jù)管理技術(shù)進(jìn)入數(shù)據(jù)庫

階段。進(jìn)入70年代以后,數(shù)據(jù)庫技術(shù)得到迅速發(fā)展,開發(fā)了許多有效的產(chǎn)品并

投入運(yùn)行。數(shù)據(jù)庫系統(tǒng)克服了文件系統(tǒng)的缺陷,提供了對數(shù)據(jù)更高級更有效的管

理。

當(dāng)進(jìn)入數(shù)據(jù)庫階段后,隨著數(shù)據(jù)管理規(guī)模一再擴(kuò)大,數(shù)據(jù)量急劇增加,為了提高

第9頁共65頁

編號:

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

效率,開始時(shí),人們只是對文件系統(tǒng)加以擴(kuò)充,在應(yīng)用文件中建立了許多輔助索

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

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

高,為數(shù)據(jù)庫技術(shù)的產(chǎn)生提供了良好的物質(zhì)條件。

2.1.2數(shù)據(jù)庫階段的特點(diǎn)

(1)減少數(shù)據(jù)的重復(fù)(Redundancycanbereduced)

當(dāng)在一個(gè)非數(shù)據(jù)庫系統(tǒng)當(dāng)中,每一個(gè)應(yīng)用程序都有屬于他們自己的文件,由于無

法有系統(tǒng)建立的數(shù)據(jù),因此常常會造成存儲數(shù)據(jù)的重復(fù)與浪費(fèi)。例如:在一家公

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

而我們可以運(yùn)用數(shù)據(jù)庫的方法,把這兩個(gè)文件整理起來,以減少多余的數(shù)據(jù),過

度地占用存儲空間。

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

本項(xiàng)的特色,可以說是延伸前項(xiàng)的一個(gè)特點(diǎn),要說明這樣的一個(gè)現(xiàn)象,我們可以

從下面這個(gè)實(shí)例來看:若是在同一家公司當(dāng)中,職員甲在策劃部門工作,且職員

甲的記錄同時(shí)被存放在數(shù)據(jù)庫的兩個(gè)地方,而數(shù)據(jù)庫管理系統(tǒng)卻沒有對這樣重要

的情況加以控制,當(dāng)其中一條數(shù)據(jù)庫被修改時(shí),便會造成數(shù)據(jù)的不一致,但是,

對于一個(gè)健全的數(shù)據(jù)庫管理系統(tǒng)而言,將會對這樣的情況加以控制,但有時(shí)并不

需要刻意消除這種情形,應(yīng)當(dāng)視該數(shù)據(jù)庫的需求與效率來決定。

(3)數(shù)據(jù)共享(Datashared)

對于數(shù)據(jù)共享的意義,并不是只有針對數(shù)據(jù)庫設(shè)計(jì)的應(yīng)用程序,可以使用數(shù)據(jù)庫

中的數(shù)據(jù),對于其他撰寫好的應(yīng)用程序,同樣可以對相同數(shù)據(jù)庫當(dāng)中的數(shù)據(jù)進(jìn)行

處理,進(jìn)而達(dá)到數(shù)據(jù)共享的目的。

(4)強(qiáng)化數(shù)據(jù)的標(biāo)準(zhǔn)化(Standardcanbeenforced)

由數(shù)據(jù)庫管理系統(tǒng),對數(shù)據(jù)做出統(tǒng)籌性的管理,對于數(shù)據(jù)的格式與一些存儲上的

第10頁共65頁

編號:

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

標(biāo)準(zhǔn)進(jìn)行控制,如此一來,對于不同的環(huán)境的數(shù)據(jù)交換(DataInterchange)上

將有很大的幫助,也能提高數(shù)據(jù)處理的效率。

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

通過對數(shù)據(jù)庫完整的權(quán)限控制,數(shù)據(jù)庫管理者可以確認(rèn)所有可供用戶存取數(shù)據(jù)的

合法途徑渠道,并且可以事先對一些較重要或關(guān)鍵性的數(shù)據(jù)進(jìn)行安全檢查,以確

保數(shù)據(jù)存取時(shí),能夠?qū)⑷魏尾划?dāng)損毀的情形降至最低。

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

所謂完整性的問題就是要確認(rèn)某條數(shù)據(jù)在數(shù)據(jù)庫當(dāng)中,是正確無誤的。正如(2)

所述,若是無法控制數(shù)據(jù)的不一致性,便會產(chǎn)生完整性不足的問題,所以,我們

會發(fā)現(xiàn),當(dāng)數(shù)據(jù)重復(fù)性高的時(shí)候,數(shù)據(jù)不完整的情形也會增加,當(dāng)然,若是數(shù)據(jù)

庫的功能完整,將會大大地提高數(shù)據(jù)完整性,也會增加數(shù)據(jù)庫的維護(hù)能力與維護(hù)

簡便性。

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

在一個(gè)較大型的企業(yè)當(dāng)中,用戶不同的需求,往往會造成系統(tǒng)或數(shù)據(jù)庫在設(shè)計(jì)上

的困擾,但是一個(gè)合適的數(shù)據(jù)庫系統(tǒng),可以通過數(shù)據(jù)庫管理員的管理,將會有效

地整理各方面的信息,對于一些較重要的應(yīng)用程序,可以適時(shí)地提供較快速的數(shù)

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

上述七個(gè)方面構(gòu)成了數(shù)據(jù)庫系統(tǒng)的主要特征。這個(gè)階段的程序和數(shù)據(jù)間的聯(lián)系可

用下圖表示:

2.1.3數(shù)據(jù)庫技術(shù)

從文件系統(tǒng)發(fā)展到數(shù)據(jù)庫系統(tǒng)是信息處理領(lǐng)域的一個(gè)重大變化。在文件系統(tǒng)階段,

人們關(guān)注的中心問題是系統(tǒng)功能的設(shè)計(jì),因而程序設(shè)計(jì)處于主導(dǎo)地位,數(shù)據(jù)只起

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

據(jù)占據(jù)了中心位置。數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)成為信息系統(tǒng)首先關(guān)心的問題,而利用這些

第11頁共65頁

編號:

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

數(shù)據(jù)的應(yīng)用程序設(shè)計(jì)則退居到以既定的數(shù)據(jù)結(jié)構(gòu)為基礎(chǔ)的外圍地位。

目前世界上已有數(shù)百萬個(gè)數(shù)據(jù)庫系統(tǒng)在運(yùn)行,其應(yīng)用已經(jīng)深入到人類社會生活的

各個(gè)領(lǐng)域,從企業(yè)管理、銀行業(yè)務(wù)、資源分配、經(jīng)濟(jì)預(yù)測一直到信息檢索、檔案

管理、普查統(tǒng)計(jì)等。并在通信網(wǎng)絡(luò)基礎(chǔ)上,建立了許多國際性的聯(lián)機(jī)檢索系統(tǒng)。

我國20世紀(jì)90年代初在全國范圍內(nèi)裝備了12個(gè)以數(shù)據(jù)庫技術(shù)為基礎(chǔ)的大型計(jì)

算機(jī)系統(tǒng),這些系分布在郵電、計(jì)委、銀行、電力、鐵路、氣象、民航、情報(bào)、

公安、軍事、航天和財(cái)稅等行業(yè)。

數(shù)據(jù)庫技術(shù)還在不斷的發(fā)展,并且不斷地與其它計(jì)算機(jī)技術(shù)相互滲透。數(shù)據(jù)庫技

術(shù)與網(wǎng)絡(luò)通信技術(shù)相結(jié)合,產(chǎn)生了分布式數(shù)據(jù)庫系統(tǒng)。數(shù)據(jù)庫技術(shù)與面向?qū)ο蠹?/p>

術(shù)相結(jié)合,產(chǎn)生了面向?qū)ο髷?shù)據(jù)庫系統(tǒng)。

在數(shù)據(jù)庫技術(shù)中有四個(gè)名詞,其概念應(yīng)該分清。

(1)數(shù)據(jù)庫(database,DB):DB是統(tǒng)一管理的相關(guān)數(shù)據(jù)的集合。DB能為各種

用戶共享,具有最小冗余度,數(shù)據(jù)間聯(lián)系密切,而又有較高的數(shù)據(jù)獨(dú)立性。

(2)數(shù)據(jù)庫管理系統(tǒng)(DatabaseManagementSystem,DBMS):DBMS是位于用戶

與操作系統(tǒng)之間的一層數(shù)據(jù)管理軟件,為用戶或應(yīng)用程序提供訪問DB的方法,

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

以分為層次型、網(wǎng)狀型、關(guān)系型和面向?qū)ο笮虳BMS。

(3)數(shù)據(jù)庫系統(tǒng)(DatabaseSystem,DBS):DBS是實(shí)現(xiàn)有組織地、動態(tài)地存儲

大量關(guān)聯(lián)數(shù)據(jù),方便多用戶訪問的計(jì)算機(jī)軟件、硬件和數(shù)據(jù)資源組成的系統(tǒng),即

采用了數(shù)據(jù)庫技術(shù)的計(jì)算機(jī)系統(tǒng)。

(4)數(shù)據(jù)庫技術(shù):這是一門研究數(shù)據(jù)庫的結(jié)構(gòu)、存儲、管理和使用的軟件學(xué)科。

數(shù)據(jù)庫技術(shù)是操作系統(tǒng)的文件系統(tǒng)基礎(chǔ)上發(fā)展起來的。而DBMS本身要在操作系

統(tǒng)的支持下才能工作。數(shù)據(jù)庫不僅用到數(shù)據(jù)結(jié)構(gòu)的知識,而且豐富了數(shù)據(jù)結(jié)構(gòu)的

內(nèi)容。在關(guān)系數(shù)據(jù)庫中要用到集合論、數(shù)理邏輯的理論。因此,數(shù)據(jù)庫技術(shù)是一

第12頁共65頁

編號:

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

門綜合性較強(qiáng)的學(xué)科。

§2.2數(shù)據(jù)庫理論基礎(chǔ)

2.2.1數(shù)據(jù)庫模型

從20世紀(jì)50年代中期開始,計(jì)算機(jī)的應(yīng)用由科學(xué)研究部門逐步擴(kuò)展到企業(yè)、行

政部門。至60年代,數(shù)據(jù)處理成為計(jì)算機(jī)的主要應(yīng)用。數(shù)據(jù)庫技術(shù)作為數(shù)據(jù)管

理技術(shù),是計(jì)算機(jī)軟件領(lǐng)域的一個(gè)重要分支,產(chǎn)生于60年代末?,F(xiàn)已形成相當(dāng)

規(guī)模的理論體系和實(shí)用技術(shù)。

模型是對現(xiàn)實(shí)世界的抽象。在數(shù)據(jù)庫技術(shù)中,我們用模型的概念描述數(shù)據(jù)庫的結(jié)

構(gòu)與語義,對現(xiàn)實(shí)世界進(jìn)行抽象,表示實(shí)體類型及實(shí)體間聯(lián)系的模型稱為“數(shù)據(jù)

模型”。

目前廣泛作用的數(shù)據(jù)模型可分為兩種類型。

一種是獨(dú)立于計(jì)算機(jī)系統(tǒng)的模型,完全不涉及信息在系統(tǒng)中的表示,只是用來描

述某個(gè)特定組織所關(guān)心的信息結(jié)構(gòu),這類模型稱為“概念數(shù)據(jù)模型”。要領(lǐng)模

型用于建立信息世界的數(shù)據(jù)模型,強(qiáng)調(diào)其語義表達(dá)功能,應(yīng)該概念簡單、清晰,

易于用戶理解,它是現(xiàn)實(shí)世界的第一層抽象,是用戶和數(shù)據(jù)庫設(shè)計(jì)人員之間進(jìn)行

交流的工具。這一其中著名的模型是“實(shí)體聯(lián)系模型”。

另一種數(shù)據(jù)模型是直接面向數(shù)據(jù)庫的邏輯結(jié)構(gòu),它是現(xiàn)實(shí)世界的第二層抽象這

類模型涉及到計(jì)算機(jī)系統(tǒng)和數(shù)據(jù)庫管理系統(tǒng)又稱為“結(jié)構(gòu)數(shù)據(jù)模型”。例如,

層次、網(wǎng)狀、關(guān)系、面向?qū)ο蟮饶P?。這類模型有嚴(yán)格的形式化定義,以便于在

計(jì)算機(jī)系統(tǒng)中實(shí)現(xiàn)。

(1)層次模型。用樹型結(jié)構(gòu)表示實(shí)體類型及實(shí)體間聯(lián)系的數(shù)據(jù)模型。樹的結(jié)點(diǎn)

是記錄類型,每個(gè)非根結(jié)點(diǎn)有且只有一個(gè)父結(jié)點(diǎn)。上一層記錄類型和下一層記錄

類型間聯(lián)系是1:N聯(lián)系。

層次模型的特點(diǎn)是記錄之間的聯(lián)系通過指針實(shí)現(xiàn),查詢效率較高。但層次模型有

第13頁共65頁

編號:

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

兩個(gè)缺點(diǎn):一是只能表示1:N聯(lián)系,雖然有多種輔助手段實(shí)現(xiàn)了M:N聯(lián)系,但

都較復(fù)雜,用戶不易掌握,二是由于樹型結(jié)構(gòu)層次順序的嚴(yán)格和復(fù)雜,引起數(shù)據(jù)

的查詢和更新操作也很復(fù)雜,因此,編寫應(yīng)用程序也很復(fù)雜。

(2)網(wǎng)狀模型。用有向圖結(jié)構(gòu)表示實(shí)體類型及實(shí)體間聯(lián)系的數(shù)據(jù)模型。。1969

年DBTG報(bào)告提出的數(shù)據(jù)模型是網(wǎng)狀模型的主要代表。有向圖中的結(jié)點(diǎn)是記錄類

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

系。

網(wǎng)狀模型的特點(diǎn):記錄之間聯(lián)系通過指針實(shí)現(xiàn),M:N聯(lián)系也容易實(shí)現(xiàn)(每個(gè)M

:N聯(lián)系可拆成兩個(gè)1:N聯(lián)系),查詢效率較高。網(wǎng)狀模型的缺點(diǎn)是編寫應(yīng)用程

序比較復(fù)雜,程序員必須熟悉數(shù)據(jù)庫的邏輯結(jié)構(gòu)。由于層次系統(tǒng)和網(wǎng)狀系統(tǒng)的應(yīng)

用程序編制比較復(fù)雜,因此,從20世紀(jì)80年代中期起,其市場已被關(guān)系系統(tǒng)所

取代。但是使用這兩種模型建立起的許多數(shù)據(jù)庫仍然在正常運(yùn)轉(zhuǎn),只是在外層加

了個(gè)關(guān)系數(shù)據(jù)庫語言的接口。網(wǎng)狀模型有許多成功的產(chǎn)品,20世紀(jì)70年代的產(chǎn)

品大部分網(wǎng)狀系統(tǒng),例如,Honeywell公司的IDS/IkHP公司的IMAGE/3000.

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

公司的TOTAL等

(3)關(guān)系模型。關(guān)系模型的主要是用二維表格結(jié)構(gòu)表達(dá)實(shí)體集,用外鍵表示實(shí)

體間聯(lián)系。關(guān)系模型是由若干個(gè)關(guān)系模式組成的集合。關(guān)系模式相當(dāng)于前面提到

的記錄類型,它的實(shí)例稱為關(guān)系,每個(gè)關(guān)系實(shí)際上是一張二維表格。

關(guān)系模型和層次、網(wǎng)狀模型的最大判別是用關(guān)鍵碼而不是用指針導(dǎo)航數(shù)據(jù),表格

簡單用戶易懂,編程時(shí)并不涉及存儲結(jié)構(gòu),訪問技術(shù)等細(xì)節(jié)。關(guān)系模型是數(shù)學(xué)化

模型。SQL語言是關(guān)系數(shù)據(jù)庫的標(biāo)準(zhǔn)化語言,已得到了廣泛的應(yīng)用。20世紀(jì)70

年代對關(guān)系數(shù)據(jù)庫的研究主要集中在理論和實(shí)驗(yàn)系統(tǒng)的開發(fā)方面。80年代初才

形成產(chǎn)品但很快得到廣泛的應(yīng)用和普及并最終取代了層次、網(wǎng)狀數(shù)據(jù)庫產(chǎn)品。

第14頁共65頁

編號:

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

現(xiàn)在市場上典型的關(guān)系DBMS產(chǎn)品有DB2、ORACLE、SYBASE>INFORMIX和微機(jī)型

產(chǎn)品Foxpro>Access等。

關(guān)系模型和網(wǎng)狀、層次模型的最大區(qū)別是:關(guān)系模型用表格數(shù)據(jù)而不是通過指針

鏈來表示和實(shí)現(xiàn)實(shí)體間聯(lián)系。關(guān)系模型的數(shù)據(jù)結(jié)構(gòu)簡單、易懂。只需用簡單的查

詢語句就可對數(shù)據(jù)庫進(jìn)行操作。

關(guān)系模型是數(shù)學(xué)化的模型,可把表格看成一個(gè)集合,因此集合論、數(shù)理邏輯等知

識可引入到關(guān)系模型中來。關(guān)系模型已是一個(gè)成熟的有前途的模型,已得到廣泛

應(yīng)用。

(4)面向?qū)ο竽P?。目前,關(guān)系數(shù)據(jù)庫的使用已相當(dāng)普遍,但是,現(xiàn)實(shí)世界中

仍然存在著許多含有復(fù)雜數(shù)據(jù)結(jié)構(gòu)的應(yīng)用領(lǐng)域,例如,CAD數(shù)據(jù)、圖形數(shù)據(jù)等,

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

庫技術(shù)來表達(dá)這類信息。面向?qū)ο蟮母拍钭钤绯霈F(xiàn)在程序設(shè)計(jì)語言中,隨后迅速

滲透到計(jì)算機(jī)領(lǐng)域的每一個(gè)分支。面向?qū)ο髷?shù)據(jù)庫是面向?qū)ο蟾拍钆c數(shù)據(jù)庫技術(shù)

相結(jié)合的產(chǎn)物。

面向?qū)ο竽P湍芡暾孛枋霈F(xiàn)實(shí)世界的數(shù)據(jù)結(jié)構(gòu),具有豐富的表達(dá)能力,但模型

相對較復(fù)雜,涉及的知識面也廣,因此面向?qū)ο髷?shù)據(jù)庫尚未達(dá)到關(guān)系數(shù)據(jù)庫那樣

的普及程度。

2.2.2數(shù)據(jù)庫體系結(jié)構(gòu)

數(shù)據(jù)庫的體系結(jié)構(gòu)分三級:內(nèi)部級(internal),概念級(conceptual)和外部

級(extemal)。這個(gè)三級結(jié)構(gòu)有時(shí)也稱為“三級模式結(jié)構(gòu)”,或“數(shù)據(jù)抽象的

三個(gè)級別”,最早是在1971年通過的DBTG報(bào)告中提出,后來收入在1975年的

美國ANSI/SPARC報(bào)告中。雖然現(xiàn)在DBMS的產(chǎn)品多種多樣,在不同的操作系統(tǒng)支

持下工作,但是大多數(shù)系統(tǒng)在總的體系結(jié)構(gòu)上都具有三級模式的結(jié)構(gòu)特征。從某

第15頁共65頁

編號:

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

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

外部級最接近用戶,是單個(gè)用戶所能看到的數(shù)據(jù)特性。單個(gè)用戶使用的數(shù)據(jù)視圖

的描述稱為“外模式”。

概念級涉及到所有用戶的數(shù)據(jù)定義,是全局的數(shù)據(jù)視圖。全局?jǐn)?shù)據(jù)視圖的描述稱

為“概念模式”。

內(nèi)部級最接近于物理存儲設(shè)備,涉及到實(shí)際數(shù)據(jù)存儲的結(jié)構(gòu)。物理存儲數(shù)據(jù)視圖

的描述稱為“內(nèi)模式”。

數(shù)據(jù)庫的三級模式結(jié)構(gòu)是數(shù)據(jù)的三個(gè)抽象級別。它把數(shù)據(jù)的具體組織留給DBMS

去做,用戶只要抽象地處理數(shù)據(jù),而不必關(guān)心數(shù)據(jù)在計(jì)算機(jī)中的表示和存儲,這

樣就減輕了用戶使用系統(tǒng)的負(fù)擔(dān)。

三級結(jié)構(gòu)之間往往差別很大,為了實(shí)現(xiàn)這三個(gè)抽象級別的聯(lián)系和轉(zhuǎn)換,DBMS在

三級結(jié)構(gòu)之間提供兩個(gè)層次的映象(mappings):外模式/模式映象,模式/內(nèi)模

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

2.2.3數(shù)據(jù)的獨(dú)立性

由于數(shù)據(jù)庫系統(tǒng)采用三級模式結(jié)構(gòu),因此系統(tǒng)具有數(shù)據(jù)獨(dú)立性的特點(diǎn)。在數(shù)據(jù)庫

技術(shù)中,數(shù)據(jù)獨(dú)立性是指應(yīng)用程序和數(shù)據(jù)之間相互獨(dú)立,不受影響。數(shù)據(jù)獨(dú)立性

分成物理數(shù)據(jù)獨(dú)立性和邏輯數(shù)據(jù)獨(dú)立性兩級。

(1)物理數(shù)據(jù)獨(dú)立性

如果數(shù)據(jù)庫的內(nèi)模式要進(jìn)行修改,即數(shù)據(jù)庫的存儲設(shè)備和存儲方法有所變化,那

么模式/內(nèi)模式映象也要進(jìn)行相當(dāng)?shù)男薷模垢拍钅J奖M可能保持不變。也就是

對內(nèi)模式的修改盡量不影響概念模式當(dāng)然對于外模式和應(yīng)用程序的影響更小,

這樣,我們稱數(shù)據(jù)庫達(dá)到了物理數(shù)據(jù)獨(dú)立性。

(2)邏輯數(shù)據(jù)獨(dú)立性

如果數(shù)據(jù)庫的概念模式要進(jìn)行修改,譬如增加記錄類型或增加數(shù)據(jù)項(xiàng),那么外模

第16頁共65頁

編號:

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

式/模式映象也要進(jìn)行相應(yīng)的修改,使外模式盡可能保持不變。也就是對概念模

式的修改盡量不影響外模式和應(yīng)用程序,這樣,我們稱數(shù)據(jù)庫達(dá)到了邏輯數(shù)據(jù)獨(dú)

立性。

現(xiàn)有關(guān)系系統(tǒng)產(chǎn)品均提供了較高的物理獨(dú)立性而對邏輯獨(dú)立性的支持尚有欠缺,

例如,對外模式的數(shù)據(jù)更新受到限制等。

2.2.4范式

建立起一個(gè)良好的數(shù)據(jù)指標(biāo)體系,是建立數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)庫的最重要的一環(huán)。一

個(gè)良好的數(shù)據(jù)指標(biāo)體系是建立DB的必要條件,但不是充分條件。我們完全可以

認(rèn)為所建指標(biāo)體系中的一個(gè)指標(biāo)類就是關(guān)系數(shù)據(jù)庫中的一個(gè)基本表而這個(gè)指標(biāo)

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

式建庫顯然還不能算最佳。對于指標(biāo)體系中數(shù)據(jù)的結(jié)構(gòu)在建庫前還必須進(jìn)行規(guī)范

化的重新組織。

在數(shù)據(jù)的規(guī)范化表達(dá)中,一般將一組相互關(guān)聯(lián)的數(shù)據(jù)稱為一個(gè)關(guān)系(relation),

而在這個(gè)關(guān)系下的每個(gè)數(shù)據(jù)指標(biāo)項(xiàng)則被稱為數(shù)據(jù)元素(dataelement),這種關(guān)系

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

規(guī)范化表達(dá)還規(guī)定在每一個(gè)基本表中必須定義一個(gè)數(shù)據(jù)元素為關(guān)鍵字(key),它

可以唯一地標(biāo)識出該表中其它相關(guān)的數(shù)據(jù)元素。在規(guī)范化理論中表是二維的,它

有如下四個(gè)性質(zhì):

在表中的任意一列上,數(shù)據(jù)項(xiàng)應(yīng)屬于同一個(gè)屬性(如圖中每一列都存放著不同合

同記錄的同一屬性數(shù)據(jù))。

表中所有行都是不相同的,不允許有重復(fù)組項(xiàng)出現(xiàn)(如圖中每一行都是一個(gè)不同

的合同記錄)。

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

同都沒關(guān)系)。

第17頁共65頁

編號:

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

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

關(guān)系,但二者不可重復(fù)或同名)。

在對表的形式進(jìn)行了規(guī)范化定義后,數(shù)據(jù)結(jié)構(gòu)還有五種規(guī)范化定義,定名為規(guī)范

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

而且這五種范式是“向上兼容”的,即滿足第五范式的數(shù)據(jù)結(jié)構(gòu)自動滿足一、二、

三、四范式,滿足第四范式的數(shù)據(jù)結(jié)構(gòu)自動滿足第一、二、三范式,……,依此

類推。

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

如果有則應(yīng)將重復(fù)項(xiàng)去掉。這個(gè)去掉重復(fù)項(xiàng)的過程就稱之為規(guī)范化處理。在本文

所討論的開發(fā)方法里,1stNF實(shí)際上是沒有什么意義的。因?yàn)槲覀儼匆?guī)范化建

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

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

個(gè))數(shù)據(jù)元素為主關(guān)鍵字(primarykey),其它數(shù)據(jù)元素與主關(guān)鍵字一一對應(yīng)。例

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

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

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

為函數(shù)依賴(functionaldepEndence)關(guān)系。即表中其它數(shù)據(jù)元素都依賴于主關(guān)

鍵字,或稱該數(shù)據(jù)元素唯一地被主關(guān)鍵字所標(biāo)識。

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

能夠唯一地被主關(guān)鍵字所標(biāo)識,而且它們之間還必須相互獨(dú)立,不存在其它的函

數(shù)關(guān)系。也就是說對于一個(gè)滿足了2ndNF的數(shù)據(jù)結(jié)構(gòu)來說,表中有可能存在某

些數(shù)據(jù)元素依賴于其它非關(guān)鍵宇數(shù)據(jù)元素的現(xiàn)象,必須加以消除。

為防止數(shù)據(jù)庫出現(xiàn)更新異常、插入異常、刪除異常、數(shù)據(jù)冗余太大等現(xiàn)象,關(guān)系

型數(shù)據(jù)庫要盡量按關(guān)系規(guī)范化要求進(jìn)行數(shù)據(jù)庫設(shè)計(jì)。

第18頁共65頁

編號:

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

§2.3SQL語言基礎(chǔ)

2.3.1SQL簡介

用戶對數(shù)據(jù)庫的使用,是通過數(shù)據(jù)庫管理系統(tǒng)提供的語言來實(shí)現(xiàn)的。不同的數(shù)據(jù)

庫管理系統(tǒng)提供不同的數(shù)據(jù)庫語言。關(guān)系數(shù)據(jù)庫管理系統(tǒng)幾乎都提供關(guān)系數(shù)據(jù)庫

標(biāo)準(zhǔn)語言----SQLo

SQL的全稱是StructuredQueryLanguage,即結(jié)構(gòu)化查詢語言。SQL語句可以

從關(guān)系數(shù)據(jù)庫中獲得數(shù)據(jù),也可以建立數(shù)據(jù)庫、增加數(shù)據(jù)、修改數(shù)據(jù)。1986年

ANSI采用SQL語言作為關(guān)系數(shù)據(jù)庫系統(tǒng)的標(biāo)準(zhǔn)語言,后被國際化標(biāo)準(zhǔn)組織(ISO)

采納為國際標(biāo)準(zhǔn)。SQL語言使用方便、功能豐富、簡潔易學(xué),是操作數(shù)據(jù)庫的工

業(yè)標(biāo)準(zhǔn)語言,得到廣泛地應(yīng)用。例如關(guān)系數(shù)據(jù)庫產(chǎn)品DB2、ORACLE等都實(shí)現(xiàn)了

SQL語言。同時(shí),其它數(shù)據(jù)庫產(chǎn)品廠家也紛紛推出各自的支持SQL的軟件或者與

SQL的接口軟件。這樣SQL語言很快被整個(gè)計(jì)算機(jī)界認(rèn)可。

SQL語言是一種非過程化語言它一次處理一個(gè)記錄集合對數(shù)據(jù)提供自動導(dǎo)航。

SQL語言允許用戶在高層的數(shù)據(jù)結(jié)構(gòu)上工作,而不對單個(gè)記錄進(jìn)行操作。SQL語

言不要求用戶指定數(shù)據(jù)的存取方法,而是使用查詢優(yōu)化器,由系統(tǒng)決定對指定數(shù)

據(jù)存取的最快速手段。當(dāng)設(shè)計(jì)者在關(guān)系表上定義了索引時(shí),系統(tǒng)會自動利用索引

進(jìn)行快速檢索,用戶不需知道表上是否有索引或者有什么類型的索引等細(xì)節(jié)。

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

?查詢數(shù)據(jù)

?在數(shù)據(jù)庫表格中插入、修改和刪除記錄

?建立、修改和刪除數(shù)據(jù)對象

?控制對數(shù)據(jù)和數(shù)據(jù)對象的存取

第19頁共65頁

編號:

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

?確保數(shù)據(jù)庫的一致性和完整性等

2.3.2SQL查詢

數(shù)據(jù)查詢是關(guān)系運(yùn)算理論在SQL語言中的主要體現(xiàn),SELECT語句是SQL查詢的

基本語句,當(dāng)我們在對一個(gè)數(shù)據(jù)庫進(jìn)各種各樣的操作時(shí),使用的最多的就是數(shù)據(jù)

查詢,在以SQL為基礎(chǔ)的關(guān)系數(shù)據(jù)庫中,使用的最多的就是SELECT查詢語句。

SELECT語句的完整句法如下:

SELECT目標(biāo)表的列名或列表達(dá)式序列

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

[WHERE行條件表達(dá)式]

[GROUPBY列名序列]

[HAVING組條件表達(dá)式]

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

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

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

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

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

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

統(tǒng)中的條件判斷往往包含多個(gè)條件,這時(shí)就需要使用邏輯運(yùn)算符NOT、AND,OR(用

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

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

2.3.3SQL數(shù)據(jù)更新

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

可少的一個(gè)功能在本系統(tǒng)中就大量地使用了數(shù)據(jù)插入、刪除和修改這三種操作,

現(xiàn)做一個(gè)簡單地介紹。

第20頁共65頁

編號:

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

?數(shù)據(jù)插入

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

組值的插入,另一種是查詢結(jié)果的插入。在本系統(tǒng)中使用的是前一種方式,其句

法如下:

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

?數(shù)據(jù)刪除

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

DELETEFROM基本表名[WHERE條件表達(dá)式]

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

達(dá)式]”和DELETE操作的結(jié)合,每找到一個(gè)元組,就把它刪除。此外,DELETE

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

幾個(gè)基本表的復(fù)合條件。

?數(shù)據(jù)修改

當(dāng)需要修改基本表中元組的某些列值時(shí),可以用UPDATE語句實(shí)現(xiàn)其句法如下:

UPDATE基本表名

SET列名=值表達(dá)式[,列名=值表達(dá)式…]

[WHERE條件表達(dá)式]

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

SQL語言的。有一點(diǎn)要進(jìn)行說明,雖然通過TQuery組件來使用SQL語言很方便,

但考慮到自己對不同組件的理解程度、個(gè)人習(xí)慣以及其它各個(gè)方面,在本系統(tǒng)中

我采用的是ADO組件來對數(shù)據(jù)庫進(jìn)行操作。最簡單的方法比如在TADOQuery組件

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

第三章數(shù)據(jù)庫開發(fā)工具

§3.1Delphi6.0簡介

第21頁共65頁

編號:

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

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

式出現(xiàn)在組件面板上,當(dāng)用戶從組件面板上點(diǎn)取一個(gè)類的圖標(biāo)后,在程序中就自

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

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

是找不到的。在Delphi中,每一個(gè)類的祖先都是Tobject類,整個(gè)類的層次結(jié)構(gòu)

就像一棵倒掛的樹,在最頂層的樹根即為Tobject類。這樣,按照面向?qū)ο缶幊?/p>

的基本思想,就使得用戶可用Tobject類這個(gè)類型代替任何其它類的數(shù)據(jù)類型。

實(shí)際上在Delphi的類庫中,Tobject類派生出了為數(shù)相當(dāng)眾多的子類,它們形

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

體系結(jié)構(gòu),只用到類層次樹的葉結(jié)點(diǎn)就足夠了。

凡是做過程序開發(fā)的人都知道從來沒有單純的數(shù)據(jù)應(yīng)用程序,也就是說,數(shù)據(jù)庫

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

只講界面或只講數(shù)據(jù)庫本身都構(gòu)不成數(shù)據(jù)庫應(yīng)用程序,因而用Delphi6.0開發(fā)

數(shù)據(jù)庫應(yīng)用程序就隱含著界面開發(fā)。Delphi6中的VCL組件可用圖3T來說明。

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

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

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

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

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

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

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

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

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

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

第22頁共65頁

編號:

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

和鼠標(biāo)活動相關(guān)的事件。圖形控件最典型的例子是Tlabel和TspeedButton。由

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

圖形組件的最大好處在于節(jié)省資源,正是因?yàn)樗鼈兊墓δ茌^弱,所以使用的系統(tǒng)

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

用圖形組件,將會大減少程序?qū)ο到y(tǒng)資源的消耗。

非可視

溫馨提示

  • 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

提交評論