數(shù)據(jù)庫應(yīng)用系統(tǒng)的設(shè)計、開發(fā)與實(shí)現(xiàn)(基于VisualFoxPro)PPT完整全套教學(xué)課件_第1頁
數(shù)據(jù)庫應(yīng)用系統(tǒng)的設(shè)計、開發(fā)與實(shí)現(xiàn)(基于VisualFoxPro)PPT完整全套教學(xué)課件_第2頁
數(shù)據(jù)庫應(yīng)用系統(tǒng)的設(shè)計、開發(fā)與實(shí)現(xiàn)(基于VisualFoxPro)PPT完整全套教學(xué)課件_第3頁
數(shù)據(jù)庫應(yīng)用系統(tǒng)的設(shè)計、開發(fā)與實(shí)現(xiàn)(基于VisualFoxPro)PPT完整全套教學(xué)課件_第4頁
數(shù)據(jù)庫應(yīng)用系統(tǒng)的設(shè)計、開發(fā)與實(shí)現(xiàn)(基于VisualFoxPro)PPT完整全套教學(xué)課件_第5頁
已閱讀5頁,還剩634頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第一章數(shù)據(jù)庫基礎(chǔ)知識數(shù)據(jù)庫應(yīng)用系統(tǒng)的設(shè)計、開發(fā)與實(shí)現(xiàn)——基于VisualFoxProch01數(shù)據(jù)庫基礎(chǔ)知識.pptxch02VFP及項目創(chuàng)建.pptxch03數(shù)據(jù)表的建立與操作.pptxch04數(shù)據(jù)庫的建立與操作.pptxch05結(jié)構(gòu)化查詢語言及應(yīng)用.pptxch06結(jié)構(gòu)化程序設(shè)計.pptxch07表單設(shè)計.pptxch08圖書管理系統(tǒng)表單設(shè)計.pptxch09報表設(shè)計.pptxch10菜單設(shè)計.pptxch11項目管理及連編.pptx全套可編輯PPT課件01數(shù)據(jù)庫系統(tǒng)PARTONE1.信息、數(shù)據(jù)與數(shù)據(jù)庫信息(Information)、物質(zhì)和能量是客觀世界的三大要素

信息就是對客觀事物的反映,從本質(zhì)上看,信息是對社會、自然界的事物特征、現(xiàn)象、本質(zhì)及規(guī)律的描述,是由文字、符號、數(shù)字或聲音、圖形、圖像,表現(xiàn)出來的消息、情報、指令、數(shù)據(jù)、信號等。例如,記錄學(xué)生信息可以用文字和標(biāo)點(diǎn)符號表示為“學(xué)號:20160431101:姓名:李勇,性別:男:出生年月:1988.2;所在系別:計算機(jī)”。信息源于物質(zhì)和能量,可以感知,可存儲、加工、傳遞、再生和共享,它具備4個基本特征:①可傳載性,即信息可以依附于某種載體進(jìn)行傳遞;②共享性,有別于物質(zhì)和能量,信息的共享不僅不會產(chǎn)生損耗,還可以廣泛地傳播和擴(kuò)散,使更多人共享;③可處理性,特別是經(jīng)過人的分析、綜合和提煉,可以增加它的使用價值;④時效性,只有既準(zhǔn)確又及時的信息才有價值,一旦過時,就會變成無效信息。1信息1.信息、數(shù)據(jù)與數(shù)據(jù)庫數(shù)據(jù)(Data)是表示信息的物理符號,是信息的具體表現(xiàn)

數(shù)據(jù)可以是數(shù)值數(shù)據(jù),如某個具體數(shù)字,也可以是非數(shù)值數(shù)據(jù),如文字、圖形、圖像和聲音等。雖然數(shù)據(jù)有多種表現(xiàn)形式,但經(jīng)過數(shù)字化處理后,都可以輸入并存儲到計算機(jī)中,并能成為其處理的符號序列。2數(shù)據(jù)(Data)1.信息、數(shù)據(jù)與數(shù)據(jù)庫數(shù)據(jù)是信息的符號表示或載體。信息是數(shù)據(jù)的內(nèi)涵,是對數(shù)據(jù)的語義解釋。在計算機(jī)中,為了存儲和處理某些事物,需要抽象出對這些事物感興趣的特征組成一條記錄來描述。例如,在學(xué)生檔案中,如果人們感興趣的是學(xué)生的姓名、性別、出生年月、籍貫、所在系別、入學(xué)日期等信息,就可以這樣描述:(20160431101,李勇,男,1988.2,計算機(jī)),因此這里的學(xué)生記錄就是數(shù)據(jù)。它的含義即所含信息如下:李勇是一個大學(xué)生,學(xué)號為1001,1988年2月出生,性別為男,計算機(jī)專業(yè)。數(shù)據(jù)的形式不能完全表達(dá)其內(nèi)容,需要經(jīng)過解釋。數(shù)據(jù)的解釋是指對數(shù)據(jù)含義的說明,數(shù)據(jù)的含義又稱為數(shù)據(jù)的語義,也就是數(shù)據(jù)包含的信息。例如,記錄數(shù)據(jù)(20160431101,李勇,男,1988.2,計算機(jī)),如果沒有語義解釋,也可以理解為某一企業(yè)員工的記錄,員工號為20160431101,1988年2月出生,計算機(jī)專業(yè),等等。因此,信息是數(shù)據(jù)的內(nèi)涵,數(shù)據(jù)是信息的符號表示,是載體;數(shù)據(jù)是符號化的信息,信息是語義化的數(shù)據(jù)。3信息與數(shù)據(jù)的關(guān)系1.信息、數(shù)據(jù)與數(shù)據(jù)庫數(shù)據(jù)庫(Database,DB)是長期存儲在計算機(jī)內(nèi)的、有組織的、可共享的數(shù)據(jù)集合數(shù)據(jù)庫中的數(shù)據(jù)按一定的數(shù)據(jù)模型組織、描述和存儲,用于滿足各種不同的信息需求,并且集中的數(shù)據(jù)彼此之間有相互的聯(lián)系,具有較小的冗余度、較高的數(shù)據(jù)獨(dú)立性和易擴(kuò)展性。數(shù)據(jù)庫中的數(shù)據(jù)是以一定的數(shù)據(jù)模型進(jìn)行組織存儲的,數(shù)據(jù)庫中的數(shù)據(jù)有一定的結(jié)構(gòu)、組織存儲方式和操作規(guī)則。例如,學(xué)生人事記錄在數(shù)據(jù)庫中的組織形式和結(jié)構(gòu)如圖1-1所示。4數(shù)據(jù)庫1.信息、數(shù)據(jù)與數(shù)據(jù)庫記錄某個學(xué)生的人事信息如圖1-2所示這樣的數(shù)據(jù)組織方式節(jié)省存儲空間,靈活性也相對得到了提高。但這種靈活性只是對一個應(yīng)用而言的,因為一個學(xué)校和組織涉及許多應(yīng)用,在數(shù)據(jù)庫系統(tǒng)中不僅要考慮某個應(yīng)用的數(shù)據(jù)結(jié)構(gòu),還要考慮整個組織的數(shù)據(jù)結(jié)構(gòu)。例如,一個學(xué)校的管理信息系統(tǒng)包括學(xué)生的人事管理、學(xué)籍管理、選課管理等,可按圖1-3所示的結(jié)構(gòu)建立學(xué)校管理信息系統(tǒng)的學(xué)生數(shù)據(jù)模式。4數(shù)據(jù)庫1.信息、數(shù)據(jù)與數(shù)據(jù)庫4數(shù)據(jù)庫如圖1-3所示結(jié)構(gòu)中的學(xué)生數(shù)據(jù)為各個部門提供數(shù)據(jù),并使數(shù)據(jù)結(jié)構(gòu)化:人事管理用到圖1-3中1、2、3、4記錄的數(shù)據(jù),學(xué)籍管理用到1、5記錄的數(shù)據(jù),選課管理用到1、6、7記錄的數(shù)據(jù)并且不僅描述了數(shù)據(jù)本身,還描述了數(shù)據(jù)之間的關(guān)聯(lián)。數(shù)據(jù)庫中的數(shù)據(jù)是可共享的。這里的共享指的是不同地域、不同用戶可以同時使用同一數(shù)據(jù)庫中的同一數(shù)據(jù)。數(shù)據(jù)的共享性,能夠最大限度地降低某一企事業(yè)單位信息數(shù)據(jù)的冗余度,并消除數(shù)據(jù)的不一致性。所謂數(shù)據(jù)的不一致性是指同一數(shù)據(jù)不同副本的值不一樣。數(shù)據(jù)庫不僅存儲數(shù)據(jù)以及數(shù)據(jù)之間的聯(lián)系

還存儲數(shù)據(jù)字典(對數(shù)據(jù)的描述,即數(shù)據(jù)的結(jié)構(gòu)).數(shù)據(jù)庫技術(shù)對數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)同時進(jìn)行管理,并將數(shù)據(jù)結(jié)構(gòu)特征與應(yīng)用程序盡可能隔離開來,即應(yīng)用程序在一定程度上不受數(shù)據(jù)結(jié)構(gòu)改變的影響,提高了數(shù)據(jù)的獨(dú)立性。1.信息、數(shù)據(jù)與數(shù)據(jù)庫4數(shù)據(jù)庫數(shù)據(jù)庫中的數(shù)據(jù)是海量的一個單位、一個公司,原則上能構(gòu)建一個數(shù)據(jù)庫,各部門所需要的所有數(shù)據(jù)存儲在同一個數(shù)據(jù)庫中,并可在授權(quán)允許的情況下訪問和使用其他部門提供的數(shù)據(jù)。數(shù)據(jù)庫中的數(shù)據(jù)是永久的

數(shù)據(jù)一旦成功地存儲到數(shù)據(jù)庫中,就會永久保存,除非用戶刪除數(shù)據(jù)。當(dāng)然,要保證數(shù)據(jù)的永久性,還要有數(shù)據(jù)庫恢復(fù)技術(shù)的支持。2.數(shù)據(jù)庫管理系統(tǒng)是位于用戶和操作系統(tǒng)之間的一層數(shù)據(jù)管理軟件,數(shù)據(jù)庫在建立、運(yùn)行和維護(hù)時由數(shù)據(jù)庫管理系統(tǒng)統(tǒng)一管理、統(tǒng)一控制。DBMS的主要任務(wù)是抽取一個應(yīng)用所需要的大量數(shù)據(jù),科學(xué)地組織這些數(shù)據(jù)并將其存儲在數(shù)據(jù)庫中,并能高效地獲取、處理和維護(hù)數(shù)據(jù)。DBMS使用戶能方便地定義數(shù)據(jù)和操縱數(shù)據(jù),并能夠保證數(shù)據(jù)的安全性、完整性、多用戶對數(shù)據(jù)的并發(fā)使用及發(fā)生故障后的系統(tǒng)恢復(fù)。其主要功能如下。數(shù)據(jù)庫管理系統(tǒng)(DatabaseManagementSystem,DBMS)2.數(shù)據(jù)庫管理系統(tǒng)1數(shù)據(jù)定義功能DBMS提供了數(shù)據(jù)定義語言(DataDefinitionLanguage,DDL)

用戶通過它可以方便地定義數(shù)據(jù)對象。DDL用于定義數(shù)據(jù)庫的邏輯結(jié)構(gòu)。2數(shù)據(jù)操縱功能DBMS提供了數(shù)據(jù)操縱語言(DataManipulationLanguage,DML)

用戶可以使用DML實(shí)現(xiàn)對數(shù)據(jù)庫的各種操作,如查詢、插入、刪除和修改等。2.數(shù)據(jù)庫管理系統(tǒng)3數(shù)據(jù)組織、存儲和管理功能DBMS要分類組織、存儲和管理數(shù)據(jù)庫中的各種數(shù)據(jù)

包括數(shù)據(jù)字典、用戶數(shù)據(jù)、數(shù)據(jù)的存取路徑等,從而提高存儲空間的利用率和存取效率。4數(shù)據(jù)庫的運(yùn)行管理功能數(shù)據(jù)庫的建立、運(yùn)行和維護(hù)由DBMS統(tǒng)一管理和控制

以保證數(shù)據(jù)的安全性、完整性、多用戶對數(shù)據(jù)的并發(fā)使用,以及發(fā)生故障后的系統(tǒng)恢復(fù)。2.數(shù)據(jù)庫管理系統(tǒng)5數(shù)據(jù)庫的建立和維護(hù)功能數(shù)據(jù)庫的建立和維護(hù)功能包括

數(shù)據(jù)庫初始數(shù)據(jù)的輸入、轉(zhuǎn)換功能,數(shù)據(jù)庫轉(zhuǎn)儲、恢復(fù)功能,數(shù)據(jù)庫的重組織功能和性能監(jiān)視、分析功能等。這些功能通常由一些實(shí)用程序完成。6其他功能DBMS包括一些實(shí)用工具

例如,DBMS與網(wǎng)絡(luò)中其他軟件系統(tǒng)的通信工具;不同DBMS中的數(shù)據(jù)和文件系統(tǒng)數(shù)據(jù)的互相轉(zhuǎn)換,異構(gòu)數(shù)據(jù)的互訪和互操作等。3.數(shù)據(jù)庫系統(tǒng)數(shù)據(jù)庫系統(tǒng)是為適應(yīng)數(shù)據(jù)處理的需要而發(fā)展起來的數(shù)據(jù)處理系統(tǒng)一般由軟件、硬件、數(shù)據(jù)庫、數(shù)據(jù)庫管理員和用戶構(gòu)成,如圖1-4所示。硬件是指構(gòu)成計算機(jī)系統(tǒng)的各種物理設(shè)備。軟件主要包括操作系統(tǒng)、應(yīng)用系統(tǒng)、應(yīng)用開發(fā)工具和DBMS。數(shù)據(jù)庫由DBMS統(tǒng)一管理、統(tǒng)一控制,數(shù)據(jù)的插入、修改和檢索均要通過數(shù)據(jù)庫管理系統(tǒng)。數(shù)據(jù)庫管理員負(fù)責(zé)創(chuàng)建、監(jiān)控和維護(hù)整個數(shù)據(jù)庫,使數(shù)據(jù)能夠被任何有權(quán)使用的人有效使用。02數(shù)據(jù)模型PARTTWO1.數(shù)據(jù)模型的概念數(shù)據(jù)模型是對現(xiàn)實(shí)世界中數(shù)據(jù)特征的抽象,用來描述數(shù)據(jù)、組織數(shù)據(jù)和對數(shù)據(jù)進(jìn)行操作。通俗地講,數(shù)據(jù)模型是對現(xiàn)實(shí)世界的模擬,描述了數(shù)據(jù)的結(jié)構(gòu)、數(shù)據(jù)之間的聯(lián)系、對數(shù)據(jù)的各種操作以及數(shù)據(jù)要滿足的各種約束條件。在開發(fā)實(shí)施數(shù)據(jù)庫應(yīng)用系統(tǒng)時,需要用到不同層次的數(shù)據(jù)模型(圖1-5):概念模型(ConceptualModel),邏輯模型(LogicalModel)和物理模型(PhysicalModel)。1.數(shù)據(jù)模型的概念層次模型中,數(shù)據(jù)以樹狀結(jié)構(gòu)進(jìn)行組織:網(wǎng)狀模型中,數(shù)據(jù)的邏輯結(jié)構(gòu)是圖

關(guān)系模型是最重要也是最流行的數(shù)據(jù)模型,它以二維表的形式,存儲數(shù)據(jù)和數(shù)據(jù)之間的聯(lián)系。物理模型,是對數(shù)據(jù)存儲結(jié)構(gòu)和特征的描述,即描述數(shù)據(jù)在數(shù)據(jù)庫中的存儲方式、存取方法。概念模型,也稱信息模型,會按用戶的觀點(diǎn)對信息進(jìn)行建模。

邏輯模型,是從計算機(jī)的觀點(diǎn)對數(shù)據(jù)進(jìn)行建模。最常用的邏輯數(shù)據(jù)模型有層次模型、網(wǎng)狀模型和關(guān)系模型。2.數(shù)據(jù)模型的要素操作要素描述了數(shù)據(jù)庫中數(shù)據(jù)對象所允許的操作的集合,是數(shù)據(jù)庫的動態(tài)特性。對數(shù)據(jù)庫的操作包括查詢、增加、修改和刪除4種。

完整性約束條件是一組約束規(guī)則,用于限定符合數(shù)據(jù)模型的數(shù)據(jù)庫狀態(tài)以及狀態(tài)的變化,以保證數(shù)據(jù)的正確、有效和相容。通俗地講,完整性約束條件就是規(guī)定什么樣的數(shù)據(jù)可以存儲到數(shù)據(jù)庫中,以及數(shù)據(jù)庫中的數(shù)據(jù)可以做怎樣的變化。數(shù)據(jù)模型是數(shù)據(jù)庫系統(tǒng)的核心和基礎(chǔ)。數(shù)據(jù)模型包括3個要素:結(jié)構(gòu)要素、操作要素和完整性約束條件。

結(jié)構(gòu)要素描述了數(shù)據(jù)庫中數(shù)據(jù)的結(jié)構(gòu)、數(shù)據(jù)之間的聯(lián)系,是數(shù)據(jù)庫的靜態(tài)特性。3.概念模型概念模型是對現(xiàn)實(shí)世界的第一次抽象,用實(shí)體及屬性描述客觀事物及其性質(zhì),用實(shí)體之間的聯(lián)系描述客觀事物之間的聯(lián)系,屬于信息世界范疇。概念模型具有以下兩個特點(diǎn)。

(1)真實(shí)性:真實(shí)客觀地描述了現(xiàn)實(shí)世界中的信息實(shí)體和實(shí)體之間的聯(lián)系。(2)獨(dú)立性:不依賴于具體的計算機(jī)系統(tǒng)或具體的DBMS。因為客觀真實(shí),所以其是獨(dú)立的(與具體的人也無關(guān))。3.概念模型1信息世界的幾個概念(1)實(shí)體(Entity)客觀存在并可相互區(qū)分的事物,可以是人、事、物,也可以是抽象的概念或聯(lián)系。例如,學(xué)生、教師、課程、學(xué)生選修課程的事件、教師執(zhí)教某一門課的協(xié)議等,都可以是實(shí)體。(2)屬性(Attribute)實(shí)體具有的某一方面的特性。學(xué)生的學(xué)號、姓名、手機(jī)號碼、郵件地址,教師的編號、姓名、職稱,課程的類別、名稱和學(xué)分等。3.概念模型1信息世界的幾個概念(3)碼(Key)也稱關(guān)鍵字,是唯一標(biāo)識實(shí)體的屬性(組)。碼可能不止一個。例如,在學(xué)生這個實(shí)體中,學(xué)生的學(xué)號、手機(jī)號碼和郵件地址都可以是學(xué)生實(shí)體的碼,都具有唯一性;而對于“選修事件”這個實(shí)體,碼為屬性組,即“學(xué)號+課程”。(4)域(Domain)屬性的取值范圍或集合。例如,學(xué)生學(xué)號是12位的數(shù)字,性別的取值范圍是男或女,課程成績是0~100中的整數(shù)等。3.概念模型1信息世界的幾個概念(5)實(shí)體型(EntityType)實(shí)體型是對實(shí)體的描述,描述相同屬性的實(shí)體具有的共同特征和性質(zhì)。最簡單的描述方法是用實(shí)體名及其屬性名集合來抽象和刻畫同類實(shí)體,其格式如下:實(shí)體名(屬性1,屬性2,),構(gòu)成碼的屬性用下畫線標(biāo)識。與實(shí)體型相對應(yīng)的是實(shí)體值,實(shí)體值是單個個體,是實(shí)體型中的一個具體的值。例如,學(xué)生實(shí)體型可以描述為學(xué)生《學(xué)號,姓名,性別,出生年月,專業(yè),手機(jī)號碼,郵件地址),(“20160431101’,“李勇’“男’“1988.2’,“計算機(jī)’136056783211’,“l(fā)iyong@163.com)是具體的一個學(xué)生實(shí)體值,而全體學(xué)生就構(gòu)成了學(xué)生實(shí)體集型是描述,值是內(nèi)容。3.概念模型1信息世界的幾個概念(6)聯(lián)系(relationship)在現(xiàn)實(shí)世界中,事物內(nèi)部以及事物之間是有聯(lián)系的,這些聯(lián)系在信息世界中反映為實(shí)體內(nèi)部的聯(lián)系和實(shí)體之間的聯(lián)系。實(shí)體內(nèi)部的聯(lián)系通常是指組成實(shí)體的各屬性之間的聯(lián)系

兩個實(shí)體之間的聯(lián)系可分為以下3種。(1)一對一(1:1),如班級-班長(領(lǐng)導(dǎo))。(2)一對多(1:N),如班級-學(xué)生(包含)。(3)多對多(M:N),如學(xué)生-課程(選修)。3.概念模型2概念模型的描述工具概念模型是對現(xiàn)實(shí)世界的第一次抽象

陳品山于1976年提出實(shí)體-聯(lián)系(Entity-Relationship,E-R)法來描述概念模型。該方法用圖形化的工具E-R圖來描述現(xiàn)實(shí)世界的概念模型。下面介紹E-R圖的基本圖形符號。(1)實(shí)體(型)用命名的矩形框表示實(shí)體,矩形框的名稱就是實(shí)體的名稱。例如,學(xué)生實(shí)體如圖1-6所示。3.概念模型2概念模型的描述工具(2)實(shí)體的屬性用命名的圓表示屬性,并用線段將該屬性與所描述的實(shí)體連接起來。例如學(xué)生實(shí)體及其屬性如圖1-7所示。3.概念模型2概念模型的描述工具(3)聯(lián)系用命名的菱形表示實(shí)體之間的聯(lián)系,并用線段將發(fā)生該聯(lián)系的實(shí)體連接起來。具體示例如圖1-8~圖1-10所示。3.概念模型2概念模型的描述工具(4)聯(lián)系的屬性不僅實(shí)體有屬性,聯(lián)系本身也可以有屬性。具體示例如圖1-11所示。03數(shù)據(jù)庫系統(tǒng)結(jié)構(gòu)PARTTHREE數(shù)據(jù)庫系統(tǒng)結(jié)構(gòu)從數(shù)據(jù)庫最終用戶的角度

數(shù)據(jù)庫系統(tǒng)可分為單用戶結(jié)構(gòu)、主從式結(jié)構(gòu)、文件服務(wù)器結(jié)構(gòu)、客戶機(jī)/服務(wù)器體系結(jié)構(gòu)、分布式結(jié)構(gòu)、瀏覽器/應(yīng)用服務(wù)器/數(shù)據(jù)庫服務(wù)器多層結(jié)構(gòu)等,這是數(shù)據(jù)庫系統(tǒng)的外部體系結(jié)構(gòu)。數(shù)據(jù)庫系統(tǒng)的結(jié)構(gòu)可以從不同角度進(jìn)行劃分。

從數(shù)據(jù)庫管理系統(tǒng)的角度,數(shù)據(jù)庫系統(tǒng)通常采用三級模式結(jié)構(gòu),這是數(shù)據(jù)庫管理系統(tǒng)內(nèi)部對數(shù)據(jù)庫進(jìn)行組織管理的結(jié)構(gòu)。1.數(shù)據(jù)庫模式模式是相對穩(wěn)定的,而實(shí)例是相對變動的

因為數(shù)據(jù)庫中的數(shù)據(jù)是在不斷更新的。模式反映的是數(shù)據(jù)的結(jié)構(gòu)及其聯(lián)系,而實(shí)例反映的是數(shù)據(jù)庫某一時刻的狀態(tài)及內(nèi)容。模式(Schema)是數(shù)據(jù)庫中全體數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述

模式的一個具體值稱為模式的一個實(shí)例(Instance)。同一個模式可以有多個實(shí)例。2.數(shù)據(jù)庫系統(tǒng)的三級模式結(jié)構(gòu)數(shù)據(jù)庫系統(tǒng)結(jié)構(gòu)分為3層,即內(nèi)模式、概念模式(模式)和外模式

三級模式和模式間的相映射就組成了數(shù)據(jù)庫系統(tǒng)的體系結(jié)構(gòu),如圖1-12所示。這個三級結(jié)構(gòu)有時稱為“三級模式結(jié)構(gòu)”,最早是在1971年的DBTG報告中提出的,后來收錄在1975年美國的ANSI/SPARC報告中。雖然現(xiàn)在DBMS的產(chǎn)品多種多樣,并在不同操作系統(tǒng)的支持下工作,但是大多數(shù)系統(tǒng)在總的體系結(jié)構(gòu)上具有三級模式的結(jié)構(gòu)特征。2.數(shù)據(jù)庫系統(tǒng)的三級模式結(jié)構(gòu)(1)外模式也稱子模式或用戶模式,是某數(shù)據(jù)庫用戶(包括應(yīng)用程序員和最終用戶使用的局部數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述。(2)模式涉及所有用戶的數(shù)據(jù)定義,是全局的數(shù)據(jù)視圖。全局?jǐn)?shù)據(jù)視圖的描述也稱為“概念模式”。(3)內(nèi)模式最接近于物理存儲設(shè)備,涉及實(shí)際數(shù)據(jù)存儲的物理結(jié)構(gòu)和存儲方式。物理存儲數(shù)據(jù)視圖的描述稱為“內(nèi)模式”。從某個角度看到的數(shù)據(jù)特性稱為“數(shù)據(jù)視圖(DataView)”2.數(shù)據(jù)庫系統(tǒng)的三級模式結(jié)構(gòu)1模式一個數(shù)據(jù)庫只有一個概念模式,它以某一種數(shù)據(jù)模型為基礎(chǔ)

統(tǒng)一綜合地考慮了所有用戶的需求,并將這些需求有機(jī)地結(jié)合成一個邏輯整體。概念模式描述了所有實(shí)體、實(shí)體的屬性和實(shí)體間的聯(lián)系,數(shù)據(jù)的約束和語義信息。概念模式由許多記錄類型的值組成。模式是數(shù)據(jù)庫系統(tǒng)模式結(jié)構(gòu)的中間層,與數(shù)據(jù)的物理存儲細(xì)節(jié)和硬件環(huán)境無關(guān),與具體的應(yīng)用程序、開發(fā)工具及高級程序設(shè)計語言無關(guān)。定義模式時,不僅要定義數(shù)據(jù)的邏輯結(jié)構(gòu),還要定義數(shù)據(jù)之間的聯(lián)系,定義與數(shù)據(jù)有關(guān)的安全性、完整性要求。在數(shù)據(jù)庫管理系統(tǒng)中,描述概念模式的數(shù)據(jù)定義語言稱為“模式DDL”2.數(shù)據(jù)庫系統(tǒng)的三級模式結(jié)構(gòu)2外模式外模式(用戶可見的視圖)是數(shù)據(jù)庫用戶能夠(有權(quán)限)看見和使用的局部數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述

是數(shù)據(jù)庫用戶的數(shù)據(jù)視圖,是與某個應(yīng)用有關(guān)的數(shù)據(jù)的邏輯表示,是數(shù)據(jù)庫模式的一個子集。一個數(shù)據(jù)庫可以有多個外模式反映了不同的用戶應(yīng)用需求、看待數(shù)據(jù)的方式以及對數(shù)據(jù)保密的要求;對于模式中同一數(shù)據(jù),在外模式中的結(jié)構(gòu)、類型、長度、保密級別等都可以因為不同用戶(或應(yīng)用)的個性化需求而不同。外模式是保證數(shù)據(jù)庫安全性的一個有力措施。每個用戶只能看見和訪問所對應(yīng)的外模式中的數(shù)據(jù),數(shù)據(jù)庫中的其余數(shù)據(jù)是不可見的??梢酝ㄟ^DDL定義視圖來定義用戶的外模式,用戶使用DMI語句對視圖進(jìn)行操作,完成需要的數(shù)據(jù)處理。2.數(shù)據(jù)庫系統(tǒng)的三級模式結(jié)構(gòu)3內(nèi)模式內(nèi)模式也稱存儲模式/物理模式

是數(shù)據(jù)物理結(jié)構(gòu)和存儲方式的描述,是數(shù)據(jù)在數(shù)據(jù)庫內(nèi)部的表示方式、記錄的存儲方式(順序存儲,按照B樹結(jié)構(gòu)存儲,按Hash方法存儲)、索引的組織方式、數(shù)據(jù)是否壓縮存儲、數(shù)據(jù)是否加密、數(shù)據(jù)存儲記錄結(jié)構(gòu)的規(guī)定,一個數(shù)據(jù)庫只有一個內(nèi)模式。注意:內(nèi)模式和物理層仍然不同內(nèi)部記錄并不涉及物理記錄,也不涉及設(shè)備的約束。比內(nèi)模式更接近物理存儲和訪問的那些軟件機(jī)制是操作系統(tǒng)的一部分,即文件系統(tǒng)。3.數(shù)據(jù)庫的二級映像功能與數(shù)據(jù)獨(dú)立性這兩層映像保證了數(shù)據(jù)庫系統(tǒng)中的數(shù)據(jù)能夠具有較高的邏輯獨(dú)立性和物理獨(dú)立性。數(shù)據(jù)庫系統(tǒng)的三級模式結(jié)構(gòu)是數(shù)據(jù)的3個抽象級別

它把數(shù)據(jù)的具體組織留給DBMS去做,用戶只要抽象地處理數(shù)據(jù)即可,而不必關(guān)心數(shù)據(jù)在計算機(jī)中的表示和存儲。不同抽象級別的數(shù)據(jù)之間的轉(zhuǎn)換,通過定義三級結(jié)構(gòu)之間的映像來實(shí)現(xiàn):外模式/概念模式映像、概念模式/內(nèi)模式映像,如圖1-12所示。3.數(shù)據(jù)庫的二級映像功能與數(shù)據(jù)獨(dú)立性1外模式/模式映像其定義了外模式與模式之間的映像關(guān)系

由于外模式和模式的數(shù)據(jù)結(jié)構(gòu)可能不一致,即記錄類型、字段類型的命名和組成可能不一樣,因此,需要這個映像說明外部記錄和概念記錄之間的對應(yīng)性。當(dāng)模式發(fā)生改變時,可以通過修改相應(yīng)的外模式/模式的映像使外模式保持不變,應(yīng)用程序是依據(jù)數(shù)據(jù)的外模式編寫的,從而應(yīng)用程序不必修改,保證了數(shù)據(jù)與程序的邏輯獨(dú)立性,簡稱數(shù)據(jù)的邏輯獨(dú)立性。3.數(shù)據(jù)庫的二級映像功能與數(shù)據(jù)獨(dú)立性2模式/內(nèi)模式映像其定義了模式和內(nèi)模式間的映像關(guān)系

即定義了數(shù)據(jù)庫全局邏輯結(jié)構(gòu)與存儲結(jié)構(gòu)之間的對應(yīng)關(guān)系。當(dāng)數(shù)據(jù)庫的存儲結(jié)構(gòu)改變后可以通過修改模式/內(nèi)模式映像來使模式保持不變,從而應(yīng)用程序也不必改變,保證了數(shù)據(jù)與程序的物理獨(dú)立性,簡稱數(shù)據(jù)的物理獨(dú)立性。4.數(shù)據(jù)庫系統(tǒng)用戶結(jié)構(gòu)1單用戶結(jié)構(gòu)數(shù)據(jù)庫系統(tǒng)單用戶結(jié)構(gòu)數(shù)據(jù)庫系統(tǒng)是一種早期最簡單的數(shù)據(jù)庫系統(tǒng)

如圖1-13所示。在這種系統(tǒng)中,整個數(shù)據(jù)庫系統(tǒng)(包括應(yīng)用程序、DBMS、數(shù)據(jù))都裝在一臺計算機(jī)中,由一個用戶獨(dú)占,不同計算機(jī)之間不能共享數(shù)據(jù)。4.數(shù)據(jù)庫系統(tǒng)用戶結(jié)構(gòu)2主從式結(jié)構(gòu)數(shù)據(jù)庫系統(tǒng)主從式結(jié)構(gòu)是指一個主機(jī)帶多個終端的多用戶結(jié)構(gòu)

如圖1-14所示。在這種結(jié)構(gòu)中,數(shù)據(jù)庫系統(tǒng)(包括應(yīng)用程序、DBMS、數(shù)據(jù))都集中存放在主機(jī)中,所有處理任務(wù)都由主機(jī)來完成,各個用戶通過主機(jī)的終端并發(fā)地存取數(shù)據(jù)庫,共享數(shù)據(jù)資源。4.數(shù)據(jù)庫系統(tǒng)用戶結(jié)構(gòu)3客戶機(jī)/服務(wù)器結(jié)構(gòu)數(shù)據(jù)庫系統(tǒng)主從式結(jié)構(gòu)數(shù)據(jù)庫系統(tǒng)中的主機(jī)是一臺通用計算機(jī),既執(zhí)行DBMS功能,又執(zhí)行應(yīng)用程序

隨著工作站功能的增強(qiáng)和廣泛使用,人們開始把DBMS的功能和應(yīng)用分開,網(wǎng)絡(luò)中某個(些)結(jié)點(diǎn)上的計算機(jī)專門用于執(zhí)行DBMS功能,稱為數(shù)據(jù)庫服務(wù)器,簡稱服務(wù)器,其他結(jié)點(diǎn)上的計算機(jī)安裝DBMS的外圍應(yīng)用開發(fā)工具,支持用戶的應(yīng)用,稱為客戶機(jī),這就是客戶機(jī)/服務(wù)器結(jié)構(gòu)的數(shù)據(jù)庫系統(tǒng),如圖1-15所示。在客戶機(jī)/服務(wù)器結(jié)構(gòu)中,客戶端的用戶請求被傳送到服務(wù)器,服務(wù)器進(jìn)行處理后,只將結(jié)果(而不是整個數(shù)據(jù))返回給用戶,從而顯著減少了網(wǎng)絡(luò)中的數(shù)據(jù)傳輸量,提高了系統(tǒng)的性能、吞吐量和負(fù)載能力。此外,客戶機(jī)/服務(wù)器結(jié)構(gòu)的數(shù)據(jù)庫往往更加開放??蛻魴C(jī)與服務(wù)器一般能在多種不同的硬件和軟件平臺上運(yùn)行,可以使用不同廠商的數(shù)據(jù)庫應(yīng)用開發(fā)工具,應(yīng)用程序具有更強(qiáng)的可移植性,也可以減少軟件維護(hù)開銷。4.數(shù)據(jù)庫系統(tǒng)用戶結(jié)構(gòu)4分布式結(jié)構(gòu)數(shù)據(jù)庫系統(tǒng)分布式結(jié)構(gòu)是指數(shù)據(jù)庫中的數(shù)據(jù)在邏輯上是一個整體,但分布在計算機(jī)網(wǎng)絡(luò)的不同結(jié)點(diǎn)上

網(wǎng)絡(luò)中的每個結(jié)點(diǎn)都可以獨(dú)立處理本地數(shù)據(jù)庫中的數(shù)據(jù),執(zhí)行局部應(yīng)用,也可以同時存取和處理多個異地數(shù)據(jù)庫中的數(shù)據(jù),執(zhí)行全局應(yīng)用,如圖1-16所示。它的優(yōu)點(diǎn)是適應(yīng)了地理上分散的公司、體和組織對于數(shù)據(jù)庫應(yīng)用的需求;缺點(diǎn)是數(shù)據(jù)的分布存放給數(shù)據(jù)的處理、管理與維護(hù)帶來了困難,當(dāng)用戶需要經(jīng)常訪問遠(yuǎn)程數(shù)據(jù)時,系統(tǒng)效率會明顯地受到網(wǎng)絡(luò)交通的制約。04關(guān)系數(shù)據(jù)庫PARTFOUR1.關(guān)系數(shù)據(jù)庫概述1關(guān)系的概念在關(guān)系數(shù)據(jù)庫中,一個關(guān)系就是一張唯一命名的二維表

由相同結(jié)構(gòu)的行和不同名稱的列組成。如圖1-17所示,表中的一行就是一個元組(也稱記錄),表中的列為一個屬性,給每個屬性取一個名即為其屬性名(也稱字段名)。屬性的取值范圍是屬性的域。能唯一區(qū)分一個元組的屬性或者屬性組,是關(guān)系的候選碼;可以選定其中一個候選碼作為關(guān)系的主碼,一個關(guān)系有且只有一個主碼。分量是某個元組在某列上的取值。1.關(guān)系數(shù)據(jù)庫概述2關(guān)系的基本性質(zhì)關(guān)系具有以下6個基本性質(zhì)。①關(guān)系中每個列的取值是不可分的數(shù)據(jù)項,是數(shù)據(jù)庫中的最基本單位。②關(guān)系中列是同質(zhì)的,即同一列的數(shù)據(jù)具有相同的數(shù)據(jù)類型及約束。③關(guān)系中列的名稱是唯一的,不同的列可以來自相同的域。④關(guān)系中行的順序可以是任意的。⑤關(guān)系中列的順序是無所謂的。⑥關(guān)系中不允許有完全相同的兩個行。每個關(guān)系都有主碼關(guān)鍵字(Key)的屬性集合,用于唯一地標(biāo)識關(guān)系中的各記錄行。1.關(guān)系數(shù)據(jù)庫概述2關(guān)系的基本性質(zhì)關(guān)系具有以下6個基本性質(zhì)。①關(guān)系中每個列的取值是不可分的數(shù)據(jù)項,是數(shù)據(jù)庫中的最基本單位。②關(guān)系中列是同質(zhì)的,即同一列的數(shù)據(jù)具有相同的數(shù)據(jù)類型及約束。③關(guān)系中列的名稱是唯一的,不同的列可以來自相同的域。④關(guān)系中行的順序可以是任意的。⑤關(guān)系中列的順序是無所謂的。⑥關(guān)系中不允許有完全相同的兩個行。每個關(guān)系都有主碼關(guān)鍵字(Key)的屬性集合,用于唯一地標(biāo)識關(guān)系中的各記錄行。1.關(guān)系數(shù)據(jù)庫概述3關(guān)系間的聯(lián)系解決實(shí)際問題往往需要多個關(guān)系,關(guān)系和關(guān)系是有聯(lián)系的,這種聯(lián)系也用關(guān)系表示。例如,有兩個關(guān)系,分別是學(xué)生關(guān)系和課程關(guān)系:

學(xué)生(學(xué)號,姓名,所在系,性別,年齡),主碼是學(xué)號,記錄所有在校學(xué)生的信息,如圖1-17所示;課程(課程號,課程名,學(xué)分,先修課程號),主碼是課程號,記錄學(xué)校能夠開出以供學(xué)生選修的所有課程信息,如圖1-18所示。1.關(guān)系數(shù)據(jù)庫概述3關(guān)系間的聯(lián)系在學(xué)校中,學(xué)生要選修多門課程,每一門課程都有可能被多個學(xué)生選修,學(xué)生和課程在選修這件事情發(fā)生的時候就要建立聯(lián)系,這樣的聯(lián)系要用第三個關(guān)系來表示,即:

選修(學(xué)號,課程號,成績),主碼是學(xué)號+課程號,記錄學(xué)生選修課程的信息,如圖1-19所示。關(guān)系之間的聯(lián)系,最終轉(zhuǎn)換為不同關(guān)系中數(shù)據(jù)之間的聯(lián)系,表現(xiàn)為取值之間的約束和關(guān)聯(lián)。這樣的約束和關(guān)聯(lián)用外碼機(jī)制來實(shí)現(xiàn)。設(shè)F是基本關(guān)系R的一個或一組屬性,但不是關(guān)系R的碼,如果F與基本關(guān)系S的主碼相對應(yīng),則稱F是基本關(guān)系R的外碼(ForeignKey),并稱基本關(guān)系R為參照關(guān)系(ReferencingRelation),基本關(guān)系S為被參照關(guān)系(ReferencedRelation)或目標(biāo)關(guān)系(TargetRelation)。1.關(guān)系數(shù)據(jù)庫概述4關(guān)系的完整性1)實(shí)體完整性

關(guān)系模型中以主碼為唯一性標(biāo)志,主碼中的屬性(即主屬性)不能為空值。規(guī)則1.1實(shí)體完整性規(guī)則:若屬性A是基本關(guān)系R的主屬性,則屬性A不能取空值。簡單來講,就是關(guān)系中的主碼的取值必須是唯一的和非空的,這里非空指的是每一個構(gòu)成主碼的屬性都要非空。例如,學(xué)生的學(xué)號必須是非空的和唯一的:而選修關(guān)系的主碼包含兩個屬性一學(xué)號和課程號,因此學(xué)號和課程號的組合的取值必須是唯一的,而且均不能取空值。這和實(shí)際應(yīng)用也是非常符合的。試想,在一個選課記錄中,假設(shè)學(xué)號為空值,課程號為“CO01”,則表示有一個不知道學(xué)號的學(xué)生選修了“CO01”課程,但只要是在校的學(xué)生,就一定會有學(xué)號的。1.關(guān)系數(shù)據(jù)庫概述4關(guān)系的完整性2)參照完整性

規(guī)則1.2參照完整性規(guī)則:若屬性(或?qū)傩越M)F是基本關(guān)系R的外碼,它與基本關(guān)系S的主碼Ks相對應(yīng)(基本關(guān)系R和S不一定是不同的關(guān)系),則R中的每個元組在上的值或者取空值(F的每個屬性值均為空值),或者等于S中某個元組的主碼值。選修關(guān)系的學(xué)號和課程號都是外碼,學(xué)號和課程號的取值就要符合參照完整性規(guī)則即要確保選修關(guān)系中學(xué)號的取值與學(xué)生關(guān)系中某一學(xué)生的學(xué)號相等,且課程號的取值與課程關(guān)系中某一門課程的課程號相等,參照完整性限定的選課信息記錄是該校某在校生選修了某一門學(xué)校開出的課程。1.關(guān)系數(shù)據(jù)庫概述4關(guān)系的完整性3)用戶定義的完整性

用戶定義的完整性約束就是針對某一具體關(guān)系數(shù)據(jù)庫的約束條件,它反映了某一具體應(yīng)用所涉及的數(shù)據(jù)必須滿足的語義要求。2.關(guān)系數(shù)據(jù)庫設(shè)計狹義地講,是數(shù)據(jù)庫設(shè)計本身

即設(shè)計數(shù)據(jù)庫的各級模式并建立數(shù)據(jù)庫,這是數(shù)據(jù)庫應(yīng)用系統(tǒng)設(shè)計的一部分本書以某學(xué)校的圖書管理系統(tǒng)設(shè)計和實(shí)現(xiàn)為目標(biāo),設(shè)計數(shù)據(jù)庫和應(yīng)用系統(tǒng),并使用VisualFoxPro開發(fā)工具實(shí)現(xiàn)圖書管理系統(tǒng)的基本核心功能。什么是數(shù)據(jù)庫設(shè)計呢?

廣義地講,是數(shù)據(jù)庫及其應(yīng)用系統(tǒng)的設(shè)計,即設(shè)計整個數(shù)據(jù)庫應(yīng)用系統(tǒng)如圖書管理系統(tǒng)、辦公自動化系統(tǒng)、電子政務(wù)系統(tǒng)、財務(wù)管理系統(tǒng)、電子商務(wù)平臺等。數(shù)據(jù)庫設(shè)計要基于一個給定的應(yīng)用環(huán)境,根據(jù)用戶的信息需求、處理需求和數(shù)據(jù)庫的支撐環(huán)境

利用數(shù)據(jù)模型和應(yīng)用程序模擬現(xiàn)實(shí)世界中該單位的數(shù)據(jù)結(jié)構(gòu)和處理活動的過程,是數(shù)據(jù)設(shè)計和數(shù)據(jù)處理設(shè)計的結(jié)合。規(guī)范化的數(shù)據(jù)庫設(shè)計要求數(shù)據(jù)庫中的數(shù)據(jù)達(dá)到最大程度的共享、最小的冗余度以及較高的獨(dú)立性,并保證數(shù)據(jù)的一致性、正確性和相容性。2.關(guān)系數(shù)據(jù)庫設(shè)計1數(shù)據(jù)庫設(shè)計方法早期數(shù)據(jù)庫設(shè)計主要采用手工與經(jīng)驗相結(jié)合的方法

設(shè)計的質(zhì)量往往與設(shè)計人員的經(jīng)驗、水平有直接關(guān)系,缺乏科學(xué)理論和工程方法的支持,設(shè)計質(zhì)量難以保證,常常是數(shù)據(jù)庫運(yùn)行一段時間后又不同程度地發(fā)現(xiàn)各種問題,需要進(jìn)行修改甚至重新設(shè)計,增加了系統(tǒng)維護(hù)的代價。(1)新奧爾良(NewOrleans)方法。該方法運(yùn)用軟件工程的思想,按一定的設(shè)計規(guī)程,應(yīng)用工程化方法,把數(shù)據(jù)庫設(shè)計分為若干階段和步驟,并采用一些輔助手段實(shí)現(xiàn)每一過程。(2)基于E-R模型的數(shù)據(jù)庫設(shè)計方法。該方法用E-R模型來設(shè)計數(shù)據(jù)庫的概念模型,是數(shù)據(jù)庫設(shè)計階段廣泛采用的方法。2.關(guān)系數(shù)據(jù)庫設(shè)計1數(shù)據(jù)庫設(shè)計方法(3)3NF(第三范式)的設(shè)計方法。該方法以關(guān)系數(shù)據(jù)庫理論為指導(dǎo)來設(shè)計數(shù)據(jù)庫的邏輯模型是設(shè)計關(guān)系數(shù)據(jù)庫時在邏輯階段可以采用的一種有效方法。(4)對象定義語言(ObjectDefinitionLanguage,ODL方法。這是面向?qū)ο蟮臄?shù)據(jù)庫設(shè)計方法。該方法用面向?qū)ο蟮母拍詈托g(shù)語來說明數(shù)據(jù)庫結(jié)構(gòu)。本質(zhì)上看仍然是手工設(shè)計方法,其基本思想是過程迭代和逐步求精在實(shí)際數(shù)據(jù)庫應(yīng)用系統(tǒng)設(shè)計過程中,一般會遵循一定的步驟,運(yùn)用相應(yīng)的設(shè)計方法和工具,基于需求分析所得到的數(shù)據(jù)管理需求、系統(tǒng)的業(yè)務(wù)功能處理需求以及業(yè)務(wù)處理規(guī)則和完整性需求,設(shè)計數(shù)據(jù)庫的概念結(jié)構(gòu)、邏輯結(jié)構(gòu)和物理結(jié)構(gòu),創(chuàng)建數(shù)據(jù)庫和開發(fā)應(yīng)用系統(tǒng)。2.關(guān)系數(shù)據(jù)庫設(shè)計2數(shù)據(jù)庫設(shè)計步驟按照規(guī)范化設(shè)計的方法,考慮數(shù)據(jù)庫及其應(yīng)用開發(fā)全過程

將數(shù)據(jù)庫應(yīng)用系統(tǒng)設(shè)計分為以下6個階段:需求分析、概念結(jié)構(gòu)設(shè)計、邏輯結(jié)構(gòu)設(shè)計、物理結(jié)構(gòu)設(shè)計、數(shù)據(jù)庫系統(tǒng)實(shí)施、數(shù)據(jù)庫系統(tǒng)運(yùn)行和維護(hù)。在數(shù)據(jù)庫設(shè)計過程中,需求分析和概念結(jié)構(gòu)設(shè)計可以獨(dú)立于任何數(shù)據(jù)庫管理系統(tǒng)進(jìn)行邏輯結(jié)構(gòu)設(shè)計、物理結(jié)構(gòu)設(shè)計與選用的數(shù)據(jù)模型以及DBMS密切相關(guān)。2.關(guān)系數(shù)據(jù)庫設(shè)計2數(shù)據(jù)庫設(shè)計步驟數(shù)據(jù)庫設(shè)計之前,首先必須選定參加數(shù)據(jù)庫設(shè)計的人員

包括系統(tǒng)分析員、數(shù)據(jù)庫設(shè)計師、應(yīng)用開發(fā)者、數(shù)據(jù)庫管理員和用戶代表。系統(tǒng)分析和數(shù)據(jù)庫設(shè)計人員是數(shù)據(jù)庫設(shè)計的核心人員,他們將自始至終參與數(shù)據(jù)庫設(shè)計,他們的水平?jīng)Q定了數(shù)據(jù)庫系統(tǒng)的質(zhì)量。用戶和數(shù)據(jù)庫管理員在數(shù)據(jù)庫設(shè)計中也是舉足輕重的,他們主要參加需求分析和數(shù)據(jù)庫的運(yùn)行和維護(hù)。應(yīng)用開發(fā)者包括程序員和操作員,分別負(fù)責(zé)編制程序和準(zhǔn)備軟硬件環(huán)境,他們在系統(tǒng)實(shí)施階段參與進(jìn)來。設(shè)計一個完善的數(shù)據(jù)庫應(yīng)用系統(tǒng)是不可能一蹴而就的它往往是上述6個階段的不斷反復(fù)。在設(shè)計過程中要把數(shù)據(jù)庫的設(shè)計和對數(shù)據(jù)庫中數(shù)據(jù)處理的設(shè)計緊密結(jié)合起來。2.關(guān)系數(shù)據(jù)庫設(shè)計3需求分析需求分析是數(shù)據(jù)庫應(yīng)用系統(tǒng)設(shè)計的基礎(chǔ)

也是最困難和最耗時間的一步。本階段的主要任務(wù)就是通過調(diào)查、收集和分析,獲得用戶對數(shù)據(jù)庫的信息需求、處理需求、安全性和完整性需求。信息需求指的是需要在數(shù)據(jù)庫中存儲的數(shù)據(jù)信息以及信息的內(nèi)容、格式、獲取方式等:處理需求指的是用戶希望數(shù)據(jù)庫應(yīng)用系統(tǒng)完成什么處理功能,處理的響應(yīng)時間有什么要求,處理的方式是什么。一項處理功能用到的、產(chǎn)生的以及需要存儲、傳播的數(shù)據(jù)信息的總和就是數(shù)據(jù)庫的信息需求這一階段會用數(shù)據(jù)流圖和數(shù)據(jù)字典等工具描述需求分析的結(jié)果,完成需求分析報告。2.關(guān)系數(shù)據(jù)庫設(shè)計4概念結(jié)構(gòu)設(shè)計概念結(jié)構(gòu)設(shè)計是整個數(shù)據(jù)庫設(shè)計的關(guān)鍵,它通過對用戶需求進(jìn)行綜合、歸納與抽象,形成獨(dú)立于具體DBMS的概念模型。概念結(jié)構(gòu)設(shè)計的步驟如下。(1)對需求分析得到的數(shù)據(jù)需求進(jìn)行綜合、歸納、抽象,得到所有的信息實(shí)體。(2)分析實(shí)體之間的聯(lián)系。(3)分析每個實(shí)體的屬性,繪制E-R圖。(4)確定每個屬性的域。2.關(guān)系數(shù)據(jù)庫設(shè)計4概念結(jié)構(gòu)設(shè)計(5)分析每個實(shí)體的候選碼和主碼。(6)檢查模型的冗余度。(7)驗證模型能否支持用戶需求。(8)與用戶進(jìn)行確認(rèn)。通常,數(shù)據(jù)庫的概念結(jié)構(gòu)用E-R圖來表示。2.關(guān)系數(shù)據(jù)庫設(shè)計5邏輯結(jié)構(gòu)設(shè)計關(guān)系模型的邏輯結(jié)構(gòu)是一組關(guān)系模式的集合

E-R圖則是由實(shí)體、實(shí)體的屬性和實(shí)體之間的聯(lián)系3個要素組成的。所以,將E-R圖轉(zhuǎn)換為關(guān)系模型,實(shí)際上就是要將實(shí)體、實(shí)體的屬性和實(shí)體之間的聯(lián)系轉(zhuǎn)換為關(guān)系(表)。這種轉(zhuǎn)換一般遵循如下原則。1)實(shí)體與實(shí)體屬性的轉(zhuǎn)換。實(shí)體與實(shí)體屬性的轉(zhuǎn)換即一個實(shí)體型轉(zhuǎn)換為一個關(guān)系(表)。實(shí)體的屬性就是關(guān)系的屬性。實(shí)體的碼就是關(guān)系的碼。例如,圖1-17中學(xué)生實(shí)體Student及其屬性可以轉(zhuǎn)換為如下關(guān)系,其中學(xué)號Number為學(xué)生關(guān)系的碼。2.關(guān)系數(shù)據(jù)庫設(shè)計5邏輯結(jié)構(gòu)設(shè)計2)實(shí)體間聯(lián)系的轉(zhuǎn)換(1)一個1:1聯(lián)系可以轉(zhuǎn)換為一個獨(dú)立的關(guān)系表,也可以將任意一端關(guān)系中的碼屬性添加到另一端的關(guān)系(表)中。如果轉(zhuǎn)換為一個獨(dú)立的關(guān)系(表),則與該聯(lián)系相連的各實(shí)體的碼及聯(lián)系本身的屬性均轉(zhuǎn)換為關(guān)系的屬性,每個實(shí)體的碼均是該關(guān)系的候選碼,任選其中一個作為主碼即可。如果不轉(zhuǎn)換為獨(dú)立的關(guān)系(表),則需要在一個關(guān)系(表)的屬性中加入另一個關(guān)系(表)的碼和聯(lián)系本身的屬性,而原來的碼不變。例如,假設(shè)一個班級只能由一個班主任(教師)管理,一個班主任也只能管理一個班,則教師與班級之間具有一對一聯(lián)系,如圖1-22所示。2.關(guān)系數(shù)據(jù)庫設(shè)計5邏輯結(jié)構(gòu)設(shè)計2)實(shí)體間聯(lián)系的轉(zhuǎn)換將其轉(zhuǎn)換為關(guān)系有以下3種方法。①轉(zhuǎn)換成一個獨(dú)立的關(guān)系(表):Manages(Tno,ClassNo)②將“Teacher”關(guān)系(表)中的主碼屬性職工號“Tno”加入到“Class”關(guān)系(表)中,并作為“Class”關(guān)系(表)的外碼,參照“Teacher”關(guān)系(表)的主碼:Class(ClassNo,ClassName,StuNumber,Tno)2.關(guān)系數(shù)據(jù)庫設(shè)計5邏輯結(jié)構(gòu)設(shè)計2)實(shí)體間聯(lián)系的轉(zhuǎn)換③將“Class”關(guān)系(表)中的主碼屬性班級號“ClassNo”加入到“Teacher”關(guān)系(表)中并作為“Teacher”關(guān)系(表)的外碼,參照“Class”關(guān)系(表)的主碼:Teacher(Tno,Tname,Ttitle,Tsex,ClassNo)(2)一個1:N聯(lián)系的轉(zhuǎn)換可將“1”端關(guān)系中的碼加入“N”端實(shí)體對應(yīng)的關(guān)系模式中,并作為N端關(guān)系模式的外碼,而原來的碼不變。2.關(guān)系數(shù)據(jù)庫設(shè)計5邏輯結(jié)構(gòu)設(shè)計2)實(shí)體間聯(lián)系的轉(zhuǎn)換(3)一個M:N聯(lián)系轉(zhuǎn)換為一個關(guān)系:必須轉(zhuǎn)換為一個獨(dú)立關(guān)系(表),與該聯(lián)系相連的各實(shí)體的碼及聯(lián)系本身的屬性均轉(zhuǎn)換為新關(guān)系的屬性,而關(guān)系(表)的碼為各實(shí)體碼的組合,如圖1-24所示。2.關(guān)系數(shù)據(jù)庫設(shè)計6圖書管理系統(tǒng)數(shù)據(jù)庫1)書籍情況表(Book)這里設(shè)計Book關(guān)系(表)來存儲圖書館所有圖書的信息,包括圖書編號、書名、作者姓名、出版社名稱、出版日期、類別、館藏冊數(shù)、圖書定價等信息,圖書編號是唯一的。Book(圖書編號,書名,作者,出版社,出版日期,類別,冊數(shù),定價,備注),其中主碼是“圖書編號”其結(jié)構(gòu)如表1-1所示。2.關(guān)系數(shù)據(jù)庫設(shè)計6圖書管理系統(tǒng)數(shù)據(jù)庫1)書籍情況表(Book)部分圖書信息如圖1-25所示。2.關(guān)系數(shù)據(jù)庫設(shè)計6圖書管理系統(tǒng)數(shù)據(jù)庫2)讀者情況表(Reader)設(shè)計Reader關(guān)系(表)記錄讀者信息,包括讀者借書卡號、姓名、性別、電話、所在院系和班級、借書卡失效日期、押金等信息。Reader(讀者卡號,姓名,性別,電話,證件號碼,分院,班級,失效日期,押金,備注),其結(jié)構(gòu)如表1-2所示。2.關(guān)系數(shù)據(jù)庫設(shè)計6圖書管理系統(tǒng)數(shù)據(jù)庫2)讀者情況表(Reader)部分讀者信息如圖1-26所示。2.關(guān)系數(shù)據(jù)庫設(shè)計6圖書管理系統(tǒng)數(shù)據(jù)庫3)借閱情況表(Borrow)設(shè)計Borrow關(guān)系(表)記錄圖書借閱信息,包括借閱的讀者、所借圖書、借閱日期、借閱天數(shù)、實(shí)際歸還日期、數(shù)量、歸還狀態(tài)等。Borrow(讀者卡號,圖書編號,借閱日期,借閱天數(shù),歸還日期,數(shù)量,歸還狀態(tài)),其結(jié)構(gòu)如表1-3所示。2.關(guān)系數(shù)據(jù)庫設(shè)計6圖書管理系統(tǒng)數(shù)據(jù)庫3)借閱情況表(Borrow)部分借閱信息如圖1-27所示。2.關(guān)系數(shù)據(jù)庫設(shè)計6圖書管理系統(tǒng)數(shù)據(jù)庫4)用戶口令表(Passwordinfo)用戶口令存儲在Passwordinfo中,其結(jié)構(gòu)如表1-4所示。謝謝觀看第二章VFP及項目創(chuàng)建數(shù)據(jù)庫應(yīng)用系統(tǒng)的設(shè)計、開發(fā)與實(shí)現(xiàn)——基于VisualFoxPro01VisualFoxPro概述PARTONEVisualFoxPro概述1991年,F(xiàn)oxPr2.0推出

由于使用了Rushmore查詢優(yōu)化技術(shù)、先進(jìn)的關(guān)系查詢與報表技術(shù)及整套第4代語言工具,F(xiàn)oxPro2.0在性能上得到了大幅度的提高。1989年下半年,F(xiàn)oxPro1.0正式推出

它首次引入了基于DOS環(huán)境的窗口技術(shù),用戶使用的界面出現(xiàn)了與命令等效的菜單系統(tǒng)。它支持鼠標(biāo),操作方便,是一個與DBASE、FOXBASE全兼容的編譯型集成環(huán)境式的數(shù)據(jù)庫系統(tǒng)。1992年,微軟公司收購了Fox公司,把FoxPro納入自己的產(chǎn)品

它利用自身的技術(shù)優(yōu)勢和巨大的資源,在不長的時間中開發(fā)出了FoxPro2.5、FoxPro26等包括DOSWindows、Mac和UNIX4個平臺的軟件產(chǎn)品。VisualFoxPro概述2004年12月,微軟公司公布了FoxPro9.0

目前最高版本是FoxPro9.0SP2其包括支持創(chuàng)建WebServices及與NET兼容性一樣好的XML開發(fā)方式、擴(kuò)展的SQL增強(qiáng)技術(shù)新的智能客戶端界面控件技術(shù)和開發(fā)期間進(jìn)行編譯的技術(shù)。1995年6月,微軟公司推出了FoxPro3.0

1998年,微軟公司發(fā)布了可視化編程語言集成包——FoxPro6.0。FoxPro6.0是可運(yùn)行于Windows98/NT平臺的32位數(shù)據(jù)庫開發(fā)系統(tǒng),能充分發(fā)揮32位微處理器的強(qiáng)大功能,是直觀易用的編程工具。之后,微軟公司推出了FoxPro7.0和8.0。1.VisualFoxPro的啟動與關(guān)閉VisualFoxPro是一個應(yīng)用程序,其啟動與Word等其他應(yīng)用程序無區(qū)別,一般有以下幾種啟動方法。1VisualFoxPro的啟動(1)雙擊桌面上的快捷圖標(biāo),如圖2-1所示。(2)通過在Windows中選擇“開始”→“所有程序”→“VisualFoxPro”選項啟動。(3)通過在Windows中選擇“開始”→“運(yùn)行”選項,彈出“運(yùn)行”對話框,單擊“瀏覽”按鈕,找到MicrosoftVisualFoxPro9.0文件夾,啟動VFP9exe程序。(4)通過Windows的資源管理器或“計算機(jī)”,找到VFP9exe程序并啟動。1.VisualFoxPro的啟動與關(guān)閉關(guān)閉VisualFoxPro的方法有如下幾種。(1)單擊VisualFoxPro窗口右上角的“關(guān)閉”按鈕。(2)在VisualFoxPro中選擇“文件”一“退出”選項,如圖2-2所示。(3)在VisualFoxPro的命令窗口中輸入命令“OUIT”,如圖2-2所示。(4)雙擊窗口左上角的控制菜單按鈕。(5)按快捷鍵Alt+F4。2VisualFoxPro的關(guān)閉2.VisualFoxPro用戶界面的組成VisualFoxPro用戶界面主要由標(biāo)題欄、菜單欄、工具欄、命令窗口、瀏覽窗口等組成如圖2-3所示。3.系統(tǒng)環(huán)境配置運(yùn)行VisualFoxPro9.0的計算機(jī)的最低配置需求如下。處理器:Pentium級。內(nèi)存:64MBRAM??捎糜脖P空間:165MB。顯示:分辨率為800像素X600像素,256色。操作系統(tǒng):Windows2000SP3及后續(xù)版本。02圖書管理系統(tǒng)項目的創(chuàng)建PARTTWO1.案例描述圖書管理系統(tǒng)的主要功能模塊包括

圖書信息管理、讀者信息管理、圖書借閱服務(wù)、查詢和統(tǒng)計、系統(tǒng)管理等,具體如下。(1)圖書信息管理:包含圖書信息錄入、圖書信息修改。(2)讀者信息管理:包含讀者信息錄入、讀者信息修改。(3)圖書借閱服務(wù):包含圖書借閱和圖書歸還。(4)查詢和統(tǒng)計:包含借閱情況查詢、圖書分類統(tǒng)計、圖書借閱情況統(tǒng)計、讀者借閱情況統(tǒng)計逾期記錄統(tǒng)計。(5)系統(tǒng)管理:包含用戶注冊、用戶修改、退出系統(tǒng)。要開發(fā)圖書管理系統(tǒng),首先應(yīng)利用項目管理器創(chuàng)建項目,項目可以有效地管理系統(tǒng)所涉及的所有文件、數(shù)據(jù)、文檔及對象,相當(dāng)于“圖書管理系統(tǒng)”項目的控制中心。2.知識鏈接為了提高工作效率,VFP提供了一個非常有效的管理工具:項目管理器。它是VEP中處理數(shù)據(jù)和對象的主要組織工具。項目管理器通過項目文件(*.pix)對應(yīng)用程序開發(fā)過程中的所有文件、數(shù)據(jù)、文檔、對象進(jìn)行組織和管理,是整個VFP開發(fā)工具的控制中心。通過項目管理器,可以對文件進(jìn)行建立、修改、刪除、瀏覽等操作;可以向項目中添加文件、移出文件,最終可以對整個應(yīng)用程序的所有各類文件及對象進(jìn)行測試及統(tǒng)一連編,以形成應(yīng)用程序文件(*.app)或可執(zhí)行文件(*.exe)。1項目管理器項目是文件、數(shù)據(jù)、文檔及其他VFP對象的集合,要建立一個項目就必須先創(chuàng)建一個項目文件,項目文件的擴(kuò)展名為.pjix。2項目3.案例實(shí)施打開VFP軟件主窗口,通過“文件”菜單來新建項目文件,項目文件名為“圖書管理系統(tǒng)”可以通過菜單和命令兩種方式創(chuàng)建“項目”。(1)菜單方式:選擇“文件”一“新建”選項,彈出“新建”對話框,選中“項目”單選按鈕如圖2-4和圖2-5所示。1項目的創(chuàng)建3.案例實(shí)施打開VFP軟件主窗口,通過“文件”菜單來新建項目文件,項目文件名為“圖書管理系統(tǒng)”可以通過菜單和命令兩種方式創(chuàng)建“項目”。單擊“確定”按鈕,彈出“創(chuàng)建”對話框,輸入項目名稱“圖書管理系統(tǒng)”,單擊“保存”按鈕,如圖2-6所示。1項目的創(chuàng)建3.案例實(shí)施打開VFP軟件主窗口,通過“文件”菜單來新建項目文件,項目文件名為“圖書管理系統(tǒng)”可以通過菜單和命令兩種方式創(chuàng)建“項目”。(2)命令方式:在命令窗口中輸入“CREATEPROJECT”,如圖2-7所示。1項目的創(chuàng)建3.案例實(shí)施在項目管理器中打開“圖書管理系統(tǒng)pix”,可以看到其包含6個選項卡:“全部”“數(shù)據(jù)”“文檔”“類”“代碼”和“其他”,如圖2-8所示。2選項卡3.案例實(shí)施(1)“全部”選項卡包含了其他5個選項卡的內(nèi)容,集中顯示該項目的所有文件。(2)“數(shù)據(jù)”選項卡用于顯示項目的所有數(shù)據(jù),包括數(shù)據(jù)庫、自由表、查詢、視圖。(3)“文檔”選項卡用于顯示項目中處理的所有文檔,包括表單、報表、標(biāo)簽。(4)“類”選項卡用于顯示項目中所有自定義的類。(5)“代碼”選項卡用于顯示項目使用的所有程序,包括程序文件(*,prg)函數(shù)APILibraries.應(yīng)用程序文件(*.app)。(6)“其他”選項卡用于顯示項目中所用到的其他文件,包括菜單文件、文本文件、其他文件如位圖文件(*.bmp)、圖標(biāo)文件(*ico)等。2選項卡3.案例實(shí)施單擊項目管理器左側(cè)的“+”按鈕,將各項展開,可以看到每項包含的內(nèi)容如圖2-9所示。3選項卡展開情況3.案例實(shí)施4項目管理器中的按鈕可以看到,項目管理器的右側(cè)包含6個按,分別是“新建”“添加”“修改”“運(yùn)行”“移去”和“連編”。其作用分別如下。

(1)“新建”按鈕用于在項目中新建一個選中類型的文件。(2)“添加”按鈕用于向項目中添加一個已存在的文件。(3)“修改”按鈕用于修改項目中選中的文件。(4)“運(yùn)行”按鈕用于運(yùn)行項目中選中的文件。(5)“移去”按鈕用于移去、刪除項目中選中的文件。(6)“連編”按鈕用于對整個應(yīng)用程序進(jìn)行連編。謝謝觀看第三章數(shù)據(jù)表的建立與操作數(shù)據(jù)庫應(yīng)用系統(tǒng)的設(shè)計、開發(fā)與實(shí)現(xiàn)——基于VisualFoxPro01數(shù)據(jù)表的建立PARTONE1.設(shè)置默認(rèn)路徑1案例描述2知識鏈接為了使表文件數(shù)據(jù)能夠自動存儲到指定的位置,應(yīng)該在建立表結(jié)構(gòu)及其他操作前完成默認(rèn)目錄的設(shè)置,確保數(shù)據(jù)不會亂放或丟失??梢酝ㄟ^菜單及命令兩種方式設(shè)置路徑。

1)菜單方式選擇“工具”一“選項”選項,彈出“選項”對話框,選擇“文件位置”選項卡,選中“默認(rèn)目錄”,單擊“修改”按鈕,進(jìn)行默認(rèn)目錄的修改。設(shè)置當(dāng)前工作默認(rèn)目錄為D盤“vhp”文件夾中的“數(shù)據(jù)”文件夾。1.設(shè)置默認(rèn)路徑2知識鏈接單擊“選項”對話框右下角的“設(shè)置為默認(rèn)值”按鈕,使本次設(shè)置的默認(rèn)目錄長期有效;若只單擊“確定”按鈕,則設(shè)置的默認(rèn)目錄只在本次VFP環(huán)境中有效,一旦退出VFP,默認(rèn)目錄設(shè)置即失效。2)命令方式說明:<路徑>為指定位置路徑,即當(dāng)前工作目錄。1.設(shè)置默認(rèn)路徑3案例實(shí)施方法1(菜單方式):按上述菜單方式進(jìn)行設(shè)置,結(jié)果如圖3-1所示。方法2(命令方式):在命令窗口中輸入以下命令。2.建立表結(jié)構(gòu)1案例描述要求創(chuàng)建“圖書管理系統(tǒng)”數(shù)據(jù)庫的書籍情況表、讀者情況表、借閱情況表及用戶口令表。書籍情況表(表文件名為bookdbf)如表3-1所示。2.建立表結(jié)構(gòu)2知識鏈接數(shù)據(jù)表由表結(jié)構(gòu)和表記錄兩部分組成。在為數(shù)據(jù)表錄入表記錄前,必須先建立表結(jié)構(gòu)。表結(jié)構(gòu)的建立有多種方式。1)單方式文件→新建→表→新建文件→輸入表名→保存(擴(kuò)展名為.dbf)→表設(shè)計器(見圖3-2)→設(shè)置字段名、類型、寬度、小數(shù)位數(shù)、索引、是否支持空值。2.建立表結(jié)構(gòu)2知識鏈接說明:

(1)字段名:由用戶自定義。其名稱應(yīng)符合標(biāo)識符的規(guī)范,可由字母、漢字、數(shù)字和下畫線組成,不能以數(shù)字開頭,長度不能超過10個字符。(2)類型:根據(jù)所選字段選擇合適的類型。常見的類型有以下幾種。字符型:用于顯示的字段。數(shù)值型:用于計算的字段(注意小數(shù)位數(shù))。日期型:用于表示日期的字段。2.建立表結(jié)構(gòu)2知識鏈接說明:

(3)寬度:以字節(jié)為單位。字符及二進(jìn)制字段寬度最大為254,數(shù)值型字段的寬度最大為20。其他數(shù)據(jù)類型規(guī)定的字段寬度如表3-2所示。可參見len0函數(shù),使系統(tǒng)占用內(nèi)存最小化。(4)小數(shù)位數(shù):只針對數(shù)值型字段。2)命令方式2.建立表結(jié)構(gòu)3案例實(shí)施方法1(菜單方式):

選擇“文件”-“新建”選項,彈出“新建”對話框,如圖3-3所示。選中“表”單選按鈕,單擊“新建”按鈕,彈出“創(chuàng)建”對話框,如圖3-4所示。選擇路徑并保存文件,彈出表設(shè)計器對話框,如圖3-5所示。在表設(shè)計器對話框中輸入已設(shè)計好的表結(jié)構(gòu)。2.建立表結(jié)構(gòu)3案例實(shí)施方法2(命令方式):

建立“bookdbf”表結(jié)構(gòu)的命令如下。此時,會在當(dāng)前文件夾中建立一個新的數(shù)據(jù)表文件。3.復(fù)制表結(jié)構(gòu)1案例描述(1)用已存在的“bookdbf”創(chuàng)建“SG1”的表結(jié)構(gòu),“SG1的表結(jié)構(gòu)與“bookdbf”的結(jié)構(gòu)一樣。(2)用已存在的“bookdbf”創(chuàng)建“SG2”的表結(jié)構(gòu)“SG2”的表結(jié)構(gòu)只取“book.dbf”的圖書編號、書名、作者3個字段。2知識鏈接表結(jié)構(gòu)的復(fù)制是指通過復(fù)制其他表來產(chǎn)生表結(jié)構(gòu),其命令如下。說明:[FIELDS<字段名表>]選項是指將要復(fù)制的字段名稱,沒有此項時會復(fù)制全部字段。3.復(fù)制表結(jié)構(gòu)3案例實(shí)施(1)在命令窗口中輸入以下命令(注意,一行命令輸入完畢后要按Enter鍵):(2)在命令窗口中輸入以下命令:4.顯示表結(jié)構(gòu)1案例描述分頁顯示“book.dbf”的表結(jié)構(gòu)。2知識鏈接顯示表結(jié)構(gòu),即顯示表中每個字段的字段名、類型、寬度、小數(shù)位數(shù)、索引情況、排序情況是否支持空值等信息。顯示當(dāng)前數(shù)據(jù)表的表結(jié)構(gòu)有分頁顯示和連續(xù)滾動顯示兩種方式,分別借助于命令DISPLAY和LIST,完整格式描述如下。(1)分頁顯示:(2)連續(xù)滾動顯示:4.顯示表結(jié)構(gòu)3案例實(shí)施在命令窗口中輸入以下命令:顯示結(jié)果如圖3-6所示??傆嫷淖止?jié)數(shù)為128,比各字段寬度之和多1字節(jié),多出的1字節(jié)用來存放刪除標(biāo)記“*”。如果支持空值,則總計的字節(jié)數(shù)為129,還要再增加1字節(jié),用來記錄支持空值的狀態(tài)。5.表結(jié)構(gòu)的修改1案例描述修改“book.dbf”的表結(jié)構(gòu)。2知識鏈接1)單方式顯示→表設(shè)計器→查看或修改當(dāng)前表結(jié)構(gòu)。注意,修改表結(jié)構(gòu)前必須先打開表,否則無法打開表設(shè)計器。2)命令方式此時會彈出“表設(shè)計器”對話框,在其中可實(shí)現(xiàn)表結(jié)構(gòu)的修改。5.表結(jié)構(gòu)的修改3案例實(shí)施方法1(菜單方式):選擇“顯示”→“表設(shè)計器”選項彈出“表設(shè)計器”對話框,修改“book.dbf”的表結(jié)構(gòu),顯示結(jié)果如圖3-7所示。方法2(命令方式):MODIFYSTRUCTURE→進(jìn)入當(dāng)前表設(shè)計器一修改表結(jié)構(gòu)。02數(shù)據(jù)表的編輯修改PARTTWO1.表的打開和關(guān)閉1案例描述選擇“數(shù)據(jù)工作期”選項打開“book.dbf”2知識鏈接表的打開是指將存放在外存中的表文件調(diào)入內(nèi)存,在使用表文件前必須先打開它。表的打開有多種方式。1)菜單方式1文件→打開→文件類型→選擇“表(*dbf)”→選擇文件。1.表的打開和關(guān)閉2知識鏈接2)菜單方式2窗口→數(shù)據(jù)工作期→打開→選擇文件。此方法可同時打開多個表文件。3)命令方式1.表的打開和關(guān)閉2知識鏈接在結(jié)束對表的操作后,應(yīng)該及時將表關(guān)閉。表文件的關(guān)閉有多種方式。1)菜單方式窗口一數(shù)據(jù)工作期一關(guān)閉一將選中的表關(guān)閉。2)命令方式USE:使用不加表名的USE命令,關(guān)閉當(dāng)前工作區(qū)中打開的表。CLOSETABLES:關(guān)閉所有工作區(qū)中已打開的表文件。CLEARALL:清除內(nèi)存變量,同時關(guān)閉所有工作區(qū)中已打開的表文件。CLOSEALL:關(guān)閉所有已打開的文件,包括表文件。在同一個工作區(qū)中打開另一張表時,該工作區(qū)中原來打開的表將自動關(guān)閉。1.表的打開和關(guān)閉3案例實(shí)施選擇“窗口”→“數(shù)據(jù)工作期”選項,彈出“數(shù)據(jù)工作期”對話框,單擊“Open”按鈕,彈出“打開文件”對話框,選擇要打開的文件。“數(shù)據(jù)工作期”對話框如圖3-8所示。2.表記錄的錄入1案例描述要求為“圖書管理系統(tǒng)”數(shù)據(jù)庫的書籍情況表“bookdbf”輸入表記錄,如圖3-9所示。2.表記錄的錄入2知識鏈接當(dāng)確定表結(jié)構(gòu)后,可以使用多種方式進(jìn)行表記錄的輸入。1)菜單方式顯示→瀏覽XX表→顯示→追加模式。2)追加命令A(yù)PPENDI[BLANK][LIIN<工作區(qū)號>/別名>1],在表末尾添加新記錄。3)插入命令[INSERTTBEFORE][BLANK],在當(dāng)前記錄的前面插入一條新記錄,無BEFORE選項時在當(dāng)前記錄的后面插入一條新記錄。2.表記錄的錄入3案例實(shí)施方法1(菜單方式):打開表文件,選擇“顯示”→“瀏覽”選項,再選擇“顯示”→“追加模式”選項,此時光標(biāo)定位在表的末尾,且“追加模式”命令變?yōu)榛疑?不可用狀態(tài)),如圖3-10所示。2.表記錄的錄入3案例實(shí)施方法2(命令方式):3.表記錄的瀏覽1案例描述瀏覽“book.dbf”中類別為“計算機(jī)”的記錄的書名、作者、出版日期字段,并設(shè)置瀏覽標(biāo)題為“計算機(jī)類書目情況表”。2知識鏈接1)菜單方式顯示→瀏覽XX表→瀏覽窗口。在瀏覽窗口中既可以查看數(shù)據(jù),又可以修改和添加數(shù)據(jù)。瀏覽窗口有“瀏覽”和“編輯”兩種顯示方式,可通過選擇“顯示”→“瀏覽”和“顯示”→“編輯選項來切換。3.表記錄的瀏覽2知識鏈接2)命令方式說明:(1)通過BROWSE命令打開一個瀏覽窗口,可以顯示、修改、刪除和追加表中的記錄。(2)FIELDS<字段名表>指定了顯示在瀏覽窗口中的字段。(3)FOR<條件>指定了滿足顯示記錄的條件,當(dāng)<條件>為“真”時,表示將該記錄顯示在瀏覽窗口中。(4)LAST表示保留上次命令[FIELDS<字段名表>]的選擇。(5)TITLE<標(biāo)題文本>指明了顯示在瀏覽窗口標(biāo)題欄中的表名。3.表記錄的瀏覽3案例實(shí)施在命令窗口中輸入以下命令:運(yùn)行結(jié)果如圖3-12所示。4.表記錄的連續(xù)滾動顯示1案例描述使用LIST命令顯示“bookdbf”的記錄。2知識鏈接如果表的記錄有很多,無法在一個屏幕內(nèi)顯示出所有記錄時,可以通過連續(xù)滾動命令顯示記錄,命令如下:說明:(1)<范圍共有4種-ALL、NEXT、RECORD、REST不帶任何選項時,LIST的默認(rèn)范圍是所有記錄,即ALL。(2)LISTOFF明不顯示記錄編號。4.表記錄的連續(xù)滾動顯示3案例實(shí)施在命令窗口中輸入以下命令:5.表記錄的分屏顯示1案例描述分屏顯示“book.dbf”的記錄。2知識鏈接當(dāng)表的記錄有很多時,分屏顯示命令可在顯示記錄滿一屏后暫停,按任意鍵繼續(xù)顯示下一屏。分屏顯示命令如下:5.表記錄的分屏顯示3案例實(shí)施在命令窗口中輸入以下命令:6.表記錄的定位1案例描述實(shí)現(xiàn)文件記錄指針的定位。2知識鏈接記錄指針指向表的當(dāng)前記錄時會隨著命令的執(zhí)行而發(fā)生變化,也可根據(jù)需要人為地移動指針。表記錄指針定位的常用方法有3種:絕對定位、相對定位和查找定位。(1)絕對定位:將表記錄的指針移動到指定記錄上。說明:RECORD<記錄號>為記錄的物理順序。說明:TOP和BOTTOM指向表文件的第一條和最后一條記錄。6.表記錄的定位2知識鏈接(2)相對定位:將表記錄的指針從當(dāng)前記錄位置向前或向后移動N條。說明:①+N表示指針向文件尾部方向移動N條記錄。②-N表示指針向文件頭方向移動N條記錄。③不帶<N>相當(dāng)于±1。(3)查找定位:此處略。6.表記錄的定位3案例實(shí)施在命令窗口中輸入以下命令:7.表記錄的修改1案例描述修改表記錄指的是修改數(shù)據(jù)表中某些行或某些列的值。對“book.dbf”進(jìn)行復(fù)制,生成一個副本“BK1.dbf”,將“BKldbf”的“冊數(shù)”字段的數(shù)據(jù)改為原來的5倍,并將“軟件工程”的定價改為40。2知識鏈接1)菜單方式打開數(shù)據(jù)表→顯示→瀏覽XX表→進(jìn)入表的瀏覽窗口→修改表中的所有記錄。2)命令方式使用REPLACE命令成批修改多個字段的值。7.表記錄的修改3案例實(shí)施在命令窗口中輸入以下命令:8.表記錄的邏輯刪除1案例描述(1)使用菜單方式邏輯刪除書名為“現(xiàn)代經(jīng)濟(jì)”的記錄。(2)使用命令方式邏輯刪除出版日期在2015年之后的記錄。2知識鏈接1)菜單方式打開表文件→進(jìn)入表的瀏覽窗口→單擊刪除框(要除記錄左邊的小方)該框變成黑色表明記錄已經(jīng)刪除。再次單擊該小方框,若黑色消失,則取消邏輯刪除,恢復(fù)為正常記錄。8.表記錄的邏輯刪除2知識鏈接2)命令方式說明:(1)邏刪除的記錄在使用LIST命令顯示時記錄號后有“*”標(biāo)記。(2)有刪除標(biāo)記的記錄仍保留在表文件中。(3)SETDELETEDON/OFF:設(shè)置邏輯刪除的有效性,可以使邏輯刪除的記錄不參與或參與其他命令的處理。SETDELETEDON:表示邏輯刪除標(biāo)記有效,即有刪除標(biāo)記的記錄不參與處理SETDELETEDOFF(默認(rèn)值)表示邏輯刪除標(biāo)記無效,即有刪除標(biāo)記的記錄參與處理。(4)通過命令RECALL[<范圍>][FOR<條件>][WHILE條件>]INOOPTIMIZE可恢復(fù)刪除,將指定記錄的邏輯刪除標(biāo)記清除,即將邏輯刪除的記錄恢復(fù)為不刪除狀態(tài)。8.表記錄的邏輯刪除3案例實(shí)施(1)在瀏覽窗口中單擊刪除框,使該框變成黑色,如圖3-22所示,書名為“現(xiàn)代經(jīng)濟(jì)”的記錄已被刪除。若再次單擊該小方框,黑色消失,則取消邏輯刪除,恢復(fù)為正常記錄。(2)在命令窗口中輸入以下命令:9.表記錄的物理刪除1案例描述(1)使用菜單方式物理刪除書名為“現(xiàn)代經(jīng)濟(jì)”的記錄;(2)使用命令方式物理刪除圖書編號為“ts0004”的記錄。(3)物理刪除所有記錄。2知識鏈接1)菜單方式表→徹底刪除→系統(tǒng)彈出提示“是否要移去已刪除記錄?”→單擊“是”按鈕一物理刪除已有刪除標(biāo)記的記錄。9.表記錄的物理刪除2知識鏈接2)命令方式1說明:永久刪除當(dāng)前表中有刪除標(biāo)記的記錄。3)命令方式2說明:物理刪除所有記錄,只留下表的結(jié)構(gòu)。ZAP命令的效果等價于DELETEALL和PACK的聯(lián)用效果,但ZAP命令執(zhí)行速度更快。如果設(shè)置SETSAFETYOFF,則系統(tǒng)無任何提示就將全部記錄物理刪除,否則在刪除記錄前系統(tǒng)會要求確認(rèn)。9.表記錄的物理刪除3案例實(shí)施(1)選擇“表”→“徹底刪除”選項,系統(tǒng)彈出提示“是否要移去已刪除記錄?”,單擊“是”按鈕,物理刪除所有已有刪除標(biāo)記的記錄,如圖3-23所示。(2)在命令窗口中輸入以下命令:9.表記錄的物理刪除3案例實(shí)施(3)在命令窗口中輸入以下命令:03數(shù)據(jù)表的排序與索引PARTTHREE1.排序1案例描述對“book.dbf”的記錄進(jìn)行排序,按出版日期從小到大升序排列。2知識鏈接排序是指根據(jù)指定字段重新排列表記錄的先后順序。排序后將生成一個新的表文件,表記錄按照排序后的順序重新編排記錄號,而原文件保持不變。例如,對當(dāng)前表按<字段名1><字段名2>依次進(jìn)行排序,并將排序后的記錄存放到指定的文件中,其排序命令如下。1.排序2知識鏈接說明:(1)<表文件名>:重新排序后記錄存放的文件,系統(tǒng)自動為它指定擴(kuò)展名dbf。(2)ON<字段名1>:指定要排序的字段。第1個字段<字段名1>是主排序字段,第2個字段<字段名2>是次排序字段,以此類推,可實(shí)現(xiàn)多重排序。(3)[/A/D]:指定排序的升序或降序。/A為升序,/D為降序,默認(rèn)為升序。(4)[/C]:如果在字符型字段名后包含/C,則排序忽略大小寫??梢园?C選項同/A或/D選項組合起來,如/AC或/DC。(5)<范圍>]:默認(rèn)為所有記錄。1.排序2知識鏈接說明:(6)FIEBLDSLIKE通配符>:在新表中包含哪些與字段<通配符>相匹配的原表字段。(7)FIELDSEXCEPT<通配符>:在新表中包含哪些不與字段<通配符>相匹配的原表字段。若不帶FIELDS選項,則取原表的全部字段。(8)排序所需的磁盤空間可能是原表的3倍,因此要有足夠的磁盤空間保存新表及在排序過程中創(chuàng)建的臨時工作文件。1.排序3案例實(shí)施在命令窗口中輸入以下命令:2.索引1案例描述使用菜單方式建立索引。2知識鏈接SORT排序存在一些不足,排序結(jié)果是一張與原表一樣大小的擴(kuò)展名為dbf的新文件。排序執(zhí)行速度慢,并占用很大的存儲空間,實(shí)際使用時效率太低,因此VisualFoxPro引入了索引文件來更有效率地排列表記錄的順序。索引文件由索引關(guān)鍵字和記錄指針兩個字段組成,其中索引關(guān)鍵字已按照要求進(jìn)行了升序或降序的排列;記錄指針指向原表的物理地址。因為索引文件是按關(guān)鍵字進(jìn)行的邏輯排序,且只有兩個字段,因此大大提高了排序速度,且只占用了很小的存儲空間。2.索引2知識鏈接索引文件分為兩類:單項索引文件和復(fù)合索引文件。單項索引文件的擴(kuò)展名為.idx,只含有一個索引表達(dá)式。單項索引文件又分為非壓縮和壓縮的單項索引文件,后者可節(jié)省磁盤空間,執(zhí)行速度也較快。復(fù)合索引文件的擴(kuò)展名為cdx,包含多個索引順序,每個索引順序都有自己的索引標(biāo)識(Tag)。復(fù)合索引文件可看作由多個壓縮單索引文件打包在一個文件中,有結(jié)構(gòu)復(fù)合索引文件和非結(jié)構(gòu)復(fù)合索引文件兩種。索引文件的分類如圖3-27所示。在自由表的索引“類型”欄中有4種索引類型:候選索引、主索引、普通索引和二進(jìn)制索引。在實(shí)際操作中,應(yīng)根據(jù)需要選擇相應(yīng)的索引類型,本章中的索引沒有要求時可以選擇普通索引或唯一索引。2.索引3案例實(shí)施打開表,選擇“顯示”→“表設(shè)計器”選項,進(jìn)入“表設(shè)計器”對話框。在“字段”和“索引”選項卡中均可以創(chuàng)建索引標(biāo)識。(1)在“字段”選項卡中創(chuàng)建索引標(biāo)識:在“字段”選項卡的“索引”欄中位置選擇向上個或向下↓的箭頭建立升序或降序的索引,再選擇“索引”選項卡,會看到建立了一個以該字段名作為標(biāo)識的普通“索引”選項卡,如圖3-28所示。2.索引3案例實(shí)施(2)在“索引”選項卡中建立、修改和刪除索引標(biāo)識:選擇“索引”選項卡,輸入索引標(biāo)識的名稱,用鼠標(biāo)拖曳最左邊的雙向箭頭改變索引標(biāo)識列出的順序,在“類型”欄的下拉列表中選擇索引類型,在“表達(dá)式”欄的文本框中輸入索引表達(dá)式,在“篩選”欄中選擇滿足條件的記錄進(jìn)行索賑縱迪,如圖3-29所示。3.單項索引1案例描述建立各項單項索引。2知識鏈接建立單項索引文件,命令如下:說明:(1)多重索引的索引表達(dá)式是通過字符型表達(dá)式實(shí)現(xiàn)的。如果是非字符型字段,則要用STRO、DTOCO、DTOSO等函數(shù)轉(zhuǎn)換成字符型字段,并用“+”或“-”進(jìn)行字符型字段的連接。3.單項索引2知識鏈接(2)TUNIQUE]:索引唯一性,當(dāng)多條記錄的索引表達(dá)式值相同時,只有第一條記錄的值記入索引文件。(3)[COMPACT]:建立壓縮索引,若省略則表示不壓縮。(4)[ADDITIVE]:不關(guān)閉前面打開的索引文件,若省略則表示關(guān)閉除結(jié)構(gòu)復(fù)合索引文件以外的所有之前打開的索引文件。3.單項索引3案例實(shí)施在命令窗口中輸入以下命令:3.單項索引3案例實(shí)施其中,多重索引表達(dá)式中的STR(冊數(shù)將冊數(shù)轉(zhuǎn)換為字符型數(shù)據(jù),DTOS(出版日期)按年月、日的順序?qū)⒊霭嫒掌谵D(zhuǎn)換為字符型數(shù)據(jù)。這樣,上面的表達(dá)式就是字符型數(shù)據(jù)的連加,并按字符型表達(dá)式的結(jié)構(gòu)進(jìn)行排序,“冊數(shù)”是主索引關(guān)鍵字,“出版日期”是次索引關(guān)鍵字。使用一個比定價的所有值都大的數(shù)字減去定價的表達(dá)式來創(chuàng)建索引,即實(shí)現(xiàn)了定價的降序排列。4.復(fù)合索引1案例描述建立各項復(fù)合索引文件。2知識鏈接復(fù)合索引文件包括結(jié)構(gòu)復(fù)合索引文件和非結(jié)構(gòu)復(fù)合索引文件。結(jié)構(gòu)復(fù)合索引文件名與其表名相同,隨表的打開自動打開,隨表的關(guān)閉自動關(guān)閉。當(dāng)表記錄發(fā)生添加、修改、刪除等操作時,系統(tǒng)會自動對該文件進(jìn)行更新。非結(jié)構(gòu)復(fù)合索引文件名與表名不同,不隨表文件的打開而打開。非結(jié)構(gòu)復(fù)合索引文件必須用命令打開,只有在該文件打開時,系統(tǒng)才能更新與維護(hù)該文件。4.復(fù)合索引2知識鏈接建議:表文件的索引一般選用結(jié)構(gòu)復(fù)合索引文件的形式,如果是臨時需要索引,則可選擇單項索引文件。建立復(fù)合索引文件的命令如下。根據(jù)<索引表達(dá)式>建立索引,并以<索引標(biāo)識>為標(biāo)識存入結(jié)構(gòu)復(fù)合索引文件或存入OF后所指定的非結(jié)構(gòu)復(fù)合索引文件中。4.復(fù)合索引3案例實(shí)施在命令窗口中輸入以下命令:5.索引文件的打開1案例描述打開索引文件并觀察記錄指針及文件頭尾情況。2知識鏈接(1)打開表的同時打開索引文件,命令如下:(2)打開表文件后打開索引,命令如下:5.索引文件的打開3案例實(shí)施在命令窗口中輸入以下命令:5.索引文件的打開3案例實(shí)施在打開索引文件后,記錄指針按主索引文件的邏輯順序移動。在文件尾部,即EOFO=.T.處記錄號等于記錄總數(shù)加1;在文件頭部,即BOFO=.T.處,其記錄號總與邏輯上的第一條記錄的記錄號相同。6.主索引1案例描述為“book.dbf”設(shè)置主索引。2知識鏈接確定主索引文件或主控標(biāo)識的命令如下:6.主索引2知識鏈接說明:(1)[TAGI索引標(biāo)識>[OF<復(fù)合索引文件名>]:如果指定一個復(fù)合索引文件中的一個索引標(biāo)識為主索引,則可以直接使用它的索引標(biāo)識。如果在已打開的多個復(fù)合索引文件中存在同名的索引標(biāo)識,則使用TOF<復(fù)合索引文件名>]選項,以指定包含主索引標(biāo)識的復(fù)合索引文件。(2若要恢復(fù)原始物理順序顯示或處理數(shù)據(jù),則可使用SETORDERTO或SETORDERTO0命令。6.主索引3案例實(shí)施在命令窗口中輸入以下命令:7.順序查找1案例描述使用LOCATE、CONTINUE順序查找“bookdbf”滿足條件的一組記錄。2知識鏈接順序查找:按表的排列順序依次搜索滿足條件的第一條記錄。說明:(1)[<范圍>]默認(rèn)是所有記錄。(2)若成功找到滿足條件的記錄,則函數(shù)FOUNDO的結(jié)果為.T,函數(shù)EOFO的結(jié)果為.F.。7.順序查找2知識鏈接繼續(xù)查找:配合LOCATE命令在表的剩余部分尋找其他滿足條件的記錄。說明:(1)CONTINUE必須在LOCATE后使用。(2)可多次執(zhí)行CONTINUE命令,直到文件尾部。(3)LOCATE和CONTINUE只能用于當(dāng)前工作區(qū)。7.順序查找3案例實(shí)施在命令窗口中輸入以下命令:8.索引查找1案例描述使用SEEK命令進(jìn)行索引查找,查找“book.dbf”滿足條件的記錄。2知識鏈接索引查找是指利用索引文件將表記錄排序后通過折半查找實(shí)現(xiàn)的,在已打開的索引文件中搜索索引關(guān)鍵字與指定表達(dá)式匹配的第一條記錄。說明:<表達(dá)式>可以是字符、數(shù)值、邏輯、日期等類型的表達(dá)式。8.索引查找3案例實(shí)施在命令窗口中輸入以下命令:04據(jù)表的統(tǒng)計PARTFOUR1.計數(shù)命令1案例描述本案例要求分別統(tǒng)計“bookdbf”中計算機(jī)及文學(xué)類別圖書的記錄數(shù)。2知識鏈接功能:統(tǒng)計當(dāng)前表中指定范圍內(nèi)滿足條件的記錄數(shù),其命令如下:說明:(1)<內(nèi)存變量>是必填項,用于指定存儲結(jié)果的內(nèi)存變量,若內(nèi)存變量不存在,則系統(tǒng)會自動創(chuàng)建。(2)其默認(rèn)范圍是ALL。(3)FOR<條件>與WHILE<條件>子:指定要滿足的條件,同LIST命令。1.計數(shù)命令3案例實(shí)施在命令窗口中輸入以下命令:2.數(shù)值字段求和命令1案例描述統(tǒng)計所有圖書的總數(shù)量。2知識鏈接功能:對當(dāng)前的指定數(shù)值型字段或全部數(shù)值型字段進(jìn)行縱向求和,其命令如下:說明:(1)[<數(shù)值型表達(dá)式表>]指定了求和的數(shù)值型字段或字段表達(dá)式,多個表達(dá)式之間用逗號分隔。若省略,則對所有數(shù)值型字段進(jìn)行縱向求和。(2)其默認(rèn)范圍是ALL,其他選項同COUNT。2.數(shù)值字段求和命令3案例實(shí)施在命令窗口中輸入以下命令:3.求算術(shù)平均值命令1案例描述求書籍定價的平均值。2知識鏈接功能:對當(dāng)前表的指定數(shù)值型字段或全部數(shù)值型字段縱向求算

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論