第4章數(shù)據(jù)庫管理及ACCESS應(yīng)用_第1頁
第4章數(shù)據(jù)庫管理及ACCESS應(yīng)用_第2頁
第4章數(shù)據(jù)庫管理及ACCESS應(yīng)用_第3頁
第4章數(shù)據(jù)庫管理及ACCESS應(yīng)用_第4頁
第4章數(shù)據(jù)庫管理及ACCESS應(yīng)用_第5頁
已閱讀5頁,還剩98頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第4章數(shù)據(jù)庫管理系統(tǒng)及ACCESS應(yīng)用4.1數(shù)據(jù)庫管理系統(tǒng)概述4.4Access數(shù)據(jù)庫概述4.6Access數(shù)據(jù)庫的查詢與輸出4.7結(jié)構(gòu)化查詢語言(SQL)介紹4.8數(shù)據(jù)的導(dǎo)入與導(dǎo)出4.2數(shù)據(jù)模型4.3關(guān)系數(shù)據(jù)庫4.5Access數(shù)據(jù)表設(shè)計

第4章

數(shù)據(jù)庫管理系統(tǒng)

數(shù)據(jù)庫技術(shù)是計算機(jī)科學(xué)技術(shù)的一個重要分支,它研究的是如何科學(xué)地組織數(shù)據(jù)、存儲數(shù)據(jù),如何高效地檢索數(shù)據(jù)、處理數(shù)據(jù),既減少數(shù)據(jù)冗余,又能保障數(shù)據(jù)安全,實現(xiàn)數(shù)據(jù)共享。自1946年第一臺計算機(jī)問世以來,隨著計算機(jī)硬件技術(shù)、軟件技術(shù)的發(fā)展以及計算機(jī)應(yīng)用的不斷擴(kuò)充,數(shù)據(jù)管理技術(shù)不斷更替、完善,先后經(jīng)歷了人工管理階段、文件系統(tǒng)階段、數(shù)據(jù)庫系統(tǒng)階段、數(shù)據(jù)庫新技術(shù)階段。本章將介紹數(shù)據(jù)庫的基本概念、數(shù)據(jù)模型、數(shù)據(jù)庫的分類、數(shù)據(jù)庫的應(yīng)用。1-1返回目錄1-24.1數(shù)據(jù)庫管理系統(tǒng)概述4.1.1數(shù)據(jù)管理發(fā)展和定義數(shù)據(jù)庫是以實現(xiàn)數(shù)據(jù)處理為目標(biāo)的、按某種數(shù)據(jù)模型(規(guī)則和方法)組織起來的、存放在外存儲器中的數(shù)據(jù)集合。1.數(shù)據(jù)管理的發(fā)展(P140-P142)人工管理階段文件系統(tǒng)階段數(shù)據(jù)庫系統(tǒng)階段特點是:數(shù)據(jù)與程序不具有獨(dú)立性,一組數(shù)據(jù)對應(yīng)一個應(yīng)用程序;數(shù)據(jù)不能長期保存,程序運(yùn)行結(jié)束后就會退出計算機(jī)系統(tǒng);一個程序中的數(shù)據(jù)無法被其他程序使用,因此程序與程序之間存在大量的重復(fù)數(shù)據(jù)。關(guān)系如圖4-1所示。文件系統(tǒng)在應(yīng)用程序與數(shù)據(jù)之間提供了一個公共接口,使程序采用統(tǒng)一的存取方法來存取、操作數(shù)據(jù)。程序與數(shù)據(jù)之間不再是直接的對應(yīng)關(guān)系,有一定的獨(dú)立性。但數(shù)據(jù)的存取在很大程度上仍依賴于應(yīng)用程序。不同程序難于共享同一數(shù)據(jù)文件,數(shù)據(jù)獨(dú)立性較差。仍有較高的數(shù)據(jù)冗余,極易造成數(shù)據(jù)的不一致。程序與數(shù)據(jù)之間的關(guān)系如圖4-2所示。數(shù)據(jù)庫技術(shù)使數(shù)據(jù)有了統(tǒng)一的結(jié)構(gòu),并且對所有數(shù)據(jù)實行統(tǒng)一、集中、獨(dú)立地管理,以實現(xiàn)數(shù)據(jù)的共享,保證了數(shù)據(jù)的完整性和安全性,從而提高數(shù)據(jù)管理效率。數(shù)據(jù)庫也是以文件方式存儲數(shù)據(jù)的,但它是數(shù)據(jù)的一種高級組織形式。

在數(shù)據(jù)庫系統(tǒng)管理階段,數(shù)據(jù)已經(jīng)成為多個用戶或應(yīng)用程序共享的資源,從應(yīng)用程序中完全獨(dú)立出來了,以此形成數(shù)據(jù)庫,并由DBMS統(tǒng)一管理。如圖4-3所示。1-24.1數(shù)據(jù)庫管理系統(tǒng)概述4.1.1數(shù)據(jù)管理發(fā)展和定義2.數(shù)據(jù)庫新技術(shù)分布式數(shù)據(jù)庫面向?qū)ο髷?shù)據(jù)庫多媒體數(shù)據(jù)庫數(shù)據(jù)倉庫分布式數(shù)據(jù)庫系統(tǒng)是在地理上分布于計算機(jī)網(wǎng)絡(luò)的不同節(jié)點,邏輯上屬于同一系統(tǒng)的數(shù)據(jù)庫系統(tǒng),能支持全局應(yīng)用,同時可以存取兩個或兩個以上節(jié)點的數(shù)據(jù)。是將面向?qū)ο蟮哪P?、方法和機(jī)制,與數(shù)據(jù)庫技術(shù)結(jié)合而形成的新型數(shù)據(jù)庫系統(tǒng)。它從關(guān)系模型中脫離出來,強(qiáng)調(diào)在數(shù)據(jù)庫框架中發(fā)展類型?;驹O(shè)計思想是,一方面把面向?qū)ο笳Z言向數(shù)據(jù)庫方向擴(kuò)展,使應(yīng)用程序能夠存取并處理對象,另一方面擴(kuò)展數(shù)據(jù)庫系統(tǒng),使其具有面向?qū)ο蟮奶卣?,并且提供一種綜合的語義數(shù)據(jù)建模概念集,以便對現(xiàn)實世界中復(fù)雜應(yīng)用的實體和聯(lián)系建模。多媒體數(shù)據(jù)庫系統(tǒng)是數(shù)據(jù)庫技術(shù)與多媒體技術(shù)相結(jié)合的產(chǎn)物。大量的多媒體數(shù)據(jù),與傳統(tǒng)的數(shù)字、字符等格式化數(shù)據(jù)有很大的不同,都是一些結(jié)構(gòu)復(fù)雜的對象。因此,多媒體數(shù)據(jù)庫需要有特殊的數(shù)據(jù)結(jié)構(gòu)、存儲技術(shù)、查詢和處理方式隨著信息處理技術(shù)的高速發(fā)展,數(shù)據(jù)和數(shù)據(jù)庫在急劇增長,數(shù)據(jù)庫應(yīng)用的規(guī)模、范圍和深度不斷擴(kuò)大,一般的事務(wù)處理已不能滿足應(yīng)用的需要,而在大量信息數(shù)據(jù)基礎(chǔ)上的決策支持(DecisionSupport,DS)、數(shù)據(jù)倉庫(DataWarehousing,簡稱DW)技術(shù)的興起則滿足了這一需求。4.1.2數(shù)據(jù)庫系統(tǒng)組成(p142)

數(shù)據(jù)庫系統(tǒng)(簡稱DBS)是指在計算機(jī)系統(tǒng)中引入數(shù)據(jù)庫后的系統(tǒng)構(gòu)成,一般由計算機(jī)硬件,數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)DBMS(及其開發(fā)工具)、應(yīng)用程序、數(shù)據(jù)庫管理員(簡稱DBA)用戶5部分組成,圖4-4。(1)計算機(jī)硬件計算機(jī)硬件是數(shù)據(jù)庫系統(tǒng)賴以存在的物質(zhì)基礎(chǔ),是存儲數(shù)據(jù)庫及運(yùn)行數(shù)據(jù)庫管理系統(tǒng)的硬件資源,大型數(shù)據(jù)庫系統(tǒng)一般都建立在計算機(jī)網(wǎng)絡(luò)環(huán)境下,因此還需要一些網(wǎng)絡(luò)設(shè)備的支持。(2)數(shù)據(jù)庫數(shù)據(jù)庫(DataBase,簡稱DB)顧名思義是存放數(shù)據(jù)的倉庫,可以把數(shù)據(jù)庫定義為“人們?yōu)榻鉀Q特定的任務(wù),以一定的組織方式存儲在計算機(jī)中的相關(guān)數(shù)據(jù)的集合”。數(shù)據(jù)庫是存儲在計算機(jī)中的,結(jié)構(gòu)化的相關(guān)數(shù)據(jù)的集合,它包括描述事物的數(shù)據(jù)本身和相關(guān)事物之間的聯(lián)系,是數(shù)據(jù)庫系統(tǒng)的工作對象。數(shù)據(jù)庫中的數(shù)據(jù)面向多種應(yīng)用,可以被多個用戶或者多個應(yīng)用程序共享,它的結(jié)構(gòu)是獨(dú)立于應(yīng)用程序的。(3)數(shù)據(jù)庫管理系統(tǒng)數(shù)據(jù)庫管理系統(tǒng)是指負(fù)責(zé)數(shù)據(jù)庫存取、維護(hù)、管理的系統(tǒng)軟件,在計算機(jī)軟件系統(tǒng)的體系結(jié)構(gòu)中是位于用戶與操作系統(tǒng)之間的數(shù)據(jù)管理軟件。DBMS提供了對數(shù)據(jù)庫中的數(shù)據(jù)資源進(jìn)行統(tǒng)一管理和控制的功能,可以將用戶應(yīng)用程序與數(shù)據(jù)庫數(shù)據(jù)相互隔離。它是數(shù)據(jù)庫系統(tǒng)的核心,其功能的強(qiáng)弱是衡量數(shù)據(jù)庫系統(tǒng)性能優(yōu)劣的主要指標(biāo)。(4)應(yīng)用程序應(yīng)用程序是指系統(tǒng)開發(fā)人員利用數(shù)據(jù)庫系統(tǒng)資源開發(fā)的面向某一類實際應(yīng)用的軟件系統(tǒng),是以數(shù)據(jù)庫為基礎(chǔ)和核心的計算機(jī)應(yīng)用系統(tǒng),例如學(xué)生教學(xué)管理系統(tǒng)、人事管理系統(tǒng)等。(5)數(shù)據(jù)庫用戶用戶是指管理、開發(fā)、使用數(shù)據(jù)庫系統(tǒng)的所有人員,通常包括數(shù)據(jù)庫系統(tǒng)管理員、數(shù)據(jù)庫系統(tǒng)開發(fā)設(shè)計人員和終端用戶。數(shù)據(jù)庫系統(tǒng)的特點

實現(xiàn)數(shù)據(jù)共享。所有授權(quán)的用戶可同時訪問(查詢和維護(hù))數(shù)據(jù)庫中的數(shù)據(jù)。減少數(shù)據(jù)冗余度。由于數(shù)據(jù)庫實現(xiàn)了數(shù)據(jù)共享,從而避免了用戶各自建立具有大量重復(fù)數(shù)據(jù)的文件,同時維護(hù)了數(shù)據(jù)的一致性。采用特定的數(shù)據(jù)模型。數(shù)據(jù)庫中的數(shù)據(jù)是有結(jié)構(gòu)的,這種結(jié)構(gòu)是由數(shù)據(jù)庫管理系統(tǒng)所支持的數(shù)據(jù)模型表現(xiàn)出來的。關(guān)于數(shù)據(jù)模型后面將介紹。數(shù)據(jù)的完整性和安全性。完整性主要包括:保證數(shù)據(jù)的正確性、有效性和相容性;安全性包括:防止越權(quán)使用數(shù)據(jù);更新失敗后的回滾;數(shù)據(jù)多路并發(fā)存取控制;數(shù)據(jù)備份和故障恢復(fù)等。數(shù)據(jù)的獨(dú)立性。數(shù)據(jù)庫中數(shù)據(jù)庫的邏輯結(jié)構(gòu)與應(yīng)用程序相互獨(dú)立,使用者可以用不同方法去訪問數(shù)據(jù)庫,也可以使用同一種方法訪問不同的數(shù)據(jù)庫。4.1.3數(shù)據(jù)庫管理系統(tǒng)

數(shù)據(jù)庫管理系統(tǒng)(簡稱DBMS):是位于用戶與操作系統(tǒng)之間的一層數(shù)據(jù)管理軟件,是數(shù)據(jù)庫系統(tǒng)(DBS)的核心組成部分,對數(shù)據(jù)庫的所有操作和控制都是通過它來進(jìn)行的。包括數(shù)據(jù)定義、查詢、更新用各種控制。

典型的數(shù)據(jù)庫管理系統(tǒng)有SQLServer、Access,Oracle,Sybase等。DBMS具有以下主要功能:①數(shù)據(jù)庫定義功能。提供了數(shù)據(jù)定義語言DDL②數(shù)據(jù)庫操縱功能DML。(對數(shù)據(jù)庫檢索,插入,修改,刪除等操作)③數(shù)據(jù)庫的建立、更新、維護(hù)、運(yùn)行管理。④通信功能。提供是與其他數(shù)據(jù)庫或文件系統(tǒng)的接口4.2數(shù)據(jù)模型1-3為了反映事物之間本身及事物之間的各種聯(lián)系,數(shù)據(jù)庫中的數(shù)據(jù)必須有一定的結(jié)構(gòu),這種結(jié)構(gòu)用數(shù)據(jù)模型來表示。數(shù)據(jù)模型是對現(xiàn)實世界中各種事物或?qū)嶓w特征的數(shù)字化模擬和抽象,表示現(xiàn)實世界中實體與實體之間的聯(lián)系,使之能存放到計算機(jī)中,并通過軟件處理。4.2.2概念模型概念模型是對客觀事物及其聯(lián)系的抽象,用于信息世界的建模,是用戶和數(shù)據(jù)庫設(shè)計者之間交流的語言。⑴實體:客觀存在并可相互區(qū)分的事物叫實體。⑵屬性:實體所具有的特性,稱為屬性。⑶實體集:同一類實體的集合,稱為實體集⑷聯(lián)系:實體集之間的依賴關(guān)系稱為聯(lián)系。1:1(一對一聯(lián)系):若對于實體集A中的每一個實體,實體集B中至多有一個(也可以沒有)實體與之聯(lián)系,反之亦然,則稱實體集A與實體集B具有一對一聯(lián)系,記為1:1。1-31:n(一對多聯(lián)系):若對于實體集A中的每一個實體,實體集B中有n個實體(n≥0)與之聯(lián)系,反之,對于實體集B中的每一個實體,實體集A中至多只有一個實體與之聯(lián)系,則稱實體集A與實體集B具有一對多聯(lián)系,記為1:n。m:n(多對多聯(lián)系):若對于實體集A中的每一個實體,實體集B中有n個實體(n≥0)與之聯(lián)系,反之,若對于實體集B中的每一個實體,實體集A中有m個實體(m≥0)與之聯(lián)系,則稱實體集A與實體集B具有多對多聯(lián)系,記為m:n。2.概念模型的表示方法E-R方法(實體-聯(lián)系方法)⑴實體:用矩形框表示,矩形框內(nèi)寫明實體名。⑵屬性:用橢圓形框表示,橢圓形框內(nèi)寫明屬性名,并用直線將其與相應(yīng)的實體連接起來。⑶聯(lián)系:用菱形框表示,菱形框內(nèi)寫明聯(lián)系名,并用直線分別與有關(guān)的實體連接起

來,同時在直線端標(biāo)上聯(lián)系的類型。

這樣畫出的反映現(xiàn)實世界的模型,稱為E-R模型。例1.1反映學(xué)生借閱圖書情況的E-R圖。

4.2.3常用的數(shù)據(jù)模型

1.層次模型 用層次結(jié)構(gòu)(即樹型結(jié)構(gòu))表示實體以及實體間的聯(lián)系的模型稱為層次模型。下圖所示是表示某學(xué)校系的組織結(jié)構(gòu)的層次模型。層次模型的基本特點如下。①有且僅有一個節(jié)點,無父節(jié)點,該節(jié)點稱為根節(jié)點。②其他節(jié)點有且只一個父節(jié)點。在現(xiàn)實世界中許多實體之間的聯(lián)系本來就呈現(xiàn)出一種自然的層次關(guān)系,如行政機(jī)構(gòu)、家族關(guān)系等。層次模型可以直接方便地表示一對一聯(lián)系和一對多聯(lián)系,但不能用它直接表示多對多聯(lián)系。層次模型是數(shù)據(jù)庫系統(tǒng)中最早出現(xiàn)的數(shù)據(jù)模型。1-54.2.3常用數(shù)據(jù)模型1-52.網(wǎng)狀模型

用網(wǎng)狀結(jié)構(gòu)表示實體及實體之間聯(lián)系的模型稱為網(wǎng)狀模型。下圖所示是表示另一學(xué)校系的組織結(jié)構(gòu)的網(wǎng)狀模型。網(wǎng)狀模型的基本特點如下:●一個以上節(jié)點,無父節(jié)點。●至少有一個節(jié)點,有多于一個的父節(jié)點。網(wǎng)狀結(jié)構(gòu)是一種比層次模型更具有普遍性的結(jié)構(gòu),它去掉了層次模型的兩個限制,允許多個節(jié)點沒有雙親節(jié)點,也允許節(jié)點有多個雙親節(jié)點。此外,它還允許兩個節(jié)點之間有多種聯(lián)系(稱之為復(fù)合聯(lián)系)。因此,采用網(wǎng)狀模型可以更直接地描述現(xiàn)實世界,而層次模型實際上是網(wǎng)狀模型的一個特例。網(wǎng)狀模型可以直接表示多對多聯(lián)系,這也是網(wǎng)狀模型的主要優(yōu)點。圖4-8網(wǎng)狀模型R1R2R5R4R3R6R73.關(guān)系模型用二維表格形式表示實體及實體間聯(lián)系的模型稱為關(guān)系模型。關(guān)系模型與層次模型、網(wǎng)狀模型的本質(zhì)區(qū)別在于數(shù)據(jù)描述的一致性、模型概念的單一性。在關(guān)系型數(shù)據(jù)庫中,每一個關(guān)系都是一個二維表,無論實體本身還是實體間的聯(lián)系均用稱為“關(guān)系”的二維表來表示,這使得描述實體的數(shù)據(jù)本身能夠自然地反映他們之間的聯(lián)系,而傳統(tǒng)的層次和網(wǎng)狀模型數(shù)據(jù)庫則是使用鏈接指針來存儲和體現(xiàn)聯(lián)系的。與層次模型和網(wǎng)狀模型相比,關(guān)系模型具有數(shù)據(jù)結(jié)構(gòu)單一、理論嚴(yán)密、使用方便和易學(xué)易用等特點。1-64.3關(guān)系數(shù)據(jù)庫目前絕大多數(shù)數(shù)據(jù)庫系統(tǒng)的數(shù)據(jù)模型,都采用關(guān)系模型,關(guān)系模型已成為數(shù)據(jù)庫應(yīng)用的主流。4.3.1關(guān)系模型人們習(xí)慣用表格形式表示一組相關(guān)的數(shù)據(jù),這樣既簡單又直觀,如學(xué)生表和班級表都是二維表。這種由行與列構(gòu)成的二維表,在數(shù)據(jù)庫理論中稱為關(guān)系。在關(guān)系模型中,實體和實體間的聯(lián)系都是用關(guān)系表示的,也就是說,二維表中既存放著實體本身的數(shù)據(jù),又存放著實體間的聯(lián)系。關(guān)系不但可以表示實體間一對多的聯(lián)系,通過建立關(guān)系間的關(guān)聯(lián),也可以表示多對多的聯(lián)系。學(xué)號姓名性別出生日期班級號電話11601101孟方男1992-2-111601160010111601102馬思思女1993-3-411601160032911601201郭濤男1992-5-211601260033311601202胡佳晨男1993-10-211601260038711602301李月女1992-2-1211602360045311602302葉碧女1993-1-11116023600234班級號班級名學(xué)院號116011計算機(jī)11601116012自動化11601116023數(shù)學(xué)11602學(xué)生表班級表1-61.關(guān)系基本概念①關(guān)系:一個二維表就是一個關(guān)系,每個關(guān)系有一個關(guān)系名。在Access2007中,一個關(guān)系就是一個數(shù)據(jù)庫文件的表。如P149圖4-9,圖4-10②元組:表中的行稱為元組,一行是一個元組,對應(yīng)Access2007表中的一個記錄。③屬性:表中的列稱為屬性,每一列有一個屬性名,對應(yīng)Access2007表中的一個字段。每個字段的數(shù)據(jù)類型、寬度等在創(chuàng)建表的結(jié)構(gòu)時設(shè)定。學(xué)生表的就是屬性,或者稱為字段。

④關(guān)系模式:關(guān)系模式是對關(guān)系的描述。一個關(guān)系模式對應(yīng)一個關(guān)系的結(jié)構(gòu)。關(guān)系模式的格式是:關(guān)系名(屬性1,屬性2,…,屬性N)。(4)關(guān)鍵字關(guān)鍵字是指表中的一個屬性或多個屬性。關(guān)系中能唯一區(qū)分、確定不同元組的屬性或?qū)傩越M合,稱為該關(guān)系的一個關(guān)鍵字。一個關(guān)系中能夠成為關(guān)鍵字的屬性或?qū)傩越M合可能并不是唯一的。①主關(guān)鍵字和候選關(guān)鍵字在關(guān)鍵字中選定一個作為當(dāng)前唯一標(biāo)識元組的依據(jù),稱為該關(guān)系的主關(guān)鍵字,簡稱主鍵或主碼,其他關(guān)鍵字則可稱為候選關(guān)鍵字。一個關(guān)系中的主關(guān)鍵字是唯一的,而且在關(guān)鍵字字段中的值不允許重復(fù)或為空。比如,在學(xué)生表中增加一個字段“身份證號”,則“身份證號”和“學(xué)號”都是關(guān)鍵字,假如以“學(xué)號”作為主關(guān)鍵字,則“身份證號”就可作為候選關(guān)鍵字。

②外部關(guān)鍵字一個關(guān)系中并非主關(guān)鍵字的某個屬性或?qū)傩越M合,但卻是另一個關(guān)系的主關(guān)鍵字或候選關(guān)鍵字,則稱此屬性或?qū)傩越M合為本關(guān)系的外部關(guān)鍵字,或稱為外碼。關(guān)系之間的聯(lián)系就是通過外部關(guān)鍵字來實現(xiàn)的。比如,學(xué)生表中的“班級號”不是學(xué)生表的主關(guān)鍵字,但是“班級號”卻是班級表的主關(guān)鍵字,在學(xué)生表中,稱“班級號”為外部關(guān)鍵字。在班級表和學(xué)生表之間就是通過“班級號”這個外部關(guān)鍵字聯(lián)系的。2.關(guān)系的基本特點關(guān)系模型看起來簡單,但是并不能將日常手工管理所用的各種表格,按照一張表一個關(guān)系的原則直接存放到數(shù)據(jù)庫系統(tǒng)中。在關(guān)系模型中對關(guān)系有一定的要求,關(guān)系必須具有以下基本特點。●關(guān)系必須規(guī)范化,屬性不可再分割。規(guī)范化是指關(guān)系模型中每個關(guān)系模式都必須滿足一定的要求,最基本的要求是關(guān)系必須是一張二維表,每個屬性值必須是不可分割的最小數(shù)據(jù)單元,即表中不能再包含表。●在同一關(guān)系中不允許出現(xiàn)相同的屬性名?!袢我饨粨Q兩個元組(或?qū)傩裕┑奈恢茫粫淖冴P(guān)系模式。有一點是關(guān)鍵,即屬性不可再分割,也即表中不能套表。4.3.2關(guān)系運(yùn)算(從關(guān)系中找出所需要的數(shù)據(jù))選擇運(yùn)算:從關(guān)系中找出符合指定條件的記錄或行的操作,水平方向操作投影運(yùn)算:從關(guān)系中選取若干個屬性的操作,即從關(guān)系表中選 取若干列的操作聯(lián)接運(yùn)算:是關(guān)系的橫向結(jié)合,將兩個關(guān)系模式的若干屬性拼接成一個新的關(guān)系.在對關(guān)系數(shù)據(jù)庫的查詢中,利用關(guān)系的投影、選擇和聯(lián)接運(yùn)算可以方便地分解或構(gòu)造新的關(guān)系4.3.3關(guān)系完整性關(guān)系模型的完整性規(guī)則是對關(guān)系的某種約束條件。關(guān)系完整性是為保證數(shù)據(jù)庫中數(shù)據(jù)的正確性和可靠性,對關(guān)系模型提出的某種約束條件或規(guī)則。關(guān)系完整性通常包括實體完整性,參照完整性和用戶定義完整性,其中實體完整性和參照完整性,是關(guān)系模型必須滿足的完整性約束條件。1.實體完整性實體完整性指關(guān)系中記錄的唯一性,即同一個關(guān)系中不允許出現(xiàn)重復(fù)的記錄。設(shè)置關(guān)系的主鍵便于保證數(shù)據(jù)的實體完整性,主關(guān)鍵字的字段值不能相同,也不能取“空值”。

2.參照完整性現(xiàn)實世界中的實體之間往往存在某種聯(lián)系,在關(guān)系模型中實體及實體間的聯(lián)系都是用關(guān)系來描述的,這樣就自然存在著關(guān)系與關(guān)系之間的引用,引用的時候,必須取基本表中已經(jīng)存在的值。3.用戶定義完整性用戶定義完整性則是根據(jù)應(yīng)用環(huán)境的要求和實際的需要,對某一具體應(yīng)用所涉及的數(shù)據(jù)提出約束性條件。這一約束機(jī)制一般不應(yīng)由應(yīng)用程序提供,而應(yīng)由關(guān)系模型提供定義并檢驗,用戶定義完整性主要包括字段有效性約束和記錄有效性。Access通過設(shè)置“有效性規(guī)則”屬性來實現(xiàn)用戶定義的完整性要求。例如,規(guī)定“成績”字段值必須是0-100范圍內(nèi)的數(shù),則可將“成績”字段的“有效性規(guī)則”屬性設(shè)置為“>=0and<=100”。4.3.4典型的關(guān)系數(shù)據(jù)庫國際國內(nèi)的主導(dǎo)關(guān)系型數(shù)據(jù)庫管理系統(tǒng)有Oracle、Sybase、Informix、SQLServer、Access等產(chǎn)品。1.OracleOracle是美國Oracle公司研制的一種關(guān)系型數(shù)據(jù)庫管理系統(tǒng),是一個協(xié)調(diào)服務(wù)器和用于支持任務(wù)決定型應(yīng)用程序的開放型RDBMS。它可以支持多種不同的硬件和操作系統(tǒng)平臺,從臺式機(jī)到大型和超級計算機(jī),都可以使用Oracle。Oracle是一個多用戶系統(tǒng),能自動從批處理或在線環(huán)境的系統(tǒng)故障中恢復(fù)運(yùn)行。系統(tǒng)提供了一個完整的軟件開發(fā)工具Oracle以二維表的形式表示數(shù)據(jù),并提供了SQL(結(jié)構(gòu)化查詢語言)。Oracle屬于大型數(shù)據(jù)庫系統(tǒng),主要適用于大、中小型應(yīng)用系統(tǒng),或者可以作為客戶機(jī)/服務(wù)器系統(tǒng)中服務(wù)器端的數(shù)據(jù)庫系統(tǒng)。2.SQLServerSQLServer是美國Microsoft公司推出的一種關(guān)系型數(shù)據(jù)庫系統(tǒng)。SQLServer是一個可擴(kuò)展的、高性能的,為分布式客戶機(jī)/服務(wù)器計算所設(shè)計的數(shù)據(jù)庫管理系統(tǒng),提供了基于事務(wù)的企業(yè)級信息管理系統(tǒng)方案。具有自主的SQL語言。SQLServer以其內(nèi)置的數(shù)據(jù)復(fù)制功能、強(qiáng)大的管理工具、與Internet的緊密集成和開放的系統(tǒng)結(jié)構(gòu)為廣大的用戶、開發(fā)人員和系統(tǒng)集成商提供了一個出眾的數(shù)據(jù)庫平臺。3.AccessAccess是美國Microsoft公司于1994年推出的微機(jī)數(shù)據(jù)庫管理系統(tǒng)。它具有界面友好、易學(xué)易用、開發(fā)簡單、接口靈活等特點,是典型的新一代桌面數(shù)據(jù)庫管理系統(tǒng)。本章以下各節(jié)主要介紹Access2003的應(yīng)用。4.3.5關(guān)系數(shù)據(jù)庫數(shù)據(jù)模型實例以一個簡單的高校教學(xué)管理數(shù)據(jù)庫管理系統(tǒng)作為實例,貫穿于我們本章的描述過程中。學(xué)校有若干學(xué)院組成;每個班級有若干學(xué)生組成;學(xué)院開設(shè)多門課程;每個學(xué)生修學(xué)多門課程。在這個例子中,可以看到,現(xiàn)實世界中存在許多事物,例如,學(xué)生、班級、學(xué)院、課程等,這些都是客觀存在的實體。這些實體并不是孤立存在的,不同的實體之間是有聯(lián)系的,這種聯(lián)系也是客觀存在的。比如學(xué)生和教師通過選修課程建立聯(lián)系。4.3.5關(guān)系數(shù)據(jù)庫數(shù)據(jù)模型實例實體型該教學(xué)管理系統(tǒng)中的關(guān)系模型的實體型如下:(1)學(xué)院(學(xué)院號,學(xué)院名)(2)班級(班級號,班級名,學(xué)院號)(3)課程(課程號,課程名,學(xué)分,教師號)(4)教師(教師號,教師名,學(xué)院號,聯(lián)系電話)(5)學(xué)生(學(xué)號,姓名,性別,班級號,出生日期,電話)(6)選課(課程號,學(xué)號,成績)關(guān)系作為MicrosoftOffice組件之一的MicrosoftAccess是在Windows環(huán)境下非常流行的桌面型數(shù)據(jù)庫管理系統(tǒng)。使用MicrosoftAccess無需編寫任何代碼,只需通過直觀的可視化操作就可以完成大部分?jǐn)?shù)據(jù)管理任務(wù)。4.4Access2007概述它不僅可以通過ODBC與其它數(shù)據(jù)庫相連,實現(xiàn)數(shù)據(jù)交換和共享,還可以與Word、Excel等辦公軟件進(jìn)行數(shù)據(jù)交換和共享,并且通過對象鏈接與嵌入技術(shù)在數(shù)據(jù)庫中嵌入和鏈接聲音、圖像等多媒體數(shù)據(jù)。Access采用數(shù)據(jù)庫方式,在一個單一的MDB文件中包含應(yīng)用系統(tǒng)中所有的數(shù)據(jù)對象(包括數(shù)據(jù)表對象和查詢對象),及其所有的數(shù)據(jù)操作對象(包括窗體對象、報表對象、宏對象和VBA模塊對象)4.4.1Access基本操作

Access數(shù)據(jù)庫(后綴為.accdb)最主要由4種對象組成:1.表是數(shù)據(jù)庫的最基本對象,表由記錄組成,記錄由字段組成,是數(shù)據(jù)庫的核心,可以使用多個數(shù)據(jù)表,為其它對象提供數(shù)據(jù)。2.查詢(Query)是數(shù)據(jù)庫設(shè)計的目的,可以按索引快速查找到需要的記錄,按要求篩選記錄,并能連接若干個表的字段組成新表,從一個或多個表中查找某些特定的記錄,并將運(yùn)行結(jié)果以二維表的形式顯示,查詢可作為窗體、報表等其他對象的數(shù)據(jù)源。3.窗體(表單)Form),稱為表單,是數(shù)據(jù)庫對象中最靈活的一個對象,其數(shù)據(jù)源主要是表或查詢。在窗體中,可以接收、顯示和編輯數(shù)據(jù)表中的數(shù)據(jù);可以將數(shù)據(jù)庫中的表鏈接到窗體中;可以通過在窗體中插入命令按鈕,控制程序的執(zhí)行流程或過程。窗體是進(jìn)行交互操作的界面。4.報表報表(Report)是表現(xiàn)數(shù)據(jù)的一種有效方式。功能是將數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行分類匯總,然后打印出來,以便分析。數(shù)據(jù)源可以是查詢、一個或多個表,在建立報表時還可以進(jìn)行計算操作,如求和、平均等。5.頁頁(Page)也稱數(shù)據(jù)頁,是Access發(fā)布的Web頁,包含了與數(shù)據(jù)庫的連接。在信息系統(tǒng)中設(shè)計數(shù)據(jù)訪問頁是為了使用戶能夠查看和操作來自網(wǎng)絡(luò)的數(shù)據(jù),而這些數(shù)據(jù)是保存在數(shù)據(jù)庫中的。當(dāng)在用戶的InternetExplorer中顯示數(shù)據(jù)訪問頁時,此時正在查看的是該頁的副本。6.宏宏(Macro)是指一個或多個操作的集合,其中每個操作有特定的功能,例如打開某個窗體或打印某個報表。宏可以使某些普通的、需要多個指令連續(xù)執(zhí)行的任務(wù)通過一條指令自動地完成,而這一條指令就稱為宏。7.模塊模塊(Module)的功能與宏類似,但它定義的操作比宏更精細(xì)、更復(fù)雜。用戶可以根據(jù)自己的需要編寫程序,模塊使用VisualBasic編程,即用Access提供的VBA語言編寫程序。模塊通常與窗體、報表結(jié)合起來組成完整的應(yīng)用功能。4.4.2表達(dá)式Access中的表達(dá)式相當(dāng)于Excel中的公式。一個表達(dá)式由多個單獨(dú)使用或組合使用以生成某個結(jié)果的可能元素組成。元素可能包括標(biāo)識符(字段名稱、控件名稱或?qū)傩悦Q)、運(yùn)算符(如加號(+)或減號(-))、函數(shù)、常量和值。可以使用表達(dá)式執(zhí)行計算、檢索控件值、提供查詢條件、定義規(guī)則、創(chuàng)建計算控件和計算字段等。1.標(biāo)識符標(biāo)識符是字段、屬性或控件的名稱。在表達(dá)式中使用對象、集合或?qū)傩詴r,可以通過使用標(biāo)識符來引用該元素。標(biāo)識符包括所標(biāo)識的元素的名稱,還包括該元素所屬的元素的名稱。例如,某字段的標(biāo)識符包括該字段的名稱和該字段所屬的表的名稱,要使用學(xué)生表中的姓名字段,其表達(dá)形式如下:[學(xué)生]![姓名]。2.常量常量是一種在Access運(yùn)行時其值保持不變的命名數(shù)據(jù)項。常量可以分為數(shù)字型、文本型、日期型、是/否型等類型。(1)數(shù)字型常量數(shù)字型常量可以是一組數(shù)字,包括一個符號和一個小數(shù)點(如果需要)。如果沒有符號,Access則認(rèn)為是一個正值。要使一個值為負(fù)值,請包含減號(-)。也可以使用科學(xué)記數(shù)法。這時,請?zhí)砑覧或e以及指數(shù)符號(如1.0E-6)。(2)文本型常量文本型常量應(yīng)置于引號中。在某些情況下,Access將提供引號。例如,當(dāng)在有效性規(guī)則或查詢條件的表達(dá)式中鍵入文本時,Access將自動提供引號。所以可直接輸入文本或者以雙引號括入,如計算機(jī)、“計算機(jī)”。(3)日期/時間型常量日期/時間型常量應(yīng)以編號符號(#)括起來。例如,#Mar-7-2005#是有效的日期/時間值。當(dāng)Access看到以#字符括起來的有效日期/時間值時,它會自動將此值視為日期/時間數(shù)據(jù)類型。(4)是/否型常量是/否型常量可以用Yes、No、True、False表示。3.運(yùn)算符在Access的表達(dá)式中,使用的運(yùn)算符包括算術(shù)運(yùn)算符、關(guān)系運(yùn)算符、邏輯運(yùn)算符、字符串運(yùn)算符。(1)算術(shù)運(yùn)算符,常用的算術(shù)運(yùn)算符及其功能舉例如表4-1所示P156。關(guān)系邏輯特殊運(yùn)算符P156,通配符用法P1574.函數(shù)函數(shù)是一些預(yù)定義的公式,通過參數(shù)進(jìn)行計算,返回結(jié)果。常用的函數(shù)如表4-6所示。P1574.4Access基本操作4.4.4數(shù)據(jù)庫文件的新建、打開和保存選定保存位置,并且為新數(shù)據(jù)庫文件命名,如“教學(xué)管理”,單擊“確定”按鈕,數(shù)據(jù)庫就新建完成。新建的數(shù)據(jù)庫文件名為“教學(xué)管理.accdb”,其中“accdb”是Access2007數(shù)據(jù)庫的文件擴(kuò)展名。第一種方法:①在啟動Access2007后,單擊【新建空白數(shù)據(jù)庫】選項區(qū)下的【空白數(shù)據(jù)庫】選項,或者選擇【Office按鈕】|【新建】。窗口右側(cè)將顯示【空白數(shù)據(jù)庫】選項區(qū),即進(jìn)入數(shù)據(jù)庫窗口,如圖所示,它意味著一個指定名稱的空Access數(shù)據(jù)庫創(chuàng)建成功。(2)利用數(shù)據(jù)庫模板創(chuàng)建Access數(shù)據(jù)庫①在圖4-17所示的窗口導(dǎo)航窗格中,單擊【模板類別】選項區(qū)下的【本地模板】選項,窗口中部將顯示【本地模板】選項區(qū),4.2.1數(shù)據(jù)庫文件的新建、打開和保存保存Access數(shù)據(jù)庫關(guān)閉Access程序窗口,與其它Office文件操作一樣,如果數(shù)據(jù)庫被修改過,系統(tǒng)會彈出提示保存對話框,確認(rèn)后即可完成保存。打開Access數(shù)據(jù)庫與打開其它Office文件一樣,在“文件”菜單中選擇“打開”,在文件對話框中找到需要打開的Access數(shù)據(jù)庫,如“教學(xué)管理.accdb”,即可打開已經(jīng)存在的數(shù)據(jù)庫文件。4.5Access數(shù)據(jù)表設(shè)計

基本概念如果要處理的數(shù)據(jù)已經(jīng)存放在其它的數(shù)據(jù)庫中,則可以采用導(dǎo)入的方式取得;如果數(shù)據(jù)還在紙上或無法導(dǎo)入,則首先要構(gòu)造存放數(shù)據(jù)的表一個Access數(shù)據(jù)庫中可以包含多個表,一個表由表結(jié)構(gòu)和記錄兩部分構(gòu)成,創(chuàng)建表時要設(shè)計表結(jié)構(gòu)和輸入記錄。要創(chuàng)建一個表,必須先建立表結(jié)構(gòu)

2.數(shù)據(jù)表結(jié)構(gòu)表結(jié)構(gòu)指的是數(shù)據(jù)表的框架,也稱為數(shù)據(jù)表的屬性創(chuàng)建表結(jié)構(gòu):就是為表中的每一個字段定義名稱、數(shù)據(jù)類型、字段大小等屬性。字段名稱數(shù)據(jù)類型字段大小是否主鍵學(xué)號文本10是姓名文本8性別文本2出生日期日期/時間常規(guī)日期(格式)班級號文本8電話文本20數(shù)據(jù)類型表4-8:見P161數(shù)據(jù)類型使用對象大小文本文本或文本與數(shù)字的組合,例如地址;也可以是不需要計算的數(shù)字,例如電話號碼、郵編等最大為

255個字符備注字母數(shù)字字符(長度超過

255個字符)或具有

RTF格式的文本。例如,注釋、較長的說明和包含粗體或斜體等格式的段落等經(jīng)常使用“備注”字段。最大為

1GB字符數(shù)字?jǐn)?shù)值(整數(shù)或分?jǐn)?shù)值)。用于存儲要在計算中使用的數(shù)字,貨幣值除外(對貨幣值數(shù)據(jù)類型使用“貨幣”)。1、2、4或

8個字節(jié)日期/時間用于存儲日期/時間值。請注意,存儲的每個值都包括日期和時間兩部分。8個字節(jié)貨幣用于存儲貨幣值(貨幣)。8個字節(jié)自動編號添加記錄時

OfficeAccess2007自動插入的一個唯一的數(shù)值。4個字節(jié)是/否用于包含兩個可能的值(例如,“是/否”或“真/假”)之一的“真/假”字段。1位OLE對象用于存儲其他

MicrosoftWindows應(yīng)用程序中的

OLE對象。最大可為1GB超鏈接以文本或文本和數(shù)字的組合來保存超鏈接地址最大為

1GB字符附件鏈接圖片、圖像、二進(jìn)制文件、Office文件。將多個文件(可以是多種類型)保存在一個字段中最大可為2GB,單個文件的大小不得超過

256MB表4-8數(shù)據(jù)類型3.字段的常規(guī)屬性(1)字段大小只有當(dāng)字段數(shù)據(jù)類型設(shè)置為文本或數(shù)字時,這個字段的字段大小屬性才是可設(shè)置的,其可設(shè)置的值將隨著該字段數(shù)據(jù)類型的不同設(shè)定而不同。當(dāng)設(shè)定字段類型為文本型時,字段大小的可設(shè)置值為1-255。當(dāng)設(shè)定字段類型為數(shù)字型時,字段大小的可設(shè)置值如表4-9P162所列。

(2)字段格式分為日期,數(shù)字,貨幣等格式,日期/時間類型可以設(shè)置常規(guī)日期、長日期、中日期、短日期、長時間、中時間和短時間;數(shù)字/貨幣類型可設(shè)置常規(guī)數(shù)字、貨幣、歐元、固定、標(biāo)準(zhǔn)、百分比和科學(xué)記數(shù);是/否類型可選擇真/假、是/否、開/關(guān)。(3)輸入法模式輸入法模式屬性僅針對文本數(shù)據(jù)類型的字段有效,可有3個設(shè)置值:隨意、輸入法開啟與輸入法關(guān)閉,它們分別表示保持原漢字輸入法狀態(tài)、啟動和關(guān)閉漢字輸入法。其中默認(rèn)值為輸入法開啟。(4)輸入掩碼使用輸入掩碼屬性,可以使數(shù)據(jù)輸入更容易,并且可以控制用戶在文本框類型的控件中的輸入值。例如,可以為電話號碼字段創(chuàng)建一個輸入掩碼,以便向用戶顯示如何準(zhǔn)確地輸入新號碼,如(010。圖4-19輸入掩碼設(shè)置

通常使用輸入掩碼向?qū)椭瓿稍O(shè)置該屬性的工作。定義字段的輸入掩碼時,可通過其右邊的按鈕,打開輸入掩碼向?qū)?,如果將輸入掩碼屬性設(shè)置為“密碼”,可以創(chuàng)建密碼項文本框,文本框中輸入的任何字符都按字面字符保存,但顯示為*(6)默認(rèn)值在表中新增加一個記錄,并且尚未填入數(shù)據(jù)時,如果希望Access自動為某字段填入一個特定的數(shù)據(jù),則應(yīng)為該字段設(shè)定默認(rèn)值屬性值。此處設(shè)置的默認(rèn)值將成為新增記錄中Access2007為該字段自動填入的值。(7)有效性規(guī)則有效性規(guī)則屬性用于指定對輸入到記錄中的本字段中的數(shù)據(jù)的要求。當(dāng)輸入的數(shù)據(jù)違反了有效性規(guī)則的設(shè)置時,系統(tǒng)將給用戶顯示有效性文本設(shè)置的提示信息。可用向?qū)椭瓿稍O(shè)置。例如“性別”字段的有效性規(guī)則可以設(shè)置為。如用戶輸入其他數(shù)據(jù)或字母,則會顯示一個錯誤信息,至于錯誤信息是什么,則取決于“有效性文本”屬性的設(shè)定字符串。(8)有效性文本當(dāng)輸入的數(shù)據(jù)違反了有效性規(guī)則的設(shè)定值時,顯示給操作者的提示信息將是有效性文本屬性值。例如“性別”字段的有效性文本可以設(shè)置為“只能輸入男或女”。(9)必填字段必填字段屬性取值僅有“是”和“否”兩項。當(dāng)取值為“是”時,表示必須填寫本字段,即不允許本字段數(shù)據(jù)為空。當(dāng)取值為“否”時,表示可以不必填寫本字段數(shù)據(jù),即允許本字段數(shù)據(jù)為空。(10)允許空字符串該屬性僅對指定為文本型的字段有效,其屬性取值僅有“是”和“否”兩項。當(dāng)取值為“是”時,表示本字段中可以不填寫任何字符。(11)索引本屬性可以用于設(shè)置單一字段索引。索引可加速對索引字段的查詢,還能加速排序及分組操作。本屬性有以下取值:“無”,表示本字段無索引;“有(有重復(fù))”,表示本字段有索引,且各記錄中的數(shù)據(jù)可以重復(fù);“有(無重復(fù))”,表示本字段有索引,且各記錄中的數(shù)據(jù)不允許重復(fù)。4.字段的查閱屬性屬性設(shè)置中除了常規(guī)屬性外,還有查閱屬性。在某些情況下,表中某個字段的數(shù)據(jù)也可以取自其他表中某個字段的數(shù)據(jù),或者取自于固定的數(shù)據(jù)。設(shè)置查閱屬性可以通過選擇數(shù)據(jù)類型“查詢向?qū)А?,根?jù)向?qū)崾具x擇列表框或組合框、從另一表或值列表中選擇值等;也可以通過直接設(shè)置查閱屬性也進(jìn)行設(shè)置。4.5.2數(shù)據(jù)表的新建創(chuàng)建表的一般過程如下:首先,創(chuàng)建表的結(jié)構(gòu),包括定義字段名稱、設(shè)置字段的數(shù)據(jù)類型、字段大小和主鍵等);然后,輸入表記錄,也就是填充表的數(shù)據(jù)(各類不同數(shù)據(jù)類型的字段的填充方式不盡相同);最后,根據(jù)表與表間的共有字段建立聯(lián)系。一般地,表結(jié)構(gòu)的建立和修改是在表的設(shè)計視圖上完成的。記錄的輸入、修改等操作是在表的數(shù)據(jù)表視圖上完成的1.使用數(shù)據(jù)表視圖建立表①打開已創(chuàng)建的數(shù)據(jù)庫,選擇【創(chuàng)建】|【表】新建一個空表。如果剛新建的數(shù)據(jù)庫后,會自動新建一個空表2.利用設(shè)計視圖創(chuàng)建表使用設(shè)計視圖創(chuàng)建表是最靈活和有效的一種方法,也是開發(fā)過程中最常用的方法,用戶可以自己定義表中的字段、字段的數(shù)據(jù)類型、字段的屬性、以及表的主鍵等。用設(shè)計視圖創(chuàng)建一個新表(比如學(xué)生表),具體步驟如下。①打開數(shù)據(jù)庫文件,選擇【創(chuàng)建】|【表設(shè)計】,進(jìn)入表設(shè)計視圖,如圖4-23所示。3.定義主鍵關(guān)系數(shù)據(jù)庫系統(tǒng)的強(qiáng)大功能是使用查詢、窗體和報表快速地查找并組合存儲在各個不同表中的信息,為了做到這一點,必須將表的某個字段指定為主鍵,作為主鍵的字段是表中所存儲的每一條記錄的唯一標(biāo)識。只有定義了主鍵,才能定義該表與數(shù)據(jù)庫中其他表間的關(guān)系,使用主鍵可以識別表中的每一條記錄,進(jìn)而加快表的檢索速度。建立用戶自定義的主鍵,有如下優(yōu)點:①設(shè)置主鍵能大大提高查詢和排序的速度。②在窗體和數(shù)據(jù)表中查看數(shù)據(jù)時,系統(tǒng)將按主鍵的順序顯示數(shù)據(jù)。③當(dāng)插入新記錄時,系統(tǒng)可以自動檢查記錄是否有重復(fù)的數(shù)據(jù)。④在一個表中加入另一個表的主鍵作為該表的一個字段,此時這個字段又被稱為外鍵,這樣可以建立兩個表間的關(guān)系。在Access中可以定義三種類型的主鍵:自動編號主鍵、單字段主鍵和多字段主鍵。4.修改Access表結(jié)構(gòu)插入字段。如果要在最后追加字段,則與創(chuàng)建表結(jié)構(gòu)是做法完全相同;如果要在某行前插入字段,則需要先選中該行,然后在“插入”菜單或快捷菜單中選擇“插入行”

,即可插進(jìn)一個新行。刪除字段。先選中要刪除字段所在的行,然后在“編輯”菜單或快捷菜單中選擇“刪除行”

即可刪除一個字段。保存表結(jié)構(gòu)。打開數(shù)據(jù)庫后,單擊選中要修改的表名,選擇[設(shè)計視圖],進(jìn)入表設(shè)計窗口4.5.3數(shù)據(jù)的錄入與維護(hù)進(jìn)入Access數(shù)據(jù)表視圖:打開或雙擊表對象9.14數(shù)據(jù)表視圖9.15插入與修改數(shù)據(jù)插入與修改數(shù)據(jù)。表中記錄不分先后次序,因此不能進(jìn)行記錄插入操作,只能追加記錄。在數(shù)據(jù)表中插入圖片、聲音和影像等“OLE對象”

在表中插入超級鏈接。4.5.3數(shù)據(jù)的錄入與維護(hù)添加新記錄添加新記錄就是在表的末端增加新的一行。在Access2007數(shù)據(jù)表中添加新記錄,可以采用的操作方法有三種。直接添加:直接用鼠標(biāo)將光標(biāo)定位到表的最后一行上,然后輸入所需添加的數(shù)據(jù),即完成了增加一個新記錄的操作。應(yīng)用記錄指示器按鈕:單擊記錄指示器上的【增加新記錄】按鈕,光標(biāo)自動跳到表的最后一行上,即可輸入所需添加的數(shù)據(jù)。應(yīng)用工具欄按鈕:單擊【表(數(shù)據(jù)表視圖)】工具欄上的【增加新記錄】按鈕,光標(biāo)也會自動跳到表的最后一行上,即可輸入所需添加的數(shù)據(jù)。直接輸入數(shù)據(jù)4.5.3數(shù)據(jù)的錄入與維護(hù)數(shù)據(jù)的排序:①令光標(biāo)停在該字段中的任意一行處,單擊功能區(qū)上的【升序】按鈕

或【降序】按鈕

,即可得到該字段數(shù)據(jù)的升序或降序排列顯示。②令光標(biāo)停在該字段中的任一行處,右擊選擇菜單【升序】或【降序】,可得到該字段數(shù)據(jù)的升序或降序排列顯示。數(shù)據(jù)篩選數(shù)據(jù)篩選:在眾多的數(shù)據(jù)記錄中只顯示那些滿足某種條件的數(shù)據(jù)記錄。Access允許應(yīng)用一個篩選來指定哪些記錄出現(xiàn)在表或者查詢結(jié)果中。篩選方法主要有以下幾種?!癜创绑w篩選:在表的一個空白數(shù)據(jù)窗體中輸入篩選準(zhǔn)則,Access將顯示那些與由多個字段組成的合成準(zhǔn)則相匹配的記錄?!癜催x定內(nèi)容篩選:應(yīng)用篩選中最簡單和快速的方法??梢赃x擇某個表的全部或者部分?jǐn)?shù)據(jù)建立篩選準(zhǔn)則,Access將只顯示那些與所選樣例匹配的記錄?!窀呒壓Y選/排序:自定義復(fù)雜的條件進(jìn)行篩選,方法基本上與Excel的高級篩選相同。4.5.3數(shù)據(jù)的錄入與維護(hù)在Access表中刪除數(shù)據(jù)刪除整行數(shù)據(jù)。先選中要刪除的行,然后在“編輯”菜單或快捷菜單中選擇“刪除記錄”,即可刪除整行數(shù)據(jù)。如果是刪除個別字段的數(shù)據(jù),則只要清空字段即可。在Access表中保存數(shù)據(jù)Access中保存數(shù)據(jù)無需專門的保存步驟,只要關(guān)閉表、數(shù)據(jù)庫或整個應(yīng)用程序窗體,即可自動保存表的錄入和修改。在Access表中修改數(shù)據(jù):復(fù)制與粘貼,查找與替換P171

4.5.4數(shù)據(jù)表的復(fù)制、刪除與更名4.5.5數(shù)據(jù)的導(dǎo)入與導(dǎo)出P171自學(xué)4.5.6數(shù)據(jù)表間的關(guān)聯(lián)操作通常在一個數(shù)據(jù)庫的兩個表使用了共同字段,并且其中一個表已經(jīng)設(shè)置了主鍵,就可以為這兩個表建立一個關(guān)聯(lián),通過表間關(guān)聯(lián)就可以指出一個表中的數(shù)據(jù)與另一個表中數(shù)據(jù)的相關(guān)聯(lián)系方式。單擊【數(shù)據(jù)庫】工具欄中的【關(guān)系】工具按鈕,或者選擇菜單【工具】|【關(guān)系】,隨即出現(xiàn)如圖4-34所示的【關(guān)系】設(shè)計視圖窗口,若已定義了一些關(guān)系,該窗口內(nèi)會顯示這些關(guān)系;若尚未定義任何關(guān)系,該窗口內(nèi)沒有任何內(nèi)容。內(nèi)部聯(lián)接:只包含來自兩個表的聯(lián)接字段相等處的行。左外部聯(lián)接:包含左表的所有記錄和右表聯(lián)接字段相等的那些記錄。右外部聯(lián)接:包含右表的所有記錄和左表聯(lián)接字段相等的那些記錄。關(guān)系與關(guān)系引用時,必須取基本表中已經(jīng)存在的值關(guān)系完整性1。實體完整性:保證關(guān)系中記錄的唯一性2。參照完整性:關(guān)系與關(guān)系互相引用時,必須取基本表中已經(jīng)存在的值3。用戶定義完整性:對所涉及的數(shù)據(jù)提出約束性條件,ACESS是通過“有效性規(guī)則”這個屬性來實現(xiàn)用戶定義的完整性4.6數(shù)據(jù)的查詢與輸出前面已經(jīng)介紹了數(shù)據(jù)庫的數(shù)據(jù)表建立和維護(hù)方法,但將數(shù)據(jù)正確地保存在數(shù)據(jù)庫中并不是最終目的,最終目的是為了更好地使用它,通過對數(shù)據(jù)庫的數(shù)據(jù)進(jìn)行各種處理和分析,從中提取有用的信息。查詢是Access處理數(shù)據(jù)的工具;窗體是用戶和應(yīng)用程序之間的主要接口;報表用于對數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行分組、計算、匯總和打印輸出。4.6.1查詢查詢是Access處理數(shù)據(jù)的重要工具,查詢對象不是數(shù)據(jù)的集合,而是操作的集合,一般在查詢設(shè)計中視圖進(jìn)行.查詢的運(yùn)行結(jié)果是一個動態(tài)數(shù)據(jù)集合,盡管從查詢的運(yùn)行視圖上看到的數(shù)據(jù)集合形式與從數(shù)據(jù)表視圖上看到的數(shù)據(jù)集合形式完全一樣,盡管在數(shù)據(jù)表視圖中所能進(jìn)行的各種操作也幾乎都能在查詢的運(yùn)行視圖中完成,但無論它們在形式上是多么的相似,其實質(zhì)是完全不同的??梢赃@樣來理解,數(shù)據(jù)表是數(shù)據(jù)源之所在,而查詢是針對數(shù)據(jù)源的操作命令,相當(dāng)于程序。1.查詢的種類可以將Access2007的查詢對象分為6種不同的基本類型。選擇查詢:是從多個數(shù)據(jù)表中篩選數(shù)據(jù)形成的查詢對象,其中可以包含計算字段、分類匯總字段,可設(shè)定各種篩選條件,用于顯示數(shù)據(jù),形成數(shù)據(jù)編輯界面。交叉表查詢:用于產(chǎn)生采用垂直方式對記錄進(jìn)行分組匯總的查詢結(jié)果。參數(shù)查詢:在這種查詢中,用戶以交互方式指定一個或多個條件值。時一種利用對話框來提示用戶輸入準(zhǔn)則的查詢。這種查詢可以根據(jù)用戶輸入的準(zhǔn)則來檢索符合相應(yīng)條件的記錄。更新查詢:用于在數(shù)據(jù)表中更改數(shù)據(jù),更改符合一定條件的記錄。追加查詢:將數(shù)據(jù)庫中某個表中符合一定條件的記錄添加到另一個表上。生成表查詢:從一個或多個表中提取符合條件的數(shù)據(jù)組合生成一個新表。刪除查詢:用于在數(shù)據(jù)表中刪除一組同類的記錄。操作查詢:與選擇查詢相似,都是由用戶指定查找記錄的條件,但選擇查詢是檢查符合特定條件的一組記錄,而操作查詢是在一次查詢操作中對所得結(jié)果進(jìn)行編輯等操作。操作查詢可分為以下四種查詢。SQL特定查詢:由SQL語句組成的查詢。傳遞查詢、聯(lián)合查詢和數(shù)據(jù)定義查詢都是SQL特定查詢。SQL是一種結(jié)構(gòu)化查詢語言,是數(shù)據(jù)庫操作的工業(yè)化標(biāo)準(zhǔn)語言,使用SQL可以對任何的數(shù)據(jù)庫管理系統(tǒng)進(jìn)行操作。4.6數(shù)據(jù)的查詢與輸出2.創(chuàng)建選擇查詢

P177【例4-3】在“學(xué)生”數(shù)據(jù)庫中,根據(jù)學(xué)生表、選課表、課程表創(chuàng)建“優(yōu)秀學(xué)生成績”查詢,要求是:按學(xué)號升序顯示成績在85分以上的學(xué)生的學(xué)號、姓名、課程名和成績。創(chuàng)建此查詢的具體步驟如下。打開“學(xué)生”數(shù)據(jù)庫,單擊“創(chuàng)建”選項卡“其他”組中的【查詢設(shè)計】按鈕

,進(jìn)入查詢的設(shè)計視圖,同時也彈出【顯示表】對話框,如圖4-36所示。運(yùn)行:在設(shè)計查詢的過程中,可以通過單擊【設(shè)計】選項卡【結(jié)果】組的【運(yùn)行】按鈕

運(yùn)行查詢,進(jìn)入查詢的數(shù)據(jù)表視圖,以查看查詢結(jié)果,如果符合要求,則單擊快速訪問工具欄中【保存】按鈕,彈出【另存為】對話框,將新建查詢對象命名為所需要的名字“優(yōu)秀學(xué)生成績”。如果不符合要求,則可選擇【開始】選項卡【視圖】組的【設(shè)計視圖】按鈕

,回到查詢的設(shè)計視圖修改查詢,直至滿足要求為止。

保存查詢:文件完畢后,在數(shù)據(jù)庫窗口雙擊該查詢名,也可運(yùn)行查詢。修改查詢:則可右擊該查詢,通過在彈出的快捷菜單中選擇【設(shè)計視圖】進(jìn)入查詢設(shè)計視圖,再對查詢進(jìn)行修改。匯總查詢:可以執(zhí)行兩種類型的計算,預(yù)定義計算和自定義計算。預(yù)定義計算是系統(tǒng)提供的用于對查詢中的記錄組或全部記錄進(jìn)行的計算,包括總計、平均值、計數(shù)、最大值、最小值等。自定義計算可以用一個或多個字段的值進(jìn)行數(shù)值、日期和文本計算。

【例4-4】創(chuàng)建“課程平均成績”查詢:要求查詢課程名和該課程的平均成績,并將結(jié)果降序排列。4.查詢對象的實質(zhì)建立查詢的操作,實質(zhì)上是生成SQL(結(jié)構(gòu)化查詢語言)語句的過程。也就是說,Access提供了一個自動生成SQL語句的可視化工具——查詢的設(shè)計視圖。右擊“學(xué)生”數(shù)據(jù)庫中的“優(yōu)秀學(xué)生成績”查詢,選擇【設(shè)計視圖】,進(jìn)入查詢的設(shè)計視圖;或者雙擊該查詢對象,在查詢的數(shù)據(jù)表視圖下,選擇【開始】選項卡【視圖】組,單擊【視圖】下拉按鈕,選擇【SQL視圖】項,即進(jìn)入SQL視圖SELECT課程.課程名,Avg(選課.成績)AS成績之平均值FROM課程INNERJOIN選課ON課程.課程號=選課.課程號GROUPBY課程.課程名;4.6.2窗體Access2007的窗體對象是操作數(shù)據(jù)庫最主要的人機(jī)交互界面。數(shù)據(jù)查看,對數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行追加、修改、刪除等編輯操作,如果直接在數(shù)據(jù)表視圖中進(jìn)行操作絕對是極不明智的選擇。應(yīng)該為這些操作需求設(shè)計相應(yīng)的窗體,使得數(shù)據(jù)庫應(yīng)用系統(tǒng)的使用者針對數(shù)據(jù)庫中數(shù)據(jù)所進(jìn)行的任何操作均只能在窗體中進(jìn)行。窗體主要有以下基本功能:顯示、輸入和編輯數(shù)據(jù)。利用窗體,可以非常清晰和直觀地顯示表或查詢中的數(shù)據(jù)記錄,以及對其進(jìn)行編輯。創(chuàng)建數(shù)據(jù)透視窗體圖表,增強(qiáng)數(shù)據(jù)的可分析性。利用窗體建立的數(shù)據(jù)透視圖和數(shù)據(jù)透視表能更直觀地顯示數(shù)據(jù)??刂茟?yīng)用程序流程。窗體能夠與函數(shù)、過程相結(jié)合,可以通過編寫宏或VBA代碼完成各種復(fù)雜的控制功能。

【例4-5】使用【窗體】工具,以“學(xué)生”表為數(shù)據(jù)源,創(chuàng)建一個“學(xué)生_窗體”的窗體。具體操作步驟如下。①打開數(shù)據(jù)庫,在導(dǎo)航窗格的表對象下,單擊“學(xué)生”表。②單擊【創(chuàng)建】選項卡【窗體】組的【窗體】按鈕

,自動創(chuàng)建圖4-43所示的窗體。③單擊【保存】按鈕

,彈出的【另存為】對話框中,輸入窗體名稱為“學(xué)生_窗體”保存。4.6.3報表報表:提供查看和打印數(shù)據(jù)信息的靈活方法。在報表中,數(shù)據(jù)可以被分組和排序,然后以分組次序顯示數(shù)據(jù);也可以把匯總值、計算的平均值或其他統(tǒng)計信息顯示和打印出來。報表的數(shù)據(jù)來源與窗體相同,可以是已有的數(shù)據(jù)表、查詢或者是新建的SQL語句。報表主要有以下功能:對數(shù)據(jù)分組,進(jìn)行匯總;可以進(jìn)行計數(shù)、求平均、求和等統(tǒng)計計算;可以包含子報表及圖表數(shù)據(jù);可以輸出標(biāo)簽、發(fā)票、訂單和信封等多種樣式的報表、可以嵌入圖片來豐富數(shù)據(jù)的顯示。1.自動報表

自動報表可用來打印原始表或查詢中的所有字段和記錄,是創(chuàng)建報表最快速的方法。其創(chuàng)建方法是:單擊選中數(shù)據(jù)庫要制作自動報表的表或查詢,再單擊【創(chuàng)建】選項卡【報表】組的【報表】按鈕

,就在“布局視圖”下自動創(chuàng)建并顯示一個簡單的報表了2.報表向?qū)?/p>

使用向?qū)?chuàng)建報表的過程比使用自動報表稍復(fù)雜,它要求用戶輸入所需數(shù)據(jù)的記錄源、字段、版式以及格式等信息,使用向?qū)?chuàng)建的報表可以是基于多個表或查詢的。3.報表設(shè)計視圖4.7結(jié)構(gòu)化查詢語言(SQL)

SQL是結(jié)構(gòu)化查詢語言(StructuredQueryLanguage)的縮寫,是目前最為廣泛地關(guān)系數(shù)據(jù)庫查詢語言,是一種綜合、通用、功能極強(qiáng)的關(guān)系數(shù)據(jù)庫語言。4.7.2SQL數(shù)據(jù)定義數(shù)據(jù)定義語言DDL用于執(zhí)行數(shù)據(jù)定義的操作,如創(chuàng)建或刪除表、索引和視圖之類的對象,由CREATETABLE、DROP、ALTER命令組成,可以完成數(shù)據(jù)庫對象的建立(CREATETABLE)、刪除(DROP)和修改(ALTER)等操作。有些語句運(yùn)行時被禁用,需要設(shè)置“啟動宏”,在Office按紐的“access選項“中操作1.表的維護(hù)(1)表的創(chuàng)建【語法】CREATETABLE<表名>(字段1數(shù)據(jù)類型1[(大?。[字段級完整性約束條件],字段2類型[(大?。……)<>:表示在實際的語句中要采用實際需要的內(nèi)容替代。[]:表示可以根據(jù)需要進(jìn)行選擇其中之一。|:表示多項選項只能選擇其中之一。當(dāng)字段類型為數(shù)字、日期、邏輯等類型時,字段大小固定,無需指定。其中常用的字段類型可以用以下類型符定義:Text(或者Char)、Integer、Double、Money、Date、Logical、Memo、General,分別對應(yīng)文本型、數(shù)字長整型、數(shù)字雙精度型、貨幣型、日期/時間、是/否、備注型、通用型。[字段級完整性約束條件]定義相關(guān)字段的約束條件,包括主鍵約束(PrimaryKey)、數(shù)據(jù)唯一約束(Unique)、空值約束(NotNull)等。1.表的維護(hù)【例4-9】CREATETABLE學(xué)生(學(xué)號

Text(8)PrimaryKey,姓名

Text(8),性別

Text(1),年齡Integer)【功能】創(chuàng)建一個名為“學(xué)生”的表,其中有4個字段,“學(xué)號”、“姓名”與“性別”字段的類型為文本型,字段大小分別為8和1,并且設(shè)置“學(xué)號”字段為主鍵?!澳挲g”字段的類型為長整型,大小固定。(2)表的刪除【語法】DROPTABLE<表名>【說明】刪除表之前,表必須已經(jīng)被關(guān)閉。2.表結(jié)構(gòu)的維護(hù)(1)字段的添加【語法】ALTERTABLE<表名>ADD

字段1類型[(大小)],字段2,……【例4-10】ALTERTABLE學(xué)生ADD班級號Text(8)【功能】在“學(xué)生”表中添加一個“班級號”字段,類型為文本,大小為8。(2)字段的刪除【語法】ALTERTABLE<表名>DROP字段1,字段2……【例4-11】ALTERTABLE學(xué)生DROP年齡【功能】在“學(xué)生”表中刪除“年齡”字段。(3)字段的修改【語法】ALTERTABLE<表名>ALTER字段類型[(大?。【說明】可以修改已有字段的字段類型以及字段大小?!纠?-12】ALTERTABLE學(xué)生ALTER姓名

Text(15)【功能】在“學(xué)生”表中修改“姓名”字段的字段大小為15。3.Access的數(shù)據(jù)定義語句操作在Access中,假設(shè)要使用SQL數(shù)據(jù)定義語句創(chuàng)建“學(xué)生”表,其操作步驟如下。①刪除重復(fù)表。打開或新建一個數(shù)據(jù)庫,查看表對象中有無“學(xué)生”表,如果有則必須先刪除之。②進(jìn)入SQL視圖。單擊選中查詢對象,再單擊【設(shè)計】按鈕,關(guān)閉彈出的【顯示表】對話框,然后選擇菜單【視圖】|【SQL視圖】。③輸入SQL語句。在SQL視圖中,輸入【例4-1】的SQL語句(注意要求用英文標(biāo)點符號狀態(tài)輸入括號、逗號等):CREATETABLE學(xué)生(學(xué)號Text(8),姓名Text(8),性別Text(1),年齡Integer)④運(yùn)行SQL語句。選擇菜單【查詢】|【運(yùn)行】,或者通過單擊【查詢設(shè)計】工具欄上的【運(yùn)行】按鈕運(yùn)行語句。數(shù)據(jù)定義語句一般只能執(zhí)行一遍,第二遍再重復(fù)執(zhí)行則會出錯。⑤查詢結(jié)果。單擊數(shù)據(jù)庫窗口中的表對象,即可發(fā)現(xiàn)多了一個“學(xué)生”表,表明創(chuàng)建表成功。注意:每次只能運(yùn)行一條SQL語句??!4.7.3SQL數(shù)據(jù)操縱數(shù)據(jù)操縱語言是完成數(shù)據(jù)操作的命令,一般分為兩種類型的數(shù)據(jù)操縱,它們統(tǒng)稱為DML。數(shù)據(jù)檢索(常稱為查詢),即尋找所需的具體數(shù)據(jù);數(shù)據(jù)修改包括添加、刪除和改變數(shù)據(jù)。數(shù)據(jù)操縱語言由INSERTINTO(插入)、DELETE(刪除)、UPDATE(更新)、SELECT(檢索,又稱查詢)等組成。由于SELECT比較特殊,所以一般又將它以查詢(檢索)語言單獨(dú)列出,將在后面介紹。1.記錄的插入(添加)【語法】INSERTINTO<表名>(字段1,字段2,……)VALUES(值1,值2,……)注意:文本型數(shù)據(jù)必須用單引號或雙引號限定,數(shù)字類型數(shù)據(jù)則不能加引號?!纠?-14】INSERTINTO學(xué)生(學(xué)號,姓名,性別,年齡)VALUES(”001”,”張三”,”男”,18)【功能】在“學(xué)生”表中添加一條記錄,為學(xué)號姓名、性別、年齡字段分別賦值為001,張三、男、18?!纠?-15】INSERTINTO學(xué)生(學(xué)號,姓名)VALUES("002","李四")【功能】在“學(xué)生”表中添加一條記錄,為學(xué)號、姓名字段分別賦值為002、李四。注意語句中字段名列表和后面賦值必須一一對應(yīng)。2.記錄的編輯(修改)【語法】UPDATE<表名>SET

字段1=值1,字段2=值2,……[WHERE子句]【說明】WHERE子句是可選的,其含義與SELECT語句中的相同,表示滿足一定的條件。如果沒有WHERE子句將修改所有記錄。【例4-15】UPDATE

選課SET

成績=60WHERE成績BETWEEN57AND59【功能】將“選課”表中所有滿足條件(成績在57~59之間)的記錄中的“成績”字段的值改成60?!纠?-16】UPDATE

學(xué)生

SET

學(xué)號="2012"+學(xué)號【功能】將“學(xué)生”表中所有同學(xué)學(xué)號前加上“2012”。如果原來學(xué)號是“001”,則變?yōu)椤?012001”。3.記錄的刪除【語法】DELETEFROM<表名>[WHERE

子句]【說明】WHERE子句是可選的,如果沒有WHERE子句將刪除表中所有的記錄?!纠?-16】DELETEFROM選課WHERE成績<60【功能】在“選課”表中刪除課程成績不及格的記錄?!纠?-17】DELETEFROM學(xué)生WHERE姓名LIKE"李*"【功能】將“學(xué)生”表中姓李的同學(xué)刪除。在Access中,假設(shè)要使用SQL數(shù)據(jù)操縱語句向已建立的“學(xué)生”空表添加一條記錄,其操作步驟如下。①查看表:打開數(shù)據(jù)庫,查看要添加記錄的表是否已存在,如果沒有“學(xué)生”表,則必須先創(chuàng)建。②進(jìn)入SQL視圖:單擊【創(chuàng)建】選項卡【其他】組中的【查詢設(shè)計】按鈕,關(guān)閉彈出的【顯示表】對話框。單擊【設(shè)計】選項卡【結(jié)果】組中的【SQL】按鈕,切換到SQL視圖。③輸入SQL語句:在SQL視圖中,輸入前面例【例4-15】的SQL語句:INSERTINTO學(xué)生(學(xué)號,姓名)VALUES("002","李四")④運(yùn)行SQL語句:單擊【設(shè)計】選項卡【結(jié)果】組中的【運(yùn)行】按鈕

運(yùn)行語句,出現(xiàn)提示信息。如果

溫馨提示

  • 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

提交評論