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

下載本文檔

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

文檔簡介

第1章緒論

1.1資料庫系統(tǒng)概述

資料庫技術(shù)自從20世紀(jì)60年代中期產(chǎn)生以來,無論是理論還是應(yīng)用方面都以變得相當(dāng)?shù)闹匾统墒欤蔀殡娔X科學(xué)的重要分支。資料庫技術(shù)是電腦領(lǐng)域發(fā)展最快的學(xué)科之一,也是應(yīng)用很廣、實(shí)用性很強(qiáng)的一門技術(shù)。目前,資料庫技術(shù)已從第一代的網(wǎng)狀、層次資料庫系統(tǒng),第二代的關(guān)係資料庫系統(tǒng),發(fā)展到以面向?qū)ο竽P蜑橹饕蒯绲牡谌鷶?shù)據(jù)庫系統(tǒng)。1.1.1數(shù)據(jù)、資料庫、資料庫管理系統(tǒng)、資料庫系統(tǒng)

數(shù)據(jù),資料庫,資料庫管理系統(tǒng),資料庫系統(tǒng)是與資料庫技術(shù)密切相關(guān)的四個基本概念。是我們首先要認(rèn)識的。一、數(shù)據(jù)(Data)

1.數(shù)據(jù)的定義

數(shù)據(jù)是用來記錄資訊的可識別的符號,是資訊的具體表現(xiàn)形式。

2.數(shù)據(jù)的表現(xiàn)形式

數(shù)據(jù)是資料庫中存儲的基本對象

1.1.1數(shù)據(jù)、資料庫、資料庫管理系統(tǒng)、資料庫系統(tǒng)

數(shù)據(jù)是資料庫中存儲的基本對象。數(shù)據(jù)在大多數(shù)人的第一印象中就是數(shù)字。其實(shí)數(shù)字只是其中一種最簡單的表現(xiàn)形式,是數(shù)據(jù)的一種傳統(tǒng)和狹義的理解。按廣義的理解來說,數(shù)據(jù)的種類有很多,如文字、圖形、圖像、聲音、視頻、語言以及學(xué)校學(xué)生的檔案管理等等情況,這些都是數(shù)據(jù),都可以轉(zhuǎn)化為電腦可以識別的標(biāo)識,並以數(shù)位化後的二進(jìn)位形式存入電腦。1.1.1數(shù)據(jù)、資料庫、資料庫管理系統(tǒng)、資料庫系統(tǒng)

其實(shí)數(shù)字只是其中一種最簡單的表現(xiàn)形式,是數(shù)據(jù)的一種傳統(tǒng)和狹義的理解。按廣義的理解來說,數(shù)據(jù)的種類有很多,如文字、圖形、圖像、聲音、視頻、語言以及學(xué)校學(xué)生的檔案管理等等情況,這些都是數(shù)據(jù),都可以轉(zhuǎn)化為電腦可以識別的標(biāo)識,並以數(shù)位化後的二進(jìn)位形式存入電腦。為了瞭解世界,交流資訊,人們需要描述各種事物。在日常生活中直接用自然語言描述。在電腦中,為了存儲和處理這些事物,就要抽出對這些事物感興趣的特徵組成一個記錄來描述。1.1.1數(shù)據(jù)、資料庫、資料庫管理系統(tǒng)、資料庫系統(tǒng)

3.數(shù)據(jù)與資訊的聯(lián)繫

數(shù)據(jù)解釋的含義稱為數(shù)據(jù)的語義(即資訊),數(shù)據(jù)與其語義是不可分的??梢赃@樣認(rèn)為:數(shù)據(jù)是資訊的符號表示或載體,資訊則是數(shù)據(jù)的內(nèi)涵,是對數(shù)據(jù)的語義解釋。二、資料庫(DataBase,簡稱DB)資料庫,從字面意思來說就是存放數(shù)據(jù)的倉庫。具體而言就是長期存放在電腦內(nèi)的有組織的可共用的數(shù)據(jù)集合,可供多用戶共用,資料庫中的數(shù)據(jù)按一定的數(shù)據(jù)模型組織、描述和儲存,具有盡可能小的冗餘度和較高的數(shù)據(jù)獨(dú)立性和易擴(kuò)張性。

1.1.1數(shù)據(jù)、資料庫、資料庫管理系統(tǒng)、資料庫系統(tǒng)資料庫具有兩個比較突出的特點(diǎn):①把在特定的環(huán)境中與某應(yīng)用程式相關(guān)的數(shù)據(jù)及其聯(lián)繫集中在一塊並按照一定的結(jié)構(gòu)形式進(jìn)行存儲,即集成性。②資料庫中的數(shù)據(jù)能被多個應(yīng)用程式的用戶所使用,即共用性。三、資料庫管理系統(tǒng)(DataBaseManagementSystem,簡稱DBMS)資料庫管理系統(tǒng)是資料庫系統(tǒng)的核心組成部分,是對數(shù)據(jù)進(jìn)行管理的大型系統(tǒng)軟體,用戶在資料庫系統(tǒng)中的一些操作,例如:數(shù)據(jù)定義、數(shù)據(jù)操縱、數(shù)據(jù)查詢和數(shù)據(jù)控制,這些操作都是由資料庫管理系統(tǒng)來實(shí)現(xiàn)的。

1.1.1數(shù)據(jù)、資料庫、資料庫管理系統(tǒng)、資料庫系統(tǒng)

資料庫管理系統(tǒng)主要包括以下幾個功能:

(1)數(shù)據(jù)定義

(2)數(shù)據(jù)操縱

(3)資料庫的運(yùn)行管理

(4)資料庫的建立和維護(hù)功能四、資料庫系統(tǒng)(DataBaseSystem,簡稱DBS)資料庫系統(tǒng)是指在電腦系統(tǒng)中引入資料庫後的系統(tǒng)構(gòu)成,主要有數(shù)據(jù)庫(及相關(guān)硬體)、資料庫管理系統(tǒng)(及開發(fā)工具)(及相關(guān)軟體)、應(yīng)用系統(tǒng)、資料庫管理員和用戶這幾部分1.1.2數(shù)據(jù)管理技術(shù)的產(chǎn)生和發(fā)展

談數(shù)據(jù)管理技術(shù),先要講到數(shù)據(jù)處理,所謂數(shù)據(jù)處理是指對各種數(shù)據(jù)進(jìn)行收集、存儲、加工和傳播的一系列活動的總和。數(shù)據(jù)管理則是數(shù)據(jù)處理的中心問題,為此,數(shù)據(jù)管理是指對數(shù)據(jù)進(jìn)行分類、組織、編碼、存儲、檢索和維護(hù)的管理活動總稱。就用電腦來管理數(shù)據(jù)而言,數(shù)據(jù)管理是指數(shù)據(jù)在電腦內(nèi)的一系列活動的總和。

人們借助電腦來進(jìn)行數(shù)據(jù)管理雖是近五十多年的事,然而數(shù)據(jù)管理技術(shù)已經(jīng)曆了人工管理、檔系統(tǒng)及資料庫系統(tǒng)三個發(fā)展階段1.1.2數(shù)據(jù)管理技術(shù)的產(chǎn)生和發(fā)展

一、人工管理階段

20世紀(jì)50年代中期以前,電腦主要用於科學(xué)計(jì)算。硬體設(shè)施方面:外存只有紙帶、卡片、磁帶,沒有磁片等直接存取設(shè)備;軟體方面:沒有操作系統(tǒng)和管理數(shù)據(jù)的軟體;數(shù)據(jù)處理方式是批處理。人工管理數(shù)據(jù)具有以下幾個特點(diǎn):(1)數(shù)據(jù)不保存(2)應(yīng)用程式管理數(shù)據(jù)

1)數(shù)據(jù)不共用

2)數(shù)據(jù)不具有獨(dú)立性

1.1.2數(shù)據(jù)管理技術(shù)的產(chǎn)生和發(fā)展

二、檔系統(tǒng)階段

20世紀(jì)50年代後期到60年代中期,這時(shí)電腦已大量用於數(shù)據(jù)的管理。硬體方面:有了磁片、磁鼓等直接存取存儲設(shè)備;軟體方面:操作系統(tǒng)中已經(jīng)有了專門的管理軟體,一般稱為檔系統(tǒng);處理方式有批處理、聯(lián)機(jī)即時(shí)處理。特點(diǎn)如下:(1)數(shù)據(jù)長期保存(2)檔系統(tǒng)管理數(shù)據(jù)(3)數(shù)據(jù)共用性差,冗餘度大(4)數(shù)據(jù)獨(dú)立性差1.1.2數(shù)據(jù)管理技術(shù)的產(chǎn)生和發(fā)展

三、資料庫系統(tǒng)階段

20世紀(jì)60年代後期以來,電腦用於管理的規(guī)模更為龐大,數(shù)據(jù)量急劇增長,硬體已有大容量磁片,硬體價(jià)格下降;軟體則價(jià)格上升,使得編制、維護(hù)軟體及應(yīng)用程式成本相對增加;處理方式上,聯(lián)機(jī)即時(shí)處理要求更多,分佈處理也在考慮之中。介於這種情況,檔系統(tǒng)的數(shù)據(jù)管理滿足不了應(yīng)用的需求,為解決共用數(shù)據(jù)的需求,隨之從檔系統(tǒng)中分離出了專門軟體系統(tǒng)——資料庫管理系統(tǒng),用來統(tǒng)一管理數(shù)據(jù)。1.1.3資料庫系統(tǒng)的特點(diǎn)

與以上兩個數(shù)據(jù)管理階段相比,資料庫系統(tǒng)階段數(shù)據(jù)管理有其自己的特點(diǎn),主要體現(xiàn)在以下幾個方面:一、數(shù)據(jù)結(jié)構(gòu)化二、數(shù)據(jù)的共用性高,冗餘度低,易擴(kuò)充三、數(shù)據(jù)獨(dú)立性高

數(shù)據(jù)獨(dú)立性包括了數(shù)據(jù)的物理獨(dú)立性和數(shù)據(jù)的邏輯獨(dú)立性兩方面。

1.1.3資料庫系統(tǒng)的特點(diǎn)

物理獨(dú)立性是指用戶的應(yīng)用程式與存儲在磁片上的資料庫中數(shù)據(jù)是相互獨(dú)立的。也就是說,數(shù)據(jù)在磁片上的資料庫中怎樣存儲是由DBMS管理的,用戶程式不需要瞭解,應(yīng)用程式要處理的只是數(shù)據(jù)的邏輯結(jié)構(gòu),這樣當(dāng)數(shù)據(jù)的物理存儲改變時(shí),應(yīng)用程式不用改變。

邏輯獨(dú)立性是指用戶的應(yīng)用程式與資料庫的整體邏輯結(jié)構(gòu)是相互獨(dú)立的,也就是說,數(shù)據(jù)的邏輯結(jié)構(gòu)改變了,用戶程式也可以不需修改的。1.1.3資料庫系統(tǒng)的特點(diǎn)

四、數(shù)據(jù)由DBMS統(tǒng)一管理和控制資料庫的共用是併發(fā)的共用,即多個用戶可以同時(shí)存取資料庫中的數(shù)據(jù)甚至可以同時(shí)存取資料庫中的同一塊數(shù)據(jù)。為此,DBMS還必須提供以下幾方面的數(shù)據(jù)控制功能(1)數(shù)據(jù)的安全性控制

(2)數(shù)據(jù)的完整性約束

(3)併發(fā)控制

(4)資料庫恢復(fù)

1.2數(shù)據(jù)模型

數(shù)據(jù)模型也是一種模型,它能實(shí)現(xiàn)對現(xiàn)實(shí)世界數(shù)據(jù)特徵的抽象。數(shù)據(jù)模型應(yīng)滿足三方面的要求:一、是能比較真實(shí)地模擬現(xiàn)實(shí)世界;二、是容易為人所理解;三、是便於在電腦上實(shí)現(xiàn)。不同的數(shù)據(jù)模型實(shí)際上是提供給我們模型化數(shù)據(jù)和資訊的不同工具。根據(jù)模型應(yīng)用的不同目的,可以將這些模型分為兩類,他們分屬於兩個不同的層次。1.2數(shù)據(jù)模型

第一類模型是概念模型,也稱資訊模型,它是按用戶的觀點(diǎn)來對數(shù)據(jù)和資訊建模的,主要用於資料庫設(shè)計(jì)。概念模型一般應(yīng)具有以下能力:(1)具有對現(xiàn)實(shí)世界的抽象與表達(dá)能力:能對現(xiàn)實(shí)世界本質(zhì)的、實(shí)際的內(nèi)容進(jìn)行抽象。而忽略現(xiàn)實(shí)世界中非本質(zhì)的和與研究主題無關(guān)的內(nèi)容。(2)完整、精確的語義表達(dá)力,能夠模擬現(xiàn)實(shí)世界中本質(zhì)的、與研究主題有關(guān)的各種情況。(3)易於理解和修改。(4)易於向DBMS所支持的數(shù)據(jù)模型轉(zhuǎn)換,現(xiàn)實(shí)世界抽象成資訊世界的目的,是為了用電腦處理現(xiàn)實(shí)世界中的資訊。1.2數(shù)據(jù)模型

另一類模型是數(shù)據(jù)模型,主要包括層次模型、網(wǎng)狀模型、關(guān)係模型等,它是按電腦系統(tǒng)對數(shù)據(jù)建模,主要用於DBMS的實(shí)現(xiàn)。數(shù)據(jù)模型是資料庫系統(tǒng)的核心和基礎(chǔ),各種機(jī)器上實(shí)現(xiàn)的DBMS軟體都是基於某種數(shù)據(jù)模型的。本書後續(xù)內(nèi)容將主要圍繞數(shù)據(jù)模型而展開。1.2.1數(shù)據(jù)模型的組成要素

數(shù)據(jù)模型是模型中的一種,是現(xiàn)實(shí)世界數(shù)據(jù)特徵的抽象,它描述了系統(tǒng)的三個方面:靜態(tài)特性、動態(tài)特性和完整性約束條件。因此數(shù)據(jù)模型一般由數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)操作和完整性約束三部分組成,是嚴(yán)格定義的一組概念的集合。一、數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)用於描述系統(tǒng)的靜態(tài)特性,是所研究的對象類型的集合。數(shù)據(jù)模型按其數(shù)據(jù)結(jié)構(gòu)分為層次模型、網(wǎng)狀模型、關(guān)係模型和麵向?qū)ο竽P?。其所研究的對象是資料庫的組成部分,它們包括兩類,一類是與數(shù)據(jù)類型、內(nèi)容、性質(zhì)有關(guān)的對象,例如網(wǎng)狀模型中的資料項(xiàng)目、記錄,關(guān)係模型中的域、屬性、實(shí)體關(guān)係等;一類是與數(shù)據(jù)之間聯(lián)繫有關(guān)的對象,例如網(wǎng)狀模型中的系型、關(guān)係模型中反映聯(lián)繫的關(guān)係等。

1.2.1數(shù)據(jù)模型的組成要素

二、數(shù)據(jù)操作數(shù)據(jù)操作用於描述系統(tǒng)的動態(tài)特性,是指對數(shù)據(jù)庫中各種對象及對象的實(shí)例允許執(zhí)行的操作的集合,包括對象的創(chuàng)建、修改和刪除,對對象實(shí)例的檢索和更新(例如插入、刪除和修改)兩大類操作及有關(guān)的操作集合。數(shù)據(jù)模型必須定義這些操作的確切含義、操作符號、操作規(guī)則(如優(yōu)先順序)以及實(shí)現(xiàn)操作的語言等。三、數(shù)據(jù)的約束條件數(shù)據(jù)的約束條件是一組完整性規(guī)則的集合。完整性規(guī)則是給定的數(shù)據(jù)模型中數(shù)據(jù)及其聯(lián)繫所具有的制約和依存規(guī)則,用以限定符合數(shù)據(jù)模型的資料庫狀態(tài)以及狀態(tài)的變化,以保證數(shù)據(jù)的正確、有效、相容。

1.2.2概念模型

一、資訊世界中的基本概念資訊世界是現(xiàn)實(shí)世界在人們頭腦中的反映。資訊世界中涉及的概念主要有:(1)實(shí)體是指客觀存在並可以相互區(qū)別的事物。(2)屬性是指實(shí)體所具有的某一特性。(3)碼是指唯一標(biāo)識實(shí)體的屬性集。(4)域是指屬性的取值範(fàn)圍,具有相同的數(shù)據(jù)類型的數(shù)據(jù)集合。(5)具有相同屬性的實(shí)體必然具有共同的特徵和性質(zhì)。用實(shí)體名及其屬性名集合組成的形式,稱為實(shí)體型。1.2.2概念模型

(6)實(shí)體集是指同型實(shí)體的集合。(7)聯(lián)繫是指實(shí)體型與實(shí)體型之間、實(shí)體集內(nèi)實(shí)體與實(shí)體之間以及組成實(shí)體的各屬性間的關(guān)係。兩個實(shí)體型之間的聯(lián)繫有以下三種:

1)一對一聯(lián)繫

2)一對多聯(lián)繫

3)多對多聯(lián)繫二、概念模型的表示概念模型的表示方法很多,最常用的是實(shí)體—聯(lián)繫方法。該方法用E-R圖來描述現(xiàn)實(shí)世界的概念模型。E-R圖提供了表示實(shí)體型、屬性和聯(lián)繫的方法。1.2.3層次模型概述

一、層次模型的數(shù)據(jù)結(jié)構(gòu)在資料庫中,對滿足以下兩個條件的數(shù)據(jù)模型稱為層次模型。(1)有且僅有一個節(jié)點(diǎn)無雙親,這個節(jié)點(diǎn)稱為“根節(jié)點(diǎn)”。(2)其他節(jié)點(diǎn)有且僅有一個雙親。層次模型對具有一對多的層次關(guān)係的描述非常自然、直觀、容易理解,這是層次資料庫的突出優(yōu)點(diǎn)。層次模型的一個基本的特點(diǎn)是,任何一個給定的記錄值只有按其路徑查看時(shí),才能顯出它的全部意義,沒有一個子女記錄值能夠脫離雙親記錄值而獨(dú)立存在。1.2.3層次模型概述

二、多對多聯(lián)繫在層次模型中的表示必須首先將其分解為多個一對多聯(lián)繫。分解的方法有兩種:冗餘結(jié)點(diǎn)法和虛擬結(jié)點(diǎn)法(具體略)。三、層次模型的數(shù)據(jù)操縱與約束條件層次模型的數(shù)據(jù)操作有查詢、插入、刪除和修改。進(jìn)行插入、修改、刪除操作時(shí)要滿足層次模型的完整性約束條件。四、層次模型的存儲結(jié)構(gòu)層次資料庫中不僅要存儲數(shù)據(jù)本身,還要存儲數(shù)據(jù)之間的層次聯(lián)繫,層次模型數(shù)據(jù)的存儲常常是和數(shù)據(jù)之間聯(lián)繫的存儲結(jié)合在一起的,常用的實(shí)現(xiàn)方法有兩種:(1)鄰接法(2)鏈接法1.2.3層次模型概述五、層次模型的優(yōu)缺點(diǎn)層次模型的優(yōu)點(diǎn):(1)層次模型本身比較簡單。(2)對於實(shí)體間聯(lián)繫是固定的,且預(yù)先定義好的應(yīng)用系統(tǒng),採用層次模型來實(shí)現(xiàn),其性能較優(yōu)。(3)層次模型提供了良好的完整性支持。1.2.3層次模型概述層次模型的缺點(diǎn)主要有:

(1)現(xiàn)實(shí)世界中很多聯(lián)繫是非層次性的,如多對多聯(lián)繫,一個結(jié)點(diǎn)具有多個雙親等,層次模型表示這類聯(lián)繫的方法很笨拙,只能通過引入冗餘數(shù)據(jù)或創(chuàng)建非自然的數(shù)據(jù)組織來解決。

(2)對插入和刪除操作的限制太多,影響太大。

(3)查詢子女結(jié)點(diǎn)必須通過雙親結(jié)點(diǎn),缺乏快速定位機(jī)制。

(4)由於結(jié)構(gòu)嚴(yán)密,層次命令趨於程式化。

1.2.4網(wǎng)狀模型

網(wǎng)狀數(shù)據(jù)模型的典型代表是DBTG系統(tǒng),也稱CODASYL系統(tǒng),它是20世紀(jì)70年代數(shù)據(jù)系統(tǒng)語言研究會CODASYL(ConferenceOnDataSystemsLanguage)下屬的資料庫任務(wù)組(DataBaseTaskGroup,簡稱DBTG)提出的一個系統(tǒng)方案。若用圖表示,網(wǎng)狀模型是一個網(wǎng)路。一、網(wǎng)狀模型的數(shù)據(jù)結(jié)構(gòu)在資料庫中,把滿足以下兩個條件的基本層次聯(lián)繫集合稱為網(wǎng)狀模型:(1)允許一個以上的結(jié)點(diǎn)無雙親;(2)一個結(jié)點(diǎn)可以有多於一個的雙親。1.2.4網(wǎng)狀模型

二、網(wǎng)狀模型的數(shù)據(jù)操作與完整性約束網(wǎng)狀模型一般來說沒有層次模型那樣嚴(yán)格的完整性的約束條件,但具體的網(wǎng)狀資料庫系統(tǒng)對數(shù)據(jù)操縱都加了一些限制,提供了一定的完整性約束。

DBTG在模式DDL中提供了定義DBTG資料庫完整性的若干概念和語句,主要有:

(1)支持記錄碼的概念,碼即唯一標(biāo)識記錄的資料項(xiàng)目的集合。例如,學(xué)生記錄的學(xué)號就是碼,因此資料庫中不允許學(xué)生記錄中學(xué)號出現(xiàn)重複值。

(2)保證一個聯(lián)繫中雙親記錄和子女記錄之間是一對多的聯(lián)繫。

(3)可以支持雙親記錄和子女記錄之間某些約束條件。例如,有些子女記錄要求雙親記錄存在才能插入、雙親記錄刪除時(shí)也連同刪除。

1.2.4網(wǎng)狀模型

三、網(wǎng)狀模型的存儲結(jié)構(gòu)網(wǎng)狀模型的存儲結(jié)構(gòu)中關(guān)鍵是如何實(shí)現(xiàn)記錄之間的聯(lián)繫。常用的方法是鏈接法,包括單向鏈接、雙向鏈接、環(huán)狀鏈接、向首鏈接等,此外還有其他實(shí)現(xiàn)方法,如指引元陣列法、二進(jìn)位陣列法、索引法等,依具體系統(tǒng)不同而不同。1.2.4網(wǎng)狀模型四、網(wǎng)狀模型的優(yōu)缺點(diǎn)網(wǎng)狀模型的優(yōu)點(diǎn)主要有:(1)能夠更為直接地描述現(xiàn)實(shí)世界,如一個結(jié)點(diǎn)可以有多個雙親。(2)具有良好的性能,存取效率較高。網(wǎng)狀模型的缺點(diǎn)主要有:(1)結(jié)構(gòu)比較複雜,而且隨著應(yīng)用環(huán)境的擴(kuò)大,資料庫的結(jié)構(gòu)就變得越來越複雜,不利於最終用戶掌握。(2)其DDL、DML語言複雜,用戶不容易使用。由於記錄之間聯(lián)繫是通過存取路徑實(shí)現(xiàn)的,應(yīng)用程式在訪問數(shù)據(jù)時(shí)必須選擇適當(dāng)?shù)拇嫒÷窂剑虼?,用戶必須瞭解系統(tǒng)結(jié)構(gòu)的細(xì)節(jié),加重了編寫程式的負(fù)擔(dān)。1.2.5關(guān)係模型

作為數(shù)據(jù)模型中最重要的一種模型,也有數(shù)據(jù)模型的三個組成要素,主要體現(xiàn)如下:一、關(guān)係模型的數(shù)據(jù)結(jié)構(gòu)關(guān)係模型與層次模型和網(wǎng)狀模型不同,關(guān)係模型中數(shù)據(jù)的邏輯結(jié)構(gòu)是一張二維表,它由行和列組成。介紹關(guān)係模型中的相關(guān)的術(shù)語:(1)關(guān)係:一個關(guān)係對應(yīng)一張二維表,(2)屬性:二維表中的一列稱為一個屬性,對應(yīng)每一個屬性的名字稱為屬性名。(3)主碼:如果二維表中的某個屬性或是屬性組可以唯一確定一個元組,則稱為主碼,也稱為關(guān)係鍵1.2.5關(guān)係模型

(4)域:屬性的取值範(fàn)圍稱為域(5)分量:元組中的一個屬性值(6)關(guān)係模式:表現(xiàn)為關(guān)係名和屬性集的集合,是對關(guān)係的具體描述。一般表示為:關(guān)係名(屬性1,屬性2,…,屬性N)二、關(guān)係模型的數(shù)據(jù)操縱與約束條件關(guān)係模型的操作主要包括查詢、插入、刪除和修改數(shù)據(jù)。這些操作必須滿足關(guān)係的完整性約束條件,即實(shí)體完整性、參照完整性和用戶定義完整性。1.2.5關(guān)係模型

三、關(guān)係模型的存儲結(jié)構(gòu)在關(guān)係數(shù)據(jù)模型中,實(shí)體及實(shí)體間的聯(lián)繫都用表來表示。在資料庫的物理組織中,表以檔形式存儲,每一個表通常對應(yīng)一種檔結(jié)構(gòu),也有多個表對應(yīng)一種檔結(jié)構(gòu)。四、關(guān)係模型的優(yōu)缺點(diǎn)關(guān)係模型具有下列優(yōu)點(diǎn):(1)關(guān)係模型與非關(guān)係模型不同,它有較強(qiáng)的數(shù)學(xué)理論根據(jù)。(2)數(shù)據(jù)結(jié)構(gòu)簡單、清晰,用戶易懂易用,不僅用關(guān)係描述實(shí)體,而且用關(guān)係描述實(shí)體間的聯(lián)繫。

1.2.5關(guān)係模型

3)關(guān)係模型的存取路徑對用戶透明,從而具有更高的數(shù)據(jù)獨(dú)立性、更好的安全保密性,也簡化了程式員的工作和數(shù)據(jù)庫開發(fā)和建立的工作。關(guān)係模型具有查詢效率不如非關(guān)係模型效率高的缺點(diǎn)。因此,為了提高性能,必須對用戶的查詢進(jìn)行優(yōu)化,增加了開發(fā)資料庫管理系統(tǒng)的負(fù)擔(dān)。1.3資料庫系統(tǒng)結(jié)構(gòu)

可以有多種不同的層次或不同的角度來考查資料庫系統(tǒng)的結(jié)構(gòu)。從資料庫管理系統(tǒng)內(nèi)部系統(tǒng)結(jié)構(gòu)看,資料庫系統(tǒng)通常採用三級模式結(jié)構(gòu)。從資料庫外部的體系結(jié)構(gòu)看,資料庫系統(tǒng)的結(jié)構(gòu)分為集中式結(jié)構(gòu)、分佈式結(jié)構(gòu)、客戶/伺服器和並行結(jié)構(gòu)等。1.3.1資料庫系統(tǒng)的三級模式結(jié)構(gòu)

一、外模式(ExternalSchema)外模式也稱子模式(SubSchema)或用戶模式,是三級模式的最外層,它是資料庫用戶能夠看到和使用的局部數(shù)據(jù)的邏輯結(jié)構(gòu)和特徵的描述。二、模式(Schema)模式又稱概念模式,也稱邏輯模式,是資料庫中全體數(shù)據(jù)的邏輯結(jié)構(gòu)和特徵的描述,是所有用戶的公共數(shù)據(jù)視圖,是數(shù)據(jù)視圖的全部。它是資料庫系統(tǒng)模式結(jié)構(gòu)的中間層,既不涉及數(shù)據(jù)的物理存儲細(xì)節(jié)和硬體環(huán)境,也與具體的應(yīng)用程式,與所使用的應(yīng)用開發(fā)工具及高級程式設(shè)計(jì)語言等無關(guān)。1.3.1資料庫系統(tǒng)的三級模式結(jié)構(gòu)

三、內(nèi)模式(InternalSchema)內(nèi)模式也稱為存儲模式,一個資料庫只有一個內(nèi)模式。它是數(shù)據(jù)物理結(jié)構(gòu)和存儲方式的描述,是數(shù)據(jù)在資料庫內(nèi)部的表示方式。例如,記錄的存儲方式是順序存儲、按照B樹結(jié)構(gòu)存儲還是按hash方法存儲;索引按照什麼方式組織;數(shù)據(jù)是否壓縮存儲,是否加密;數(shù)據(jù)的存儲記錄結(jié)構(gòu)有何規(guī)定等。1.3.2資料庫的二級映象功能與數(shù)據(jù)獨(dú)立性

為了能夠在內(nèi)部實(shí)現(xiàn)這三個抽象層次的聯(lián)繫和轉(zhuǎn)換,資料庫管理系統(tǒng)在這三級模式之間提供了兩層映象:外模式/模式映象,模式/內(nèi)模式映象。這兩層映象保證了資料庫系統(tǒng)的數(shù)據(jù)能夠具有較高的邏輯獨(dú)立性和物理獨(dú)立性。一、外模式/模式映象模式描述的是數(shù)據(jù)的全局邏輯結(jié)構(gòu),外模式描述的是數(shù)據(jù)的局部邏輯結(jié)構(gòu)。對應(yīng)於同一個模式可以有任意多個外模式,資料庫系統(tǒng)都有一個外模式/模式映象,它定義了該外模式與模式之間的對應(yīng)關(guān)係。這些映象定義通常包含在各自外模式的描述中。1.3.2資料庫的二級映象功能與數(shù)據(jù)獨(dú)立性

當(dāng)模式改變時(shí),由資料庫管理員對各個外模式/模式映象作相應(yīng)改變,可以使外模式保持不變。應(yīng)用程式是依據(jù)數(shù)據(jù)的外模式編寫的,從而應(yīng)用程式不必修改,保證了數(shù)據(jù)與程式的邏輯獨(dú)立性,簡稱為數(shù)據(jù)邏輯獨(dú)立性。二、模式/內(nèi)模式映象資料庫中只有一個模式,也只有一個內(nèi)模式,所以模式/內(nèi)模式映象是唯一的,它定義了資料庫全局邏輯結(jié)構(gòu)與存儲結(jié)構(gòu)之間的對應(yīng)關(guān)係。例如,說明邏輯記錄和字段在內(nèi)部是如何表示的。該映象定義通常包含在模式描述中。當(dāng)資料庫的存儲結(jié)構(gòu)改變了,由資料庫管理員對模式/內(nèi)模式映象作相應(yīng)改變,可以使模式保持不變,從而應(yīng)用程式也不必改變。保證了數(shù)據(jù)與程式的物理獨(dú)立性,簡稱為數(shù)據(jù)物理獨(dú)立性。1.3.3資料庫管理系統(tǒng)的工作過程

當(dāng)資料庫建立後,用戶就可以通過終端操作命令或應(yīng)用程式在DBMS的支持下使用資料庫。資料庫管理系統(tǒng)控制的數(shù)據(jù)操作過程基於資料庫系統(tǒng)的三級模式結(jié)構(gòu)與二級映象功能,總體操作過程能從其讀或?qū)懸粋€用戶記錄的過程大體反映出來。下麵就以應(yīng)用程式從資料庫中讀取一個用戶記錄的過程來說明,按照步驟解釋運(yùn)行過程如下:(1)應(yīng)用程式A向DBMS發(fā)出從資料庫中讀用戶數(shù)據(jù)記錄的命令;(2)DBMS對該命令進(jìn)行語法檢查、語義檢查,並調(diào)用應(yīng)用程式A對應(yīng)的子模式,檢查A的存取許可權(quán),決定是否執(zhí)行該命令。如果拒絕執(zhí)行,則轉(zhuǎn)(10)向用戶返回錯誤資訊;

1.3.3資料庫管理系統(tǒng)的工作過程

(3)在決定執(zhí)行該命令後,DBMS調(diào)用模式,依據(jù)子模式/模式映象的定義,確定應(yīng)讀入模式中的哪些記錄;(4)DBMS調(diào)用內(nèi)模式,依據(jù)模式/內(nèi)模式映象的定義,決定應(yīng)從哪個檔、用什麼存取方式、讀入哪個或哪些物理記錄;(5)DBMS向操作系統(tǒng)發(fā)出執(zhí)行讀取所需物理記錄的命令;(6)操作系統(tǒng)執(zhí)行從物理檔中讀數(shù)據(jù)的有關(guān)操作;(7)操作系統(tǒng)將數(shù)據(jù)從資料庫的存儲區(qū)送至系統(tǒng)緩衝區(qū);(8)DBMS依據(jù)內(nèi)模式/模式(模式/內(nèi)模式映象的反方向看待,並不是另一種新映象,模式/子模式映象也是類似情況)、模式/子模式映象的定義,導(dǎo)出應(yīng)用程式A所要讀取的記錄格式;(9)DBMS將數(shù)據(jù)記錄從系統(tǒng)緩衝區(qū)傳送到應(yīng)用程式A的用戶工作區(qū);(10)DBMS向應(yīng)用程式A返回命令執(zhí)行情況的狀態(tài)資訊。1.4資料庫系統(tǒng)的組成

資料庫系統(tǒng)是指電腦系統(tǒng)中引入資料庫後的整個人機(jī)系統(tǒng)。為此,資料庫系統(tǒng)應(yīng)由電腦硬體、資料庫、電腦軟體及各類人員組成。一、硬體平臺資料庫系統(tǒng)對硬體資源提出了較高的要求:要有足夠大的記憶體存放操作系統(tǒng)、DBMS的核心模組、數(shù)據(jù)緩衝區(qū)和應(yīng)用程式。有足夠大而快速的磁片等直接存取設(shè)備存放資料庫,有足夠的磁片做數(shù)據(jù)備份。要求系統(tǒng)有較高的通道能力,以提高數(shù)據(jù)傳送率。1.4資料庫系統(tǒng)的組成

二、資料庫資料庫是存放數(shù)據(jù)的地方,是存儲在電腦內(nèi)有組織的大量可共用的數(shù)據(jù)集合,可以供多用戶同時(shí)使用,具有盡可能少的冗餘和較高的數(shù)據(jù)獨(dú)立性,從而其數(shù)據(jù)存儲的結(jié)構(gòu)形式最優(yōu),並且數(shù)據(jù)操作起來容易,有完整的自我保護(hù)能力和數(shù)據(jù)恢復(fù)能力。資料庫這裏主要是指物理存儲設(shè)備中有效組織的數(shù)據(jù)集合。三、軟體資料庫系統(tǒng)的軟體主要包括:(1)支持DBMS運(yùn)行的操作系統(tǒng);1.4資料庫系統(tǒng)的組成

(2)DBMS:DBMS可以通過操作系統(tǒng)對數(shù)據(jù)庫的數(shù)據(jù)進(jìn)行存取、管理和維護(hù);(3)具有與資料庫介面的高級語言及其編譯系統(tǒng);(4)以DBMS為核心的應(yīng)用開發(fā)工具,為特定應(yīng)用環(huán)境開發(fā)的資料庫應(yīng)用系統(tǒng)。四、用戶用戶主要有這麼幾種,用於進(jìn)行管理和維護(hù)資料庫系統(tǒng)的人員——資料庫管理員;用於資料庫應(yīng)用系統(tǒng)分析設(shè)計(jì)的人員——系統(tǒng)分析員和數(shù)據(jù)庫設(shè)計(jì)人員;用於具體開發(fā)資料庫系統(tǒng)的人員——資料庫應(yīng)用程式員;用於使用資料庫系統(tǒng)的人員——最終用戶。1.4資料庫系統(tǒng)的組成

其各自的職責(zé)分別是:(1)資料庫管理員(DBA)(2)系統(tǒng)分析員和數(shù)據(jù)庫設(shè)計(jì)人員(3)應(yīng)用程式員(4)用戶1.5.1資料庫技術(shù)的研究領(lǐng)域

資料庫技術(shù)的研究領(lǐng)域十分廣泛,概括地而言包括以下三方面:

1、DBMS系統(tǒng)軟體的研製

2、資料庫應(yīng)用系統(tǒng)設(shè)計(jì)與開發(fā)的研製

3、資料庫理論的研究

1.5.2資料庫技術(shù)的發(fā)展

資料庫技術(shù)產(chǎn)生於20世紀(jì)60年代中期,由於其在商業(yè)領(lǐng)域的成功應(yīng)用,在20世紀(jì)80年代後,得到迅速推廣,新的應(yīng)用對數(shù)據(jù)庫技術(shù)在數(shù)據(jù)存儲和管理方面提出了更高的要求,從而進(jìn)一步推動了資料庫技術(shù)的發(fā)展。

1、數(shù)據(jù)模型的發(fā)展和三代數(shù)據(jù)庫系統(tǒng)數(shù)據(jù)模型是資料庫系統(tǒng)的核心和基礎(chǔ),數(shù)據(jù)模型的發(fā)展帶動著數(shù)據(jù)庫系統(tǒng)不斷更新?lián)Q代。數(shù)據(jù)模型的發(fā)展可以分為三個階段,第一階段為格式化數(shù)據(jù)模型,包括層次數(shù)據(jù)模型和網(wǎng)狀數(shù)據(jù)模型,第二階段為關(guān)係數(shù)據(jù)模型,第三階段則是以面向?qū)ο髷?shù)據(jù)模型為代表的非傳統(tǒng)數(shù)據(jù)模型。1.5.2資料庫技術(shù)的發(fā)展2、資料庫技術(shù)與其他相關(guān)技術(shù)的結(jié)合將資料庫技術(shù)與其他相關(guān)技術(shù)相結(jié)合,是當(dāng)代資料庫技術(shù)發(fā)展的主要特徵之一,並由此產(chǎn)生了許多新型的資料庫系統(tǒng)。

(1)面向?qū)ο筚Y料庫系統(tǒng)

(2)分佈式資料庫系統(tǒng)

(3)並行資料庫系統(tǒng)

(4)多媒體資料庫系統(tǒng)

(5)主動資料庫系統(tǒng)

(6)模糊資料庫系統(tǒng)1.5.2資料庫技術(shù)的發(fā)展3、資料庫技術(shù)的新應(yīng)用資料庫技術(shù)在不同領(lǐng)域中的應(yīng)用,也導(dǎo)致了一些新型資料庫系統(tǒng)的出現(xiàn),這些應(yīng)用領(lǐng)域往往無法直接使用傳統(tǒng)資料庫系統(tǒng)來管理和處理其中的數(shù)據(jù)對象。

(1)數(shù)據(jù)倉庫系統(tǒng)

(2)工程資料庫系統(tǒng)

1.6小結(jié)

本章概述了資料庫的基本概念,介紹了數(shù)據(jù)管理技術(shù)發(fā)展的三個階段及各自的優(yōu)缺點(diǎn),說明了資料庫系統(tǒng)的優(yōu)點(diǎn)。數(shù)據(jù)模型是資料庫系統(tǒng)的核心和基礎(chǔ)。本章介紹了組成數(shù)據(jù)模型的三要素及其內(nèi)涵、概念模型和三種主要的資料庫模型。概念模型也稱資訊模型,用於資訊世界的建模,E-R模型是這類模型的典型代表,E-R方法簡單、清晰,應(yīng)用十分廣泛。數(shù)據(jù)模型包括非關(guān)係模型(層次模型和網(wǎng)狀模型)和關(guān)係模型。本章簡要地講解了層次模型、網(wǎng)狀模型和關(guān)係模型,而關(guān)係模型將在後續(xù)章節(jié)中作更詳細(xì)的介紹。1.6小結(jié)

資料庫系統(tǒng)的結(jié)構(gòu)包括三級模式和兩層映象。資料庫系統(tǒng)三級模式和兩層映象的系統(tǒng)結(jié)構(gòu)保證了資料庫系統(tǒng)中能夠具有較高的邏輯獨(dú)立性和物理獨(dú)立性。資料庫系統(tǒng)不僅是一個電腦系統(tǒng),而且是一個人-機(jī)系統(tǒng),人的作用特別是DBA的作用最為重要。本章新概念較多,要深入而透徹地掌握這些基本概念和基本知識還需有個循序漸進(jìn)的過程??梢栽卺崂m(xù)章節(jié)的學(xué)習(xí)中,不斷對照加深這些知識的理解與掌握。

習(xí)題一、選擇題1、()是位於用戶與操作系統(tǒng)之間的一層數(shù)據(jù)管理軟體。資料庫在建立、使用和維護(hù)時(shí)由其統(tǒng)一管理、統(tǒng)一控制。A.DBMSB.DBC.DBSD.DBA2、文字、圖形、圖像、聲音、學(xué)生的檔案記錄、貨物的運(yùn)輸情況等,這些都是()A.DATAB.DBSC.DBD.其他3、目前()資料庫系統(tǒng)已逐漸淘汰了網(wǎng)狀資料庫和層次資料庫,成為當(dāng)今最為流行的商用資料庫系統(tǒng)。A.關(guān)係B.面向?qū)ο驝.分佈D.對象-關(guān)係4、()是刻畫一個數(shù)據(jù)模型性質(zhì)最重要的方面。因此在資料庫系統(tǒng)中,人們通常按它的類型來命名數(shù)據(jù)模型。A.?dāng)?shù)據(jù)結(jié)構(gòu)B.?dāng)?shù)據(jù)操縱C.完整性約束D.?dāng)?shù)據(jù)聯(lián)繫5、()屬於資訊世界的模型,實(shí)際上是現(xiàn)實(shí)世界到機(jī)器世界的一個中間層次。A.?dāng)?shù)據(jù)模型B.概念模型C.非關(guān)係模型D.關(guān)係模型習(xí)題6、當(dāng)資料庫的()改變了,由資料庫管理員對()映象作相應(yīng)改變,可以使()保持不變,從而保證了數(shù)據(jù)的物理獨(dú)立性。(1)模式(2)存儲結(jié)構(gòu)(3)外模式/模式(4)用戶模式(5)模式/內(nèi)模式A.(1)和(3)和(4)B.(1)和(5)和(3)C.(2)和(5)和(1)D.(1)和(2)和(4)7、資料庫的三級體系結(jié)構(gòu)即子模式、模式與內(nèi)模式是對()的三個抽象級別。A.資訊世界B.資料庫系統(tǒng)C.?dāng)?shù)據(jù)D.資料庫管理系統(tǒng)8、英文縮寫DBA代表()A.資料庫管理員B.資料庫管理系統(tǒng)C.?dāng)?shù)據(jù)定義語言D.?dāng)?shù)據(jù)操縱語言9、模式和內(nèi)模式()。A.只能各有一個B.最多只能有一個C.至少兩個D.可以有多個10、在資料庫中存儲的是()。A.?dāng)?shù)據(jù)B.資訊C.?dāng)?shù)據(jù)和數(shù)據(jù)之間的聯(lián)繫D.?dāng)?shù)據(jù)模型的定義二、填空題1、資料庫就是長期儲存在電腦內(nèi)_________、_________的數(shù)據(jù)集合。2、數(shù)據(jù)管理技術(shù)已經(jīng)曆了人工管理階段、___________和___________三個發(fā)展階段。3、數(shù)據(jù)模型通常都是由_________、_________和__________三個要素組成。4、資料庫系統(tǒng)的主要特點(diǎn):___________________、數(shù)據(jù)冗餘度小、具有較高的數(shù)據(jù)程式獨(dú)立性、具有統(tǒng)一的數(shù)據(jù)控制功能等。5、用二維表結(jié)構(gòu)表示實(shí)體以及實(shí)體間聯(lián)繫的數(shù)據(jù)模型稱為_____________數(shù)據(jù)模型。6、在資料庫的三級模式體系結(jié)構(gòu)中,外模式與模式之間的映象,實(shí)現(xiàn)了資料庫的____________獨(dú)立性。7、資料庫系統(tǒng)是以____為中心的系統(tǒng)。8、E-R圖表示的概念模型比________更一般、更抽象、更接近現(xiàn)實(shí)世界。習(xí)題9、外模式,亦稱為子模式或用戶模式,是__________能夠看到和使用的局部數(shù)據(jù)的邏輯結(jié)構(gòu)和特徵的描述。10、資料庫系統(tǒng)的軟體主要包括支持__________運(yùn)行的操作系統(tǒng)以及_________本身。三、簡答題1、簡述電腦數(shù)據(jù)管理技術(shù)發(fā)展的三個階段。2、常用的三種數(shù)據(jù)模型的數(shù)據(jù)結(jié)構(gòu)各有什麼特點(diǎn)?3、試述資料庫系統(tǒng)的特點(diǎn)。4、試述數(shù)據(jù)模型的概念、數(shù)據(jù)模型的作用和數(shù)據(jù)模型的三要素。5、試述概念模型的作用。6、定義並理解概念模型中的以下術(shù)語:實(shí)體、實(shí)體型、實(shí)體集、屬性、碼、實(shí)體聯(lián)繫圖(E-R圖)、三種聯(lián)繫類型7、學(xué)校有若干個系,每個系有若干班級和教研室,每個教研室有若干教師,每個教師只教一門課,每門課可由多個教師教;每個班有若干學(xué)生,每個學(xué)生選修若干課程,每門課程可由若干學(xué)生選修。請用E-R圖畫出該學(xué)校的概念模型,注明聯(lián)繫類型。習(xí)題2.1關(guān)係模型

關(guān)係模型由關(guān)係數(shù)據(jù)結(jié)構(gòu)、關(guān)係操作集合和關(guān)係完整性約束三部分組成。1、關(guān)係模型的數(shù)據(jù)結(jié)構(gòu)——關(guān)係關(guān)係模型的數(shù)據(jù)結(jié)構(gòu):非常單一,在用戶看來,關(guān)係模型中數(shù)據(jù)的邏輯結(jié)構(gòu)是一張二維表。但關(guān)係模型的這種簡單的數(shù)據(jù)結(jié)構(gòu)能夠表達(dá)豐富的語義,描述出現(xiàn)實(shí)世界的實(shí)體以及實(shí)體間的各種聯(lián)繫。2、關(guān)係操作關(guān)係模型給出了關(guān)係操作的能力,它利用基於數(shù)學(xué)的方法來表達(dá)關(guān)係操作,關(guān)係模型給出的關(guān)係操作往往不針對具體的RDBMS語言來表述。2.1關(guān)係模型關(guān)係模型中常用的關(guān)係操作包括:選擇(select)、投影(project)、連接(join)、除(divide)、並(union)、交(intersection)、差(difference)等查詢(query)操作和增加(insert)、刪除(delete)、修改(update)等更新操作兩大部分。關(guān)係操作的特點(diǎn)是採用集合操作方式,即操作的對象和結(jié)果都是集合。這種操作方式也稱為一次一集合方式。關(guān)係數(shù)據(jù)語言可以分成三類:

(1)關(guān)係代數(shù)(2)關(guān)係演算(3)關(guān)係數(shù)據(jù)語言2.1關(guān)係模型3、關(guān)係的三類完整性約束關(guān)係模型提供了豐富的完整性控制機(jī)制,允許定義三類完整性:實(shí)體完整性、參照完整性和用戶自定義的完整性。其中實(shí)體完整性和參照完整性是關(guān)係模型必須滿足的完整性約束條件,應(yīng)該由關(guān)係系統(tǒng)自動支持。用戶自定義的完整性是應(yīng)用領(lǐng)域特殊要求而需要遵循的約束條件,體現(xiàn)了具體領(lǐng)域中的語義約束。2.2.1關(guān)係

⒈域(Domain)定義2.1

域是一組具有相同數(shù)據(jù)類型的值的集合。又稱為值域(用D表示)。域中所包含的值的個數(shù)稱為域的基數(shù)(用m表示)。在關(guān)係中就是用域來表示屬性的取值範(fàn)圍的。

例如,自然數(shù)、整數(shù)、實(shí)數(shù)、長度小於10位元組的字串集合、1-16之間的整數(shù)都是域。又如,D1={張三,李四}D1的基數(shù)m1為2D2={男,女}D2的基數(shù)m2為2D3={19,20,21}D3的基數(shù)m3為32.2.1關(guān)係⒉笛卡爾積(CartesianProduct)定義2.2

給定一組域D1、D2、…、Dn(這些域中可以包含相同的元素,即可以完全不同(也可以部分或全部相同),D1、D2、…、Dn的笛卡爾積為:D1×D2×…×Dn={(d1,d2,…,dn)|di∈Di,i=1,2,…,n}由定義可以看出,笛卡爾積也是一個集合。其中:

(1)其中每一個元素(d1,d2,…,dn)叫作一個n元組(n-tuple),或簡稱為元組(Tuple)。但元組不是di的集合,元組由di按序排列而成。

(2)元素中的每一個值di叫作一個分量(Component)。分量來自相應(yīng)的域(di∈Di)。2.2.1關(guān)係(3)若Di(i=1,2,…,n)為有限集,其基數(shù)(Cardinalnumber)為mi(i=1,2,…,n),則D1×D2×…×Dn的基數(shù)為n個域的基數(shù)累乘之積(4)笛卡爾積可表示為一個二維表。表中的每行對應(yīng)一個元組,表中的每列對應(yīng)一個域。如上面例子中D1與D2的笛卡爾積:

D1×D2={(張三,男),(張三,女),(李四,男)(李四,女)}

可以表示成二維表,如下表2.1所示:2.2.1關(guān)係

表2.1笛卡爾積姓名性別張三男張三女李四男李四女2.2.1關(guān)係

⒊關(guān)係(Relation)定義2.3D1×D2×…×Dn的任一子集叫作在域D1,D2,…Dn上的關(guān)係,用R(D1,D2,…Dn)表示。如上例中D1×D2笛卡爾積的子集可以構(gòu)成關(guān)係T1,如下表2.3所示:姓名性別張三男李四女2.2.1關(guān)係

(1)R表示關(guān)係的名字,n是關(guān)係的目或度(Degree)。當(dāng)n=1時(shí),稱為單元關(guān)係。當(dāng)n=2時(shí),稱為二元關(guān)係。

……

當(dāng)n=m時(shí),稱為m元關(guān)係。(2)關(guān)係中的每個元素是關(guān)係中的元組,通常用t表示。(3)關(guān)係是笛卡爾積的子集,所以關(guān)係也是一個二維表,表的每行對應(yīng)一個元組,表的每列對應(yīng)一個域。由於域可以相同,為了加以區(qū)分,必須對每列起一個唯一的名字,稱為屬性(Attribute)。n目關(guān)係必有n個屬性。2.2.1關(guān)係對關(guān)係作如下限定和擴(kuò)充:

⑴無限關(guān)係在資料庫系統(tǒng)中是無意義的。因此限定關(guān)係數(shù)據(jù)模型中的關(guān)係必須是有限集合。

⑵通過為關(guān)係的每個列附加一個屬性名的方法取消關(guān)係元組的有序性,即(d1,d2,…,dj,di…,dn)=(d1,d2,…,di,dj,…,dn)(i,j=1,2…,n)基本關(guān)係具有以下六條性質(zhì):

①列是同質(zhì)的(Homogeneous),即每一列中的分量是同一類型的數(shù)據(jù),來自同一個域。

②不同的列可出自同一個域,稱其中的每一列為一個屬性,不同的屬性要給予不同的屬性名。2.2.1關(guān)係③列的順序無所謂,即列的次序可以任意交換。

④任意兩個元組不能完全相同。

⑤行的順序無所謂,即行的次序可以任意交換。

⑥分量必須取原子值,即每一個分量都必須是不可分的資料項(xiàng)目。如下兩圖:課程關(guān)係C(不規(guī)範(fàn)的關(guān)係)課程關(guān)係C

(規(guī)範(fàn)的關(guān)係)課程名學(xué)時(shí)理論實(shí)驗(yàn)資料庫5220C語言4520數(shù)據(jù)結(jié)構(gòu)5530課程名理論學(xué)時(shí)實(shí)驗(yàn)學(xué)時(shí)資料庫5220C語言4520數(shù)據(jù)結(jié)構(gòu)55302.2.2關(guān)係模式在資料庫中要區(qū)分型和值兩方面。關(guān)係資料庫中,關(guān)係模式是型,關(guān)係是值。關(guān)係模式是對關(guān)係的描述,那麼一個關(guān)係需要描述哪些方面?首先,應(yīng)該知道,關(guān)係實(shí)際上是一張二維表,表的每一行為一個元組,每一列為一個屬性。其次,一個關(guān)係通常是由賦予它的元組語義來確定的。元組語義實(shí)質(zhì)上是一個n目謂詞(n是屬性集中屬性的個數(shù))?,F(xiàn)實(shí)世界隨著時(shí)間在不斷地變化,因而在不同的時(shí)刻,關(guān)係模式的關(guān)係也會有所變化。但是,現(xiàn)實(shí)世界的許多已有事實(shí)限定了關(guān)係模式所有可能的關(guān)係必須滿足一定的完整性約束條件。。因此一個關(guān)係模式應(yīng)當(dāng)是一個5元組。2.2.2關(guān)係模式定義2.4

關(guān)係的描述稱為關(guān)係模式(RelationSchema)。一個關(guān)係模式應(yīng)當(dāng)是一個五元組。它可以形式化地表示為:R(U,D,dom,F)。其中R為關(guān)係名,U為組成該關(guān)係的屬性名集合,D為屬性組U中屬性所來自的域的集合,dom為屬性向域的映象集合,F(xiàn)為屬性間數(shù)據(jù)的依賴關(guān)係集合。關(guān)係模式通??梢院営洖椋篟(A1,A2,…,An)或R(U)。其中R為關(guān)係名,A1,A2,…,An為屬性名。而功能變數(shù)名稱及屬性向域的映象常常直接說明為屬性的類型、長度。關(guān)係實(shí)際上就是關(guān)係模式在某一時(shí)刻的狀態(tài)或內(nèi)容。也就是說,關(guān)係模式是型,關(guān)係是它的值。關(guān)係模式是靜態(tài)的、穩(wěn)定的,而關(guān)係是動態(tài)的、隨時(shí)間不斷變化的,因?yàn)殛P(guān)係操作在不斷地更新著數(shù)據(jù)庫中的數(shù)據(jù)。但在實(shí)際當(dāng)中,常常把關(guān)系模式和關(guān)係統(tǒng)稱為關(guān)係,讀者可以從上下文中加以區(qū)別。2.2.3關(guān)係資料庫在關(guān)係模型中,實(shí)體以及實(shí)體間的聯(lián)繫都是用關(guān)係來表示。例如學(xué)生實(shí)體、課程實(shí)體、學(xué)生與課程之間的多對多選課聯(lián)繫都可以分別用一個關(guān)係(或二維表)來表示。在一個給定的現(xiàn)實(shí)世界領(lǐng)域中,所有實(shí)體及實(shí)體之間的聯(lián)繫的關(guān)係的集合構(gòu)成一個關(guān)係資料庫。關(guān)係資料庫也有型和值之分。關(guān)係資料庫的型也稱為關(guān)係資料庫模式,是對關(guān)係資料庫的描述,是關(guān)係模式的集合。關(guān)係資料庫的值也稱為關(guān)係資料庫,是關(guān)係的集合。關(guān)係資料庫模式與關(guān)係資料庫通常統(tǒng)稱為關(guān)係資料庫。2.3關(guān)係的完整性一、實(shí)體完整性(EntityIntegrity)規(guī)則2.1

實(shí)體完整性規(guī)則:若屬性組(或?qū)傩裕㎏是基本關(guān)係R的主碼(或稱主關(guān)鍵字),則所有元組K的取值唯一,並且K中屬性不能全部或部分取空值。二、參照完整性(Referentialintegrity)定義2.5

設(shè)F是基本關(guān)係R的一個或一組屬性,但不是關(guān)係R的碼,如果F與基本關(guān)係S的主碼Ks相對應(yīng),則稱F是基本關(guān)係R的外碼(Foreignkey),並稱基本關(guān)係R為參照關(guān)係(Referencingrelation),基本關(guān)係S為被參照關(guān)係(Referencedrelation)或目標(biāo)關(guān)係(Targetrelation)。關(guān)係R和S可能是相同的關(guān)係,即自身參照。2.3關(guān)係的完整性規(guī)則2.2參照完整性規(guī)則:若屬性(或?qū)傩越M)F是基本關(guān)係R的外碼,它與基本關(guān)係S的主碼Ks相對應(yīng)(基本關(guān)係R和S可能是相同的關(guān)係),則對於R中每個元組在F上的值必須為:或者取空值(F的每個屬性值均為空值);或者等於S中某個元組的主碼值。三、用戶定義的完整性(User-definedintegrity)用戶定義的完整性就是針對某一具體應(yīng)用的關(guān)係資料庫所制定約束條件,它反映某一具體應(yīng)用所涉及的數(shù)據(jù)必須滿足的語義要求。

2.4關(guān)係代數(shù)

關(guān)係代數(shù)是一種抽象的查詢語言,用對關(guān)係的運(yùn)算來表達(dá)關(guān)係操作,關(guān)係代數(shù)是研究關(guān)係數(shù)據(jù)操作語言的一種較好的數(shù)學(xué)工具。關(guān)係代數(shù)是E.F.Codd1970年首次提出的,後面一節(jié)的關(guān)係演算是E.F.Codd1972年首次提出的,1979年E.F.Codd對關(guān)係模型作了擴(kuò)展,討論了關(guān)係代數(shù)中加入空值和外連接的問題。關(guān)係代數(shù)以一個或兩個關(guān)係為輸入(或稱為操作對象),產(chǎn)生一個新的關(guān)係作為其操作結(jié)果。即其運(yùn)算對象是關(guān)係,運(yùn)算結(jié)果亦為關(guān)係。關(guān)係代數(shù)用到的運(yùn)算符包括四類:集合運(yùn)算符、專門的關(guān)係運(yùn)算符、算術(shù)比較符和邏輯運(yùn)算符,如表2.6所示。2.4關(guān)係代數(shù)關(guān)係代數(shù)的運(yùn)算符運(yùn)算符含義運(yùn)算符含義集合運(yùn)算符∪∩-並交差比較運(yùn)算符>≥<≤=≠大於大於等於小於小於等於等於不等於專門的關(guān)係運(yùn)算符×σ∏÷∞廣義笛卡爾積選取投影除連接邏輯運(yùn)算符∧∨?與或非2.4關(guān)係代數(shù)比較運(yùn)算符和邏輯運(yùn)算符是用來輔助專門的關(guān)係運(yùn)算符進(jìn)行操作的,所以關(guān)係代數(shù)的運(yùn)算按運(yùn)算符的不同主要分為傳統(tǒng)的集合運(yùn)算和專門的關(guān)係運(yùn)算兩類。1.傳統(tǒng)的集合運(yùn)算:包括並、交、差、廣義笛卡爾積四種運(yùn)算。2.專門的關(guān)係運(yùn)算:包括選擇、投影、連接、除等。其中傳統(tǒng)的集合運(yùn)算將關(guān)係看成元組的集合,其運(yùn)算是從關(guān)係的“水準(zhǔn)”方向即行的角度來進(jìn)行。而專門的關(guān)係運(yùn)算不僅涉及到行而且涉及到列。2.4.1傳統(tǒng)的集合運(yùn)算傳統(tǒng)的集合運(yùn)算是二目運(yùn)算,包括並、交、差、廣義笛卡爾積四種運(yùn)算。設(shè)關(guān)係R和關(guān)係S具有相同的目n(即兩個關(guān)係都有n個屬性),且相應(yīng)的屬性取自同一個域,則可定義並、差、交運(yùn)算如下:⒈並(Union)設(shè)關(guān)係R和關(guān)係S具有相同的目n(即兩個關(guān)係都有n個屬性),且相應(yīng)的屬性取自同一個域,則關(guān)係R與關(guān)係S的並由屬於R或?qū)凫禨的所有元組組成。記作:

R∪S={t|t∈R∨t∈S}其結(jié)果關(guān)係仍為n目關(guān)係,由屬於R或?qū)凫禨的元組組成。關(guān)係的並操作對應(yīng)於關(guān)係的插入或添加記錄的操作,俗稱“+”操作,是關(guān)係代數(shù)的基本操作。2.4.1傳統(tǒng)的集合運(yùn)算⒉差(Difference)設(shè)關(guān)係R和關(guān)係S具有相同的目n,且相應(yīng)的屬性取自同一個域,則關(guān)係R與關(guān)係S的差由屬於R而不屬於S的所有元組組成。記作:

R-S={t|t∈R∧t∈S}其結(jié)果關(guān)係仍為n目關(guān)係,由屬於R而不屬於S的所有元組組成。關(guān)係的差操作對應(yīng)於關(guān)係的刪除記錄的操作,俗稱“-”操作,是關(guān)係代數(shù)的基本操作。⒊交(Intersection)設(shè)關(guān)係R和關(guān)係S具有相同的目n,且相應(yīng)的屬性取自同一個域,則關(guān)係R與關(guān)係S的交由既屬於R又屬於S的所有元組組成。記作:R∩S={t|t∈R∧t∈S}2.4.1傳統(tǒng)的集合運(yùn)算其結(jié)果關(guān)係仍為n目關(guān)係,由既屬於R又屬於S的元組組成。關(guān)係的交可以用差來表示,即R∩S=R-(R-S)。關(guān)係的交操作對應(yīng)於尋找兩關(guān)係共有記錄的操作,是一種關(guān)係查詢操作。關(guān)係的交操作能用差操作來代替,為此不是關(guān)係代數(shù)的基本操作。⒋廣義笛卡爾積(ExtendedCartesianProduct)廣義笛卡爾積不要求參加運(yùn)算的兩個關(guān)係具有相同的目(自然也就不要求來自同樣的域)。設(shè)R為n目關(guān)係,S為m目關(guān)係,則R和S的廣義笛卡爾積為:R×S={trts|tr∈R∧ts∈S}

trts表示由兩個元組tr和ts前後有序連接而成的一個元組。2.4.1傳統(tǒng)的集合運(yùn)算任取元組tr和ts,當(dāng)且僅當(dāng)tr屬於R且ts屬於S時(shí),tr和ts的有序連接即為R×S的一個元組。R和S的廣義笛卡爾積是一個(n+m)目的關(guān)係。其中任何一個元組的前n列是關(guān)係R的一個元組,後m列是關(guān)係S的一個元組。若R有K1個元組,S有K2個元組,則R×S有K1×K2個元組。實(shí)際操作時(shí),可從R的第一個元組開始,依次與S的每一個元組組合,然後,對R的下一個元組進(jìn)行同樣的操作,直至R的最後一個元組也進(jìn)行完同樣的操作為止,即可得到R×S的全部元組。2.4.1傳統(tǒng)的集合運(yùn)算列:給出了兩個關(guān)係R和S,以及它們進(jìn)行並、差、交和笛卡爾積後的結(jié)果關(guān)係。2.4.1傳統(tǒng)的集合運(yùn)算2.4.2專門的關(guān)係運(yùn)算上節(jié)中所講的傳統(tǒng)集合運(yùn)算,只是從行的角度進(jìn)行,而要靈活地實(shí)現(xiàn)關(guān)係資料庫的多樣查詢操作,則須引入專門的關(guān)係運(yùn)算。專門的關(guān)係運(yùn)算包括選擇、投影、連接、除等。為了敘述方便,我們先引入幾個記號。⒈分量:設(shè)關(guān)係模式為R(A1,A2,…,An)。它的一個關(guān)係設(shè)為R。t∈R表示t是R的一個元組。t[Ai]則表示元組t中相應(yīng)於屬性Ai的一個分量。2.4.2專門的關(guān)係運(yùn)算⒉屬性列或域列:若A={Ai1,Ai2,…,Aik},其中Ai1,Ai2,…,Aik是A1,A2,…,An中的一部分,則A稱為屬性列或域列。t[A]=(t[Ai1],t[Ai2],…,t[Aik])表示元組t在屬性列A上諸分量的集合。A則表示{A1,A2,…,An}中去掉{Ai1,Ai2,…,Aik}後剩餘的屬性組。⒊元組的連接:R為n目關(guān)係,S為m目關(guān)係。tr∈R,ts∈S,trts稱為元組的連接(Concatenation)。它是一個(n+m)列的元組,前n個分量為R中的一個n元組,後m個分量為S中的一個m元組。

2.4.2專門的關(guān)係運(yùn)算⒋象集:給定一個關(guān)係R(X,Z),X和Z為屬性組。我們定義,當(dāng)t[X]=x時(shí),x在R中的象集(ImagesSet)為:Zx={t[Z]|t∈R,t[X]=x}一、選擇(Selection)選擇又稱為限制(Restriction)。它是在關(guān)係R中選擇滿足給定條件的諸元組,記作:

σF(R)={t|t∈R∧F(t)=“真”}其中F表示選擇條件,它是一個邏輯運(yùn)算式,取邏輯值“真”或“假”。邏輯運(yùn)算式F的基本形式為:X1θY1[φX2θY2…]2.4.2專門的關(guān)係運(yùn)算

其中θ表示比較運(yùn)算符,它可以是>、≥、<、≤、=或≠。X1、Y1等是屬性名或常量或簡單函數(shù)。屬性名也可以用它的序號來代替(如1,2,…)。φ表示邏輯運(yùn)算符,它可以是?、∧或∨。[]表示任選項(xiàng),即[]中的部分可以要也可以不要,…表示上述格式可以重複下去。

設(shè)有一個學(xué)生-課程關(guān)係資料庫如圖2.2包括學(xué)生關(guān)係Student(說明:CS表示電腦系、IS表示資訊系、MA表示數(shù)學(xué)系)、課程關(guān)係Course和選修關(guān)係SC。下麵通過一些例子將對這三個關(guān)係進(jìn)行運(yùn)算。

2.4.2專門的關(guān)係運(yùn)算[例1]

查詢資訊系(CS系)全體學(xué)生。

σ(Student)或(Student)[例2]

查詢年齡大於19歲的學(xué)生。

σ(Student)二投影(Projection)關(guān)係R上的投影是從R中選擇出若干屬性列組成新的關(guān)係。記作:

∏(R)={t[A]|t∈R}

其中A為R中的屬性列。關(guān)係的投影操作對應(yīng)於關(guān)係列的角度進(jìn)行的選取操作(縱向選?。?,也是關(guān)係查詢操作的重要成員之一,是關(guān)係代數(shù)的基本操作。2.4.2專門的關(guān)係運(yùn)算[例3]

查詢選修關(guān)係SC在學(xué)號和課程號兩個屬性上的投影。

∏(SC)或∏(SC)[例4]

查詢學(xué)生關(guān)係Student中都有哪些系,即是學(xué)生關(guān)係Student在所系屬性上的投影操作。

∏(Student)三連接(Join)連接也稱θ連接,是從兩個關(guān)係的廣義笛卡爾積中選取滿足某規(guī)定條件的全體元組,形成一個新的關(guān)係,記為2.4.2專門的關(guān)係運(yùn)算其中,A是R的屬性組(A1,A2,…,Ak),B是S的屬性組(B1,B2,…,BK)。AθB的實(shí)際形式為Ai和Bi(i=1,2,…,k)不一定同名,但必須可比。θi(i=1,2,…,k)∈{>,<,≤,≥,=,≠}。連接運(yùn)算中有兩種最為重要也是最為常用的連接,一種是等值連接(equijoin),另一種是自然連接(Naturaljoin)。2.4.2專門的關(guān)係運(yùn)算等值連接屬於連接,當(dāng)一個連接運(yùn)算式中,所有的θi都是“=”符時(shí),則稱此連接為等值連接。等值連接是較常用的連接。自然連接(Naturaljoin)是一種特殊的等值連接,它要求兩個關(guān)係中進(jìn)行比較的分量必須是相同的屬性組,並且要在結(jié)果中把重複的屬性去掉。即若R和S具有相同的屬性組B,關(guān)係的各種連接,實(shí)際上是在關(guān)係的廣義笛卡爾積的基礎(chǔ)上再組合選擇或投影操作複合而成的一種查詢操作

2.4.2專門的關(guān)係運(yùn)算四、除(Division)給定關(guān)係R(X,Y)和S(Y,Z),其中X,Y,Z為屬性組。R中的Y與S中的Y可以有不同的屬性名,但必須出自相同的域。R與S的除運(yùn)算得到一個新的關(guān)係P(X),P是R中滿足下列條件的元組在X屬性列上的投影:元組在X上分量值x的象集Yx包含S在Y上投影的集合。記作:

R÷S={tr[X]|tr∈R∧Yx?∏Y(S)}

其中Yx為x在R中的象集,x=tz[X]。除操作是同時(shí)從行和列角度進(jìn)行運(yùn)算。除操作適合於包含“對於所有的/全部的”語句的查詢操作。2.4.2專門的關(guān)係運(yùn)算五.關(guān)係代數(shù)操作表達(dá)舉例關(guān)係代數(shù)中,關(guān)係代數(shù)運(yùn)算經(jīng)有限次複合後形成的式子稱為關(guān)係代數(shù)運(yùn)算式。對關(guān)係資料庫中數(shù)據(jù)的查詢可以寫成一個關(guān)係代數(shù)運(yùn)算式?;蛘哒f你寫成一個關(guān)係代數(shù)運(yùn)算式就表示你已經(jīng)完成了該查詢操作。以下是表達(dá)舉例:設(shè)教學(xué)資料庫中有三個關(guān)係,學(xué)生關(guān)係:S(SNO,SN,AGE,SEX)、學(xué)習(xí)關(guān)係:SC(SNO,CNO,GRADE)、課程關(guān)係:C(CNO,CN,TEACHER)2.4.2專門的關(guān)係運(yùn)算(1)檢索學(xué)習(xí)課程號為C3的學(xué)生學(xué)號和成績

∏SNO,GRADE(σCNO=’C3’(S∞SC)(2)檢索學(xué)習(xí)課程號為C4的學(xué)生學(xué)號和姓名

∏SNO,SN(σCNO=’C4’(S∞SC)(3)檢索學(xué)習(xí)課程名為MATHS的學(xué)生學(xué)號和姓名

∏SNO,SN(σCN=’MATHS’(S∞SC∞C)(4)檢索學(xué)習(xí)課程號為C1或C3的學(xué)生學(xué)號

∏SNO(σCNO=’C1’V’CNO=’C3’(SC)(5)檢索不學(xué)習(xí)課程號為C2的學(xué)生的姓名和年齡

∏SN,AGE(S)-∏SN,AGE(σCNO=’C2’(S∞SC)2.4.2專門的關(guān)係運(yùn)算

(6)檢索學(xué)習(xí)全部課程的學(xué)生姓名

∏SN(S∞(∏SNO,CNO(SC)÷∏CNO(C))(7)檢索所學(xué)課程包括200401所學(xué)課程的學(xué)生學(xué)號

∏SNO,CNO(SC)÷∏CNO(σSNO=’200401’(SC)2.5關(guān)係演算

關(guān)係演算是以數(shù)理邏輯中的謂詞演算為基礎(chǔ)的。按謂詞變元的不同,關(guān)係演算可分為元組關(guān)係演算和域關(guān)係演算。本節(jié)我們通過兩個實(shí)際的關(guān)係演算語言來介紹關(guān)係演算的操作思想。2.5.1元組關(guān)係演算語言ALPHA

元組關(guān)係演算是以元組變數(shù)作為謂詞變元的基本關(guān)係演算表達(dá)形式。

ALPHA語言主要有GET、PUT、HOLD、UPDATE、DELETE、DROP六條語句,語句的基本格式是:操作語句工作空間名(運(yùn)算式):操作條件其中運(yùn)算式用於指定語句的操作對象,它可以是關(guān)係名或?qū)傩悦?,一條語句可以同時(shí)操作多個關(guān)係或多個屬性。操作條件是一個邏輯運(yùn)算式,用於將操作對象限定在滿足條件的元組中,操作條件可以為空。除此之外,還可以在基本格式的基礎(chǔ)上加上排序要求,定額要求等

2.5.1元組關(guān)係演算語言ALPHA一、檢索操作檢索操作用GET語句實(shí)現(xiàn)。(1)簡單檢索(即不帶條件的檢索)

[例1]

查詢所有被選修課程的課程號碼

GETW(SC.CNO)[例2]查詢所有學(xué)生的資訊

GETW(Student)2.5.1元組關(guān)係演算語言ALPHA(2)限定的檢索(即帶條件的檢索)由冒號後面的邏輯運(yùn)算式給出查詢條件。

[例3]查詢電腦系(CS)中年齡小於22歲的學(xué)生的學(xué)號和姓名

GETW(Student.SNO,Student.SN):Student.DEPT=’CS’∧Student.AGE<22(3)帶排序的檢索

[例4]查詢資訊系(IS)學(xué)生的學(xué)號、年齡,並按年齡降序排序

GETW(Student.SNO,Student.AGE):Student.DEPT='IS'DOWNStudent.AGEDOWN代表降序排序,後面緊跟排序的屬性名。當(dāng)昇冪排列時(shí)使用UP。2.5.1元組關(guān)係演算語言ALPHA(4)帶定額的檢索

[例5]

取出一個資訊系學(xué)生的姓名

GETW(1)(Student.SN):Student.DEPT='IS'

所謂帶定額的檢索是指規(guī)定了檢索出的元組的個數(shù),方法是在W後的括弧中加上定額數(shù)量。排序和定額可以一起使用。[例6]查詢資訊系年齡最大的三個學(xué)生的學(xué)號及其年齡,並按年齡降序排列。

GETW(3)(Student.SNO,Student.AGE):Student.DEPT='IS'DOWNStudent.AGE2.5.1元組關(guān)係演算語言ALPHA(5)用元組變數(shù)的檢索因?yàn)樵M變數(shù)是在某一關(guān)係範(fàn)圍內(nèi)變化的,所以元組變數(shù)又稱為範(fàn)圍變數(shù)(RangeVariable)。元組變數(shù)主要有兩方面的用途:

①簡化關(guān)係名。在處理實(shí)際問題時(shí),如果關(guān)係的名字很長,使用起來就會感到不方便,這時(shí)我們可以設(shè)一個較短名字的元組變數(shù)來簡化關(guān)係名。

②操作條件中使用量詞時(shí)必須用元組變數(shù)。元組變數(shù)是動態(tài)或邏輯的概念,一個關(guān)係可以設(shè)多個元組變數(shù),每個元組變數(shù)獨(dú)立地代表該關(guān)係中的任一元組。2.5.1元組關(guān)係演算語言ALPHA(6)用存在量詞的檢索

[例8]查詢選修C2號課程的學(xué)生名字。

RANGESCXGETW(Student.SN):X(X.SNO=Student.SNO∧X.CNO='C2')[例9]查詢選修了直接先行課為C2號課程的課程的學(xué)生學(xué)號。

RANGECourseCXGETW(SC.SNO):CX(CX.CNO=SC.CNO∧CX.CPNO='C2')2.5.1元組關(guān)係演算語言ALPHA(7)帶有多個關(guān)係的運(yùn)算式的檢索上面所舉的各個例子中,雖然查詢時(shí)可能會涉及多個關(guān)係,即公式中可能涉及多個關(guān)係,但查詢結(jié)果都在一個關(guān)係中,即查詢結(jié)果運(yùn)算式中只有一個關(guān)係。實(shí)際上運(yùn)算式中是可以有多個關(guān)係的。

[例11]查詢成績?yōu)?0分以上的學(xué)生名字與課程名字。

RANGESCSCXGETW(Student.SNO,Course.CN):SCX(SCX.SCORE≥90∧SCX.SNO=Student.SNO∧Course.CNO=SCX.CNO)

本查詢所要求的結(jié)果學(xué)生名字和課程名字分別在Student和Course兩個關(guān)係中。2.5.1元組關(guān)係演算語言ALPHA(8)用全稱量詞的檢索

[例12]查詢不選C1號課程的學(xué)生名字。

RANGESCSCXGETW(Student.SN):SCX(SCX.SNO≠Student.SNO∨SCX.CNO≠'C1')

本例實(shí)際上也可以用存在量詞來表示:

RANGESCSCXGETW(Student.SN):?SCX(SCX.SNO=Student.SNO∧SCX.CNO='C1')2.5.1元組關(guān)係演算語言ALPHA(9)用兩種量詞的檢索

[例13]查詢選修了全部課程的學(xué)生姓名。

RANGECourseCXSCSCXGETW(Student.SN):CXSCX(SCX.SNO=Student.SNO∧SCX.CNO=CX.CNO)(10)用蘊(yùn)函(Implication)的檢索

[例14]查詢最少選修了學(xué)號為200402的學(xué)生所選課程的學(xué)生學(xué)號。2.5.1元組關(guān)係演算語言ALPHA

RANGECouseCXSCSCXSCSCYGETW(Student.SNO):CX(SCX(SCX.SNO='200402'∧SCX.CNO=CX.CNO)→SCY(SCY.SNO=Student.SNO∧SCY.CNO=CX.CNO))(11)集函數(shù)用戶在使用查詢語言時(shí),經(jīng)常要作一些簡單的計(jì)算,例如要求符合某一查詢要求的元組數(shù),求某個關(guān)係中所有元組在某屬性上的值的總和或平均值等。為了方便用戶,關(guān)係數(shù)據(jù)語言中建立了有關(guān)這類運(yùn)算的標(biāo)準(zhǔn)函數(shù)庫供用戶選用。這類函數(shù)通常稱為集函數(shù)(Aggregationfunction)或內(nèi)部函數(shù)(Build-infunction)。關(guān)係演算中提供了COUNT,TOTAL,MAX,MIN,AVG等集函數(shù)2.5.1元組關(guān)係演算語言ALPHA二、更新操作

1.修改操作修改操作用UPDATE語句實(shí)現(xiàn)。其步驟是:首先用HOLD語句將要修改的元組從資料庫中讀到工作空間中;然後用宿主語言修改工作空間中元組的屬性;最後用UPDATE語句將修改後的元組送回資料庫中。需要注意的是,單純檢索數(shù)據(jù)使用GET語句即可,但為修改數(shù)據(jù)而讀元組時(shí)必須使用HOLD語句,HOLD語句是帶上併發(fā)控制的GET語句。有關(guān)併發(fā)控制的概念我們將在第5章中詳細(xì)介紹。2.5.1元組關(guān)係演算語言ALPHA

插入操作用PUT語句實(shí)現(xiàn)。其步驟是:首先用宿主語言在工作空間中建立新元組;然後用PUT語句把該元組存入指定的關(guān)係中。3.刪除操作刪除操作用DELETE語句實(shí)現(xiàn)。其步驟為:用HOLD語句把要刪除的元組從資料庫中讀到工作空間中;再用DELETE語句刪除該元組。2.5.2域關(guān)係演算語言QBE*

關(guān)係演算的另一種方式是域關(guān)係演算。域關(guān)係演算以元組變數(shù)的分量即域變數(shù)作為謂詞變元的基本關(guān)係演算表達(dá)形式本節(jié)內(nèi)容為選學(xué)內(nèi)容2.6小結(jié)

關(guān)係資料庫系統(tǒng)是本書的重點(diǎn)。這是因?yàn)殛P(guān)係資料庫系統(tǒng)是目前使用最廣泛的資料庫系統(tǒng)。20世紀(jì)70年代以後開發(fā)的資料庫管理系統(tǒng)產(chǎn)品幾乎都是基於關(guān)係的。更進(jìn)一步,資料庫領(lǐng)域近40年來的研究工作也主要是關(guān)係的。在資料庫發(fā)展的歷史上,最重要的成就是創(chuàng)立了關(guān)係模型,並廣泛應(yīng)用關(guān)係資料庫系統(tǒng)。關(guān)係資料庫系統(tǒng)與非關(guān)係資料庫系統(tǒng)的區(qū)別是,關(guān)係系統(tǒng)只有“表”這一種數(shù)據(jù)結(jié)構(gòu);而非關(guān)係資料庫系統(tǒng)還有其他數(shù)據(jù)結(jié)構(gòu),對這些數(shù)據(jù)結(jié)構(gòu)有其他複雜而不規(guī)則的操作。2.6小結(jié)

本章系統(tǒng)講解了關(guān)係資料庫的重要概念,包括關(guān)係模型的數(shù)據(jù)結(jié)構(gòu)、關(guān)係的完整性以及關(guān)係操作。介紹了用代數(shù)方式來表達(dá)的關(guān)係語言即關(guān)係代數(shù)、基於元組關(guān)係演算的ALPHA語言和基於域關(guān)係演算的QBE。本章抽象的關(guān)係操作表達(dá),為進(jìn)一步學(xué)習(xí)下一章關(guān)係資料庫國際標(biāo)準(zhǔn)語言SQL打好了堅(jiān)實(shí)的基礎(chǔ)。習(xí)題一、單項(xiàng)選擇題1、設(shè)關(guān)係R和S的屬性個數(shù)分別為r和s,則(R×S)操作結(jié)果的屬性個數(shù)為()A.r+sB.

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論