版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
VisualFoxPro6.0
使用與開發(fā)技術(shù)高職高專計算機系列教材譚浩強主編總目錄第1章VisualFoxPro系統(tǒng)概述第2章走進(jìn)VisualFoxPro第3章VisualFoxPro基本操作及其預(yù)備知識第4章表第5章數(shù)據(jù)庫第6章視圖第7章查詢第8章報表第9章程序設(shè)計基礎(chǔ)第10章類第11章表單第12章應(yīng)用表單的設(shè)計第13章菜單第14章應(yīng)用系統(tǒng)開發(fā)第1章VisualFoxPro系統(tǒng)概述1.1數(shù)據(jù)庫基本概念1.2數(shù)據(jù)庫系統(tǒng)1.3
VisualFoxPro數(shù)據(jù)庫管理系統(tǒng)習(xí)題VisualFoxPro系統(tǒng)概述本章主要介紹與VisualFoxPro數(shù)據(jù)庫管理系統(tǒng)相關(guān)的一些數(shù)據(jù)庫基礎(chǔ)理論方面的知識,逐一講解信息、數(shù)據(jù)、數(shù)據(jù)庫等概念和關(guān)系數(shù)據(jù)庫規(guī)范化原則,這些是學(xué)習(xí)和掌握VisualFoxPro技術(shù)的基礎(chǔ)和前提。1.1數(shù)據(jù)庫基本概念當(dāng)人們試圖走進(jìn)數(shù)據(jù)庫應(yīng)用領(lǐng)域時,首先遇到的是信息、數(shù)據(jù)和數(shù)據(jù)庫等基本概念。這些不同的術(shù)語和概念貫穿數(shù)據(jù)處理的全過程,對我們更好地學(xué)習(xí)和使用數(shù)據(jù)庫管理系統(tǒng),有著重要的意義。當(dāng)我們對這些概念有所了解后,學(xué)習(xí)VisualFoxPro數(shù)據(jù)庫管理系統(tǒng)操作與應(yīng)用,將會更加得心應(yīng)手。
1.1.1信息、數(shù)據(jù)
1.信息信息(information)是客觀事物屬性的反映。它所反映的是某一客觀系統(tǒng)中,某一事物的某一方面屬性或某一時刻的表現(xiàn)形式。通俗地講,信息是經(jīng)過加工處理并對人類客觀行為產(chǎn)生影響的數(shù)據(jù)表現(xiàn)形式。信息是人們在進(jìn)行社會活動、經(jīng)濟活動及生產(chǎn)活動時的產(chǎn)物,并用以參與、指導(dǎo)其活動過程。信息是有價值的,信息是可以感知的。信息可以通過載體傳遞,信息可以通過信息處理工具進(jìn)行存儲、加工、傳播、再生和增值。在信息社會中,信息一般可與物質(zhì)和能量相提并論,它是一種重要的資源。2.數(shù)據(jù)數(shù)據(jù)(data)是反映客觀事物屬性的記錄,是信息的載體。對客觀事物屬性的記錄是用一定的符號來表達(dá)的,因此數(shù)據(jù)是信息的具體表現(xiàn)形式。數(shù)據(jù)所反映的事物屬性是它的內(nèi)容,而符號是它的形式。數(shù)據(jù)表現(xiàn)信息的形式可以是多種多樣的,不僅有數(shù)字、文字符號,還可以有圖形、圖像和聲音等。用數(shù)據(jù)記錄同一信息可以有不同的形式,信息不會隨著數(shù)據(jù)形式的不同而改變其內(nèi)容和價值。數(shù)據(jù)與信息在概念上是有區(qū)別的。從信息處理角度看,任何事物的屬性都是通過數(shù)據(jù)來表示的,數(shù)據(jù)經(jīng)過加工處理后,使其具有知識性并對人類活動產(chǎn)生決策作用,從而形成信息。用數(shù)據(jù)符號表示信息,其形式有許多種類型。常見的有三種類型,一是數(shù)值型數(shù)據(jù),即對客觀事物進(jìn)行定量記錄的符號,如數(shù)量、年齡、價格和度數(shù)等;二是字符型數(shù)據(jù),即對客觀事物進(jìn)行定性記錄的符號,如姓名、單位、地址的標(biāo)志等;三是特殊型數(shù)據(jù),即對客觀事物進(jìn)行形象特征和過程記錄的符號,如聲音、視頻、圖像等。從計算機的角度看,數(shù)據(jù)泛指可以被計算機接受并能夠被計算機處理的符號??傊?,信息是有用的數(shù)據(jù),數(shù)據(jù)是信息的表現(xiàn)形式。信息是通過數(shù)據(jù)符號來傳播的,數(shù)據(jù)如不具有知識性和有用性則不能稱其為信息。
1.1.2數(shù)據(jù)處理所謂數(shù)據(jù)處理實際上就是利用計算機對各種類型的數(shù)據(jù)進(jìn)行處理。數(shù)據(jù)處理也稱為信息處理。它包括對數(shù)據(jù)的采集、整理、存儲、分類、排序、檢索、維護(hù)、加工、統(tǒng)計和傳輸?shù)纫幌盗胁僮鳌?shù)據(jù)處理的目的是從大量的、原始的數(shù)據(jù)中獲得我們所需要的資料并提取有用的數(shù)據(jù)成分,作為行為和決策的依據(jù)。隨著電子計算機軟件和硬件技術(shù)的發(fā)展,數(shù)據(jù)處理過程發(fā)生了劃時代的變革,而數(shù)據(jù)庫技術(shù)的發(fā)展,又使數(shù)據(jù)處理跨入了一個嶄新的階段。數(shù)據(jù)的管理技術(shù)的發(fā)展經(jīng)歷了人工管理、文件管理和數(shù)據(jù)庫系統(tǒng)管理三個階段。人工管理出現(xiàn)在計算機應(yīng)用于數(shù)據(jù)管理的初期。由于沒有必要軟件和相應(yīng)的硬件環(huán)境支持,用戶只能直接在裸機上操作。用戶的應(yīng)用程序中不僅要有設(shè)計數(shù)據(jù)處理的方法,還要闡明數(shù)據(jù)在存儲器上的存儲地址。在這一管理方式下,用戶的應(yīng)用程序與數(shù)據(jù)相互結(jié)合不可分割,當(dāng)數(shù)據(jù)有所變動時程序則隨之改變,獨立性差;另外,各程序之間的數(shù)據(jù)不能相互傳遞,缺少共享性,因而這種管理方式既不靈活,也不安全,編程效率低下。文件管理是利用文件系統(tǒng)管理軟件把有關(guān)的數(shù)據(jù)組織成一個數(shù)據(jù)文件,并長期地保存在外存儲器上,這種數(shù)據(jù)文件可以脫離程序而獨立存在,由一個專門的文件管理系統(tǒng)實施統(tǒng)一管理。文件管理系統(tǒng)是一個獨立的系統(tǒng)軟件,是應(yīng)用程序與數(shù)據(jù)文件之間的一個接口。在這一管理方式下,應(yīng)用程序通過文件管理系統(tǒng)對數(shù)據(jù)文件中的數(shù)據(jù)進(jìn)行加工處理。應(yīng)用程序與數(shù)據(jù)之間具有一定的獨立性。但數(shù)據(jù)文件仍高度依賴于與其對應(yīng)的特定程序,不能被多個程序通用,由于數(shù)據(jù)文件之間不能建立任何聯(lián)系,因而數(shù)據(jù)的通用性仍然較差,冗余量大。數(shù)據(jù)庫系統(tǒng)管理是通過數(shù)據(jù)庫管理系統(tǒng)軟件對所用的數(shù)據(jù)實行統(tǒng)一規(guī)劃管理,形成一個數(shù)據(jù)中心,構(gòu)成一個數(shù)據(jù)“倉庫”,在這個數(shù)據(jù)庫中的數(shù)據(jù)能夠滿足不同用戶的要求,供不同用戶共享。在這一管理方式下,應(yīng)用程序不再只與一個孤立的數(shù)據(jù)文件相對應(yīng),可以取整體數(shù)據(jù)集的某個子集作為邏輯文件與其對應(yīng),通過數(shù)據(jù)庫管理系統(tǒng)實現(xiàn)邏輯文件與物理數(shù)據(jù)之間的協(xié)調(diào)與互動,從而實現(xiàn)數(shù)據(jù)處理。在數(shù)據(jù)庫系統(tǒng)管理的系統(tǒng)環(huán)境下,應(yīng)用程序?qū)?shù)據(jù)管理和訪問靈活方便,而且數(shù)據(jù)與應(yīng)用程序之間完全獨立,使程序的編制質(zhì)量和效率都有所提高。由于數(shù)據(jù)庫文件中的各數(shù)據(jù)子集間可以建立關(guān)聯(lián)關(guān)系,所以數(shù)據(jù)的冗余大大減少,數(shù)據(jù)共享性顯著增強。1.1.3數(shù)學(xué)模型現(xiàn)實世界中的客觀事物是彼此相互聯(lián)系的。一方面,某一事物內(nèi)部的諸因素和諸屬性根據(jù)一定的組織原則相互具有聯(lián)系,構(gòu)成一個相對獨立的系統(tǒng);另一方面,某一事物同時也作為一個更大系統(tǒng)的一個因素或一種屬性而存在,并與系統(tǒng)的其他因素或?qū)傩园l(fā)生聯(lián)系。客觀事物的這種普遍聯(lián)系性決定了作為事物屬性記錄符號的數(shù)據(jù)與數(shù)據(jù)之間也存在著一定的聯(lián)系性。具有聯(lián)系性的相關(guān)數(shù)據(jù)總是按照一定的組織關(guān)系排列,從而構(gòu)成一定的結(jié)構(gòu),對這種結(jié)構(gòu)的描述就是數(shù)學(xué)模型。數(shù)學(xué)模型是數(shù)據(jù)庫系統(tǒng)的核心,它規(guī)范了數(shù)據(jù)庫中數(shù)據(jù)的組織形式,表示了數(shù)據(jù)及數(shù)據(jù)之間的聯(lián)系。數(shù)學(xué)模型的好壞直接影響數(shù)據(jù)庫的性能。支持?jǐn)?shù)據(jù)庫系統(tǒng)的常用的數(shù)學(xué)模型有層次模型(hierarchicalmodel)、網(wǎng)狀模型(networkmodel)、關(guān)系模型(relationalmodel)及面向?qū)ο竽P?objectorientedmodel)。層次模型和網(wǎng)狀模型是早期的數(shù)學(xué)模型,已逐漸退出市場。由于關(guān)系模型有更為簡單靈活的特點,因此目前流行的數(shù)據(jù)庫軟件大多使用關(guān)系模型。但是,隨著信息的大量傳播,現(xiàn)實生活中存在許多更復(fù)雜的數(shù)據(jù)結(jié)構(gòu)和應(yīng)用領(lǐng)域,對這些復(fù)雜的數(shù)據(jù)的處理,使用關(guān)系模型較為困難,因此產(chǎn)生了面向?qū)ο髷?shù)學(xué)模型。面向?qū)ο髷?shù)學(xué)模型是正在發(fā)展中的具有廣泛應(yīng)用開發(fā)價值的模型,目前在此基礎(chǔ)上建立的數(shù)據(jù)庫大都是實驗性的。當(dāng)前社會最為流行的數(shù)據(jù)庫軟件產(chǎn)品,大多數(shù)是在關(guān)系模型基礎(chǔ)上發(fā)展起來的數(shù)據(jù)庫管理系統(tǒng)。1.1.4關(guān)系模型關(guān)系模型(relationalmodel)是用二維表的邏輯結(jié)構(gòu)來表示數(shù)據(jù)及數(shù)據(jù)之間的聯(lián)系。關(guān)系模型的所謂“關(guān)系”是特指那種雖具有相關(guān)性,而非從屬性的平行的數(shù)據(jù)之間按照某種序列排列的集合關(guān)系。例如有一組數(shù)據(jù)如下:1,甲,女,20歲2,乙,男,18歲3,丙,女,21歲4,丁,男,20歲這4組數(shù)據(jù)之間是平行的,互不從屬,但假如我們知道他們是同一個班級的學(xué)生,便可以構(gòu)成某學(xué)校某班學(xué)生基本情況表,并建立一個關(guān)系。如表1-1所示。表1-1(書第4頁)表1-1中的數(shù)據(jù)雖然是平行的,不代表從屬關(guān)系,但卻構(gòu)成了某學(xué)校某個班級的學(xué)生間的關(guān)系結(jié)構(gòu)。同樣,如果我們假設(shè)上述4組數(shù)據(jù)不是來自同一個班級,而是來自不同的專業(yè)系,便可以構(gòu)成某學(xué)校各專業(yè)學(xué)生基本情況表,又可以建立一個關(guān)系。如表1-2所示。表1-2(書第4頁)以上兩表所表現(xiàn)的都是關(guān)系模型。表格中的每一列數(shù)據(jù)都是獨立的數(shù)據(jù)項,它們共同構(gòu)成了該關(guān)系的全部內(nèi)容。表格中的每一行稱為一個記錄(record)。記錄用來表示關(guān)系模型中若干平行的、相對獨立的個體事物,每一記錄由若干數(shù)據(jù)項的值組成。表格中的每一列稱為一個字段(field)。字段是表示關(guān)系模型中具有某種屬性的一列數(shù)據(jù),一般在表格的第一行標(biāo)示屬性類型的名稱,稱為字段名。總體上說,以豎向的數(shù)據(jù)屬性分類的若干個記錄的集合,構(gòu)成一個關(guān)系模型,稱為一個關(guān)系(relation)。在某種意義上關(guān)系模型就是一張二維表,用來描述客觀事物屬性的關(guān)系。關(guān)系模型有以下主要特點:(1)關(guān)系中每一數(shù)據(jù)項不可再分,是最基本的單位。(2)每一列數(shù)據(jù)項具有相同的類型,稱其為數(shù)據(jù)的屬性。列數(shù)根據(jù)需要而設(shè),各列都有唯一的屬性名和對應(yīng)的屬性值。(3)每一列的順序是任意的。(4)每一行數(shù)據(jù)是一個個體事物諸多屬性值的集合,稱其為記錄。(5)記錄的順序可以是任意的。(6)在一個關(guān)系中,不允許有相同的字段名,也不允許有相同的記錄行。1.1.5數(shù)據(jù)庫數(shù)據(jù)庫(database)是以一定的組織方式將相關(guān)的數(shù)據(jù)組織在一起存放在計算機外存儲器上,并能為多個用戶共享的、與應(yīng)用程序彼此獨立的一組相關(guān)數(shù)據(jù)的集合。數(shù)據(jù)庫是數(shù)據(jù)庫應(yīng)用系統(tǒng)的核心和管理對象。前面介紹的數(shù)學(xué)模型是對數(shù)據(jù)庫如何組織的一種模型表示,它不僅包括客觀事物本身的信息,還包括各事物間的聯(lián)系。數(shù)學(xué)模型的主要特征是數(shù)據(jù)結(jié)構(gòu),因此,確定了數(shù)學(xué)模型,就等于確定了數(shù)據(jù)間的關(guān)系,即數(shù)據(jù)庫的框架。有了數(shù)據(jù)間的關(guān)系框架,再把表示客觀事物具體特征的數(shù)據(jù)裝入框架中,就形成了數(shù)據(jù)庫。通俗地講,數(shù)據(jù)庫就是有條理、有組織、合理地存放大量數(shù)據(jù)的“數(shù)據(jù)倉庫”。數(shù)據(jù)庫的性質(zhì)是由其依賴的數(shù)學(xué)模型所決定的。在數(shù)據(jù)庫中,如果依照層次模型進(jìn)行數(shù)據(jù)存儲,則該數(shù)據(jù)庫為層次數(shù)據(jù)庫;如果依照網(wǎng)絡(luò)模型進(jìn)行數(shù)據(jù)存儲,則該數(shù)據(jù)庫為網(wǎng)絡(luò)數(shù)據(jù)庫;如果依照關(guān)系模型進(jìn)行數(shù)據(jù)存儲,則該數(shù)據(jù)庫為關(guān)系數(shù)據(jù)庫;如果依照面向?qū)ο竽P瓦M(jìn)行數(shù)據(jù)存儲,則該數(shù)據(jù)庫為面向?qū)ο髷?shù)據(jù)庫。VisualFoxPro數(shù)據(jù)庫管理系統(tǒng)所創(chuàng)造的數(shù)據(jù)庫,是依照關(guān)系模型進(jìn)行數(shù)據(jù)存儲的,因此稱其數(shù)據(jù)庫為關(guān)系數(shù)據(jù)庫。1.1.6關(guān)系數(shù)據(jù)庫
1.關(guān)系數(shù)據(jù)庫關(guān)系數(shù)據(jù)庫(relationdatabase)是若干個依照關(guān)系模型設(shè)計的若干關(guān)系的集合。也就是說,關(guān)系數(shù)據(jù)庫是由若干張完成關(guān)系模型設(shè)計的二維表組成的。我們稱一個“關(guān)系”(一張二維表)為一個數(shù)據(jù)表文件(簡稱數(shù)據(jù)表)。數(shù)據(jù)表是由數(shù)據(jù)及數(shù)據(jù)結(jié)構(gòu)組成的。對數(shù)據(jù)結(jié)構(gòu)的描述,形成了數(shù)據(jù)表的框架,而數(shù)據(jù)則是按照數(shù)據(jù)結(jié)構(gòu)填充的有著關(guān)系排列的數(shù)據(jù)項,它是數(shù)據(jù)表的內(nèi)容。一個關(guān)系數(shù)據(jù)庫由若干個數(shù)據(jù)表組成,一個數(shù)據(jù)表又由若干個記錄組成,而每一個記錄則由若干個以字段屬性加以分類的數(shù)據(jù)項組成。在關(guān)系數(shù)據(jù)庫中,每一個數(shù)據(jù)表都具有相對的獨立性,這一獨立性的唯一標(biāo)志是數(shù)據(jù)表的名字,稱為表文件名。也就是說,每一個數(shù)據(jù)表是靠自身的文件名與其他文件保持獨立,一個文件名代表一個獨立的表文件。一個數(shù)據(jù)庫中不允許有重名的數(shù)據(jù)表,因為對數(shù)據(jù)表中數(shù)據(jù)的訪問首先是通過表文件名來導(dǎo)引的。在關(guān)系數(shù)據(jù)庫中,有些數(shù)據(jù)表之間是具有相關(guān)性的,數(shù)據(jù)表之間的這種相關(guān)性是依靠每一個獨立的數(shù)據(jù)表內(nèi)部具有相同屬性的字段建立的。以關(guān)系模型設(shè)計的數(shù)據(jù)表為基本文件的關(guān)系數(shù)據(jù)庫,不但每個數(shù)據(jù)表之間具有獨立性,而且若干個數(shù)據(jù)表之間又具有相關(guān)性,這一特點使其具有很大的越性。2.關(guān)系數(shù)據(jù)庫的特點關(guān)系數(shù)據(jù)庫有以下主要特點:(1)關(guān)系數(shù)據(jù)庫以面向系統(tǒng)的觀點組織數(shù)據(jù),使數(shù)據(jù)具有最小的冗余度,支持復(fù)雜的數(shù)據(jù)結(jié)構(gòu)。(2)關(guān)系數(shù)據(jù)庫具有高度的數(shù)據(jù)和程序的相互獨立性,使應(yīng)用程序與數(shù)據(jù)的邏輯結(jié)構(gòu)和數(shù)據(jù)的物理存儲方式無關(guān)。(3)關(guān)系數(shù)據(jù)庫中的數(shù)據(jù)由于具有共享性,使其能為多個用戶服務(wù)。(4)關(guān)系數(shù)據(jù)庫允許多個用戶訪問數(shù)據(jù)庫中的數(shù)據(jù),同時提供了各種控制功能,保證數(shù)據(jù)獲得安全性、完整性和并發(fā)性控制。其中,安全性控制可防止未經(jīng)允許的用戶存取數(shù)據(jù);完整性控制可保證數(shù)據(jù)的正確性、有效性和相容性;并發(fā)性控制可防止多用戶并發(fā)訪問數(shù)據(jù)時由于相互干擾而產(chǎn)生的數(shù)據(jù)不一致。1.1.7關(guān)系模型的規(guī)范化原則數(shù)據(jù)怎樣存入關(guān)系數(shù)據(jù)庫是數(shù)據(jù)庫最重要的操作之一,也是應(yīng)用程序開發(fā)的關(guān)鍵。通常,我們首先要把收集來的相關(guān)的數(shù)據(jù)存放到數(shù)據(jù)表中,在實際應(yīng)用中,有許多相關(guān)的數(shù)據(jù)集合到一個數(shù)據(jù)表后,數(shù)據(jù)的關(guān)系會變得很復(fù)雜,數(shù)據(jù)表中的字段個數(shù)和數(shù)據(jù)的數(shù)量很大。很多時候為了使一個事物表達(dá)清楚,又不違背關(guān)系模型的理論,數(shù)據(jù)表中會有大量數(shù)據(jù)重復(fù)出現(xiàn)的現(xiàn)象。特別是在進(jìn)行應(yīng)用程序設(shè)計時,組織的數(shù)據(jù)表如不理想,輕者會大大增加編程和維護(hù)程序的難度,重者會使應(yīng)用程序無法實現(xiàn)。一個組織良好的數(shù)據(jù)庫,不僅應(yīng)該有利于方便地解決應(yīng)用問題,而且還應(yīng)為解決一些不可預(yù)測的問題帶來便利,同時要盡可能地降低編程的難度,這就要求數(shù)據(jù)庫中的數(shù)據(jù)一定要通過相應(yīng)的約束條件實現(xiàn)數(shù)據(jù)規(guī)范化。1.數(shù)據(jù)規(guī)范化數(shù)據(jù)規(guī)范化(datanormalization)理論認(rèn)為,關(guān)系數(shù)據(jù)庫中的每一個關(guān)系都要滿足一定的規(guī)范。根據(jù)滿足規(guī)范的條件不同,可以劃分為五個等級,分別稱為第一范式(1NF),第二范式(2NF),……,第五范式(5NF),其中,NF是(normalform)的縮寫。需要特別指出的是,在實際操作中,不是數(shù)據(jù)規(guī)范的等級越高就越好,具體問題還要具體分析。在解決一般性問題時,通常只要把數(shù)據(jù)規(guī)范到第三個范式標(biāo)準(zhǔn)就可以滿足需要。關(guān)系模型數(shù)據(jù)規(guī)范化的原則如下:(1)第一范式:在一個關(guān)系中,要滿足關(guān)系模型的基本性質(zhì),消除重復(fù)字段,且各字段都是不可分的基本數(shù)據(jù)項。(2)第二范式:若關(guān)系模型屬于第一范式,則關(guān)系中每一個字段都完全依賴于主關(guān)鍵字段。(3)第三范式:若關(guān)系模型屬于第二范式,且關(guān)系中所有非主關(guān)鍵字段都直接依賴于主關(guān)鍵字段。數(shù)據(jù)規(guī)范化的基本思想是逐步消除數(shù)據(jù)依賴關(guān)系中不合適的部分,使含有不完全依賴或函數(shù)依賴的數(shù)學(xué)模型的數(shù)據(jù)達(dá)到有效的分離。例1.1有某高校的人事檔案管理信息表,如表1-3所示。表1-3(書第7頁)它沒有滿足關(guān)系模型的性質(zhì),不是一種關(guān)系二維表的形式,用戶要根據(jù)關(guān)系模型規(guī)范化,在保護(hù)原有信息內(nèi)容的基礎(chǔ)上,規(guī)范這組信息,使其滿足關(guān)系模型的性質(zhì)。根據(jù)數(shù)據(jù)規(guī)范化原則和關(guān)系模型的性質(zhì),我們可以將表1-3修改成如表1-4所示的形式。表1-4(書第7頁)例1.2某旅行社組團信息表如表1-5所示。表1-5(書第7頁)從表1-5不難看出,它是不符合數(shù)據(jù)規(guī)范化原則的。為了方便、有效地使用這些信息資源,我們可以根據(jù)數(shù)據(jù)規(guī)范化原則,規(guī)范這些信息資源。一種方法是將表1-5分成兩個獨立的數(shù)據(jù)表,如表1-6和表1-7。每一個數(shù)據(jù)表都具有獨立的屬性,同時又依賴于共同的關(guān)鍵字段“團隊編號”,使這些數(shù)據(jù)表間保持一定的關(guān)聯(lián)關(guān)系,且兩個數(shù)據(jù)表中的數(shù)據(jù)又能體現(xiàn)表1-5中的全部信息。兩個獨立的數(shù)據(jù)表的內(nèi)容如下。表1-6為團隊基本情況一覽表,表1-7為某團隊團員基本情況一覽表。表1-6(書第8頁)表1-7(書第8頁)表1-6和表1-7兩個表中的數(shù)據(jù),包含了表1-5中所有的信息??梢钥闯?,若將這些數(shù)據(jù)集中在一個表中(表1-5),則表中數(shù)據(jù)的結(jié)構(gòu)十分復(fù)雜,有許多數(shù)據(jù)重復(fù)出現(xiàn),造成數(shù)據(jù)的冗余,這必然導(dǎo)致數(shù)據(jù)存儲空間的浪費,使數(shù)據(jù)的輸入、查找和修改更加麻煩。相反,我們遵循數(shù)據(jù)規(guī)范化的準(zhǔn)則,建立多個相互關(guān)聯(lián)的數(shù)據(jù)表,并讓這些分開的數(shù)據(jù)表依靠關(guān)鍵字段保持一定的關(guān)聯(lián)關(guān)系,就可以有效地改進(jìn)上述缺點。例1.3某旅行社業(yè)務(wù)管理信息系統(tǒng)數(shù)據(jù)庫設(shè)計。對于一個旅行社業(yè)務(wù)管理單位來說,如果想在表1-6和表1-7提供的數(shù)據(jù)管理基礎(chǔ)上,進(jìn)一步擴大業(yè)務(wù)范圍,就要不斷地開發(fā)數(shù)據(jù)資源的類型、范圍和潛力,增強數(shù)據(jù)處理的能力?;谶@一點,我們可以把某旅行社業(yè)務(wù)管理信息系統(tǒng)數(shù)據(jù)庫,設(shè)計成為含多數(shù)據(jù)表的數(shù)據(jù)庫,并使各數(shù)據(jù)表之間通過對應(yīng)的字段建立關(guān)聯(lián)關(guān)系,使其既具有獨立性,又有其關(guān)聯(lián)性。表1-8為旅行社團隊組建業(yè)務(wù)管理信息。表1-8(見書第8頁)表1-9為旅行社團隊行程業(yè)務(wù)管理信息。表1-9(見書第8頁)表1-10為旅行社旅游路線相關(guān)信息。表1-10(見書第9頁)表1-11為旅行社旅游團員的相關(guān)信息。表1-11(見書第9頁)從以上各數(shù)據(jù)表中,我們可以獲取不同的數(shù)據(jù)信息,并用于相關(guān)的業(yè)務(wù)管理。由于旅行社內(nèi)部的各種業(yè)務(wù)是相互聯(lián)系的,作為一個管理者就更需要綜合、全面地進(jìn)行信息處理,而數(shù)據(jù)庫管理系統(tǒng)環(huán)境給我們提供了這樣的便利。我們可將這些相關(guān)聯(lián)的數(shù)據(jù)表存儲在同一個數(shù)據(jù)庫中(見圖1.1),并保持一定的關(guān)聯(lián)關(guān)系,一個旅行社業(yè)務(wù)管理數(shù)據(jù)庫就建立起來了。使用時如同一個數(shù)據(jù)表一樣,對數(shù)據(jù)進(jìn)行操作非常方便。圖1.12.數(shù)據(jù)表之間的關(guān)聯(lián)關(guān)系從理論上講,把這些依賴于關(guān)系模型建立的數(shù)據(jù)表組織在一起,可以反映客觀事物數(shù)據(jù)間的多種對應(yīng)關(guān)系。一般情況下,在同一個數(shù)據(jù)庫中,相關(guān)聯(lián)的數(shù)據(jù)表之間的關(guān)系有一對一、一對多、多對一和多對多的關(guān)系。(1)一對一關(guān)系一對一關(guān)系,即在兩個數(shù)據(jù)表中選一個相同字段作為關(guān)聯(lián)關(guān)鍵字段,把其中一個數(shù)據(jù)表中的關(guān)鍵字段稱為原始關(guān)鍵字段,該字段值是唯一的,而另一個數(shù)據(jù)表中的關(guān)鍵字段稱為外來關(guān)鍵字段,該字段值也是唯一的。在例1.3中,如果通過“團隊編號”這一相同字段,將表1-8與表1-9兩表建立關(guān)聯(lián)關(guān)系,把表1-8中的“團隊編號”視為原始關(guān)鍵字段(該字段值是唯一的),表1-9中的“團隊編號”視為外來關(guān)鍵字段(該字段值也是唯一的),兩個數(shù)據(jù)表便構(gòu)成了一對一的關(guān)系。如圖1.2所示。圖1.2(2)一對多關(guān)系一對多關(guān)系,即在兩個數(shù)據(jù)表中選一個相同的字段作為關(guān)聯(lián)關(guān)鍵字段,把其中一個數(shù)據(jù)表的關(guān)鍵字段稱為原始關(guān)鍵字段,該字段值是唯一的,而把另一個數(shù)據(jù)表中的關(guān)鍵字段稱為外來關(guān)鍵字段,該字段值是重復(fù)的。在例1.2中,如果通過“團隊編號”這一相同字段,將表1-6與表1-7兩表建立關(guān)聯(lián)關(guān)系,表1-6中的“團隊編號”視為原始關(guān)鍵字段(該字段值是唯一的),而表1-7中的“團隊編號”視為外來關(guān)鍵字段(該字段值是重復(fù)的),兩個表便構(gòu)成了一對多的關(guān)系。如圖1.3所示。圖1.3在例1.3中,如果通過“團隊編號”這一相同字段,將表1-9與表1-11兩表建立關(guān)聯(lián)關(guān)系,表1-9中的“團隊編號”視為原始關(guān)鍵字段,而表1-11中的“團隊編號”視為外來關(guān)鍵字段,兩個表便構(gòu)成了一對多的關(guān)系。如圖1.4所示。圖1.4在例1.3中,如果通過“路線編號”這一相同字段,將表1-10與表1-9兩表建立關(guān)聯(lián)關(guān)系,表1-10中與表1-9兩個表便構(gòu)成了一對多的關(guān)系。如圖1.5所示。圖1.5從上面的例子可以得知,把一個復(fù)雜的表分成一對多的關(guān)系,盡管重復(fù)還存在,但僅僅是外來關(guān)鍵字段的重復(fù),這就大大減少了數(shù)據(jù)輸入及數(shù)據(jù)存儲的復(fù)雜性。(3)多對一關(guān)系多對一關(guān)系與一對多關(guān)系是類似的,唯一的區(qū)別是在兩個相關(guān)聯(lián)的數(shù)據(jù)表中,先選擇哪一個數(shù)據(jù)表中的關(guān)鍵字段為原始關(guān)鍵字段,該字段值是重復(fù)的,而與它關(guān)聯(lián)的另一個數(shù)據(jù)表中的關(guān)鍵字段稱為外來關(guān)鍵字段,該字段值是唯一的。在例1.3中,如果把表1-9中的“路線編號”視為原始關(guān)鍵字段(該字段值是重復(fù)的),而表1-10中的“路線編號”視為外來關(guān)鍵字段(該字段值是唯一的),表1-9與表1-10兩表間便構(gòu)成了多對一的關(guān)系。如圖1.6所示。圖1.6(4)多對多關(guān)系多對多關(guān)系,即在兩個數(shù)據(jù)表中選一個相同字段作為關(guān)聯(lián)關(guān)鍵字段,把其中一個數(shù)據(jù)表關(guān)鍵字段視為原始關(guān)鍵字段,該字段值是重復(fù)的,而把另一個數(shù)據(jù)表中的關(guān)鍵字段視為外來關(guān)鍵字段,該字段值也是重復(fù)的,這樣兩個數(shù)據(jù)表間就有了多對多的關(guān)系。通常處理數(shù)據(jù)表間多對多的關(guān)系,是把多對多的關(guān)系化解分成兩個多對一或兩個一對多的關(guān)系進(jìn)行操作。通過上面對數(shù)據(jù)規(guī)范化和數(shù)據(jù)表間關(guān)系建立的觀點闡述,可以得知,在數(shù)據(jù)規(guī)范化原則指導(dǎo)下,既可以把復(fù)雜問題簡單化,綜合問題個體化,同樣也可以把個體問題綜合化。這樣可以大大提高數(shù)據(jù)的使用率,同時為系統(tǒng)程序設(shè)計提供了很大的方便。1.2數(shù)據(jù)庫系統(tǒng)數(shù)據(jù)庫是數(shù)據(jù)庫系統(tǒng)的核心和管理對象。數(shù)據(jù)庫中數(shù)據(jù)的存儲、維護(hù)以及為應(yīng)用系統(tǒng)提供數(shù)據(jù)支持,都是在數(shù)據(jù)庫系統(tǒng)(databasesystem)環(huán)境下運行完成的。這一節(jié)將介紹有關(guān)數(shù)據(jù)庫系統(tǒng)的一些相關(guān)內(nèi)容。
1.2.1數(shù)據(jù)庫系統(tǒng)的體系結(jié)構(gòu)所謂數(shù)據(jù)庫系統(tǒng)的體系結(jié)構(gòu),就是數(shù)據(jù)庫系統(tǒng)的總體框架。盡管實際數(shù)據(jù)庫系統(tǒng)的軟件產(chǎn)品多種多樣,并且支持不同的數(shù)學(xué)模型,不同的數(shù)據(jù)庫語言,建立在不同的操作系統(tǒng)之上,數(shù)據(jù)的存儲結(jié)構(gòu)也各不相同,但絕大多數(shù)的數(shù)據(jù)庫系統(tǒng)在總的體系結(jié)構(gòu)上具有三級模型的結(jié)構(gòu)特征。從數(shù)據(jù)管理的角度看,與數(shù)據(jù)庫打交道的有三類人員:用戶、應(yīng)用程序員和系統(tǒng)程序員。由于他們對數(shù)據(jù)庫的認(rèn)識、理解和接觸范圍各不相同,從而形成了各自的數(shù)據(jù)庫視圖,所謂視圖是指其觀察、認(rèn)識和理解數(shù)據(jù)的范圍、角度和方法。根據(jù)各類人員與數(shù)據(jù)庫的不同關(guān)系,可把視圖分為三種:即對應(yīng)于用戶的外部視圖,對應(yīng)于應(yīng)用程序員的概念視圖,對應(yīng)于系統(tǒng)程序員的內(nèi)部視圖。由此形成數(shù)據(jù)庫系統(tǒng)的三級模式結(jié)構(gòu):外模式、概念模式和內(nèi)模式。如圖1.7所示。圖1.7外模式又稱子模式或用戶模式,對應(yīng)于用戶級,是某個或幾個數(shù)據(jù)庫用戶所看到的數(shù)據(jù)庫的數(shù)據(jù)視圖。外模式是從概念模式導(dǎo)出的子模式,用戶可以通過子模式描述語言來描述用戶級數(shù)據(jù)庫的記錄,還可以利用數(shù)據(jù)操縱語言對這些記錄進(jìn)行操作。概念模式又稱邏輯模式,對應(yīng)于概念級,它是由數(shù)據(jù)庫設(shè)計者綜合所有用戶的數(shù)據(jù),按照統(tǒng)一的觀點構(gòu)造的全局邏輯結(jié)構(gòu),是對數(shù)據(jù)庫中全部數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的總體描述,是所有用戶的公共數(shù)據(jù)視圖。它是用概念模式描述語言來描述的,是應(yīng)用程序員的數(shù)據(jù)視圖。內(nèi)模式又稱存儲模式,對應(yīng)于物理級,是全體數(shù)據(jù)庫數(shù)據(jù)的內(nèi)部表示或底層描述,是真正存放在外存儲器上的數(shù)據(jù)庫,它描述了數(shù)據(jù)在存儲介質(zhì)上的存儲方式與物理結(jié)構(gòu)。數(shù)據(jù)庫系統(tǒng)的三級模式是數(shù)據(jù)的三個抽象級別,使用戶能夠邏輯地、抽象地處理數(shù)據(jù),而不必關(guān)心數(shù)據(jù)在計算機中的表示和存儲。為了實現(xiàn)三個抽象層次間的聯(lián)系和轉(zhuǎn)換,數(shù)據(jù)庫系統(tǒng)在三個模式間提供了兩級映射:外模式與概念模式間的映射、概念模式與內(nèi)模式間的映射。1.2.2數(shù)據(jù)庫管理系統(tǒng)從信息處理的理論角度講,如果把利用數(shù)據(jù)庫進(jìn)行信息處理的工作過程,或把掌握、管理和操縱數(shù)據(jù)庫的數(shù)據(jù)資源的方法看作是一個系統(tǒng),則稱這個系統(tǒng)為數(shù)據(jù)庫管理系統(tǒng)(databasemanagementsystem,簡稱DBMS)。數(shù)據(jù)庫管理系統(tǒng)提供對數(shù)據(jù)庫資源進(jìn)行統(tǒng)一管理和控制的功能,使數(shù)據(jù)與應(yīng)用程序隔離,數(shù)據(jù)具有獨立性。它可以使數(shù)據(jù)結(jié)構(gòu)及數(shù)據(jù)存儲具有一定的規(guī)范性,減少了數(shù)據(jù)的冗余,并有利于數(shù)據(jù)共享。它提供了安全性和保密性措施,使數(shù)據(jù)不被破壞和竊用。數(shù)據(jù)庫管理系統(tǒng)通常由三個部分組成:數(shù)據(jù)描述語言(DDL)及其編譯程序、數(shù)據(jù)操縱語言(DML)或查詢語言及其編譯或解釋程序、數(shù)據(jù)庫管理例行程序。數(shù)據(jù)描述語言用于定義數(shù)據(jù)庫的各級模式(外模式、概念模式、內(nèi)模式),各種模式通過數(shù)據(jù)描述語言編譯器翻譯成相應(yīng)的目標(biāo)模式,保存在數(shù)據(jù)字典中。數(shù)據(jù)操縱語言提供對數(shù)據(jù)庫數(shù)據(jù)存取、檢索、插入、修改和刪除等基本操作。數(shù)據(jù)操縱語言一般有兩種類型:一種是嵌入在高級語言中,不獨立使用,此類語言稱為宿主型語言。另一種是交互查詢語言,可以獨立使用,進(jìn)行簡單的檢索、更新等操作,通常由一組命令組成,以便用戶提取數(shù)據(jù)庫中的數(shù)據(jù),此類語言稱為自主型語言。數(shù)據(jù)庫管理例行程序是數(shù)據(jù)庫管理系統(tǒng)的核心部分,包括并發(fā)控制、存取控制、完整性條件檢查與執(zhí)行、數(shù)據(jù)庫內(nèi)部維護(hù)等,數(shù)據(jù)庫的所有操作都在上述控制程序的統(tǒng)一管理下進(jìn)行,以確保數(shù)據(jù)的正確有效。1.2.3數(shù)據(jù)庫應(yīng)用系統(tǒng)的構(gòu)成數(shù)據(jù)庫應(yīng)用系統(tǒng)(簡稱數(shù)據(jù)庫系統(tǒng))是指引進(jìn)了數(shù)據(jù)庫技術(shù)后的整個計算機系統(tǒng),是由硬件系統(tǒng)、軟件系統(tǒng)、數(shù)據(jù)資源和計算機操作人員四個部分組成,為用戶提供信息服務(wù)的系統(tǒng)。硬件系統(tǒng)是數(shù)據(jù)庫系統(tǒng)的物理設(shè)備支撐,包括CPU、內(nèi)存、外存及輸入/輸出設(shè)備。由于數(shù)據(jù)庫系統(tǒng)承擔(dān)著數(shù)據(jù)管理的任務(wù),它要在操作系統(tǒng)的支持下工作,而且本身包含著數(shù)據(jù)庫管理例行程序、應(yīng)用程序等,因此要求有足夠大的內(nèi)存空間。同時,由于用戶的數(shù)據(jù)資源、系統(tǒng)軟件和應(yīng)用軟件都要保存在外存儲器上,所以對外存容量的要求很高。軟件系統(tǒng)包括系統(tǒng)軟件和應(yīng)用軟件兩類。系統(tǒng)軟件主要包括支持?jǐn)?shù)據(jù)庫管理系統(tǒng)運行的操作系統(tǒng)、數(shù)據(jù)庫管理系統(tǒng)、開發(fā)應(yīng)用系統(tǒng)的高級語言及其編譯系統(tǒng)、應(yīng)用系統(tǒng)開發(fā)的工具軟件等,是開發(fā)應(yīng)用系統(tǒng)必要環(huán)境。其中數(shù)據(jù)庫管理系統(tǒng)是連接數(shù)據(jù)庫和用戶之間的紐帶,是軟件系統(tǒng)的核心。應(yīng)用軟件是指在數(shù)據(jù)庫管理系統(tǒng)的基礎(chǔ)上由用戶根據(jù)自己的實際需要自行開發(fā)的應(yīng)用程序。數(shù)據(jù)資源是數(shù)據(jù)庫系統(tǒng)的管理對象,是為用戶提供數(shù)據(jù)的信息源。計算機操作人員是指管理、開發(fā)和使用數(shù)據(jù)庫系統(tǒng)的全部人員,主要包括數(shù)據(jù)庫管理員、系統(tǒng)分析員、應(yīng)用程序員和用戶。其中不同的人員涉及不同的數(shù)據(jù)抽象級別,數(shù)據(jù)庫管理員負(fù)責(zé)管理和控制數(shù)據(jù)庫系統(tǒng);系統(tǒng)分析員負(fù)責(zé)應(yīng)用系統(tǒng)的需求分析和規(guī)范說明,確定系統(tǒng)的軟硬件配置、系統(tǒng)的功能及數(shù)據(jù)庫概念設(shè)計;應(yīng)用程序員負(fù)責(zé)設(shè)計應(yīng)用系統(tǒng)的程序模塊,根據(jù)數(shù)據(jù)庫的外模式來編寫應(yīng)用程序;最終用戶通過應(yīng)用系統(tǒng)提供的用戶接口界面使用數(shù)據(jù)庫,常用的接口方式有菜單驅(qū)動、圖形顯示、表格操作等。1.3VisualFoxPro數(shù)據(jù)庫管理系統(tǒng)VisualFoxPro6.0數(shù)據(jù)庫管理系統(tǒng)是一個關(guān)系數(shù)據(jù)庫管理系統(tǒng)軟件,是xBASE系列軟件中的佼佼者,它在流行的xBASE系統(tǒng)軟件的基礎(chǔ)上提供了諸多新功能,技術(shù)有所超越,大大改善了計算機用戶環(huán)境,對數(shù)據(jù)的組織、數(shù)據(jù)庫的建立及應(yīng)用系統(tǒng)的開發(fā)更為方便,受到眾多用戶的青睞。VisualFoxPro6.0系統(tǒng)提供了一個由菜單驅(qū)動、輔以命令對話窗口的簡潔友好、功能全面的用戶界面。用戶可以通過輸入命令或使用菜單,實現(xiàn)對VisualFoxPro的各種功能的操作,完成數(shù)據(jù)管理的任務(wù)。VisualFoxPro6.0系統(tǒng)的輸入/輸出接口界面允許采用窗口方式,用戶可以通過系統(tǒng)提供的不同類型的系統(tǒng)窗口完成各種操作,而且有些窗口之間可以互相切換,大大方便了用戶。除系統(tǒng)提供的操作窗口外,用戶還可根據(jù)自己的需求設(shè)計工作窗口。VisualFoxPro6.0系統(tǒng)提供了豐富多樣的可視化工具,使得剪接、刪除、拷貝、粘貼、字符串查找和替換、取消、恢復(fù)等編輯操作方便快捷,為程序或文本的編輯提供了方便靈活的操作手段。VisualFoxPro6.0系統(tǒng)提供了完整的顏色支持,除使用命令設(shè)置顏色外,還可以利用調(diào)色板以人機對話方式對菜單、窗口、對話框、錯誤信息和其他接口界面的色彩實施控制。VisualFoxPr
溫馨提示
- 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 福建師范大學(xué)《語文課程與教學(xué)論》2022-2023學(xué)年第一學(xué)期期末試卷
- 骨科護(hù)理實習(xí)生出科考試試題及答案
- 福建師范大學(xué)《信號分析與控制》2023-2024學(xué)年第一學(xué)期期末試卷
- 福建師范大學(xué)《土壤地理學(xué)》2021-2022學(xué)年第一學(xué)期期末試卷
- 福建師范大學(xué)《書法與鑒賞》2021-2022學(xué)年第一學(xué)期期末試卷
- 福建師范大學(xué)《模擬電子線路與實驗》2022-2023學(xué)年第一學(xué)期期末試卷
- 福建師范大學(xué)《繪畫基礎(chǔ)與圖像處理》2021-2022學(xué)年第一學(xué)期期末試卷
- 福建師范大學(xué)《廣播電視采訪與寫作》2022-2023學(xué)年第一學(xué)期期末試卷
- 福建師范大學(xué)《多聲部音樂分析與習(xí)作一》2022-2023學(xué)年第一學(xué)期期末試卷
- 第二章 一般檢查課件
- 河北省滄州市藥品零售藥店企業(yè)藥房名單目錄
- 《試驗設(shè)計與統(tǒng)計分析》課程教學(xué)大綱
- 高一生物 基因工程的基本操作步驟(第1課時) 基因工程的基本操作程序 教學(xué)設(shè)計
- 奧運項目介紹課件
- 2020年中國自由貿(mào)易試驗區(qū)發(fā)展白皮書課件
- 糖尿病高危人群健康管理課件
- 呂氏春秋卷十一 仲冬紀(jì) 忠廉原文及翻譯
- 《相遇問題》-完整版PPT
- 滬教牛津版四年級上冊小學(xué)英語Module 2單元測試題(含聽力文件)
- 50430審核員考試試題
- 應(yīng)急物資儲備一覽表格模板
評論
0/150
提交評論