程序設(shè)計(jì)基礎(chǔ)1章_第1頁
程序設(shè)計(jì)基礎(chǔ)1章_第2頁
程序設(shè)計(jì)基礎(chǔ)1章_第3頁
程序設(shè)計(jì)基礎(chǔ)1章_第4頁
程序設(shè)計(jì)基礎(chǔ)1章_第5頁
已閱讀5頁,還剩131頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1第1章數(shù)據(jù)庫基礎(chǔ)本章學(xué)習(xí)目標(biāo):掌握數(shù)據(jù)庫、數(shù)據(jù)模型、數(shù)據(jù)庫管理系統(tǒng)等基本概念;掌握關(guān)系模型、關(guān)系模式、關(guān)系、元組、屬性、域、主關(guān)鍵字和外部關(guān)鍵字等概念;會(huì)使用投影、選擇、聯(lián)接等關(guān)系運(yùn)算;了解數(shù)據(jù)庫的實(shí)體完整性、域完整性、參照完整性;了解VFP系統(tǒng)的特點(diǎn)與工作方式、各種設(shè)計(jì)器和向?qū)А?1.1數(shù)據(jù)庫基礎(chǔ)知識(shí)信息及數(shù)據(jù)的處理數(shù)據(jù)管理技術(shù)的發(fā)展數(shù)據(jù)庫系統(tǒng)的基本概念數(shù)據(jù)庫系統(tǒng)的特點(diǎn)數(shù)據(jù)模型關(guān)系的術(shù)語關(guān)系的基本性質(zhì)關(guān)系的運(yùn)算關(guān)系的完整性約束31.信息及數(shù)據(jù)的處理(1)數(shù)據(jù)是指能被計(jì)算機(jī)識(shí)別和處理的物理符號(hào),是信息具體化的表示形式,其形式多樣化,如:文字、字母、數(shù)字、圖形、圖象、動(dòng)畫、聲音等。

數(shù)據(jù)的概念包括兩個(gè)方面:描述事物特性的數(shù)據(jù)內(nèi)容以及存儲(chǔ)在媒體上的數(shù)據(jù)形式。例如“2007年7月1日”是一個(gè)數(shù)據(jù),它可以表示為“2007-07-01”、“01/07/2007”等多種形式。1.1數(shù)據(jù)庫基礎(chǔ)知識(shí)41.信息及數(shù)據(jù)的處理(2)信息是客觀事物的特征在人腦中的反映,是經(jīng)過加工處理并對人類客觀行為產(chǎn)生影響的數(shù)據(jù)表現(xiàn)形式。1.1數(shù)據(jù)庫基礎(chǔ)知識(shí)符號(hào)化信息數(shù)據(jù)加工處理信息≠數(shù)據(jù)5(3)數(shù)據(jù)處理是對原始數(shù)據(jù)進(jìn)行各種加工處理,使之成為可利用的、有價(jià)值的信息。數(shù)據(jù)管理是數(shù)據(jù)處理的核心,它主要是指對數(shù)據(jù)進(jìn)行分類、排序、編碼、存儲(chǔ)、檢索和維護(hù)等操作。62.數(shù)據(jù)管理技術(shù)的發(fā)展數(shù)據(jù)管理技術(shù)經(jīng)歷了由低級向高級的發(fā)展過程。這一過程一般可以分為三個(gè)階段:人工管理階段、文件系統(tǒng)階段、數(shù)據(jù)庫系統(tǒng)階段。71)人工管理:數(shù)據(jù)不保存,數(shù)據(jù)不具有獨(dú)立性,數(shù)據(jù)面向程序,一組數(shù)據(jù)對應(yīng)一組程序,無法被其他程序利用,存在大量的冗余數(shù)據(jù)。程序1程序2……程序n數(shù)據(jù)1數(shù)據(jù)2數(shù)據(jù)n……數(shù)據(jù)的人工管理示意圖程序數(shù)據(jù)完全依賴8程序1程序2……程序n數(shù)據(jù)文件1……數(shù)據(jù)的文件管理示意圖文件系統(tǒng)數(shù)據(jù)文件2數(shù)據(jù)文件n2)文件系統(tǒng):數(shù)據(jù)可長期保存,由文件系統(tǒng)管理數(shù)據(jù),但數(shù)據(jù)共享性差,冗余度大;程序與數(shù)據(jù)有了一定的獨(dú)立性,但獨(dú)立性差,容易產(chǎn)生不一致性。程序文件數(shù)據(jù)文件依賴為特定的需要而設(shè)計(jì),為某一特定的程序而使用93)數(shù)據(jù)庫系統(tǒng):數(shù)據(jù)采用統(tǒng)一的結(jié)構(gòu)存放,具有集成性、高度共享性、低冗余度、高度獨(dú)立性,并能避免數(shù)據(jù)之間的不相容性和不一致性。數(shù)據(jù)庫管理示意圖程序文件數(shù)據(jù)庫獨(dú)立多個(gè)用戶可同時(shí)訪問數(shù)據(jù)庫中的數(shù)據(jù)10

數(shù)據(jù)管理三個(gè)階段的比較11新興階段:數(shù)據(jù)倉庫不同點(diǎn)處理技術(shù)面向的用戶不同數(shù)據(jù)內(nèi)容不同數(shù)據(jù)來源不同數(shù)據(jù)操作不同數(shù)據(jù)庫系統(tǒng)分析處理日常數(shù)據(jù)的底層人員存儲(chǔ)管理當(dāng)前數(shù)據(jù)同種數(shù)據(jù)來源執(zhí)行聯(lián)機(jī)事務(wù)和查詢處理(OLTP)數(shù)據(jù)倉庫系統(tǒng)用數(shù)據(jù)進(jìn)行決策支持的中高層人員存儲(chǔ)長期積累的歷史數(shù)據(jù)多個(gè)異種數(shù)據(jù)源提供數(shù)據(jù)分析和決策支持(OLAP)數(shù)據(jù)庫系統(tǒng)和數(shù)據(jù)倉庫系統(tǒng)的區(qū)別123、數(shù)據(jù)庫系統(tǒng)的基本概念1)數(shù)據(jù)庫DB(DataBase)

是存儲(chǔ)在計(jì)算機(jī)中結(jié)構(gòu)化的相關(guān)數(shù)據(jù)的集合。它不僅包含描述事物的數(shù)據(jù)本身,而且包含數(shù)據(jù)之間的聯(lián)系。在2)數(shù)據(jù)管理系統(tǒng)(DBMS)

是建立、維護(hù)、使用和管理數(shù)據(jù)庫的軟件。常用的中小型數(shù)據(jù)庫管理系統(tǒng)有SQLServer,dBase、FoxBase,F(xiàn)oxPro,VisualFoxPro,Access等。DBMS具有數(shù)據(jù)庫描述(DDL)、操縱(DML)和控制(DCL)的功能。DB=數(shù)據(jù)本身+數(shù)據(jù)間的聯(lián)系133)數(shù)據(jù)庫系統(tǒng)(DBS)

是指計(jì)算機(jī)系統(tǒng)引入數(shù)據(jù)庫之后組成的系統(tǒng),是用來組織和存取大量數(shù)據(jù)的管理系統(tǒng)。它由數(shù)據(jù)庫、硬件系統(tǒng)、數(shù)據(jù)庫管理系統(tǒng)及其相關(guān)軟件、數(shù)據(jù)庫管理員(DBA,DataBaseAdministrator)和其他用戶五部分組成。數(shù)據(jù)庫系統(tǒng)的核心是數(shù)據(jù)庫管理系統(tǒng)。數(shù)據(jù)庫(DB)DBS組成計(jì)算機(jī)系統(tǒng)數(shù)據(jù)庫管理系統(tǒng)(DBMS)有關(guān)人員硬件基本軟件數(shù)據(jù)庫管理員應(yīng)用設(shè)計(jì)人員最終用戶數(shù)據(jù)庫應(yīng)用系統(tǒng)數(shù)據(jù)的數(shù)據(jù)庫系統(tǒng)數(shù)據(jù)庫管理系統(tǒng)操作系統(tǒng)硬件數(shù)據(jù)庫基本概念1.數(shù)據(jù)庫數(shù)據(jù)庫(DB)是存放數(shù)據(jù)的倉庫,只不過這些數(shù)據(jù)存在一定的關(guān)聯(lián),并按一定的格式存放在計(jì)算機(jī)上。從廣義上講,數(shù)據(jù)不僅包含數(shù)字,還包括了文本、圖像、音頻、視頻等。例如,把學(xué)校的學(xué)生、課程、學(xué)生成績等數(shù)據(jù)有序地組織并存放在計(jì)算機(jī)內(nèi),就可以構(gòu)成一個(gè)數(shù)據(jù)庫。因此,數(shù)據(jù)庫由一些持久的相互關(guān)聯(lián)數(shù)據(jù)的集合組成,并以一定的組織形式存放在計(jì)算機(jī)的存儲(chǔ)介質(zhì)中。數(shù)據(jù)庫與數(shù)據(jù)庫管理系統(tǒng)數(shù)據(jù)庫與數(shù)據(jù)庫管理系統(tǒng)數(shù)據(jù)庫管理系統(tǒng)數(shù)據(jù)庫管理系統(tǒng)(DBMS)是管理數(shù)據(jù)庫的系統(tǒng),它按一定的數(shù)據(jù)模型組織數(shù)據(jù)。DBMS應(yīng)提供如下8個(gè)功能:(1)數(shù)據(jù)定義功能可定義數(shù)據(jù)庫中的數(shù)據(jù)對象。(2)數(shù)據(jù)操縱功能可對數(shù)據(jù)庫表進(jìn)行基本操作,如插入、刪除、修改、查詢。(3)數(shù)據(jù)的完整性檢查功能保證用戶輸入的數(shù)據(jù)應(yīng)滿足相應(yīng)的約束條件。(4)數(shù)據(jù)庫的安全保護(hù)功能保證只有賦予權(quán)限的用戶才能訪問數(shù)據(jù)庫中的數(shù)據(jù)。數(shù)據(jù)庫與數(shù)據(jù)庫管理系統(tǒng)(5)數(shù)據(jù)庫的并發(fā)控制功能使多個(gè)應(yīng)用程序可在同一時(shí)刻并發(fā)地訪問數(shù)據(jù)庫的數(shù)據(jù)。(6)數(shù)據(jù)庫系統(tǒng)的故障恢復(fù)功能使數(shù)據(jù)庫運(yùn)行出現(xiàn)故障時(shí)進(jìn)行數(shù)據(jù)庫恢復(fù),以保證數(shù)據(jù)庫可靠運(yùn)行。(7)在網(wǎng)絡(luò)環(huán)境下訪問數(shù)據(jù)庫的功能。(8)方便、有效地存取數(shù)據(jù)庫信息的接口和工具。編程人員通過程序開發(fā)工具與數(shù)據(jù)庫的接口編寫數(shù)據(jù)庫應(yīng)用程序。數(shù)據(jù)庫管理員(DBA,DataBaseAdminitrator)通過提供的工具對數(shù)據(jù)庫進(jìn)行管理。數(shù)據(jù)庫與數(shù)據(jù)庫管理系統(tǒng)數(shù)據(jù)、數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)與操作數(shù)據(jù)庫的應(yīng)用程序,加上支撐它們的硬件平臺(tái)、軟件平臺(tái)和與數(shù)據(jù)庫有關(guān)的人員一起構(gòu)成了一個(gè)完整的數(shù)據(jù)庫系統(tǒng)。圖1.1描述了數(shù)據(jù)庫系統(tǒng)的構(gòu)成。圖1.1數(shù)據(jù)庫系統(tǒng)的構(gòu)成181)數(shù)據(jù)結(jié)構(gòu)化(即采用特定的數(shù)據(jù)模型)是數(shù)據(jù)庫系統(tǒng)與文件系統(tǒng)的本質(zhì)區(qū)別。2)數(shù)據(jù)共享性高、冗余度低、易擴(kuò)充。3)具有較高的數(shù)據(jù)獨(dú)立性。4)數(shù)據(jù)由DBMS統(tǒng)一管理和控制。4、數(shù)據(jù)庫系統(tǒng)的特點(diǎn)194)數(shù)據(jù)庫應(yīng)用系統(tǒng)(DBAS)

數(shù)據(jù)庫應(yīng)用系統(tǒng)是為特定應(yīng)用開發(fā)的數(shù)據(jù)庫應(yīng)用軟件。(是為了解決某個(gè)實(shí)際問題,開發(fā)人員利用DBMS編寫的應(yīng)用軟件,例如教學(xué)管理軟件、財(cái)務(wù)管理軟件等。)數(shù)據(jù)庫管理系統(tǒng)為數(shù)據(jù)的定義、存儲(chǔ)、查詢和修改提供支持,而數(shù)據(jù)庫應(yīng)用系統(tǒng)是對數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行處理和加工的軟件,它面向特定應(yīng)用。例如,基于數(shù)據(jù)庫的各種管理軟件:管理信息系統(tǒng)、決策支持系統(tǒng)和辦公自動(dòng)化等都屬于數(shù)據(jù)庫應(yīng)用系統(tǒng)。20

從客觀事物到信息,再到數(shù)據(jù),是人們對現(xiàn)實(shí)世界的認(rèn)識(shí)和描述過程,需要經(jīng)歷現(xiàn)實(shí)世界、信息世界和數(shù)據(jù)世界(也稱為機(jī)器世界、計(jì)算機(jī)世界)這三個(gè)世界的轉(zhuǎn)換。5.數(shù)據(jù)模型21概念模型:

從客觀事物到信息,把現(xiàn)實(shí)世界中的客觀對象抽象為概念模型(也稱信息模型),它是按用戶的觀點(diǎn)來對數(shù)據(jù)建模。數(shù)據(jù)模型:

從信息到數(shù)據(jù),把信息世界中的概念模型轉(zhuǎn)換為數(shù)據(jù)世界中某一DBMS支持的數(shù)據(jù)模型,它是按計(jì)算機(jī)系統(tǒng)的觀點(diǎn)對數(shù)據(jù)建模。22(1)信息模型1)實(shí)體:客觀存在并可相互區(qū)別的事物,如:工人、王楠、學(xué)生、班級等2)實(shí)體集:同類型實(shí)體的集合稱為實(shí)體集。例如一個(gè)班的全體學(xué)生就是一個(gè)實(shí)體集。3)屬性:描述實(shí)體的特性。4)實(shí)體型:屬性的集合表示一種實(shí)體的類型,稱為實(shí)體型。5)聯(lián)系:實(shí)體之間存在的對應(yīng)關(guān)系,反映客觀事物的相互關(guān)聯(lián)。23實(shí)體-聯(lián)系模型

最常用的概念模型是實(shí)體-聯(lián)系模型,常采用E-R圖(Entity-Relation)建模,所以實(shí)體模型有時(shí)被簡稱為E-R模型。E-R模型圖用矩形、橢圓和菱形分別表示實(shí)體、屬性和聯(lián)系。

實(shí)體名屬性名屬性名實(shí)體名屬性名屬性名聯(lián)系名24聯(lián)系的3種類型一對一聯(lián)系(1:1):

學(xué)生與學(xué)號(hào)之間具有一對一聯(lián)系。一對多聯(lián)系(1:n):班級與學(xué)生之間具有一對多聯(lián)系。多對多聯(lián)系(m:n):課程與學(xué)生之間具有多對多聯(lián)系。班級班級-班長班長111:1聯(lián)系課程選修學(xué)生mnm:n聯(lián)系班級組成學(xué)生1n1:n聯(lián)系A(chǔ)BABAB25(2)數(shù)據(jù)模型

數(shù)據(jù)模型是在計(jì)算機(jī)世界中建立的模型,該模型由數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)操作和完整性約束三部分組成。典型的數(shù)據(jù)模型主要包括層次模型、網(wǎng)狀模型、關(guān)系模型等。261)層次模型:以屬性結(jié)構(gòu)為基礎(chǔ)的數(shù)據(jù)結(jié)構(gòu),具有明顯的上下層的關(guān)系,模型簡單、直觀、處理方便,但不能處理多對多聯(lián)系的復(fù)雜模型。層次模型是用樹型結(jié)構(gòu)來表示數(shù)據(jù)之間的聯(lián)系??偨?jīng)理財(cái)務(wù)處長設(shè)備處長人事處處長職員職員職員職員職員職員職員272)網(wǎng)狀模型:以網(wǎng)絡(luò)結(jié)構(gòu)為基礎(chǔ)的數(shù)據(jù)結(jié)構(gòu),可以表示復(fù)雜的數(shù)據(jù)結(jié)構(gòu),但實(shí)現(xiàn)的算法比較難規(guī)范。網(wǎng)絡(luò)模型是用網(wǎng)絡(luò)結(jié)構(gòu)來表示數(shù)據(jù)之間的聯(lián)系,可以表示多對多的聯(lián)系。283)關(guān)系模型:以二維表格為數(shù)據(jù)的表示方式,表格中同一行的為一條記錄,同一列的為一個(gè)數(shù)據(jù)項(xiàng)或稱字段,一個(gè)表格對應(yīng)一個(gè)關(guān)系,多個(gè)關(guān)系組成一個(gè)關(guān)系模型。特點(diǎn):(1)表格中的每一列都是不可再分的基本屬性,即表中不能再包含表;(2)各列被指定一個(gè)相異的名字;(3)各行不允許重復(fù);(4)行、列的次序無關(guān)。關(guān)系模型=數(shù)據(jù)結(jié)構(gòu)+關(guān)系運(yùn)算+完整性約束。29(1)關(guān)系:一張二維表,在VFP中一個(gè)關(guān)系就稱為一個(gè)數(shù)據(jù)表。(2)元組:指表中一行上的所有數(shù)據(jù),在VFP中一行稱為一個(gè)記錄。(3)屬性:指表中的一列,在VFP中一列稱為一個(gè)字段。(4)域:指表中屬性的取值范圍,在VFP中字段的取值稱為一個(gè)字段的寬度。(5)關(guān)系模式:對關(guān)系的描述,一個(gè)關(guān)系模式對應(yīng)一個(gè)關(guān)系的結(jié)構(gòu),其格式為:關(guān)系名(屬性1,屬性2,屬性3,…,屬性n)6.關(guān)系的術(shù)語一個(gè)關(guān)系模型由若干個(gè)關(guān)系模式組成。30(6)關(guān)鍵字或碼(Key):表中用來唯一確定(標(biāo)識(shí))一個(gè)元組的某個(gè)屬性或多個(gè)屬性的組合。如學(xué)號(hào)可作為學(xué)生表的碼、學(xué)號(hào)和課程號(hào)的組合可作為選課表的碼。一個(gè)關(guān)系中的關(guān)鍵字必須唯一,關(guān)鍵字的值不能為空,即關(guān)鍵字的值為空的元組或重復(fù)的元組在關(guān)系中是不允許存在的。31關(guān)鍵字的種類①候選關(guān)鍵字(候選碼)

如果一個(gè)關(guān)系中存在多個(gè)屬性或?qū)傩越M合都能用來唯一標(biāo)識(shí)該關(guān)系的元組,這些屬性或?qū)傩越M合都稱為該關(guān)系的候選關(guān)鍵字或候選碼。②主關(guān)鍵字(主碼)

在一個(gè)關(guān)系的若干個(gè)候選關(guān)鍵字中指定作為關(guān)鍵字的屬性或?qū)傩越M合稱為該關(guān)系的主關(guān)鍵字或主碼。③非主屬性(非碼屬性)

關(guān)系中不組成碼的屬性均為非主屬性或非碼屬性。④外部關(guān)鍵字(外鍵)

當(dāng)關(guān)系中某個(gè)屬性或?qū)傩越M合雖不是該關(guān)系的關(guān)鍵字或只是關(guān)鍵字的一部分,但卻是另外一個(gè)關(guān)系的關(guān)鍵字時(shí),稱該屬性或?qū)傩越M合為這個(gè)關(guān)系的外部關(guān)鍵字或外鍵。主表與從表是指以外鍵相關(guān)聯(lián)的兩個(gè)表;以外鍵作為主鍵的表稱為主表,外鍵所在的表稱為從表。32姓名學(xué)號(hào)班級課程號(hào)成績王楠210001體1100180李菊210002體2100188嚴(yán)森210011體1200191課程名課程號(hào)學(xué)時(shí)學(xué)分英語1001806計(jì)算機(jī)基礎(chǔ)2001705專業(yè)基礎(chǔ)30011008學(xué)生表課程表課程號(hào)是學(xué)生關(guān)系的外關(guān)鍵字,不是關(guān)鍵字,但是課程關(guān)系的關(guān)鍵字33術(shù)語的比較信息世界術(shù)語關(guān)系術(shù)語表術(shù)語實(shí)體集關(guān)系二維表實(shí)體元組記錄(行)屬性屬性字段(列)實(shí)體型關(guān)系模式表結(jié)構(gòu)341)關(guān)系必須規(guī)范化,每個(gè)屬性必須是不可分割的數(shù)據(jù)單元,即表中不能再包含表。2)同一個(gè)關(guān)系中不能出現(xiàn)相同的屬性名,即不允許有相同的字段3)關(guān)系中不允許有完全相同的元組,即不允許有冗余4)關(guān)系中各行的次序、各列的次序不要求。即元組與屬性的次序無關(guān)緊要7.關(guān)系的特點(diǎn)358.關(guān)系的完整性約束

數(shù)據(jù)庫完整性是指數(shù)據(jù)庫中數(shù)據(jù)的正確性和相容性。關(guān)系的完整性主要有域完整性、實(shí)體完整性和參照完整性三種。

數(shù)據(jù)庫完整性由各種各樣的完整性約束來保證。數(shù)據(jù)庫完整性約束可以通過DBMS或應(yīng)用程序來實(shí)現(xiàn),基于DBMS的完整性約束作為模式的一部分存入數(shù)據(jù)庫中。實(shí)體完整性規(guī)則參照完整性規(guī)則用戶定義的完整性規(guī)則36

在關(guān)系模型中,實(shí)體以及實(shí)體間的聯(lián)系采用了單一數(shù)據(jù)結(jié)構(gòu)——關(guān)系來表示。對數(shù)據(jù)的操作就是對關(guān)系的運(yùn)算,即對記錄的集合進(jìn)行操作。關(guān)系的運(yùn)算可分為兩類:傳統(tǒng)的集合運(yùn)算(交、差和并)和專門的關(guān)系運(yùn)算(選擇、投影和連接)。

9.關(guān)系的運(yùn)算371)并:兩個(gè)關(guān)系的所有元組組成的集合2)交:兩個(gè)關(guān)系共有的元組的集合3)差:設(shè)兩個(gè)關(guān)系R和S,R差S的結(jié)果是由屬于R但不屬于S的元組組成的集合

要求進(jìn)行運(yùn)算的兩個(gè)關(guān)系必須具有相同的關(guān)系模式,即相同的結(jié)構(gòu)。1.傳統(tǒng)的集合運(yùn)算381)選擇運(yùn)算:選擇運(yùn)算是根據(jù)給定的條件,從一個(gè)關(guān)系中選出若干個(gè)元組組成一個(gè)新的關(guān)系,其關(guān)系模式不變。選擇運(yùn)算是關(guān)系的橫向操作,不改變原關(guān)系模式,即行數(shù)改變(二維表的高度減小),列數(shù)不變(二維表的寬度不變)。在VFP中的短語FOR<條件>和WHILE<條件>均相當(dāng)于選擇運(yùn)算。

2.專門的關(guān)系運(yùn)算選擇學(xué)號(hào)姓名性別出生日期專業(yè)200602143李棟男1985-3-12機(jī)電一體化200602189劉強(qiáng)男1987-7-5工程管理學(xué)號(hào)姓名性別出生日期專業(yè)200602143李棟男1985-3-12機(jī)電一體化200602157馮蘭女1986-5-7機(jī)械設(shè)計(jì)自動(dòng)化200602187秦海燕女1988-10-6工程管理200602189劉強(qiáng)男1987-7-5工程管理200602151張曉紅女1986-9-30機(jī)械設(shè)計(jì)自動(dòng)化σ姓名、出生日期和專業(yè)(學(xué)生表)392)投影運(yùn)算是從一個(gè)關(guān)系中指定若干個(gè)屬性組成新的關(guān)系,并可以重新安排列的順序。投影運(yùn)算就是關(guān)系的縱向操作,改變了原關(guān)系模式,即列數(shù)改變。在VFP中短語FIELDS<字段1,字段2,…>相當(dāng)于投影運(yùn)算。2.專門的關(guān)系運(yùn)算學(xué)號(hào)姓名性別出生日期專業(yè)200602143李棟男1985-3-12機(jī)電一體化200602157馮蘭女1986-5-7機(jī)械設(shè)計(jì)自動(dòng)化200602187秦海燕女1988-10-6工程管理200602189劉強(qiáng)男1987-7-5工程管理200602151張曉紅女1986-9-30機(jī)械設(shè)計(jì)自動(dòng)化姓名出生日期專業(yè)李棟1985-3-12機(jī)電一體化馮蘭1986-5-7機(jī)械設(shè)計(jì)自動(dòng)化秦海燕1988-10-6工程管理劉強(qiáng)1987-7-5工程管理張曉紅1986-9-30機(jī)械設(shè)計(jì)自動(dòng)化投影Π姓名、出生日期和專業(yè)

(學(xué)生表)403)聯(lián)接運(yùn)算是將兩個(gè)關(guān)系通過公共的屬性拼接成一個(gè)更寬的關(guān)系,生成的新關(guān)系中包含滿足聯(lián)接條件的元組。運(yùn)算過程是通過聯(lián)接條件實(shí)現(xiàn)關(guān)系的橫向組合。在VFP中,有單獨(dú)一條短語JOIN就可以實(shí)現(xiàn)兩個(gè)關(guān)系的聯(lián)接運(yùn)算。等值聯(lián)接和自然聯(lián)接是最常用聯(lián)接運(yùn)算。①等值聯(lián)接在聯(lián)接條件中使用等號(hào)(=)運(yùn)算符比較被聯(lián)接列的列值,其聯(lián)接結(jié)果中列出被聯(lián)接表中的所有列,包括兩表的重復(fù)屬性。只要求屬性值相等,不要求屬性名相同。②自然聯(lián)接去掉重復(fù)屬性的等值聯(lián)接。既要求屬性值相等,也要求屬性名相同。41關(guān)系運(yùn)算—小結(jié)

如果需要兩個(gè)以上的關(guān)系進(jìn)行聯(lián)接,應(yīng)當(dāng)兩兩進(jìn)行。利用關(guān)系(表)的這三種專門運(yùn)算可以方便地構(gòu)造各種新的關(guān)系(表)。雙目運(yùn)算聯(lián)接選擇:限制元組(行)投影:指定屬性(列)單目運(yùn)算42數(shù)據(jù)結(jié)構(gòu)簡單,格式描述統(tǒng)一,概念清除。能反映實(shí)體之間的一對一、一對多、多對多三種聯(lián)系。有嚴(yán)格的數(shù)學(xué)理論基礎(chǔ)。易學(xué)習(xí),易理解,符合使用習(xí)慣。補(bǔ)充內(nèi)容1:關(guān)系模型的優(yōu)點(diǎn)43包括結(jié)構(gòu)設(shè)計(jì)和行為設(shè)計(jì)。結(jié)構(gòu)設(shè)計(jì):主要確定數(shù)據(jù)庫和數(shù)據(jù)表行為設(shè)計(jì):主要確定某種程序設(shè)計(jì)方法和使用某種語言來編寫應(yīng)用程序。1.3:數(shù)據(jù)庫設(shè)計(jì)基礎(chǔ)1.數(shù)據(jù)庫設(shè)計(jì)內(nèi)容44概念單一化:數(shù)據(jù)表結(jié)構(gòu)要簡單、明晰,應(yīng)避免大而雜。避免重復(fù)字段:除外部關(guān)鍵字外,應(yīng)盡量減少不同表中的重復(fù)字段。表中保存原始數(shù)據(jù):應(yīng)避免出現(xiàn)通過計(jì)算可得到的字段。合理設(shè)計(jì)關(guān)鍵字:通過主關(guān)鍵字和外部關(guān)鍵字建立不同表之間的聯(lián)接.

2、數(shù)據(jù)庫設(shè)計(jì)原則45需求分析:信息需求、處理需求、安全性和完整性需求確定需要的表確定所需的字段確定聯(lián)系:一對一的聯(lián)系、一對多的聯(lián)系、多對多的聯(lián)系設(shè)計(jì)求精3.數(shù)據(jù)庫設(shè)計(jì)步驟46需求分析:信息需求;處理需求;安全與完整性需求.結(jié)構(gòu)設(shè)計(jì):數(shù)據(jù)庫→表→字段→關(guān)鍵字→表間聯(lián)系;確定需要的表、確定字段、確定聯(lián)系、設(shè)計(jì)求精系統(tǒng)設(shè)計(jì)實(shí)施:建立庫、表結(jié)構(gòu);設(shè)計(jì)、編寫應(yīng)用系統(tǒng)功能模塊;調(diào)試應(yīng)用程序.3.數(shù)據(jù)庫設(shè)計(jì)過程47例1.1

設(shè)人事管理關(guān)系模型中有下列關(guān)系模式:1.部門(部門編號(hào),部門名稱,……)2.職工情況(職工編號(hào),姓名,性別,出生日期,學(xué)歷,職稱,……)3.工資(職工編號(hào),基礎(chǔ)工資,職務(wù)津貼,獎(jiǎng)金,水電費(fèi),……)補(bǔ)充內(nèi)容3:關(guān)系模型舉例48

由部門、職工情況、工資三個(gè)關(guān)系模式構(gòu)成的關(guān)系模型如下:部門編號(hào)部門名稱…103金融系108計(jì)算機(jī)系109外語系......人事管理關(guān)系模型示意圖職工編號(hào)姓名性別部門編號(hào)…

199002

胡嘉男108

199316

劉欣女108

199806

李敏君女109.........職工編號(hào)姓名基本工資…199806李敏君2180.00199002胡嘉1800.00199316劉欣2060.00.........部門表職工情況表工資表49例1.2設(shè)圖書借閱關(guān)系模型中有下列關(guān)系模式:1.圖書(書編號(hào),書名,作者,出版社,單價(jià),分類號(hào),…)2.借閱(書編號(hào),借書證號(hào),借閱日期,…

…)3.學(xué)生(學(xué)號(hào),姓名,班級,……)50

由圖書、借閱登記、學(xué)生三個(gè)關(guān)系模式構(gòu)成的關(guān)系模型如下:圖書借閱關(guān)系模型示意圖

學(xué)號(hào)

姓名班級

199002胡嘉物流081199316劉欣建工092

.........書編號(hào)書名作者…TP2-01數(shù)據(jù)庫概論薩師煊TP3-10BASIC語言譚浩強(qiáng)TP3-20C程序設(shè)計(jì)譚浩強(qiáng).........圖書表書編號(hào)

借書證號(hào)

借閱日期TP3-101990022002/03/20TP3-201993162002/10/06TP3-201990022002/10/06TP2-011993162003/05/20

.........

借閱表學(xué)生表1.2關(guān)系數(shù)據(jù)庫設(shè)計(jì)通常,把每一類數(shù)據(jù)對象的個(gè)體稱為“實(shí)體”,而每一類對象個(gè)體的集合稱為“實(shí)體集”,因此在學(xué)生成績管理系統(tǒng)中主要涉及“學(xué)生”和“課程”兩個(gè)實(shí)體集。其他非主要的實(shí)體可以很多,如班級、班長、任課教師、輔導(dǎo)員等實(shí)體。每個(gè)實(shí)體集涉及的信息項(xiàng)稱為屬性。就“學(xué)生”實(shí)體集而言,它的屬性有學(xué)號(hào)、姓名、專業(yè)名、性別、出生日期、總學(xué)分、備注。“課程”實(shí)體集屬性有課程號(hào)、課程名、類別、開課學(xué)期、學(xué)時(shí)和學(xué)分。1.2.1概念結(jié)構(gòu)設(shè)計(jì)1.2關(guān)系數(shù)據(jù)庫設(shè)計(jì)實(shí)體集中的實(shí)體彼此是可區(qū)別的,如果實(shí)體集中的屬性或最小屬性組合的值能唯一標(biāo)志其對應(yīng)實(shí)體,則將該屬性或?qū)傩越M合稱為碼。對于每一個(gè)實(shí)體集,可指定一個(gè)碼為主碼。如果用矩形框表示實(shí)體集,用帶半圓的矩形框表示屬性,用線段連接實(shí)體集與屬性,當(dāng)一個(gè)屬性或?qū)傩越M合指定為主碼時(shí),在實(shí)體集與屬性的連接線上標(biāo)記一斜線,則可以用圖1.4描述學(xué)生成績管理系統(tǒng)中的實(shí)體集及每個(gè)實(shí)體集涉及的屬性。1.2關(guān)系數(shù)據(jù)庫設(shè)計(jì)圖1.4學(xué)生和課程實(shí)體集屬性的描述1.2.1概念結(jié)構(gòu)設(shè)計(jì)實(shí)體集A和實(shí)體集B之間存在各種關(guān)系,通常把這些關(guān)系稱為“聯(lián)系”。通常將實(shí)體集及實(shí)體集聯(lián)系的圖表示為實(shí)體(Entity)-聯(lián)系(Relationship)模型;從分析用戶項(xiàng)目涉及的數(shù)據(jù)對象及數(shù)據(jù)對象之間的聯(lián)系出發(fā),到獲取E-R圖的這一過程稱為概念結(jié)構(gòu)設(shè)計(jì)。聯(lián)系用菱形表示,通過直線與實(shí)體相連。這樣構(gòu)成的圖就是E-R圖,E-R圖就是E-R模型的描述方法。兩個(gè)實(shí)體集A和B之間的聯(lián)系可能是以下三種情況之一。1.2.1概念結(jié)構(gòu)設(shè)計(jì)1.一對一的聯(lián)系(1:1)A中的一個(gè)實(shí)體最多與B中的一個(gè)實(shí)體相聯(lián)系,B中的一個(gè)實(shí)體也最多與A中的一個(gè)實(shí)體相聯(lián)系。例如,“班級”與“正班長”這兩個(gè)實(shí)體集之間的聯(lián)系是一對一的聯(lián)系,因?yàn)橐粋€(gè)班只有一個(gè)班長,反過來,一個(gè)正班長只屬于一個(gè)班?!鞍嗉墶迸c“正班長”兩個(gè)實(shí)體集的E-R模型如圖1.5所示。圖1.5“班級”與“正班長”實(shí)體集E-R模型1.2.1概念結(jié)構(gòu)設(shè)計(jì)2.一對多的聯(lián)系(1:n)A中的一個(gè)實(shí)體可以與B中的多個(gè)實(shí)體相聯(lián)系,而B中的一個(gè)實(shí)體至多與A中的一個(gè)實(shí)體相聯(lián)系。例如,“班級”與“學(xué)生”這兩個(gè)實(shí)體集之間的聯(lián)系是一對多的聯(lián)系,因?yàn)?,一個(gè)班可有若干學(xué)生,反過來,一個(gè)學(xué)生只能屬于一個(gè)班?!鞍嗉墶迸c“學(xué)生”兩個(gè)實(shí)體集的E-R模型如圖1.6所示。圖1.6“學(xué)生”與“班級”兩個(gè)實(shí)體集的E-R模型1.2.1概念結(jié)構(gòu)設(shè)計(jì)3.多對多的聯(lián)系(m:n)A中的一個(gè)實(shí)體可以與B中的多個(gè)實(shí)體相聯(lián)系,而B中的一個(gè)實(shí)體也可與A中的多個(gè)實(shí)體相聯(lián)系。例如,“學(xué)生”與“課程”這兩個(gè)實(shí)體集之間的聯(lián)系是多對多的聯(lián)系,因?yàn)?,一個(gè)學(xué)生可選多門課程,反過來,一門課程可被多個(gè)學(xué)生選修?!皩W(xué)生”與“課程”兩個(gè)實(shí)體集的E-R模型如圖1.7所示。圖1.7“學(xué)生”與“課程”實(shí)體集間的E-R模型1.2.2邏輯結(jié)構(gòu)設(shè)計(jì)1.(1:1)聯(lián)系的E-R圖到關(guān)系模式的轉(zhuǎn)換對于(1∶1)的聯(lián)系既可單獨(dú)對應(yīng)一個(gè)關(guān)系模式,也可以不單獨(dú)對應(yīng)一個(gè)關(guān)系模式。(1)聯(lián)系單獨(dú)對應(yīng)一個(gè)關(guān)系模式,則由聯(lián)系屬性、參與聯(lián)系的各實(shí)體集的主碼屬性構(gòu)成關(guān)系模式,其主碼可選參與聯(lián)系的實(shí)體集的任一方的主碼。例如,考慮圖1.5描述的“班級(BJ)”與“正班長(BZ)”實(shí)體集通過屬于(SY)聯(lián)系E-R模型可設(shè)計(jì)如下關(guān)系模式(下橫線表示該字段為主碼):BJ(班級編號(hào),院系,專業(yè)名,人數(shù))BZ(學(xué)號(hào),姓名)SY(學(xué)號(hào),班級編號(hào))1.2.2邏輯結(jié)構(gòu)設(shè)計(jì)(2)聯(lián)系不單獨(dú)對應(yīng)一個(gè)關(guān)系模式,聯(lián)系的屬性及一方的主碼加入另一方實(shí)體集對應(yīng)的關(guān)系模式中。例如,考慮圖1.5描述的“班級(BJ)”與“正班長(BZ)”實(shí)體集通過屬于(SY)聯(lián)系E-R模型可設(shè)計(jì)如下關(guān)系模式:BJ(班級編號(hào),院系,專業(yè)名,人數(shù))BZ(學(xué)號(hào),姓名,班級編號(hào))或者BJ(班級編號(hào),院系,專業(yè)名,人數(shù),學(xué)號(hào))BZ(學(xué)號(hào),姓名)1.2.2邏輯結(jié)構(gòu)設(shè)計(jì)2.(1:n)聯(lián)系的E-R圖到關(guān)系模式的轉(zhuǎn)換對于(1∶n)的聯(lián)系既可單獨(dú)對應(yīng)一個(gè)關(guān)系模式,也可以不單獨(dú)對應(yīng)一個(gè)關(guān)系模式。(1)聯(lián)系單獨(dú)對應(yīng)一個(gè)關(guān)系模式,則由聯(lián)系的屬性、參與聯(lián)系的各實(shí)體集的主碼屬性構(gòu)成關(guān)系模式,n端的主碼作為該關(guān)系模式的主碼。例如,考慮圖1.6描述的“班級(BJ)”與“學(xué)生(XS)”實(shí)體集E-R模型可設(shè)計(jì)如下關(guān)系模式:BJ(班級編號(hào),院系,專業(yè)名,人數(shù))XS(學(xué)號(hào),姓名,專業(yè)名,性別,出生日期,總學(xué)分,備注)SY(學(xué)號(hào),班級編號(hào))1.2.2邏輯結(jié)構(gòu)設(shè)計(jì)(2)聯(lián)系不單獨(dú)對應(yīng)一個(gè)關(guān)系模式,則將聯(lián)系的屬性及1端的主碼加入n端實(shí)體集對應(yīng)的關(guān)系模式中,主碼仍為n端的主碼。例如,圖1.6“班級(BJ)”與“學(xué)生(XS)”實(shí)體集E-R模型可設(shè)計(jì)如下關(guān)系模式:BJ(班級編號(hào),院系,專業(yè)名,人數(shù))XS(學(xué)號(hào),姓名,專業(yè)名,性別,出生日期,總學(xué)分,備注,班級編號(hào)

1.2.2邏輯結(jié)構(gòu)設(shè)計(jì)3.(m:n)聯(lián)系的E-R圖到關(guān)系模式的轉(zhuǎn)換對于(m∶n)的聯(lián)系,單獨(dú)對應(yīng)一個(gè)關(guān)系模式,該關(guān)系模式包括聯(lián)系的屬性、參與聯(lián)系的各實(shí)體集的主碼屬性,該關(guān)系模式的主碼由各實(shí)體集的主碼屬性共同組成。例如,圖1.7描述的“學(xué)生(XS)”與“課程(KC)”實(shí)體集之間的聯(lián)系可設(shè)計(jì)如下關(guān)系模式:XS(學(xué)號(hào),姓名,專業(yè)名,性別,出生日期,總學(xué)分,備注)KC(課程號(hào),課程名稱,類別,開課學(xué)期,學(xué)時(shí),學(xué)分)XS_KC(學(xué)號(hào),課程號(hào),成績)關(guān)系模式XS_KC的主碼是由“學(xué)號(hào)”和“課程號(hào)”兩個(gè)屬性組合起來構(gòu)成的一個(gè)主碼,一個(gè)關(guān)系模式只能有一個(gè)主碼。1.2.2邏輯結(jié)構(gòu)設(shè)計(jì)至此,已介紹了根據(jù)E-R圖設(shè)計(jì)關(guān)系模式的方法,通常這一設(shè)計(jì)過程稱為邏輯結(jié)構(gòu)設(shè)計(jì)。在設(shè)計(jì)好一個(gè)項(xiàng)目的關(guān)系模式后,就可以在數(shù)據(jù)庫管理系統(tǒng)環(huán)境下創(chuàng)建數(shù)據(jù)庫、關(guān)系表及其他數(shù)據(jù)庫對象,輸入相應(yīng)數(shù)據(jù),并根據(jù)需要對數(shù)據(jù)中的數(shù)據(jù)進(jìn)行各種操作。1.2.3數(shù)據(jù)庫物理設(shè)計(jì)

數(shù)據(jù)的物理模型即指數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu),如對數(shù)據(jù)庫物理文件和索引文件的組織方式、文件的存取路徑、內(nèi)存的管理等。物理模型不僅與數(shù)據(jù)庫管理系統(tǒng)有關(guān),還和操作系統(tǒng)甚至硬件有關(guān),物理模型對用戶是不可見的。重點(diǎn)1.3數(shù)據(jù)庫應(yīng)用系統(tǒng)1.ODBC數(shù)據(jù)庫接口ODBC即開放式數(shù)據(jù)庫互連(OpenDataBaseConnectivity),是微軟公司推出的一種實(shí)現(xiàn)應(yīng)用程序和關(guān)系數(shù)據(jù)庫之間通信的接口標(biāo)準(zhǔn)。符合標(biāo)準(zhǔn)的數(shù)據(jù)庫就可以通過SQL語言編寫的命令對數(shù)據(jù)庫進(jìn)行操作,但只針對關(guān)系數(shù)據(jù)庫。目前所有的關(guān)系數(shù)據(jù)庫都符合該標(biāo)準(zhǔn),如Oracle、SQLServer、MySQL、DB2、Sybase、Access等。ODBC本質(zhì)上是一組數(shù)據(jù)庫訪問API(應(yīng)用程序編程接口),由一組函數(shù)調(diào)用組成,核心是SQL語句。在具體操作時(shí),首先必須用ODBC管理器注冊一個(gè)數(shù)據(jù)源,管理器根據(jù)數(shù)據(jù)源提供的數(shù)據(jù)庫位置、數(shù)據(jù)庫類型及ODBC驅(qū)動(dòng)程序等信息,建立起ODBC與具體數(shù)據(jù)庫的聯(lián)系。這樣,只要應(yīng)用程序?qū)?shù)據(jù)源名提供給ODBC,ODBC就能建立起與相應(yīng)數(shù)據(jù)庫的連接。MySQL是通過MySQLConnector/ODBC(MyODBC驅(qū)動(dòng)程序系列)為ODBC提供支持的,圖1.8說明了MySQL使用ODBC連接方式的結(jié)構(gòu)。1.3.1數(shù)據(jù)庫的連接方式1.3.1數(shù)據(jù)庫的連接方式圖1.8MyODBC數(shù)據(jù)庫接口1.3.1數(shù)據(jù)庫的連接方式2.ADO數(shù)據(jù)庫接口ADO(ActiveXDataObject)是微軟公司開發(fā)的基于COM的數(shù)據(jù)庫應(yīng)用程序接口,通過ADO連接數(shù)據(jù)庫,可以靈活地操作數(shù)據(jù)庫中的數(shù)據(jù)。使用ADO訪問關(guān)系數(shù)據(jù)庫有兩種途徑:一種是通過ODBC驅(qū)動(dòng)程序,另一種是通過數(shù)據(jù)庫專用的OLEDBProvider,后者有更高的訪問效率。1.3.1數(shù)據(jù)庫的連接方式3.ADO.NET數(shù)據(jù)庫接口ADO.NET數(shù)據(jù)模型從ADO發(fā)展而來,但它不只是對ADO的改進(jìn),而是采用了一種全新的技術(shù)。主要表現(xiàn)在以下幾個(gè)方面:●ADO.NET不是采用ActiveX技術(shù),而是與.NET框架緊密結(jié)合的產(chǎn)物?!馎DO.NET包含對XML標(biāo)準(zhǔn)的完全支持,這對于跨平臺(tái)交換數(shù)據(jù)具有重要的意義?!馎DO.NET既能在與數(shù)據(jù)源連接的環(huán)境下工作,又能在斷開與數(shù)據(jù)源連接的條件下工作。特別是后者,非常適合于網(wǎng)絡(luò)應(yīng)用的需要。因?yàn)樵诰W(wǎng)絡(luò)環(huán)境下,保持與數(shù)據(jù)源連接,不符合網(wǎng)站的要求,不僅效率低,付出的代價(jià)高,而且常常會(huì)引發(fā)由于多個(gè)用戶同時(shí)訪問時(shí)帶來的沖突。因此ADO.NET系統(tǒng)集中主要精力用于解決在斷開與數(shù)據(jù)源連接的條件下數(shù)據(jù)處理的問題。圖1.9顯示了ADO.NET架構(gòu)總覽。1.3.1數(shù)據(jù)庫的連接方式圖1.9通過ADO.NET訪問數(shù)據(jù)庫的接口模型數(shù)據(jù)層是實(shí)現(xiàn)ADO.NET斷開式連接的核心,從數(shù)據(jù)源讀取的數(shù)據(jù)先緩存到數(shù)據(jù)集中,然后被程序或控件調(diào)用。數(shù)據(jù)源可以是數(shù)據(jù)庫或XML數(shù)據(jù)。數(shù)據(jù)提供器用于建立數(shù)據(jù)源與數(shù)據(jù)集之間的聯(lián)系,它能連接各種類型的數(shù)據(jù),并能按要求將數(shù)據(jù)源中的數(shù)據(jù)提供給數(shù)據(jù)集,或者從數(shù)據(jù)集向數(shù)據(jù)源返回編輯后的數(shù)據(jù)。MySQL使用MySQLConnector/NET實(shí)施了所需的ADO.NET接口,并將其集成到了ADO.NETaware工具中。從而使開發(fā)人員能夠方便地創(chuàng)建需要安全和高性能數(shù)據(jù)連接(與MySQL)的.NET應(yīng)用程序。MySQLConnector/NET是用純C#語言編寫的可完全管理的ADO.NET驅(qū)動(dòng)程序。1.3.1數(shù)據(jù)庫的連接方式4.JDBC數(shù)據(jù)庫接口在JDBCAPI中有兩層接口:應(yīng)用程序?qū)雍万?qū)動(dòng)程序?qū)樱罢呤归_發(fā)人員可以通過SQL調(diào)用數(shù)據(jù)庫和取得結(jié)果,后者處理與具體數(shù)據(jù)庫驅(qū)動(dòng)程序的所有通信。使用JDBC接口對數(shù)據(jù)庫操作有如下優(yōu)點(diǎn):(1)JDBCAPI與ODBC十分相似,有利于用戶理解;(2)使編程人員從復(fù)雜的驅(qū)動(dòng)器調(diào)用命令和函數(shù)中解脫出來,而致力于應(yīng)用程序功能的實(shí)現(xiàn);(3)JDBC支持不同的關(guān)系數(shù)據(jù)庫,增強(qiáng)了程序的可移植性。使用JDBC的主要缺點(diǎn):訪問數(shù)據(jù)記錄的速度會(huì)受到一定影響,此外,由于JDBC結(jié)構(gòu)中包含了不同廠家的產(chǎn)品,這給數(shù)據(jù)源的更改帶來了較大麻煩。MySQL通過MySQLConnector/J驅(qū)動(dòng)實(shí)現(xiàn)JDBC接口,它提供了與使用Java編程語言開發(fā)的客戶端應(yīng)用程序的連通性。MySQLConnector/J是一種純Java程序,實(shí)施了3.0版JDBC規(guī)范,并能使用MySQL協(xié)議與MySQL服務(wù)器直接通信。1.3.1數(shù)據(jù)庫的連接方式5.數(shù)據(jù)庫連接池技術(shù)對于網(wǎng)絡(luò)環(huán)境下的數(shù)據(jù)庫應(yīng)用,由于用戶眾多,使用傳統(tǒng)的JDBC方式進(jìn)行數(shù)據(jù)庫連接,系統(tǒng)資源開銷過大成為制約大型企業(yè)級應(yīng)用效率的瓶頸,采用數(shù)據(jù)庫連接池技術(shù)對數(shù)據(jù)庫連接進(jìn)行管理,可以大大提高系統(tǒng)的效率和穩(wěn)定性。1.3.2客戶/服務(wù)器(C/S)模式應(yīng)用系統(tǒng)對于一般的數(shù)據(jù)庫應(yīng)用系統(tǒng),除了數(shù)據(jù)庫管理系統(tǒng)外,需要設(shè)計(jì)適合普通人員操作數(shù)據(jù)庫的界面。目前,流行的開發(fā)數(shù)據(jù)庫界面的工具主要包括VisualBASIC/NET、VisualC++/NET、VisualC#、Delphi、PowerBuilder等。數(shù)據(jù)庫應(yīng)用程序與數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)之間的關(guān)系如圖1.10所示。圖1.10數(shù)據(jù)庫應(yīng)用程序與數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)之間的關(guān)系1.3.2客戶/服務(wù)器(C/S)模式應(yīng)用系統(tǒng)從圖中可看出,當(dāng)應(yīng)用程序需要處理數(shù)據(jù)庫中的數(shù)據(jù)時(shí),首先向數(shù)據(jù)庫管理系統(tǒng)發(fā)送一個(gè)數(shù)據(jù)處理請求,數(shù)據(jù)庫管理系統(tǒng)接收到這一請求后,對其進(jìn)行分析,然后執(zhí)行數(shù)據(jù)操作,并把操作結(jié)果返回給應(yīng)用程序。由于應(yīng)用程序直接與用戶打交道,而數(shù)據(jù)庫管理系統(tǒng)不直接與用戶打交道,所以應(yīng)用程序被稱為“前臺(tái)”,而數(shù)據(jù)庫管理系統(tǒng)被稱為“后臺(tái)”。由于應(yīng)用程序是向數(shù)據(jù)庫管理系統(tǒng)提出服務(wù)請求,通常稱為客戶程序(Client),而數(shù)據(jù)庫管理系統(tǒng)是為其他應(yīng)用程序提供服務(wù),通常稱為服務(wù)器程序(Server),所以又將這種操作數(shù)據(jù)庫模式稱為客戶/服務(wù)器(C/S)模式。應(yīng)用程序和數(shù)據(jù)庫管理系統(tǒng)可以運(yùn)行在同一臺(tái)計(jì)算機(jī)上(單機(jī)方式),也可以運(yùn)行在網(wǎng)絡(luò)方式。在網(wǎng)絡(luò)方式下,數(shù)據(jù)庫管理系統(tǒng)在網(wǎng)絡(luò)上的一臺(tái)主機(jī)上運(yùn)行,應(yīng)用程序可以在網(wǎng)絡(luò)上的多臺(tái)主機(jī)上運(yùn)行,即一對多的方式。對于MySQL,除了服務(wù)器安裝數(shù)據(jù)庫管理系統(tǒng)外,還需要在客戶端安裝數(shù)據(jù)庫客戶程序。1.3.2客戶/服務(wù)器(C/S)模式應(yīng)用系統(tǒng)圖1.11C/S模式的學(xué)生成績管理系統(tǒng)界面

例如,用VisualBasic開發(fā)的客戶/服務(wù)器(C/S)模式的學(xué)生成績管理系統(tǒng)學(xué)生信息輸入界面如圖1.11所示。1.3.3三層客戶/服務(wù)器(B/S)模式應(yīng)用系統(tǒng)基于Web的數(shù)據(jù)庫應(yīng)用采用三層客戶/服務(wù)器模式,也稱B/S結(jié)構(gòu)。第一層為瀏覽器,第二層為Web服務(wù)器,第三層為數(shù)據(jù)庫服務(wù)器。瀏覽器是用戶輸入數(shù)據(jù)和顯示結(jié)果的交互界面,用戶在瀏覽器表單中輸入數(shù)據(jù),然后將表單中的數(shù)據(jù)提交并發(fā)送到Web服務(wù)器,Web服務(wù)器應(yīng)用程序接收并處理用戶的數(shù)據(jù),通過數(shù)據(jù)庫服務(wù)器,從數(shù)據(jù)庫中查詢需要的數(shù)據(jù)(或把數(shù)據(jù)錄入數(shù)據(jù)庫)送到Web服務(wù)器,Web服務(wù)器把返回的結(jié)果插入HTML頁面,傳送到客戶端,在瀏覽器中顯示出來,如圖1.12所示。圖1.12三層客戶/服務(wù)器結(jié)構(gòu)1.3.3三層客戶/服務(wù)器(B/S)模式應(yīng)用系統(tǒng)例如,用ASP.NET開發(fā)的三層客戶/服務(wù)器(B/S)模式的學(xué)生成績管理系統(tǒng)學(xué)生信息更新頁面如圖1.13所示。圖1.13B/S模式的學(xué)生成績管理系統(tǒng)頁面C/S與B/S示例對比C/S示例B/S示例1.3.4關(guān)系數(shù)據(jù)庫語言

關(guān)系數(shù)據(jù)庫的標(biāo)準(zhǔn)語言是SQL(StructuredQueryLanguage,結(jié)構(gòu)化查詢語言)。SQL語言是用于關(guān)系數(shù)據(jù)庫查詢的結(jié)構(gòu)化語言,最早由Boyce和Chambedin在1974年提出,稱為SEQUEL語言。1976年,IBM公司的SanJose研究所在研制關(guān)系數(shù)據(jù)庫管理系統(tǒng)SystemR時(shí)修改為SEQUEL2,即目前的SQL語言。

SQL語言的功能包括數(shù)據(jù)查詢、數(shù)據(jù)操縱、數(shù)據(jù)定義和數(shù)據(jù)控制4個(gè)部分。SQL語言簡潔、方便實(shí)用,為完成其核心功能只用了6個(gè)命令:SELECT、CREATE、INSERT、UPDATE、DELETE、GRANT(REVOKE)。目前已成為應(yīng)用最廣的關(guān)系數(shù)據(jù)庫語言。SQL語言簡潔,易學(xué)易用。1.4MySQL概述MySQL是一個(gè)小型關(guān)系型數(shù)據(jù)庫管理系統(tǒng),開發(fā)者為瑞典MySQLAB公司。目前MySQL被廣泛地應(yīng)用在Internet上的中小型網(wǎng)站中。由于其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點(diǎn),許多中小型網(wǎng)站為了降低網(wǎng)站總體擁有成本而選擇了MySQL作為網(wǎng)站數(shù)據(jù)庫。與其他的大型數(shù)據(jù)庫相比,MySQL還有一些不足之處,但是這絲毫也沒有減少它受歡迎的程度。對于一般的個(gè)人使用者和中小型企業(yè)來說,MySQL提供的功能已經(jīng)綽綽有余,而且由于MySQL是開放源碼軟件,因此可以大大降低總體擁有成本。目前Internet上流行的網(wǎng)站構(gòu)架方式是LAMP(Linux+Apache+MySQL+PHP),即使用Linux作為操作系統(tǒng),Apache作為Web服務(wù)器,MySQL作為數(shù)據(jù)庫,PHP作為服務(wù)器端腳本解釋器。由于這4個(gè)軟件都是遵循GPL的開放源碼軟件,因此使用這種方式不用花一分錢就可以建立起一個(gè)穩(wěn)定、免費(fèi)的網(wǎng)站系統(tǒng)。1.4MySQL概述MySQL數(shù)據(jù)庫的特點(diǎn)主要有以下幾個(gè)方面:●使用核心線程的完全多線程服務(wù),這意味著可以采用多CPU體系結(jié)構(gòu)?!窨蛇\(yùn)行在不同平臺(tái)。●使用C和C++編寫,并使用多種編譯器進(jìn)行測試,保證了源代碼的可移植性?!裰С諳S/2Wrap、Solaris、Windows等多種操作系統(tǒng)?!駷槎喾N編程語言提供了API?!裰С侄嗑€程,充分利用CPU資源?!駜?yōu)化的SQL查詢算法,可有效地提高查詢速度?!窦饶軌蜃鳛橐粋€(gè)單獨(dú)的應(yīng)用程序應(yīng)用在客戶端服務(wù)器網(wǎng)絡(luò)環(huán)境中,也能夠作為一個(gè)庫而嵌入到其他的軟件中提供多語言支持,常見的編碼如中文的GB2312、BIG5,日文的Shift_JIS等都可以用做數(shù)據(jù)表名和數(shù)據(jù)列名?!裉峁㏕CP/IP、ODBC和JDBC等多種數(shù)據(jù)庫連接途徑。●提供可用于管理、檢查、優(yōu)化數(shù)據(jù)庫操作的管理工具。●可以處理擁有上千萬條記錄的大型數(shù)據(jù)庫。1.4.1MySQL的安裝和配置1.MySQL服務(wù)器的安裝(1)下載Windows版的MySQL5.1.28,解壓后雙擊進(jìn)入安裝向?qū)?。?種安裝方式可供選擇:Typical(典型安裝)、Complete(完全安裝)和Custom(定制安裝),對于大多數(shù)用戶,選擇Typical就可以了。單擊“next”按鈕進(jìn)入下一步。(2)進(jìn)入如圖1.14所示的安裝界面。在MySQL5.1中,數(shù)據(jù)庫主目錄和文件目錄是分開的。其中,“DestinationFolder”為MySQL所在的目錄,默認(rèn)目錄為C:\ProgramFiles\MySQL\MySQLServer5.1。“DataFolder”為MySQL數(shù)據(jù)庫文件和表文件所在的目錄,默認(rèn)目錄為C:\DocumentsandSettings\AllUsers\ApplicationData\MySQL\MySQLServer5.1\data,其中ApplicationData是隱藏文件夾。確認(rèn)后單擊“Install”按鈕開始安裝。1.4.1MySQL的安裝和配置MySQL安裝過程:1.4.1MySQL的安裝和配置圖1.14MySQL安裝界面1.4.1MySQL的安裝和配置2.MySQL服務(wù)器的配置(1)安裝完畢后選擇“ConfiguretheMySQLservernow”復(fù)選框進(jìn)入配置向?qū)?。第一步選擇配置類型,有兩種:DetailedConfiguration(詳細(xì)配置)和StandardConfiguration(標(biāo)準(zhǔn)配置)。標(biāo)準(zhǔn)配置選項(xiàng)適合想要快速啟動(dòng)MySQL而不必考慮服務(wù)器配置的新用戶。詳細(xì)配置選項(xiàng)適合想要更加細(xì)粒度控制服務(wù)器配置的高級用戶。這里選擇DetailedConfiguration。(2)單擊“next”按鈕進(jìn)行服務(wù)器類型選擇,分為3種:DeveloperMachine(開發(fā)機(jī)器)、ServerMachine(服務(wù)器)和DedicatedMySQLServerMachine(專用MySQL服務(wù)器)。鑒于只是初學(xué)MySQL,所以這里選擇DeveloperMachine。1.4.1MySQL的安裝和配置(3)單擊“next”按鈕進(jìn)入數(shù)據(jù)庫使用情況對話框,有3個(gè)選項(xiàng):MultifunctionalDatabase(多功能數(shù)據(jù)庫)、TransactionalDatabaseOnly(只是事務(wù)處理數(shù)據(jù)庫)和Non-TransactionalDatabaseOnly(只是非事務(wù)處理數(shù)據(jù)庫)。其中多功能數(shù)據(jù)庫對InnoDB和MyISAM表都適用,所以這里選擇“MultifunctionalDatabase”。(4)下一步進(jìn)入InnoDB表空間對話框,這里可以修改InnoDB表空間文件的位置,如圖1.15所示。默認(rèn)位置是MySQL服務(wù)器數(shù)據(jù)目錄,這里不做修改,直接下一步。1.4.1MySQL的安裝和配置圖1.15表空間對話框1.4.1MySQL的安裝和配置(5)接下來進(jìn)入并發(fā)連接選擇對話框,DecisionSupport(決策支持)(DSS)/OLAP:如果服務(wù)器不需要大量的并行連接可以選擇該選項(xiàng);OnlineTransactionProcessing(聯(lián)機(jī)事務(wù)處理)(OLTP):如果服務(wù)器需要大量的并行連接則選擇該選項(xiàng);ManualSetting(人工設(shè)置):選擇該選項(xiàng)可以手動(dòng)設(shè)置服務(wù)器并行連接的最大數(shù)目。這里選擇“DecisionSupport(DSS)/OLAP”。(6)進(jìn)入聯(lián)網(wǎng)選項(xiàng)對話框,如圖1.16所示。默認(rèn)情況是啟用TCP/IP網(wǎng)絡(luò),默認(rèn)端口為3306。這里不做修改,直接下一步。1.4.1MySQL的安裝和配置圖1.16聯(lián)網(wǎng)選項(xiàng)對話框1.4.1MySQL的安裝和配置(7)進(jìn)入字符集選擇對話框,前面的選項(xiàng)一直是按默認(rèn)設(shè)置進(jìn)行的,這里要做一些修改。選中“ManualSelectedDefaultCharacterSet/Collation”選項(xiàng),在“CharacterSet”選框中將latin1修改為gb2312,如圖1.17所示。圖1.17設(shè)置字符集1.4.1MySQL的安裝和配置(8)下一步進(jìn)入服務(wù)選項(xiàng)對話框,服務(wù)名為MySQL,這里不做修改。(9)下一步是安全選項(xiàng)對話框,如圖1.18所示,在密碼輸入框中輸入root用戶的密碼。要想防止通過網(wǎng)絡(luò)以root登錄,選中Rootmayonlyconnectfromlocalhost(只允許從本機(jī)登錄連接root)選項(xiàng)旁邊的框。要想創(chuàng)建一個(gè)匿名用戶賬戶,選中CreateAnAnonymousAccount(創(chuàng)建匿名賬戶)選項(xiàng)旁邊的框。由于安全原因,這里不建議選擇這項(xiàng)。1.4.1MySQL的安裝和配置圖1.18安全選項(xiàng)對話框1.4.1MySQL的安裝和配置(10)設(shè)置完畢后,隨后一步是提交配置,單擊“execute”按鈕即可完成。注意:對不同的操作系統(tǒng)和不同版本的MySQL,安裝過程可能有所不同,這里只舉MySQL5.1的安裝例子。以上步驟完成后,MySQL服務(wù)器就已經(jīng)可以使用了。由于MySQL自身不帶界面工具,為了進(jìn)行可視化的管理,可以另外安裝界面工具來處理SQL語句。MySQL官方網(wǎng)站上提供了MySQLAdministrator管理工具和MySQLQueryBrowser查詢工具,可以一起下載。下載地址是/downloads/gui-tools/5.0.html。界面工具的安裝非常簡單,這里不詳細(xì)說明。我們也可以選擇其他的界面管理工具來操作MySQL,常用的有NavicatLiteforMySQL、phpMyAdmin、MySQLFront等。然而這些不是數(shù)據(jù)庫服務(wù)器,它們只是在Windows或Linux下允許用戶能夠進(jìn)行可視化管理的工具。1.4.2MySQL的環(huán)境1.MySQL命令行客戶端MySQL安裝和配置完后,打開“開始”→“程序”→“MySQL”→“MySQLServer5.1”→“MySQLCommandLineClient”,進(jìn)入到MySQL客戶端,在客戶端窗口輸入密碼,就以root用戶身份登錄到MySQL服務(wù)器,在窗口中出現(xiàn)如圖1.19所示命令行,在命令行中輸入SQL語句就可以操作MySQL數(shù)據(jù)庫。以root用戶身份登錄可以對數(shù)據(jù)庫進(jìn)行所有的操作。MySQL還可以使用其他用戶登錄,這在以后會(huì)講到。1.4.2MySQL的環(huán)境圖1.19MySQL命令行1.4.2MySQL的環(huán)境2.重新配置服務(wù)器如果要對服務(wù)器重新配置,可以打開“開始”→“程序”→“MySQL”→“MySQLServer5.1”→“MySQLServerInstanceConfigWizard”,在出現(xiàn)的配置向?qū)е兄匦屡渲梅?wù)器。(1)選項(xiàng)文件在C:\ProgramFiles\MySQL\MySQLServer5.1的MySQL主目錄下有一個(gè)my.ini文件,這是MySQL的選項(xiàng)文件,在MySQL啟動(dòng)時(shí)會(huì)自動(dòng)加載文件中的一些選項(xiàng)。可以通過修改選項(xiàng)文件來修改MySQL的一些默認(rèn)設(shè)置,具體會(huì)在以后的內(nèi)容中了解到。1.4.2MySQL的環(huán)境(2)數(shù)據(jù)目錄MySQL有一個(gè)data目錄,用于存放數(shù)據(jù)庫文件。MySQL5.1的默認(rèn)的路徑為C:\DocumentsandSettings\AllUsers\ApplicationData\MySQL\MySQLServer5.1\data。在data目錄中MySQL為每一個(gè)數(shù)據(jù)庫建立一個(gè)文件夾,所有的表文件存放在相應(yīng)的數(shù)據(jù)庫文件夾中。

Access用戶界面一、Access系統(tǒng)組成

Access的功能數(shù)據(jù)庫引擎(databaseengine)存儲(chǔ)、排序和獲取數(shù)據(jù)的軟件,是不可見的2.數(shù)據(jù)庫對象(databaseobject)有表、查詢、窗體、報(bào)表等多種對象3.設(shè)計(jì)工具多種設(shè)計(jì)器,如報(bào)表、查詢設(shè)計(jì)器等4.程序設(shè)計(jì)工具提供VBA編程語言O(shè)racle、Sybase適用于大型數(shù)據(jù)庫,Access、Foxpro適用于中小型數(shù)據(jù)庫應(yīng)用。二、Access數(shù)據(jù)庫特點(diǎn)

1.存儲(chǔ)文件單一

一個(gè)數(shù)據(jù)庫文件包含了該數(shù)據(jù)庫的所有表、查詢、 窗體、報(bào)表等各種對象。

2.支持長文件名及名稱自動(dòng)更正

3.兼容多種數(shù)據(jù)庫格式

能識(shí)別Foxpro、dBASE、Paradox等多種數(shù)據(jù) 庫 格式,可以導(dǎo)入Excel、Word等格式的數(shù)據(jù)。

4.具有Web網(wǎng)頁發(fā)布功能

5.可應(yīng)用于客戶機(jī)-服務(wù)器方式

6.操作使用方便三、Access數(shù)據(jù)庫格式

1、mdbAccess數(shù)據(jù)庫文件的格式2、mdemdb文件編譯后的格式,看不到VBA程序的源代碼。3、adpAccess項(xiàng)目文件的格式4、adeadp文件編譯后的格式,看不到VBA程序的源代碼。3.2Access數(shù)據(jù)庫內(nèi)部結(jié)構(gòu)在數(shù)據(jù)庫文件中包含了除數(shù)據(jù)訪問頁之外的表、查詢、窗體、報(bào)表、宏、模塊等對象。各對象之間的關(guān)系如上圖。一、表-----信息存儲(chǔ)器

a、所有的數(shù)據(jù)信息存在表中。

b、在表中,列稱為字段,行為記錄。

c、可以有多個(gè)表,表之間有聯(lián)系。

d、字段有文本、數(shù)字、日期、貨幣、OLE對象等類型2、查詢-----數(shù)據(jù)檢索的有效途徑

a、從一個(gè)或多個(gè)表中檢索記錄,形成動(dòng)態(tài)集。

b、利用查詢可以插入、刪除和修改數(shù)據(jù)

c、查詢可作為窗體和報(bào)表的數(shù)據(jù)源。3、窗體------人機(jī)交互界面有數(shù)據(jù)輸入窗體、開關(guān)面板窗體、自定義對話框窗體、子窗體等。 4、報(bào)表-----信息處理的最終產(chǎn)物

將最終結(jié)果以報(bào)表的形式輸出。5、宏

-----效率的保證宏是一個(gè)或多個(gè)操作的集合。宏通過宏設(shè)計(jì)窗口設(shè) 計(jì)實(shí)現(xiàn)。6、模塊-----充分發(fā)揮Access2000功能的主要工具

VBA(VisualBasicApplication)編程。在編寫復(fù)雜條件及功能時(shí)使用。7、數(shù)據(jù)訪問頁一、Access201

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(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

提交評論