《Access 數(shù)據(jù)庫(kù)技術(shù)及應(yīng)用(第2版)》-第2 章_第1頁(yè)
《Access 數(shù)據(jù)庫(kù)技術(shù)及應(yīng)用(第2版)》-第2 章_第2頁(yè)
《Access 數(shù)據(jù)庫(kù)技術(shù)及應(yīng)用(第2版)》-第2 章_第3頁(yè)
《Access 數(shù)據(jù)庫(kù)技術(shù)及應(yīng)用(第2版)》-第2 章_第4頁(yè)
《Access 數(shù)據(jù)庫(kù)技術(shù)及應(yīng)用(第2版)》-第2 章_第5頁(yè)
已閱讀5頁(yè),還剩108頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

2.1數(shù)據(jù)庫(kù)基礎(chǔ)2.1.1有關(guān)數(shù)據(jù)庫(kù)的術(shù)語(yǔ)1.數(shù)據(jù)數(shù)據(jù)是信息的符號(hào)表示,能用計(jì)算機(jī)存儲(chǔ)及處理,通常包括數(shù)值、文字、聲音、圖像視頻、動(dòng)畫(huà)類型等。2.數(shù)據(jù)處理對(duì)數(shù)據(jù)進(jìn)行各種處理,如添加、刪除、統(tǒng)計(jì)、計(jì)算、檢索等操作。數(shù)據(jù)處理經(jīng)過(guò)了人工處理、計(jì)算機(jī)文件處理、計(jì)算機(jī)數(shù)據(jù)庫(kù)處理的三個(gè)發(fā)展階段。3.數(shù)據(jù)模型數(shù)據(jù)和數(shù)據(jù)間的相互關(guān)系,構(gòu)成數(shù)據(jù)模型。下一頁(yè)返回2.1數(shù)據(jù)庫(kù)基礎(chǔ)它有層次、網(wǎng)狀和關(guān)系三種模型,不同的數(shù)據(jù)庫(kù)是按不同的數(shù)據(jù)結(jié)構(gòu)來(lái)聯(lián)系和組織的。4.數(shù)據(jù)結(jié)構(gòu)所謂數(shù)據(jù)結(jié)構(gòu)是指數(shù)據(jù)的組織形式或數(shù)據(jù)之間的聯(lián)系。5.數(shù)據(jù)庫(kù)數(shù)據(jù)的集合,能被各類用戶所共享,數(shù)據(jù)冗余低、數(shù)據(jù)之間有緊密聯(lián)系并可通過(guò)數(shù)據(jù)庫(kù)管理系統(tǒng)進(jìn)行訪問(wèn)。庫(kù)中數(shù)據(jù)以表的形式保存,也可以將其發(fā)布到網(wǎng)絡(luò)上,以便其他用戶通過(guò)Web瀏覽器來(lái)共享數(shù)據(jù)庫(kù)。6.數(shù)據(jù)庫(kù)管理系統(tǒng)上一頁(yè)下一頁(yè)返回2.1數(shù)據(jù)庫(kù)基礎(chǔ)數(shù)據(jù)庫(kù)管理系統(tǒng),即對(duì)數(shù)據(jù)庫(kù)進(jìn)行管理的軟件。一般具有建立數(shù)據(jù)庫(kù)、編輯、修改、增刪、檢索、排序、統(tǒng)計(jì)等操作數(shù)據(jù)庫(kù)的功能;同時(shí)還要具有友好的交互輸入、輸出,方便、高效管理數(shù)據(jù)庫(kù)。通過(guò)多種編程語(yǔ)言允許多個(gè)用戶同時(shí)訪問(wèn)數(shù)據(jù)庫(kù),并提供數(shù)據(jù)的獨(dú)立性、安全性和完整性等保障措施。7.數(shù)據(jù)庫(kù)系統(tǒng)指計(jì)算機(jī)系統(tǒng)中引進(jìn)了數(shù)據(jù)庫(kù)后的系統(tǒng)。通常可視為由人(用戶、數(shù)據(jù)庫(kù)管理員)、軟硬件設(shè)備、數(shù)據(jù)庫(kù)和數(shù)據(jù)庫(kù)管理系統(tǒng)等組成的一個(gè)信息處理系統(tǒng)。數(shù)據(jù)庫(kù)系統(tǒng)的核心是數(shù)據(jù)庫(kù)管理系統(tǒng)。上一頁(yè)下一頁(yè)返回2.1數(shù)據(jù)庫(kù)基礎(chǔ)2.1.2數(shù)據(jù)管理的發(fā)展數(shù)據(jù)管理的發(fā)展歷史可以分為以下四個(gè)階段。一、第一個(gè)階段———人工管理人工管理階段(20世紀(jì)50年代中期以前)的特點(diǎn)如下:1.數(shù)據(jù)不能共享不同的程序均有各自的數(shù)據(jù),這些數(shù)據(jù)對(duì)不同的程序通常是不相同的,不可共享;即使不同的程序使用了相同的一組數(shù)據(jù),這些數(shù)據(jù)也不能共享,程序中仍然不能省略這組數(shù)據(jù)?;谶@種數(shù)據(jù)的不可共享性,必然導(dǎo)致程序與程序之間存在大量的冗余數(shù)據(jù),浪費(fèi)了存儲(chǔ)空間。上一頁(yè)下一頁(yè)返回2.1數(shù)據(jù)庫(kù)基礎(chǔ)2.數(shù)據(jù)與程序不具有獨(dú)立性基于數(shù)據(jù)與程序是一個(gè)整體,數(shù)據(jù)只為本程序所使用,即一組數(shù)據(jù)對(duì)應(yīng)一組程序,如圖2.1所示。二、第二個(gè)階段———文件管理在這一階段(20世紀(jì)50年代后期至60年代中期)計(jì)算機(jī)不僅用于科學(xué)計(jì)算,還用于信息管理方面。操作系統(tǒng)中的文件系統(tǒng)是專門(mén)管理外存的數(shù)據(jù)管理軟件,文件是操作系統(tǒng)管理的重要資源之一。數(shù)據(jù)處理方式有批處理,也有聯(lián)機(jī)實(shí)時(shí)處理。此階段特點(diǎn)如下:1.存儲(chǔ)方式上一頁(yè)下一頁(yè)返回2.1數(shù)據(jù)庫(kù)基礎(chǔ)數(shù)據(jù)以“文件”形式可長(zhǎng)期保存在外部存儲(chǔ)器的磁盤(pán)上??梢詫?duì)文件進(jìn)行大量的查詢、修改和插入等操作。2.獨(dú)立性程序與數(shù)據(jù)之間具有“設(shè)備獨(dú)立性”,即程序只需用文件名就可與數(shù)據(jù)進(jìn)行連接,不必關(guān)心數(shù)據(jù)的物理位置。由操作系統(tǒng)的文件系統(tǒng)提供存取方法(讀/寫(xiě))。3.文件類型文件組織中有索引文件、鏈接文件和直接存取文件等。但文件之間相互獨(dú)立、缺乏聯(lián)系。數(shù)據(jù)之間的聯(lián)系要通過(guò)程序去構(gòu)造。上一頁(yè)下一頁(yè)返回2.1數(shù)據(jù)庫(kù)基礎(chǔ)數(shù)據(jù)不再屬于某個(gè)特定的程序,可以重復(fù)使用,由于文件結(jié)構(gòu)的設(shè)計(jì)仍然是基于特定的用途,程序基于特定的物理結(jié)構(gòu)和存取方法,因此程序與數(shù)據(jù)結(jié)構(gòu)之間的依賴關(guān)系并未根本改變。由于同一個(gè)數(shù)據(jù)項(xiàng)可能重復(fù)出現(xiàn)在多個(gè)文件中,沒(méi)有形成數(shù)據(jù)共享,又不易統(tǒng)一修改,容易造成數(shù)據(jù)的不一致。這樣造成文件之間缺乏聯(lián)系,存在大量冗余。4.文件與程序的對(duì)應(yīng)關(guān)系對(duì)數(shù)據(jù)的操作以記錄為單位。由于文件中只存儲(chǔ)數(shù)據(jù),不存儲(chǔ)文件記錄的結(jié)構(gòu)描述信息,文件的建立、存取、查詢、插入、刪除、修改等所有操作都需要用程序來(lái)實(shí)現(xiàn)。上一頁(yè)下一頁(yè)返回2.1數(shù)據(jù)庫(kù)基礎(chǔ)數(shù)據(jù)冗余造成每個(gè)應(yīng)用程序都有對(duì)應(yīng)的文件,有可能同樣的數(shù)據(jù)在多個(gè)文件中重復(fù)存儲(chǔ)。第二階段數(shù)據(jù)管理如圖2.2所示。三、第三個(gè)階段———數(shù)據(jù)庫(kù)管理該階段(20世紀(jì)60年代后期),數(shù)據(jù)管理技術(shù)進(jìn)入數(shù)據(jù)庫(kù)系統(tǒng)階段。數(shù)據(jù)庫(kù)系統(tǒng)克服了文件系統(tǒng)的缺陷,提供了對(duì)數(shù)據(jù)更高級(jí)及更有效的管理。數(shù)據(jù)庫(kù)系統(tǒng)階段的數(shù)據(jù)管理具有以下特點(diǎn):1.數(shù)據(jù)庫(kù)共享2.數(shù)據(jù)獨(dú)立性3.提供了方便數(shù)據(jù)接口上一頁(yè)下一頁(yè)返回2.1數(shù)據(jù)庫(kù)基礎(chǔ)4.提供了安全性5.減少了數(shù)據(jù)冗余數(shù)據(jù)管理增加了系統(tǒng)的靈活性。對(duì)數(shù)據(jù)的操作不一定以記錄為單位,可以以數(shù)據(jù)項(xiàng)為單位。該階段對(duì)多應(yīng)用程序數(shù)據(jù)共享,減少數(shù)據(jù)冗余,為數(shù)據(jù)與應(yīng)用程序獨(dú)立提供了條件。第三階段數(shù)據(jù)庫(kù)管理結(jié)構(gòu)如圖2.3所示。四、第四個(gè)階段———分布式數(shù)據(jù)庫(kù)系統(tǒng)與面向?qū)ο髷?shù)據(jù)庫(kù)系統(tǒng)該階段(20世紀(jì)70年代后期至今)廣泛使用分布式數(shù)據(jù)庫(kù)系統(tǒng),它的顯著特征是與網(wǎng)絡(luò)技術(shù)緊密結(jié)合,用戶使用Internet即可訪問(wèn)多個(gè)數(shù)據(jù)庫(kù)。其主要特點(diǎn)如下:上一頁(yè)下一頁(yè)返回2.1數(shù)據(jù)庫(kù)基礎(chǔ)1.分布式存儲(chǔ)合理分布數(shù)據(jù)在系統(tǒng)的相關(guān)結(jié)點(diǎn)上,實(shí)現(xiàn)結(jié)點(diǎn)共享,邏輯上屬于同一系統(tǒng),但在物理結(jié)構(gòu)上是分布式的,因此用戶不需關(guān)心數(shù)據(jù)的分布,由若干個(gè)結(jié)點(diǎn)集合而成,在通信網(wǎng)絡(luò)中連接在一起,每個(gè)結(jié)點(diǎn)都是一個(gè)獨(dú)立的數(shù)據(jù)庫(kù)系統(tǒng),都擁有各自的數(shù)據(jù)庫(kù)、中央處理機(jī)、終端以及各自的局部數(shù)據(jù)庫(kù)管理系統(tǒng)。2.減少開(kāi)發(fā)成本客戶機(jī)通過(guò)瀏覽器即可訪問(wèn)遠(yuǎn)程數(shù)據(jù)庫(kù),不需錄入和安裝專門(mén)的數(shù)據(jù)庫(kù)軟件,這樣大大降低了應(yīng)用程序發(fā)布和維護(hù)的開(kāi)銷。3.便于遠(yuǎn)程操作上一頁(yè)下一頁(yè)返回2.1數(shù)據(jù)庫(kù)基礎(chǔ)能方便使用網(wǎng)頁(yè)技術(shù),開(kāi)發(fā)遠(yuǎn)程登錄的數(shù)據(jù)庫(kù)管理信息系統(tǒng),且支持跨平臺(tái)操作。其結(jié)構(gòu)如圖2.4所示。面向?qū)ο髷?shù)據(jù)庫(kù)系統(tǒng):是數(shù)據(jù)庫(kù)技術(shù)與面向?qū)ο蟪绦蛟O(shè)計(jì)技術(shù)的結(jié)合。優(yōu)點(diǎn):它克服了傳統(tǒng)數(shù)據(jù)庫(kù)的局限性,能夠自然地存儲(chǔ)復(fù)雜的數(shù)據(jù)對(duì)象及它們之間的復(fù)雜關(guān)系,大幅提高了數(shù)據(jù)庫(kù)管理效率,降低了用戶使用的復(fù)雜性。2.1.3數(shù)據(jù)庫(kù)系統(tǒng)的特點(diǎn)1.數(shù)據(jù)的結(jié)構(gòu)化上一頁(yè)下一頁(yè)返回2.1數(shù)據(jù)庫(kù)基礎(chǔ)數(shù)據(jù)結(jié)構(gòu)化是指同一數(shù)據(jù)庫(kù)中的數(shù)據(jù)文件是有聯(lián)系的,且在整體上服從一定的結(jié)構(gòu)形式。2.數(shù)據(jù)共享共享是數(shù)據(jù)庫(kù)系統(tǒng)的重要特點(diǎn)。一個(gè)庫(kù)中的數(shù)據(jù)不僅可為同一企業(yè)或機(jī)構(gòu)之內(nèi)的各個(gè)部門(mén)所共享,也可為不同單位、地域甚至不同國(guó)家的用戶所共享。其優(yōu)點(diǎn)是:(1)系統(tǒng)現(xiàn)有用戶或程序可以共同享用數(shù)據(jù)庫(kù)中的數(shù)據(jù)。(2)當(dāng)系統(tǒng)需要擴(kuò)充時(shí),再開(kāi)發(fā)的新用戶或新程序還可以共享原有的數(shù)據(jù)資源。(3)多用戶或多程序可以在同一時(shí)刻共同使用同一數(shù)據(jù)。上一頁(yè)下一頁(yè)返回2.1數(shù)據(jù)庫(kù)基礎(chǔ)(4)數(shù)據(jù)的獨(dú)立性。在文件系統(tǒng)中,數(shù)據(jù)結(jié)構(gòu)和應(yīng)用程序相互依賴,一方的改變總是要影響另一方的改變。數(shù)據(jù)庫(kù)系統(tǒng)則力求減小這種相互依賴,實(shí)現(xiàn)數(shù)據(jù)的獨(dú)立性。數(shù)據(jù)庫(kù)中的數(shù)據(jù)獨(dú)立性可以分為兩級(jí):①數(shù)據(jù)的物理獨(dú)立性(PhysicalDataIndependence):數(shù)據(jù)的物理獨(dú)立性是指應(yīng)用程序?qū)?shù)據(jù)存儲(chǔ)結(jié)構(gòu)的依賴程度。數(shù)據(jù)物理獨(dú)立性高是指當(dāng)數(shù)據(jù)的物理結(jié)構(gòu)發(fā)生變化時(shí),應(yīng)用程序不需要修改也可以正常工作。上一頁(yè)下一頁(yè)返回2.1數(shù)據(jù)庫(kù)基礎(chǔ)②數(shù)據(jù)的邏輯獨(dú)立性(LogicalDataIndependence):數(shù)據(jù)庫(kù)中的數(shù)據(jù)邏輯結(jié)構(gòu)分全局邏輯結(jié)構(gòu)和局部邏輯結(jié)構(gòu)兩種:?數(shù)據(jù)全局邏輯結(jié)構(gòu)是指全系統(tǒng)總體的數(shù)據(jù)邏輯結(jié)構(gòu),它是按全系統(tǒng)使用的數(shù)據(jù)、數(shù)據(jù)的屬性及數(shù)據(jù)聯(lián)系來(lái)組織的。?數(shù)據(jù)局部邏輯結(jié)構(gòu)是指具有一個(gè)用戶或程序使用數(shù)據(jù)的邏輯結(jié)構(gòu),它是根據(jù)用戶自己對(duì)數(shù)據(jù)的需求進(jìn)行組織的。數(shù)據(jù)的邏輯獨(dú)立性是指應(yīng)用程序?qū)?shù)據(jù)全局邏輯結(jié)構(gòu)的依賴程度。數(shù)據(jù)邏輯獨(dú)立性高是指當(dāng)數(shù)據(jù)庫(kù)系統(tǒng)的數(shù)據(jù)全局邏輯結(jié)構(gòu)改變時(shí),它們對(duì)應(yīng)的應(yīng)用程序不需要改變?nèi)钥梢哉_\(yùn)行。上一頁(yè)下一頁(yè)返回2.1數(shù)據(jù)庫(kù)基礎(chǔ)數(shù)據(jù)庫(kù)系統(tǒng)之所以具有較高的數(shù)據(jù)邏輯獨(dú)立性,是由于它能夠提供數(shù)據(jù)的全局邏輯結(jié)構(gòu)和局部邏輯結(jié)構(gòu)之間的映像和轉(zhuǎn)換功能。(5)數(shù)據(jù)冗余度小。數(shù)據(jù)庫(kù)中的數(shù)據(jù)有少量相互重復(fù),這就是冗余。①數(shù)據(jù)量小可以節(jié)約存儲(chǔ)空間,使數(shù)據(jù)的存儲(chǔ)、管理和查詢都容易實(shí)現(xiàn)。②數(shù)據(jù)冗余小可以使數(shù)據(jù)統(tǒng)一,避免產(chǎn)生數(shù)據(jù)的不一致問(wèn)題。③數(shù)據(jù)冗余小便于數(shù)據(jù)維護(hù),避免數(shù)據(jù)統(tǒng)計(jì)錯(cuò)誤。(6)數(shù)據(jù)庫(kù)系統(tǒng)的安全性和完整性的控制。上一頁(yè)下一頁(yè)返回2.1數(shù)據(jù)庫(kù)基礎(chǔ)①數(shù)據(jù)的安全性控制(SecurityControl)是指保護(hù)數(shù)據(jù)庫(kù),以防止不合法的使用造成的數(shù)據(jù)泄漏、破壞和更改。數(shù)據(jù)安全受到破壞是指非授權(quán)用戶對(duì)數(shù)據(jù)的讀取、添加、修改、刪除操作。②數(shù)據(jù)的完整性控制(IntegrityControl)是指為保證數(shù)據(jù)的正確性、有效性和相容性,防止不符合語(yǔ)義的數(shù)據(jù)輸入或輸出所采用的控制機(jī)制。數(shù)據(jù)庫(kù)系統(tǒng)的完整性控制不僅包括提供數(shù)據(jù)完整性定義的方法及完整性條件,還包括提供檢驗(yàn)數(shù)據(jù)完整性的功能,在數(shù)據(jù)輸入和輸出時(shí),系統(tǒng)應(yīng)自動(dòng)檢查其是否符合已定義的完整性條件,以避免錯(cuò)誤的數(shù)據(jù)進(jìn)入到數(shù)據(jù)庫(kù)或從數(shù)據(jù)庫(kù)中流出,造成不良后果。上一頁(yè)下一頁(yè)返回2.1數(shù)據(jù)庫(kù)基礎(chǔ)因此,數(shù)據(jù)完整性的高低是決定數(shù)據(jù)庫(kù)中數(shù)據(jù)的可靠程度和可信程度的重要因素。此外,數(shù)據(jù)庫(kù)的數(shù)據(jù)控制機(jī)制還包括數(shù)據(jù)的并發(fā)控制和數(shù)據(jù)恢復(fù)兩項(xiàng)內(nèi)容。數(shù)據(jù)的并發(fā)控制是指排除由于數(shù)據(jù)共享,即用戶并行使用數(shù)據(jù)庫(kù)中的數(shù)據(jù)時(shí),所造成的數(shù)據(jù)不完整和系統(tǒng)運(yùn)行錯(cuò)誤問(wèn)題。數(shù)據(jù)恢復(fù)是通過(guò)記錄數(shù)據(jù)庫(kù)運(yùn)行的日志文件和定期做數(shù)據(jù)備份工作,保證數(shù)據(jù)在受到破壞時(shí),能夠及時(shí)使數(shù)據(jù)庫(kù)恢復(fù)到正確狀態(tài)。數(shù)據(jù)的結(jié)構(gòu)化、數(shù)據(jù)的共享性、數(shù)據(jù)的獨(dú)立性及數(shù)據(jù)存儲(chǔ)冗余度小,為數(shù)據(jù)管理提供了友好的接口。上一頁(yè)下一頁(yè)返回2.1數(shù)據(jù)庫(kù)基礎(chǔ)2.1.4數(shù)據(jù)庫(kù)系統(tǒng)的組成數(shù)據(jù)庫(kù)系統(tǒng)一般由數(shù)據(jù)庫(kù)、數(shù)據(jù)庫(kù)管理系統(tǒng)(DataBaseManagementSystem,DBMS)、應(yīng)用系統(tǒng)、數(shù)據(jù)庫(kù)管理員和用戶構(gòu)成,如圖2.5所示。DBMS是數(shù)據(jù)庫(kù)系統(tǒng)的基礎(chǔ)和核心。上一頁(yè)返回2.2數(shù)據(jù)模型及組成要素2.2.1數(shù)據(jù)模型數(shù)據(jù)庫(kù)的數(shù)據(jù)結(jié)構(gòu)形式,叫數(shù)據(jù)模型,它是對(duì)數(shù)據(jù)庫(kù)如何組織的一種模型化表示。數(shù)據(jù)模型表示的是數(shù)據(jù)庫(kù)框架,它是以一定數(shù)據(jù)結(jié)構(gòu)方式表示各種信息的聯(lián)系,數(shù)據(jù)庫(kù)模型描述了在數(shù)據(jù)庫(kù)中結(jié)構(gòu)化的方法,它分層次、網(wǎng)狀和關(guān)系三種。1.層次結(jié)構(gòu)模型層次結(jié)構(gòu)模型實(shí)質(zhì)上是一種有根結(jié)點(diǎn)的定向有序樹(shù),因此也稱樹(shù)形結(jié)構(gòu)。該模型的實(shí)際存儲(chǔ)數(shù)據(jù)由鏈接指針來(lái)體現(xiàn)聯(lián)系。特點(diǎn):有且僅有一個(gè)結(jié)點(diǎn)無(wú)父結(jié)點(diǎn),此結(jié)點(diǎn)即為根結(jié)點(diǎn);其他結(jié)點(diǎn)有且僅有一個(gè)父結(jié)點(diǎn)。適合用表示一對(duì)多的關(guān)系。下一頁(yè)返回2.2數(shù)據(jù)模型及組成要素2.網(wǎng)狀結(jié)構(gòu)模型項(xiàng)目與零件之間的M∶N關(guān)系用兩個(gè)1∶N實(shí)現(xiàn),即S1表示項(xiàng)目與組成之間的1∶N關(guān)系,S2表示零件與組成之間的1∶N關(guān)系。供應(yīng)商與零件之間的M∶N關(guān)系同樣用兩個(gè)1∶N關(guān)系S3和S4實(shí)現(xiàn),如圖2.7所示。組成結(jié)點(diǎn)與供應(yīng)結(jié)點(diǎn)均有兩個(gè)雙親,網(wǎng)狀模型的特點(diǎn)是可以有一個(gè)以上的結(jié)點(diǎn)無(wú)雙親,或至少有一個(gè)結(jié)點(diǎn)有多于一個(gè)以上的雙親。按照網(wǎng)狀數(shù)據(jù)結(jié)構(gòu)建立的數(shù)據(jù)庫(kù)系統(tǒng)稱為網(wǎng)狀數(shù)據(jù)庫(kù)系統(tǒng)。3.關(guān)系型數(shù)據(jù)庫(kù)上一頁(yè)下一頁(yè)返回2.2數(shù)據(jù)模型及組成要素關(guān)系模型就是二維表。如第1章圖1.19所示的學(xué)生基本情況數(shù)據(jù)庫(kù)表。關(guān)系型數(shù)據(jù)庫(kù)系統(tǒng)的基本特征是按關(guān)系數(shù)據(jù)模型組織數(shù)據(jù)庫(kù),它具有結(jié)構(gòu)簡(jiǎn)單、理論基礎(chǔ)堅(jiān)實(shí)、數(shù)據(jù)獨(dú)立性高并提供非過(guò)程性語(yǔ)言等優(yōu)點(diǎn)而被認(rèn)為是有很大發(fā)展前景的一種數(shù)據(jù)庫(kù),目前已經(jīng)得到了廣泛的應(yīng)用。關(guān)系型數(shù)據(jù)庫(kù)是現(xiàn)今使用最廣泛、最容易理解和使用的數(shù)據(jù)庫(kù)模型。大多數(shù)的企業(yè)級(jí)系統(tǒng)數(shù)據(jù)庫(kù)都采用關(guān)系型數(shù)據(jù)庫(kù),例如常用的數(shù)據(jù)庫(kù)開(kāi)發(fā)管理軟件SQL、Oracle、SYBASE及Access均屬于關(guān)系型數(shù)據(jù)庫(kù)。所謂關(guān)系可以理解為一張二維表,每個(gè)關(guān)系都具有一個(gè)關(guān)系名,就是通常說(shuō)的表名,表具有元組、屬性、域、關(guān)鍵字(或稱主鍵)。上一頁(yè)下一頁(yè)返回2.2數(shù)據(jù)模型及組成要素這個(gè)關(guān)系可用關(guān)系模式來(lái)描述,如表2.1所示。其中:(1)元組:為二維表中的一行,在數(shù)據(jù)庫(kù)中也稱為記錄。(2)屬性:為二維表中的一列,在數(shù)據(jù)庫(kù)中也被稱為字段。(3)域:屬性的取值范圍,也就是數(shù)據(jù)庫(kù)中某一列的取值限制。(4)關(guān)鍵字:一組可以唯一標(biāo)識(shí)元組的屬性。數(shù)據(jù)庫(kù)中常稱為主鍵,由一個(gè)或多個(gè)列組成。(5)關(guān)系模式:指對(duì)關(guān)系的描述,其格式為:關(guān)系名(屬性1,屬性2,……,屬性N)。在數(shù)據(jù)庫(kù)中通常稱之為表結(jié)構(gòu)。上一頁(yè)下一頁(yè)返回2.2數(shù)據(jù)模型及組成要素2.2.2數(shù)據(jù)模型三要素1.數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)是計(jì)算機(jī)存儲(chǔ)、組織數(shù)據(jù)的方式。數(shù)據(jù)結(jié)構(gòu)是指相互之間存在一種或多種特定關(guān)系的數(shù)據(jù)元素集合。它指同一類數(shù)據(jù)元素中,各元素之間的相互關(guān)系。不同的數(shù)據(jù)模型具有不同的數(shù)據(jù)結(jié)構(gòu)形式。2.數(shù)據(jù)操作上一頁(yè)下一頁(yè)返回2.2數(shù)據(jù)模型及組成要素?cái)?shù)據(jù)模型提供一組完備的關(guān)系運(yùn)算,支持對(duì)數(shù)據(jù)庫(kù)的各種操作,可以用關(guān)系代數(shù)和關(guān)系演算兩種方式來(lái)表示,它們是相互等價(jià)的,如用關(guān)系代數(shù)來(lái)表示關(guān)系的操作,有傳統(tǒng)的關(guān)系運(yùn)算:交、差、并和專門(mén)的關(guān)系運(yùn)算:選擇、投影、連接,即在關(guān)系數(shù)據(jù)庫(kù)的基本操作中,從表中取出滿足條件的元組的操作稱為選擇;把兩個(gè)關(guān)系中相同屬性值的元組連接在一起形成新的二維表的操作稱為連接;從表中抽取某些屬性的操作稱為投影;數(shù)據(jù)更新包括插入、刪除、修改。其中傳統(tǒng)集合運(yùn)算結(jié)果為:(1)并:兩個(gè)相同結(jié)構(gòu)關(guān)系的并是由兩個(gè)關(guān)系的元組組成的集合,并運(yùn)算要求兩個(gè)關(guān)系屬性的性質(zhì)必須一致且并運(yùn)算的結(jié)果要消除重復(fù)的元組。上一頁(yè)下一頁(yè)返回2.2數(shù)據(jù)模型及組成要素記為:R(元組)∪S(元組)(2)差:指兩個(gè)相同結(jié)構(gòu)關(guān)系中的記錄屬于第一個(gè)關(guān)系而不屬于第二個(gè)關(guān)系,或者屬于第二個(gè)關(guān)系而不屬于第一個(gè)關(guān)系。只屬于R而不屬于S,記為:R-S不屬于R只屬于S,記為:S-R(3)交:兩個(gè)相同結(jié)構(gòu)關(guān)系中公共記錄的集合。記為:R(元組)∩S(元組)(4)選擇、投影和連接。3.完整性規(guī)則上一頁(yè)下一頁(yè)返回2.2數(shù)據(jù)模型及組成要素?cái)?shù)據(jù)完整性(DataIntegrity)是指數(shù)據(jù)的精確性(Accuracy)和可靠性(Reliability)。它是防止數(shù)據(jù)庫(kù)中存在不符合語(yǔ)義規(guī)定的數(shù)據(jù)和防止因錯(cuò)誤信息的輸入輸出造成無(wú)效操作或錯(cuò)誤信息的一種約束。數(shù)據(jù)完整性分為:實(shí)體完整性(EntityIntegrity)、參照完整性(ReferentialIntegrity)、用戶自定義的完整性(User?definedIntegrity)。其中:(1)實(shí)體完整性:指表中行的完整性。要求表中的所有行都有唯一的標(biāo)識(shí)符,稱為主關(guān)鍵字。主關(guān)鍵字是否可以修改,或整個(gè)列是否可以被刪除,取決于主關(guān)鍵字與其他表之間要求的完整性。上一頁(yè)下一頁(yè)返回2.2數(shù)據(jù)模型及組成要素對(duì)于實(shí)體完整性,有如下規(guī)則:①實(shí)體完整性規(guī)則針對(duì)基本關(guān)系。一個(gè)基本關(guān)系表通常對(duì)應(yīng)一個(gè)實(shí)體集。②現(xiàn)實(shí)世界中的實(shí)體是可以區(qū)分的,它們具有一種唯一性質(zhì)的標(biāo)識(shí)。(2)參照完整性:是指兩個(gè)表的主關(guān)鍵字和外關(guān)鍵字的數(shù)據(jù)應(yīng)一致,保證了表之間的數(shù)據(jù)的一致性,防止了數(shù)據(jù)丟失或無(wú)意義的數(shù)據(jù)在數(shù)據(jù)庫(kù)中擴(kuò)散。(3)用戶自定義的完整性:不同關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)根據(jù)其應(yīng)用環(huán)境的不同,往往還需要一些特殊的約束條件。上一頁(yè)下一頁(yè)返回2.2數(shù)據(jù)模型及組成要素用戶定義的完整性即是針對(duì)某個(gè)特定關(guān)系數(shù)據(jù)庫(kù)的約束條件,它反映某一具體應(yīng)用必須滿足的語(yǔ)義要求。4.三個(gè)世界計(jì)算機(jī)信息管理的對(duì)象是現(xiàn)實(shí)生活中的客觀事物,但這些事物是無(wú)法直接送入計(jì)算機(jī)的,必須進(jìn)一步整理和歸類,進(jìn)行信息的規(guī)范化,然后才能將規(guī)范信息數(shù)據(jù)化并送入計(jì)算機(jī)的數(shù)據(jù)庫(kù)中保存起來(lái)。這一過(guò)程經(jīng)歷了三個(gè)領(lǐng)域———現(xiàn)實(shí)世界、信息世界和數(shù)據(jù)世界。(1)現(xiàn)實(shí)世界:存在于人腦之外的客觀世界,包括事物及事物之間的聯(lián)系。這種聯(lián)系是客觀存在的,是由事物本身的性質(zhì)決定的。上一頁(yè)下一頁(yè)返回2.2數(shù)據(jù)模型及組成要素(2)信息世界:也稱概念世界,是現(xiàn)實(shí)世界在人們頭腦中的反映,也是對(duì)客觀事物及其聯(lián)系的一種抽象描述。從現(xiàn)實(shí)世界到概念世界是通過(guò)概念模型來(lái)表達(dá)的。(3)數(shù)據(jù)世界:將信息世界中的實(shí)體進(jìn)行數(shù)據(jù)化,事物及事物之間的聯(lián)系用數(shù)據(jù)模型來(lái)描述,存入計(jì)算機(jī)系統(tǒng)的數(shù)據(jù)是將概念世界中的事物數(shù)據(jù)化的結(jié)果。實(shí)現(xiàn)數(shù)據(jù)庫(kù)管理是三個(gè)世界的轉(zhuǎn)化過(guò)程,概念模型和數(shù)據(jù)模型是現(xiàn)實(shí)世界數(shù)據(jù)化的橋梁,是對(duì)現(xiàn)實(shí)世界中事物進(jìn)行抽象的工具。三個(gè)世界術(shù)語(yǔ)對(duì)照如表2.2所示。上一頁(yè)返回2.3概念模型2.3.1概念模型的術(shù)語(yǔ)表示最常用的描述概念模型的方法,稱為實(shí)體-關(guān)系方法(Entity?RelationshipApproach),簡(jiǎn)稱E-R方法。概念模型的相關(guān)概念如下:(1)實(shí)體(Entity):實(shí)體可以是存在的物體,客觀存在并相互區(qū)別的事物及其事物之間的聯(lián)系。(2)屬性(Attribute):實(shí)體所具有的某一特性。(3)主鍵(碼)(Key):唯一標(biāo)示實(shí)體的屬性集。(4)域(Domain):域是一組具有相同數(shù)據(jù)類型的值的集合。像整數(shù)、實(shí)數(shù)、介于某個(gè)取值范圍的整數(shù).下一頁(yè)返回2.3概念模型(5)實(shí)體型(EntityType):用實(shí)體名及其屬性名集合來(lái)抽象和刻畫(huà)同類實(shí)體,稱為實(shí)體型。(6)實(shí)體集(EntitySet):同型實(shí)體的集合稱為實(shí)體集。(7)關(guān)系(Relationship):實(shí)體與實(shí)體之間以及實(shí)體與組成它的各屬性間的關(guān)系。2.3.2實(shí)體之間的關(guān)系1.一對(duì)一關(guān)系(1∶1)在一對(duì)一關(guān)系中,A表中的一行最多只能匹配B表中的一行,反之亦然。上一頁(yè)下一頁(yè)返回2.3概念模型如果相關(guān)列都是主鍵或都具有唯一約束,則可以創(chuàng)建一對(duì)一關(guān)系。2.一對(duì)多關(guān)系(1∶N)一對(duì)多關(guān)系中,A表中的一行可以匹配B表中的多行,但是B表中的一行只能匹配A表中的一行。例如,student表和score表之間具有一對(duì)多關(guān)系:每個(gè)學(xué)生有多個(gè)成績(jī),但一個(gè)成績(jī)只能出自一個(gè)學(xué)生。只有當(dāng)一個(gè)相關(guān)列是一個(gè)主鍵或具有唯一約束時(shí),才能創(chuàng)建一對(duì)多關(guān)系。上一頁(yè)下一頁(yè)返回2.3概念模型3.多對(duì)多關(guān)系(M∶N)在多對(duì)多關(guān)系中,A表中的一行可以匹配B表中的多行,反之亦然。要?jiǎng)?chuàng)建這種關(guān)系,需要定義第三個(gè)表,稱為結(jié)合表,它的主鍵由A表和B表的外部鍵組成。上一頁(yè)返回2.4關(guān)系數(shù)據(jù)庫(kù)基本理論2.4.1關(guān)系模型的優(yōu)缺點(diǎn)一、關(guān)系模型關(guān)系模型由五部分組成,即它是一個(gè)五元組:R(U,D,DOM,F)其中,R:關(guān)系名;U:組成該關(guān)系的屬性名集合;D:屬性組U中屬性所來(lái)自的域;DOM:屬性向域的映像集合;F:屬性間數(shù)據(jù)的依賴關(guān)系集合。下一頁(yè)返回2.4關(guān)系數(shù)據(jù)庫(kù)基本理論二、關(guān)系模型的優(yōu)點(diǎn)(1)建立在嚴(yán)格數(shù)學(xué)概念基礎(chǔ)上,有嚴(yán)格的設(shè)計(jì)理論;概念單一、結(jié)構(gòu)簡(jiǎn)單直觀、易理解、語(yǔ)言表達(dá)簡(jiǎn)練。(2)描述一致,實(shí)體和聯(lián)系都用關(guān)系描述,查詢操作結(jié)果也是一個(gè)關(guān)系,保證了數(shù)據(jù)操作語(yǔ)言的一致性。(3)利用公共屬性連接,實(shí)體間的聯(lián)系容易實(shí)現(xiàn)。(4)由于存取路徑對(duì)用戶透明,數(shù)據(jù)獨(dú)立性更高,安全保密性更好。三、關(guān)系模型的缺點(diǎn)(1)查詢效率不高,速度慢,需要進(jìn)行查詢優(yōu)化。上一頁(yè)下一頁(yè)返回2.4關(guān)系數(shù)據(jù)庫(kù)基本理論(2)采用靜態(tài)數(shù)據(jù)模型。2.4.2關(guān)系的性質(zhì)(1)關(guān)系中不允許出現(xiàn)完全相同的元組或記錄。因?yàn)閿?shù)學(xué)上集合中沒(méi)有相同的元素,而關(guān)系是元組的集合,所以作為集合元素的元組應(yīng)該是唯一的。(2)關(guān)系中元組的順序可以任意交換。因此,可改變?cè)M使其具有某種排序,按照順序查詢數(shù)據(jù),以提高查詢速度。(3)關(guān)系中屬性的順序也可任意交換。交換時(shí)應(yīng)連同屬性名一起交換,否則將得到不同的關(guān)系。上一頁(yè)下一頁(yè)返回2.4關(guān)系數(shù)據(jù)庫(kù)基本理論(4)關(guān)系中各個(gè)屬性必須有不同的名字,同一屬性名下的各個(gè)值必須來(lái)自同一個(gè)域,即是同一類型的數(shù)據(jù)。(5)關(guān)系中每一字段必須是不可分的數(shù)據(jù)項(xiàng),它是一個(gè)確定的值,而不是值的集合。2.4.3數(shù)據(jù)依賴一、數(shù)據(jù)依賴的概念數(shù)據(jù)依賴是通過(guò)一個(gè)關(guān)系中屬性間值的相等與否體現(xiàn)出來(lái)的數(shù)據(jù)間的相互關(guān)系,它是數(shù)據(jù)庫(kù)模式設(shè)計(jì)的關(guān)鍵。上一頁(yè)下一頁(yè)返回2.4關(guān)系數(shù)據(jù)庫(kù)基本理論定義:設(shè)有一關(guān)系模式R(A1,A2,…,An),X和Y均為(A1,A2,…,An)的子集,對(duì)于R的值r來(lái)說(shuō),當(dāng)其中任意兩個(gè)元組u,v中對(duì)應(yīng)于X的那些屬性分量的值均相等時(shí),則有u,v中對(duì)應(yīng)于Y的那些屬性分量的值也相等,稱X函數(shù)決定Y,或Y依賴于X,記為X->Y。數(shù)據(jù)依賴體現(xiàn)在:?一個(gè)關(guān)系內(nèi)部屬性與屬性之間的約束關(guān)系;?現(xiàn)實(shí)世界屬性間相互聯(lián)系的抽象;?數(shù)據(jù)內(nèi)在的性質(zhì);?語(yǔ)義的體現(xiàn)。上一頁(yè)下一頁(yè)返回2.4關(guān)系數(shù)據(jù)庫(kù)基本理論二、函數(shù)依賴的分類函數(shù)依賴可分為完全函數(shù)依賴、部分函數(shù)依賴和傳遞函數(shù)依賴。1.完全函數(shù)依賴定義:在R(U)中,如果X->Y,對(duì)于X的任意一個(gè)真子集X′,都有X′不能決定Y,則稱Y對(duì)X完全函數(shù)依賴,記為XY。2.部分函數(shù)依賴定義:在R(U)中,如果X->Y,但Y不完全函數(shù)依賴于X,則稱Y對(duì)X部分函數(shù)依賴。3.傳遞函數(shù)依賴上一頁(yè)下一頁(yè)返回2.4關(guān)系數(shù)據(jù)庫(kù)基本理論定義:在R(U)中,當(dāng)且僅當(dāng)X->Y,Y->Z時(shí),稱Z對(duì)X傳遞函數(shù)依賴。此外,數(shù)據(jù)依賴還包括多值依賴和連接依賴兩種形式。關(guān)系模型存在的問(wèn)題是:?數(shù)據(jù)冗余太大;?更新異常(UpdateAnomalies);?插入異常(InsertionAnomalies);?刪除異常(DeletionAnomalies)。關(guān)系“好”的模式應(yīng)該不會(huì)發(fā)生插入異常、刪除異常、更新異常,且數(shù)據(jù)冗余應(yīng)盡可能少。上一頁(yè)下一頁(yè)返回2.4關(guān)系數(shù)據(jù)庫(kù)基本理論產(chǎn)生冗余的原因是由于存在模式中的某些數(shù)據(jù)依賴,解決方法就是通過(guò)分解關(guān)系模式來(lái)消除其中不合適的數(shù)據(jù)依賴。2.4.4關(guān)系模式與模式分解一、關(guān)系模式(1)通過(guò)E-R模型轉(zhuǎn)化。(2)一個(gè)應(yīng)用中所有屬性構(gòu)成的一個(gè)單獨(dú)關(guān)系(泛關(guān)系的設(shè)計(jì))。(3)一些特殊關(guān)系設(shè)計(jì)的結(jié)果。關(guān)系數(shù)據(jù)庫(kù)中,關(guān)系模式是型,關(guān)系是值。上一頁(yè)下一頁(yè)返回2.4關(guān)系數(shù)據(jù)庫(kù)基本理論關(guān)系模式是對(duì)關(guān)系的描述,它的一般表示為:關(guān)系名(屬性1,屬性2,……,屬性n)。二、模式分解案例例15:采用分解的方法,將例14的模式S_C_G分解成以下三個(gè)模式:(學(xué)號(hào),姓名,年齡,專業(yè))S_G(學(xué)號(hào),課程號(hào),學(xué)分)C(課程號(hào),課程名,主講教師)三個(gè)模式的物理存儲(chǔ)如圖2.18所示。上一頁(yè)下一頁(yè)返回2.4關(guān)系數(shù)據(jù)庫(kù)基本理論一個(gè)關(guān)系分解成多個(gè)關(guān)系,要求是分解后不丟失原來(lái)的信息,且信息不僅包括數(shù)據(jù)本身,還包括由函數(shù)依賴所表示的數(shù)據(jù)之間的相互制約。進(jìn)行分解的目標(biāo)是達(dá)到減少數(shù)據(jù)冗余,解決插入異常、更新異常、刪除異常的目的。2.4.5規(guī)范化一、規(guī)范化的作用所謂模式規(guī)范化,就是對(duì)關(guān)系模式應(yīng)當(dāng)滿足的條件的某種處理,其目的是:(1)消除異?,F(xiàn)象。(2)方便用戶使用,簡(jiǎn)化檢索操作。上一頁(yè)下一頁(yè)返回2.4關(guān)系數(shù)據(jù)庫(kù)基本理論(3)加強(qiáng)數(shù)據(jù)獨(dú)立性。(4)使關(guān)系模式更靈活,更容易使用非過(guò)程化的高級(jí)查詢語(yǔ)言。(5)更容易進(jìn)行各種查詢統(tǒng)計(jì)工作。二、關(guān)系模式規(guī)范化的目的和原則根據(jù)實(shí)際情況,這些數(shù)據(jù)有如下語(yǔ)義規(guī)定:(1)一個(gè)系有若干學(xué)生,但一個(gè)學(xué)生只屬于一個(gè)系;(2)一個(gè)系只有一名系主任,但一個(gè)系主任可以同時(shí)兼幾個(gè)系的系主任;(3)一個(gè)學(xué)生可以選修多門(mén)功課,每門(mén)課程可有若干學(xué)生選修;(4)每個(gè)學(xué)生學(xué)習(xí)課程有一個(gè)成績(jī)。上一頁(yè)下一頁(yè)返回2.4關(guān)系數(shù)據(jù)庫(kù)基本理論即:一個(gè)關(guān)系只要其分量都是不可分的數(shù)據(jù)項(xiàng),就可稱作規(guī)范化的關(guān)系,但這只是最基本的規(guī)范化,這樣的關(guān)系模式是合法的。規(guī)范化的目的是使結(jié)構(gòu)合理,消除存儲(chǔ)異常,使數(shù)據(jù)冗余盡量小,便于插入、刪除和更新。規(guī)范化的基本原則就是遵從概念單一化“一事一地”的原則,即一個(gè)關(guān)系只描述一個(gè)實(shí)體或者實(shí)體間的聯(lián)系。若多于一個(gè)實(shí)體,就把它“分離”出來(lái)。因此,所謂規(guī)范化,實(shí)質(zhì)上是概念的單一化,即一個(gè)關(guān)系表示一個(gè)實(shí)體。關(guān)系數(shù)據(jù)庫(kù)的任意一個(gè)關(guān)系,需要滿足一定的數(shù)據(jù)依賴約束。滿足不同程度數(shù)據(jù)依賴約束的關(guān)系,稱為不同范式的關(guān)系。上一頁(yè)下一頁(yè)返回2.4關(guān)系數(shù)據(jù)庫(kù)基本理論2.4.6關(guān)系模式的范式一、規(guī)范化的標(biāo)準(zhǔn)在關(guān)系數(shù)據(jù)庫(kù)的規(guī)范化過(guò)程中,為不同程度的規(guī)范化要求設(shè)立的不同標(biāo)準(zhǔn)稱為范式(NormalForm)。不同范式的關(guān)系,存在不同程度的數(shù)據(jù)冗余等缺點(diǎn),為了克服這些缺點(diǎn),需要對(duì)關(guān)系模式進(jìn)行分解,使之從低一級(jí)范式轉(zhuǎn)化為高一級(jí)范式的集合,這種分解過(guò)程稱為規(guī)范化。如圖2.19所示,各個(gè)范式之間的關(guān)系為1NF?2NF?3NF?BCNF?4NF?5NF上一頁(yè)下一頁(yè)返回2.4關(guān)系數(shù)據(jù)庫(kù)基本理論將一個(gè)低一級(jí)范式的關(guān)系模式,通過(guò)模式分解可以轉(zhuǎn)換為若干個(gè)高一級(jí)范式的關(guān)系模式的集合,這種過(guò)程就叫規(guī)范化。二、不同范式的標(biāo)準(zhǔn)1.第一范式(1NF)如果關(guān)系模式R的每一個(gè)關(guān)系r的屬性值都是不可分的原子值,那么稱R是第一范式的模式。不是1NF的關(guān)系稱為非規(guī)范化的關(guān)系,滿足1NF的關(guān)系稱為規(guī)范化的關(guān)系。關(guān)系數(shù)據(jù)庫(kù)研究的關(guān)系都是規(guī)范化的關(guān)系。上一頁(yè)下一頁(yè)返回2.4關(guān)系數(shù)據(jù)庫(kù)基本理論所謂第一范式(1NF)是指數(shù)據(jù)庫(kù)表的每一列都是不可分割的基本數(shù)據(jù)項(xiàng),同一列中不能有多個(gè)值,即實(shí)體中的某個(gè)屬性不能有多個(gè)值或者不能有重復(fù)的屬性。如果出現(xiàn)重復(fù)的屬性,就可能需要定義一個(gè)新的實(shí)體,新的實(shí)體由重復(fù)的屬性構(gòu)成,新實(shí)體與原實(shí)體之間為一對(duì)多關(guān)系。在第一范式(1NF)中,每一行只包含一個(gè)實(shí)例的信息。即:第一范式就是無(wú)重復(fù)的列。【說(shuō)明】在任何一個(gè)關(guān)系數(shù)據(jù)庫(kù)中,第一范式(1NF)是對(duì)關(guān)系模式的基本要求,不滿足第一范式(1NF)的數(shù)據(jù)庫(kù)就不是關(guān)系數(shù)據(jù)庫(kù)。上一頁(yè)下一頁(yè)返回2.4關(guān)系數(shù)據(jù)庫(kù)基本理論2.第二范式(2NF)第二范式是在第一范式(1NF)的基礎(chǔ)上建立起來(lái)的,即滿足第二范式(2NF)必須先滿足第一范式(1NF)。第二范式(2NF)要求數(shù)據(jù)庫(kù)表中的每個(gè)實(shí)例或行,必須可以被唯一區(qū)分為實(shí)現(xiàn)實(shí)例的唯一標(biāo)識(shí)。例如學(xué)生學(xué)號(hào)是唯一的,因此定義為主鍵。第二范式(2NF)要求實(shí)體的屬性完全依賴于主關(guān)鍵字。所謂完全依賴是指不能存在僅依賴主關(guān)鍵字一部分的屬性,如果存在,那么這個(gè)屬性和主關(guān)鍵字的這一部分應(yīng)該分離出來(lái)形成一個(gè)新的實(shí)體,新實(shí)體與原實(shí)體之間是一對(duì)多的關(guān)系。上一頁(yè)下一頁(yè)返回2.4關(guān)系數(shù)據(jù)庫(kù)基本理論為實(shí)現(xiàn)區(qū)分通常需要為表加上一個(gè)列,以存儲(chǔ)各個(gè)實(shí)例的唯一標(biāo)識(shí)。即:第二范式就是屬性完全依賴于主鍵。3.第三范式(3NF)如果關(guān)系模式R是1NF,且每個(gè)非主屬性都不傳遞函數(shù)依賴于R的候選鍵,那么稱R是第三范式(3NF)的模式。如果數(shù)據(jù)庫(kù)模式中每個(gè)關(guān)系模式都是3NF,則稱其為3NF的數(shù)據(jù)庫(kù)模式。滿足第三范式(3NF)必須先滿足第二范式(2NF)。即:第三范式(3NF)要求一個(gè)數(shù)據(jù)庫(kù)表中不包含已在其他表中已包含的非主關(guān)鍵字信息。第三范式就是屬性不依賴于其他非主屬性。上一頁(yè)下一頁(yè)返回2.4關(guān)系數(shù)據(jù)庫(kù)基本理論若不滿足第二范式的要求,會(huì)產(chǎn)生如下問(wèn)題:(1)數(shù)據(jù)冗余。(2)更新異常。(3)刪除異常。4.BCNF范式在第三范式的基礎(chǔ)上,關(guān)系模式R中,若每一個(gè)決定因素都包含碼(每一個(gè)依賴的決定因素都是候選碼),則R屬于BCNF。BCNF的關(guān)系模式必須滿足下面的條件:(1)主屬性對(duì)每一個(gè)不包含它的碼,是完全函數(shù)依賴;上一頁(yè)下一頁(yè)返回2.4關(guān)系數(shù)據(jù)庫(kù)基本理論(2)非主屬性對(duì)每一個(gè)碼也都是完全函數(shù)依賴;(3)沒(méi)有任何屬性完全函數(shù)依賴于非碼的任何一組屬性。在關(guān)系模式STC(S,T,C)中,S表示學(xué)生,T表示教師,C表示課程。每一教師只教一門(mén)課。每門(mén)課由若干教師教,某一學(xué)生選定某門(mén)課,就確定了一個(gè)固定的教師。某個(gè)學(xué)生選修某個(gè)教師的課就確定了所選課的名稱:(S,C)->T,(S,T)->C,T->CBCNF規(guī)范化是指把3NF關(guān)系模式通過(guò)投影分解轉(zhuǎn)換成BCNF關(guān)系模式的集合。上一頁(yè)下一頁(yè)返回2.4關(guān)系數(shù)據(jù)庫(kù)基本理論BCNF關(guān)系模式具有的性質(zhì):?所有非主屬性都完全函數(shù)依賴于每個(gè)候選碼。?所有主屬性都完全函數(shù)依賴于每個(gè)不包含它的候選碼。?沒(méi)有任何屬性完全函數(shù)依賴于非主碼的任何一組屬性。三、關(guān)系模式規(guī)范化的步驟規(guī)范化就是對(duì)原關(guān)系進(jìn)行投影,消除決定屬性不是候選鍵的任何函數(shù)依賴。具體可以分為以下幾步:(1)對(duì)1NF關(guān)系進(jìn)行投影,消除原關(guān)系中非主屬性對(duì)鍵的部分函數(shù)依賴,將1NF關(guān)系轉(zhuǎn)換成若干個(gè)2NF關(guān)系。上一頁(yè)下一頁(yè)返回2.4關(guān)系數(shù)據(jù)庫(kù)基本理論(2)對(duì)2NF關(guān)系進(jìn)行投影,消除原關(guān)系中非主屬性對(duì)鍵的傳遞函數(shù)依賴,將2NF關(guān)系轉(zhuǎn)換成若干個(gè)3NF關(guān)系。(3)對(duì)3NF關(guān)系進(jìn)行投影,消除原關(guān)系中非主屬性對(duì)鍵的部分函數(shù)依賴和傳遞函數(shù)依賴,即:決定因素都包含一個(gè)候選鍵。得到一組BCNF關(guān)系。(4)限制關(guān)系模式的屬性之間不允許有非平凡且非函數(shù)依賴的多值依賴,稱為4NF關(guān)系。規(guī)范化的基本步驟如圖2.23所示。四、規(guī)范化的應(yīng)用上一頁(yè)下一頁(yè)返回2.4關(guān)系數(shù)據(jù)庫(kù)基本理論在實(shí)際應(yīng)用中,最有價(jià)值的是3NF和BCNF,在進(jìn)行關(guān)系模式的設(shè)計(jì)時(shí),通常分解到3NF就足夠了。規(guī)范化理論提供了一套完整的模式分解算法,按照這套算法可以做到:(1)若要求分解具有無(wú)損連接性,那么模式分解一定能夠達(dá)到4NF。(2)若要求分解保持函數(shù)依賴,那么模式分解一定能夠達(dá)到3NF,但不一定能夠達(dá)到BCNF。(3)若要求分解既具有無(wú)損連接性,又保持函數(shù)依賴,則模式分解一定能夠達(dá)到3NF,但不一定能夠達(dá)到BCNF。上一頁(yè)返回2.5數(shù)據(jù)庫(kù)設(shè)計(jì)步驟數(shù)據(jù)庫(kù)設(shè)計(jì)是建立數(shù)據(jù)庫(kù)及其應(yīng)用系統(tǒng)的技術(shù),是信息系統(tǒng)開(kāi)發(fā)和建設(shè)中的核心技術(shù)。它是規(guī)劃和結(jié)構(gòu)化數(shù)據(jù)庫(kù)中的數(shù)據(jù)對(duì)象以及這些數(shù)據(jù)對(duì)象之間關(guān)系的過(guò)程,即根據(jù)用戶的需求,在某一具體的數(shù)據(jù)庫(kù)管理系統(tǒng)上,設(shè)計(jì)數(shù)據(jù)庫(kù)的結(jié)構(gòu)和建立數(shù)據(jù)庫(kù)的過(guò)程。2.5.1數(shù)據(jù)庫(kù)工程的內(nèi)容以數(shù)據(jù)庫(kù)為基礎(chǔ)的信息系統(tǒng)通常稱為數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng),它一般具有信息的采集、組織、加工、抽取和傳播等功能。數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)的開(kāi)發(fā)是一項(xiàng)軟件工程,但又有自己特有的特點(diǎn),所以稱為“數(shù)據(jù)庫(kù)工程”。一項(xiàng)數(shù)據(jù)庫(kù)工程按內(nèi)容可分為兩部分。下一頁(yè)返回2.5數(shù)據(jù)庫(kù)設(shè)計(jì)步驟一部分是作為系統(tǒng)核心的數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn);另一部分是相應(yīng)的應(yīng)用軟件及其他軟件(如通信軟件)的設(shè)計(jì)與實(shí)現(xiàn)。2.5.2數(shù)據(jù)庫(kù)生存期按照軟件生存期,把數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)從開(kāi)始規(guī)劃、設(shè)計(jì)、實(shí)現(xiàn)、維護(hù)到最后被新的系統(tǒng)取代而停止使用的整個(gè)期間,稱為數(shù)據(jù)庫(kù)系統(tǒng)生存期。2.5.3數(shù)據(jù)庫(kù)開(kāi)發(fā)步驟(1)規(guī)劃:進(jìn)行建立數(shù)據(jù)庫(kù)的必要性及可行性研究,確定數(shù)據(jù)庫(kù)系統(tǒng)在組織中和信息系統(tǒng)中的地位,以及各個(gè)數(shù)據(jù)庫(kù)之間的關(guān)系。上一頁(yè)下一頁(yè)返回2.5數(shù)據(jù)庫(kù)設(shè)計(jì)步驟規(guī)劃階段的任務(wù):①確定系統(tǒng)的范圍。②確定開(kāi)發(fā)工作所需的資源(人員、硬件和軟件)。③估算軟件開(kāi)發(fā)的成本。④確定項(xiàng)目的進(jìn)度。(2)需求分析:收集數(shù)據(jù)庫(kù)所有用戶的信息內(nèi)容和處理需求,加以規(guī)格化和分析。在分析用戶要求時(shí),要確保用戶目標(biāo)的一致性。①分析用戶活動(dòng),產(chǎn)生用戶活動(dòng)圖。②確定系統(tǒng)范圍,產(chǎn)生系統(tǒng)范圍圖。上一頁(yè)下一頁(yè)返回2.5數(shù)據(jù)庫(kù)設(shè)計(jì)步驟③分析用戶活動(dòng)所涉及的數(shù)據(jù),產(chǎn)生數(shù)據(jù)流圖。④分析系統(tǒng)數(shù)據(jù),產(chǎn)生數(shù)據(jù)字典。(3)概念設(shè)計(jì):把用戶的信息要求統(tǒng)一到一個(gè)整體邏輯結(jié)構(gòu)(即“概念模式”)中。此結(jié)構(gòu)應(yīng)能表達(dá)用戶的要求,且獨(dú)立于DBMS軟件和硬件。(4)邏輯設(shè)計(jì):邏輯設(shè)計(jì)的任務(wù)是把概念設(shè)計(jì)階段得到的全局E-R模式轉(zhuǎn)換成與選用的具體機(jī)器上DBMS產(chǎn)品所支持的數(shù)據(jù)模型相符合的邏輯結(jié)構(gòu)。(5)物理設(shè)計(jì):將對(duì)給定的基本數(shù)據(jù)模型選取一個(gè)最合適應(yīng)用環(huán)境的物理結(jié)構(gòu)的過(guò)程,稱為物理設(shè)計(jì)。上一頁(yè)下一頁(yè)返回2.5數(shù)據(jù)庫(kù)設(shè)計(jì)步驟數(shù)據(jù)庫(kù)的物理結(jié)構(gòu)主要指數(shù)據(jù)庫(kù)的存儲(chǔ)記錄格式、存儲(chǔ)記錄安排和存取方法。物理設(shè)計(jì)分為五步:①存儲(chǔ)記錄結(jié)構(gòu)設(shè)計(jì):包括記錄的組成,數(shù)據(jù)項(xiàng)的類型、長(zhǎng)度,以及邏輯記錄到存儲(chǔ)記錄的映射。②確定數(shù)據(jù)存放位置:可以把經(jīng)常同時(shí)被訪問(wèn)的數(shù)據(jù)組合在一起,“記錄聚蔟”技術(shù)能滿足這個(gè)要求。③存取方法的設(shè)計(jì):存取路徑分為主存取路徑與輔存取路徑,前者用于主鍵檢索,后者用于輔助鍵檢索。④完整性和安全性考慮:設(shè)計(jì)者應(yīng)在完整性、安全性、有效性和效率方面進(jìn)行分析,做出權(quán)衡。上一頁(yè)下一頁(yè)返回2.5數(shù)據(jù)庫(kù)設(shè)計(jì)步驟⑤程序設(shè)計(jì):在邏輯數(shù)據(jù)庫(kù)結(jié)構(gòu)確定后,應(yīng)用程序設(shè)計(jì)就應(yīng)當(dāng)隨之開(kāi)始。這一階段的成果是得到一個(gè)完整的、能實(shí)現(xiàn)的數(shù)據(jù)庫(kù)結(jié)構(gòu)。(6)實(shí)現(xiàn):根據(jù)邏輯設(shè)計(jì)和物理設(shè)計(jì)的結(jié)果,在計(jì)算機(jī)系統(tǒng)上建立起實(shí)際數(shù)據(jù)庫(kù)結(jié)構(gòu)、裝入數(shù)據(jù)、測(cè)試和試運(yùn)行的過(guò)程稱為數(shù)據(jù)庫(kù)的實(shí)現(xiàn)階段。該階段主要有三項(xiàng)工作:①建立實(shí)際數(shù)據(jù)庫(kù)結(jié)構(gòu)。②裝入實(shí)驗(yàn)數(shù)據(jù)對(duì)應(yīng)用程序進(jìn)行調(diào)試。③裝入實(shí)際數(shù)據(jù)。上一頁(yè)下一頁(yè)返回2.5數(shù)據(jù)庫(kù)設(shè)計(jì)步驟(7)運(yùn)行維護(hù):主要收集和記錄系統(tǒng)運(yùn)行狀況的數(shù)據(jù),用來(lái)評(píng)價(jià)數(shù)據(jù)庫(kù)系統(tǒng)的性能,更進(jìn)一步對(duì)系統(tǒng)進(jìn)行修正,主要任務(wù)有四項(xiàng):①維護(hù)(糾錯(cuò)性、適應(yīng)性、完善性)數(shù)據(jù)庫(kù)的安全性與完整性。②監(jiān)測(cè)并改善數(shù)據(jù)庫(kù)運(yùn)行性能。③根據(jù)用戶要求對(duì)數(shù)據(jù)庫(kù)現(xiàn)有功能進(jìn)行擴(kuò)充。④及時(shí)改正運(yùn)行中發(fā)現(xiàn)的系統(tǒng)錯(cuò)誤。但是如果應(yīng)用變化太大,表明該數(shù)據(jù)庫(kù)的生存期結(jié)束,那么應(yīng)該設(shè)計(jì)新的數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)了。數(shù)據(jù)庫(kù)設(shè)計(jì)步驟如圖2.24所示。上一頁(yè)返回2.6創(chuàng)建數(shù)據(jù)庫(kù)2.6.1數(shù)據(jù)庫(kù)設(shè)計(jì)的要求一、建立數(shù)據(jù)庫(kù)文件的要求(1)盡量減少數(shù)據(jù)的重復(fù),使數(shù)據(jù)具有最小的冗余度。(2)提高數(shù)據(jù)的利用率,使眾多用戶能共享數(shù)據(jù)資源。(3)注意保持?jǐn)?shù)據(jù)的完整性和同一數(shù)據(jù)的一致性。這對(duì)某些需要?dú)v史數(shù)據(jù)來(lái)進(jìn)行預(yù)測(cè)、決策的部門(mén)(如統(tǒng)計(jì)局、銀行等)特別重要,特別是多用戶同時(shí)共享數(shù)據(jù)庫(kù)時(shí),避免造成數(shù)據(jù)混亂。(4)對(duì)于某些需要保密的數(shù)據(jù),必須增設(shè)添加密碼的保密措施。(5)數(shù)據(jù)的大小要適中,以提高查尋速率和數(shù)據(jù)的維護(hù)性。下一頁(yè)返回2.6創(chuàng)建數(shù)據(jù)庫(kù)二、數(shù)據(jù)庫(kù)設(shè)計(jì)的一般規(guī)則(1)確定創(chuàng)建數(shù)據(jù)庫(kù)所要完成任務(wù)的目的。通過(guò)需求分析確定建立數(shù)據(jù)庫(kù)的目的,需求分析的主要任務(wù)是詳細(xì)調(diào)查,研究客戶需要,明確客戶要對(duì)哪些數(shù)據(jù)進(jìn)行處理,需要哪些數(shù)據(jù)管理功能,然后決定在數(shù)據(jù)庫(kù)中如何組織數(shù)據(jù)。需求分析是直接決定數(shù)據(jù)庫(kù)的運(yùn)行速度、運(yùn)行效率和質(zhì)量的主要依據(jù)。(2)確定創(chuàng)建數(shù)據(jù)庫(kù)所需要的表。將所有信息放在一個(gè)表中,難免會(huì)出現(xiàn)大量的冗余,容易造成存儲(chǔ)空間的浪費(fèi)。上一頁(yè)下一頁(yè)返回2.6創(chuàng)建數(shù)據(jù)庫(kù)一般要求將所要處理的信息分成不同主題,把每個(gè)主題的相關(guān)數(shù)據(jù)構(gòu)成數(shù)據(jù)庫(kù)中的一個(gè)表,按照第三范式的規(guī)則進(jìn)行分解;一個(gè)表應(yīng)是關(guān)于某個(gè)特定主題的數(shù)據(jù)集合,對(duì)每個(gè)主題使用單個(gè)表,不僅使數(shù)據(jù)庫(kù)的效率高,還能減少數(shù)據(jù)輸入的錯(cuò)誤。(3)確定表中所需要的結(jié)構(gòu),即需要設(shè)計(jì)表中的字段以確定每個(gè)表中保存的數(shù)據(jù)信息。設(shè)計(jì)表中字段要遵循兩個(gè)原則:字段唯一性和字段無(wú)關(guān)性。字段唯一性是指表中的每個(gè)字段只能包含唯一類型的數(shù)據(jù)信息;而字段無(wú)關(guān)性是指在不影響其他字段的情況下,必須能夠?qū)θ我庾侄芜M(jìn)行修改。上一頁(yè)下一頁(yè)返回2.6創(chuàng)建數(shù)據(jù)庫(kù)(4)明確主關(guān)鍵字段和外鍵,確定表之間的關(guān)系,表中的字段是互相關(guān)聯(lián)的,這種關(guān)聯(lián)通過(guò)表之間的聯(lián)系來(lái)實(shí)現(xiàn)。所以需要分析每個(gè)表,以確定表中的數(shù)據(jù)和其他表中數(shù)據(jù)有何聯(lián)系。必要時(shí),可在表中加入字段或創(chuàng)建一個(gè)新表來(lái)明確這種聯(lián)系,以達(dá)到可以使用查詢、窗體和報(bào)表快速查找并組合存儲(chǔ)在各個(gè)不同表中的信息的目的。(5)優(yōu)化設(shè)計(jì),即數(shù)據(jù)庫(kù)設(shè)計(jì)需要不斷發(fā)現(xiàn)問(wèn)題、改進(jìn)設(shè)計(jì)。改進(jìn)設(shè)計(jì)是指對(duì)所作設(shè)計(jì)進(jìn)一步分析、查找其中的錯(cuò)誤和存在的問(wèn)題,并加以完善。(6)最后,需要輸入數(shù)據(jù)并創(chuàng)建其他數(shù)據(jù)庫(kù)對(duì)象,包括查詢、窗體和報(bào)表等。上一頁(yè)下一頁(yè)返回2.6創(chuàng)建數(shù)據(jù)庫(kù)2.6.2使用模板創(chuàng)建數(shù)據(jù)庫(kù)一、模板的概念Access2013提供了“任務(wù)”“事件”“問(wèn)題Web數(shù)據(jù)庫(kù)”及“學(xué)生”等多種多樣數(shù)據(jù)庫(kù)模板,使用這些模板可以加快數(shù)據(jù)庫(kù)創(chuàng)建過(guò)程。模板是預(yù)設(shè)的數(shù)據(jù)庫(kù),其中包含執(zhí)行特定任務(wù)時(shí)所需的表、查詢、窗體和報(bào)表。可以按照模板定義數(shù)據(jù)庫(kù)表、字段,包含窗體和報(bào)表等。如果給定的某個(gè)模板符合需要,使用該模板可以最快地完成數(shù)據(jù)庫(kù)設(shè)計(jì)。但是,模板含有已定義好的數(shù)據(jù)結(jié)構(gòu),要使現(xiàn)有數(shù)據(jù)適合于模板的結(jié)構(gòu)可能需要大量的工作,此時(shí),可以根據(jù)需求自定義數(shù)據(jù)庫(kù)的字段、類型和大小,以便滿足多種需要。上一頁(yè)下一頁(yè)返回2.6創(chuàng)建數(shù)據(jù)庫(kù)二、創(chuàng)建的方法步驟(1)在“開(kāi)始使用MicrosoftOfficeAccess”頁(yè)中,單擊“樣本模板”,則顯示多個(gè)特色模板,界面左側(cè)顯示最近使用過(guò)的數(shù)據(jù)庫(kù)選項(xiàng),中間顯示空白數(shù)據(jù)庫(kù)、右側(cè)為數(shù)據(jù)庫(kù)的名字及存儲(chǔ)的路徑。若單擊“學(xué)生”模板,如圖2.25所示。(2)單擊“聯(lián)系人”模板,Access將在“文件名”框中為數(shù)據(jù)庫(kù)提供一個(gè)建議的文件名“數(shù)據(jù)庫(kù)1”(默認(rèn)的擴(kuò)展名.accdb)。可以根據(jù)需要更改該文件名。上一頁(yè)下一頁(yè)返回2.6創(chuàng)建數(shù)據(jù)庫(kù)如果希望保存數(shù)據(jù)庫(kù)的文件夾不同于文件名框下顯示的文件夾,單擊,通過(guò)瀏覽找到要保存數(shù)據(jù)庫(kù)的文件夾,然后單擊“確定”按鈕。(3)也可以創(chuàng)建數(shù)據(jù)庫(kù)并將其鏈接到Office.com網(wǎng)站上下載更多的數(shù)據(jù)庫(kù)模板。(4)選擇“聯(lián)系人”模板,填寫(xiě)數(shù)據(jù)庫(kù)名為“學(xué)生通信錄”,然后單擊“創(chuàng)建”按鈕,則打開(kāi)如圖2.26所示對(duì)話框。從創(chuàng)建的內(nèi)容,可以看到導(dǎo)航窗格中系統(tǒng)提供的相應(yīng)數(shù)據(jù)庫(kù)表結(jié)構(gòu)、窗體和報(bào)表視圖,如圖2.27所示。上一頁(yè)下一頁(yè)返回2.6創(chuàng)建數(shù)據(jù)庫(kù)(5)右鍵單擊視圖名選擇“設(shè)計(jì)視圖”,可按需要添加、刪除相應(yīng)字段、類型和字段大小。三、使用提供的模板(1)Access2013能通過(guò)創(chuàng)建應(yīng)用程序和桌面數(shù)據(jù)庫(kù)建立模板數(shù)據(jù)庫(kù),前者模板在圖片上包括地球圖標(biāo),后者不包括。帶地球標(biāo)志模板能實(shí)時(shí)共享數(shù)據(jù)庫(kù),任何人只要擁有權(quán)限均可查看和編輯數(shù)據(jù),即使沒(méi)有環(huán)境也不例外,能通過(guò)Office應(yīng)用商店獲取應(yīng)用程序模板,也可在創(chuàng)建Access應(yīng)用程序時(shí)獲取模板。如果只希望在電腦上創(chuàng)建本地?cái)?shù)據(jù)庫(kù),那么就選擇桌面數(shù)據(jù)庫(kù)模板,而不是Access應(yīng)用程序模板。上一頁(yè)下一頁(yè)返回2.6創(chuàng)建數(shù)據(jù)庫(kù)這樣無(wú)須花心思選擇Web位置。要查看更多模板,使用“開(kāi)始”屏幕上模板上方的搜索框。(2)使用Access應(yīng)用程序組織數(shù)據(jù)的速度很快,如果使用模板則速度更快。當(dāng)選擇某個(gè)模板從頭構(gòu)建某個(gè)應(yīng)用程序時(shí),則Access將匯編該應(yīng)用程序,其中包含了可能由自己添加的表。(3)關(guān)于更多二者的不同,可在任何一個(gè)模板上單擊“我應(yīng)創(chuàng)建Access2013應(yīng)用或Access桌面數(shù)據(jù)庫(kù)嗎?”,聯(lián)網(wǎng)查看,如圖2.28所示。(4)使用聯(lián)機(jī)模板在Access2013開(kāi)始界面上方進(jìn)行搜索即可,如圖2.29所示。上一頁(yè)下一頁(yè)返回2.6創(chuàng)建數(shù)據(jù)庫(kù)2.6.3創(chuàng)建空白數(shù)據(jù)庫(kù)如果不使用模板,則可自行設(shè)計(jì)表、窗體、報(bào)表和其他對(duì)象來(lái)創(chuàng)建數(shù)據(jù)庫(kù)。單擊開(kāi)始界面的“空白桌面數(shù)據(jù)庫(kù)”圖標(biāo),在彈出的對(duì)話框中選擇數(shù)據(jù)庫(kù)存放的位置,輸入數(shù)據(jù)庫(kù)的名稱。創(chuàng)建的方法和步驟為:(1)在“開(kāi)始使用MicrosoftOfficeAccess”頁(yè)中單擊“空白桌面數(shù)據(jù)庫(kù)”圖標(biāo),如圖2.30所示。(2)此時(shí),彈出對(duì)話框窗口中的“文件名”缺省文件名為“數(shù)據(jù)庫(kù)1”,可以鍵入相關(guān)內(nèi)容的文件名,例如,鍵入“2013學(xué)生數(shù)據(jù)庫(kù)”,默認(rèn)情況下,庫(kù)文件將保存在文檔文件夾中。上一頁(yè)下一頁(yè)返回2.6創(chuàng)建數(shù)據(jù)庫(kù)若要更改文件的默認(rèn)位置,單擊文本框旁邊的瀏覽按鈕,通過(guò)瀏覽找到新位置來(lái)存放數(shù)據(jù)庫(kù),再單擊“創(chuàng)建”按鈕即可,如圖2.31所示。(3)單擊【創(chuàng)建】菜單命令后,并在數(shù)據(jù)庫(kù)視圖中打開(kāi)默認(rèn)名為“表1”的空數(shù)據(jù)表,且鼠標(biāo)聚焦在添加新字段列中的第一個(gè)空單元格中,如圖2.32所示。(4)可以開(kāi)始添加數(shù)據(jù)表字段名稱、添加主鍵和記錄等數(shù)據(jù)內(nèi)容。(5)關(guān)于表創(chuàng)建的詳細(xì)過(guò)程詳見(jiàn)第3章3.1創(chuàng)建表的內(nèi)容。上一頁(yè)返回2.7網(wǎng)絡(luò)共享數(shù)據(jù)庫(kù)2.7.1Web數(shù)據(jù)庫(kù)的概念一、什么是Web數(shù)據(jù)庫(kù)Web數(shù)據(jù)庫(kù)指在互聯(lián)網(wǎng)中以Web查詢接口方式訪問(wèn)的數(shù)據(jù)庫(kù)。用戶使用Internet的WWW信息服務(wù),在有權(quán)限時(shí)可在任何地點(diǎn)通過(guò)瀏覽器訪問(wèn)、編輯修改數(shù)據(jù)庫(kù)。也可查詢和共享建立在WWW服務(wù)器所有站點(diǎn)上的超媒體信息,包括圖形、圖像、文本、動(dòng)畫(huà)、視頻和音頻數(shù)據(jù)。后臺(tái)數(shù)據(jù)庫(kù)服務(wù)器采用數(shù)據(jù)庫(kù)管理系統(tǒng)存儲(chǔ)數(shù)據(jù)信息,對(duì)外提供包含表單的Web頁(yè)面作為訪問(wèn)接口,將查詢、統(tǒng)計(jì)、修改結(jié)果以數(shù)據(jù)列表的Web頁(yè)面形式返回給遠(yuǎn)程用戶。下一頁(yè)返回2.7網(wǎng)絡(luò)共享數(shù)據(jù)庫(kù)使用Web數(shù)據(jù)庫(kù),應(yīng)建立Web應(yīng)用程序所必需的服務(wù)器端環(huán)境和本機(jī)開(kāi)發(fā)環(huán)境,常使用ASP.NET、PHP、JSP及Java等語(yǔ)言建立遠(yuǎn)程數(shù)據(jù)庫(kù)管理系統(tǒng),Web數(shù)據(jù)庫(kù)管理系統(tǒng)是指基于Web模式的DBMS的信息服務(wù)平臺(tái),它充分發(fā)揮DBMS高效的數(shù)據(jù)存儲(chǔ)和管理能力,以Web瀏覽器/服務(wù)器(B/S)模式或客戶端/服務(wù)器(C/S)模式,為客戶端提供內(nèi)容豐富的資源共享。上一頁(yè)下一頁(yè)返回2.7網(wǎng)絡(luò)共享數(shù)據(jù)庫(kù)使用ADO(ActiveXDataObject,它是內(nèi)置的數(shù)據(jù)庫(kù)訪問(wèn)組件,是Microsoft在OLEDBAPI之上提供的一種面向?qū)ο蟮摹⑴c語(yǔ)言無(wú)關(guān)的應(yīng)用程序編程接口)的數(shù)據(jù)庫(kù)資源,把網(wǎng)頁(yè)搜索、查詢的數(shù)據(jù)庫(kù)內(nèi)容以適當(dāng)方式顯示在頁(yè)面上,通過(guò)Web頁(yè)進(jìn)行插入、更新和刪除記錄,實(shí)現(xiàn)網(wǎng)上客戶端頁(yè)面設(shè)計(jì)和網(wǎng)站后臺(tái)管理的頁(yè)面設(shè)計(jì)。Web數(shù)據(jù)庫(kù)的數(shù)據(jù)相比搜索引擎返回的查詢結(jié)果更全面,它是提供一個(gè)或多個(gè)領(lǐng)域的數(shù)據(jù)記錄,且具有完整的模式信息,用戶看到的查詢、統(tǒng)計(jì)結(jié)果僅為Web數(shù)據(jù)庫(kù)中的一部分。上一頁(yè)下一頁(yè)返回2.7網(wǎng)絡(luò)共享數(shù)據(jù)庫(kù)Web數(shù)據(jù)庫(kù)集成的主要目的是為用戶提供多個(gè)Web數(shù)據(jù)庫(kù)資源的統(tǒng)一訪問(wèn)方式?,F(xiàn)有的Web數(shù)據(jù)庫(kù)集成方式可以分為三類:?數(shù)據(jù)供應(yīng)模式;?數(shù)據(jù)收集模式;?元搜索模式。二、Web數(shù)據(jù)庫(kù)的優(yōu)點(diǎn)(1)全局訪問(wèn)能力。(2)減少開(kāi)發(fā)成本。(3)交叉平臺(tái)支持。上一頁(yè)下一頁(yè)返回2.7網(wǎng)絡(luò)共享數(shù)據(jù)庫(kù)三、Web數(shù)據(jù)庫(kù)系統(tǒng)的體系結(jié)構(gòu)一般實(shí)現(xiàn)Web數(shù)據(jù)庫(kù)系統(tǒng)的連接和應(yīng)用可采取兩種方法,一種是在Web服務(wù)器端提供中間件來(lái)連接Web服務(wù)器和數(shù)據(jù)庫(kù)服務(wù)器,另一種是把應(yīng)用程序下載到客戶端并在客戶端直接訪問(wèn)數(shù)據(jù)庫(kù)。中間件負(fù)責(zé)管理Web服務(wù)器和數(shù)據(jù)庫(kù)服務(wù)器之間的通信并提供應(yīng)用程序服務(wù),它能夠直接調(diào)用外部程序或腳本代碼來(lái)訪問(wèn)數(shù)據(jù)庫(kù),因此可以提供與數(shù)據(jù)庫(kù)相關(guān)的動(dòng)態(tài)HTML頁(yè)面,或執(zhí)行用戶查詢,并將查詢結(jié)果以頁(yè)面形式顯示,通過(guò)Web服務(wù)器返回給客戶端的瀏覽器。最基本的中間件技術(shù)有通用網(wǎng)關(guān)接口CGI和應(yīng)用程序接口API兩種,如圖2.33所示。上一頁(yè)下一頁(yè)返回2.7網(wǎng)絡(luò)共享數(shù)據(jù)庫(kù)四、通用網(wǎng)關(guān)接口CGICGI(CommonGatewayInterface,通用網(wǎng)關(guān)接口)是Web服務(wù)器與外部擴(kuò)展程序交互的一個(gè)接口標(biāo)準(zhǔn)。Web服務(wù)器通過(guò)調(diào)用CGI程序?qū)崿F(xiàn)和Web瀏覽器的交互,也就是CGI程序接受Web瀏覽器發(fā)送給Web服務(wù)器的信息并進(jìn)行處理,將響應(yīng)結(jié)果再回送給Web服務(wù)器及Web瀏覽器。CGI程序一般完成Web網(wǎng)頁(yè)中表單(Form)數(shù)據(jù)處理、數(shù)據(jù)庫(kù)查詢和實(shí)現(xiàn)與傳統(tǒng)應(yīng)用系統(tǒng)的集成等工作。CGI程序可以用任何程序設(shè)計(jì)語(yǔ)言編寫(xiě),如Shell腳本語(yǔ)言、Perl、Fortran、Pascal、C++、C#、VisualBasic、Delphi等。上一頁(yè)下一頁(yè)返回2.7網(wǎng)絡(luò)共享數(shù)據(jù)庫(kù)CGI是WWW服務(wù)器運(yùn)行時(shí)外部程序的規(guī)范,按照CGI編寫(xiě)的程序可以擴(kuò)展服務(wù)器的功能,完成服務(wù)器本身不能完成的工作,外部程序執(zhí)行時(shí)間可以生成HTML文檔,并將文檔返回WWW服務(wù)器。CGI應(yīng)用程序能將從瀏覽器獲得的數(shù)據(jù)放到數(shù)據(jù)庫(kù)中。從體系結(jié)構(gòu)上來(lái)看,用戶通過(guò)Web瀏覽器輸入查詢信息,瀏覽器通過(guò)HTTP協(xié)議向Web服務(wù)器發(fā)出帶有查詢信息的請(qǐng)求,Web服務(wù)器按照CGI協(xié)議激活外部CGI程序,由該程序向DBMS發(fā)出SQL請(qǐng)求并將結(jié)果轉(zhuǎn)化為HTML后返回給Web服務(wù)器。再由Web服務(wù)器返回給Web瀏覽器。上一頁(yè)下一頁(yè)返回2.7網(wǎng)絡(luò)共享數(shù)據(jù)庫(kù)這種結(jié)構(gòu)體現(xiàn)了客戶/服務(wù)器方式的三層模型,其中Web服務(wù)器和CGI程序?qū)嶋H起到了HTML和SQL轉(zhuǎn)換的網(wǎng)關(guān)作用。CGI的典型操作過(guò)程是:分析CGI數(shù)據(jù);打開(kāi)與DBMS的連接;發(fā)送SQL請(qǐng)求并得到結(jié)果;將結(jié)果轉(zhuǎn)化為HTML;關(guān)閉DBMS的連接;將HTML結(jié)果返回給Web服務(wù)器。基于Web的CGI數(shù)據(jù)庫(kù)訪問(wèn)利用已有的信息資源和服務(wù)器。其訪問(wèn)頻率大,尤其是熱點(diǎn)數(shù)據(jù)。但其主要的缺點(diǎn)是:(1)客戶端與后端數(shù)據(jù)庫(kù)服務(wù)器通信必須通過(guò)Web服務(wù)器,且Web服務(wù)器要進(jìn)行數(shù)據(jù)與HTML文檔的互相轉(zhuǎn)換,當(dāng)多個(gè)用戶同時(shí)發(fā)出請(qǐng)求時(shí),必然在Web服務(wù)器形成信息和發(fā)布瓶頸。上一頁(yè)下一頁(yè)返回2.7網(wǎng)絡(luò)共享數(shù)據(jù)庫(kù)(2)CGI應(yīng)用程序每次運(yùn)行都需打開(kāi)和關(guān)閉數(shù)據(jù)庫(kù)連接,效率低,操作費(fèi)時(shí)。(3)CGI應(yīng)用程序不能由多個(gè)客戶機(jī)請(qǐng)求共享,即使新請(qǐng)求到來(lái)時(shí)CGI程序正在運(yùn)行,也會(huì)啟動(dòng)另一個(gè)CGI應(yīng)用程序,隨著并行請(qǐng)求的數(shù)量增加,服務(wù)器上將生成越來(lái)越多的進(jìn)程。為每個(gè)請(qǐng)求都生成進(jìn)程既費(fèi)時(shí)又需要大量?jī)?nèi)存,影響了資源的使用效率,導(dǎo)致性能降低并增加等待時(shí)間。(4)由于SQL與HTML差異很大,CGI程序中的轉(zhuǎn)換代碼編寫(xiě)煩瑣,維護(hù)困難。上一頁(yè)下一頁(yè)返回2.7網(wǎng)絡(luò)共享數(shù)據(jù)庫(kù)(5)安全性差,缺少用戶訪問(wèn)控制,對(duì)數(shù)據(jù)庫(kù)難以設(shè)置安全訪問(wèn)權(quán)限。(6)HTTP協(xié)議是無(wú)狀態(tài)且沒(méi)有常連接的協(xié)議,DBMS事務(wù)的提交與否無(wú)法得到驗(yàn)證,不能構(gòu)造Web上的OLTP(On?LineTransactionProcessing)應(yīng)用。五、基于服務(wù)器擴(kuò)展的API為了克服CGI的局限性,出現(xiàn)的另一種中間件解決方案是基于服務(wù)器擴(kuò)展API的結(jié)構(gòu)。與CGI相比,API應(yīng)用程序與Web服務(wù)器結(jié)合得更加緊密,占用的系統(tǒng)資源也少得多,而運(yùn)行效率卻大大提高,同時(shí)還提供更好的保護(hù)和安全性。上一頁(yè)下一頁(yè)返回2.7網(wǎng)絡(luò)共享數(shù)據(jù)庫(kù)服務(wù)器API一般作為一個(gè)DLL(DynamicLinklibrary)提供,是駐留在WWW服務(wù)器中的程序代碼,其擴(kuò)展WWW

溫馨提示

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

評(píng)論

0/150

提交評(píng)論