國開數(shù)據(jù)庫應(yīng)用技術(shù)期末復(fù)習(xí)題及參考答案_第1頁
國開數(shù)據(jù)庫應(yīng)用技術(shù)期末復(fù)習(xí)題及參考答案_第2頁
國開數(shù)據(jù)庫應(yīng)用技術(shù)期末復(fù)習(xí)題及參考答案_第3頁
國開數(shù)據(jù)庫應(yīng)用技術(shù)期末復(fù)習(xí)題及參考答案_第4頁
國開數(shù)據(jù)庫應(yīng)用技術(shù)期末復(fù)習(xí)題及參考答案_第5頁
已閱讀5頁,還剩180頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1.1數(shù)據(jù)庫技術(shù)的發(fā)展

數(shù)據(jù)管理的發(fā)展經(jīng)歷了文件管理和數(shù)據(jù)庫管理兩個階段。

設(shè)實(shí)現(xiàn)"學(xué)生基本信息管理"的應(yīng)用系統(tǒng)為A1,實(shí)現(xiàn)"學(xué)生選課信息

管理"的應(yīng)用系統(tǒng)為A2。由于學(xué)生選課管理中要用到F1文件中的一些數(shù)

據(jù),為減少冗余,假設(shè)這個系統(tǒng)使用F1文件中的一些數(shù)據(jù)。如圖1-1所示

為基于文件管理的應(yīng)用系統(tǒng)結(jié)構(gòu)。

應(yīng)用系統(tǒng)A1應(yīng)用系統(tǒng)A2

學(xué)生基本信息學(xué)生選課信息

管理系統(tǒng)管理系統(tǒng)

圖1-1基于文件管理的應(yīng)用系統(tǒng)結(jié)構(gòu)

假設(shè)Fl、F2和F3文件分別包含如下信息:

F1文件:學(xué)號、姓名、性別、出生日期、聯(lián)系電話、所在系、專業(yè)、

班號。

F2文件:課程號、課程名、開課學(xué)期、學(xué)分、課程性質(zhì)。

F3文件:學(xué)號、姓名、所在系、專業(yè)、課程號、課程名、修課類型、

修課學(xué)期、考試成績。

我們將文件中所包含的每一個子項(xiàng)稱為文件結(jié)構(gòu)中的一個"字段〃或

"列〃,將每一行數(shù)據(jù)稱為一個〃記錄〃。

"學(xué)生選課信息管理〃的處理過程大致為:若有學(xué)生選課,則先查F1

文件,判斷有無此學(xué)生;若此學(xué)生在F1文件中,則再訪問F2文件,判斷

其所選的課程是否存在;若一切均符合規(guī)則,就將學(xué)生選課信息寫入F3文

件中。

文件管理數(shù)據(jù)有如下缺點(diǎn)。

1.編寫應(yīng)用程序不方便

2.數(shù)據(jù)冗余不可避免

3.應(yīng)用程序依賴性

4.不支持對文件的并發(fā)訪問

5.數(shù)據(jù)間聯(lián)系弱

6.難以按不同用戶的要求表示數(shù)據(jù)

7.無安全控制功能

如將數(shù)據(jù)庫管理與文件管理在數(shù)據(jù)的局限性方面進(jìn)行比較,數(shù)據(jù)庫管理

具有以下優(yōu)點(diǎn)。

1.相互關(guān)聯(lián)的數(shù)據(jù)集合

2.較少的數(shù)據(jù)冗余

3.程序與數(shù)據(jù)相互獨(dú)立

4.保證數(shù)據(jù)的安全可靠

5.最大限度地保證數(shù)據(jù)的正確性

6.數(shù)據(jù)可以共享并能保證數(shù)據(jù)的一致性

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

數(shù)據(jù)是我們要處理的信息,數(shù)據(jù)模型是數(shù)據(jù)的組織方式。

描述事物的符號記錄稱為數(shù)據(jù),而將一行數(shù)據(jù)稱為一條記錄。數(shù)據(jù)是信

息存在的一種形式,只有通過解釋或處理才能成為有用的信息。

從現(xiàn)實(shí)系統(tǒng)的使用角度來說,數(shù)據(jù)的特征可分為靜態(tài)特征和動態(tài)特征:

1.數(shù)據(jù)的靜態(tài)特征包括數(shù)據(jù)的基本結(jié)構(gòu)、數(shù)據(jù)間的聯(lián)系和對數(shù)據(jù)取值

范圍的約束。

2.數(shù)據(jù)的動態(tài)特征是指對數(shù)據(jù)可以進(jìn)行的操作以及操作規(guī)則,對數(shù)據(jù)

庫數(shù)據(jù)的操作主要有查詢數(shù)據(jù)和更改數(shù)據(jù),更改數(shù)據(jù)一般又包括對數(shù)據(jù)的

插入、刪除和更新。

數(shù)據(jù)的動態(tài)特征(數(shù)據(jù)操作)與數(shù)據(jù)的靜態(tài)特征(數(shù)據(jù)結(jié)構(gòu)、完整性約

束)統(tǒng)稱為數(shù)據(jù)模型三要素。

模型是對事物、對象、過程等客觀系統(tǒng)中感興趣的內(nèi)容的模擬和抽象表

達(dá),是理解系統(tǒng)的思維工具。數(shù)據(jù)模型(datamodel)也是一種模型,它

是對現(xiàn)實(shí)世界數(shù)據(jù)特征的抽象。通俗地講,數(shù)據(jù)模型就是對現(xiàn)實(shí)世界數(shù)據(jù)

的模擬。

數(shù)據(jù)模型一般應(yīng)滿足三個要求:

1.數(shù)據(jù)模型要能夠比較真實(shí)地模擬現(xiàn)實(shí)世界。

2.數(shù)據(jù)模型要容易被人們理解。

3.數(shù)據(jù)模型要能夠很方便地在計(jì)算機(jī)上實(shí)現(xiàn)。

數(shù)據(jù)模型實(shí)際上是模型化數(shù)據(jù)和信息的工具。根據(jù)模型應(yīng)用目的的不

同,可以將模型分為兩大類,它們分別屬于兩個不同的層次。

1.概念層數(shù)據(jù)模型,也稱為概念數(shù)據(jù)模型或概念模型。

2.組織層數(shù)據(jù)模型,也稱為組織模型,它從數(shù)據(jù)的組織方式來描述數(shù)

據(jù)。

1.3概念層數(shù)據(jù)模型

概念層數(shù)據(jù)模型實(shí)際上是現(xiàn)實(shí)世界到機(jī)器世界的一個中間層次。

概念層數(shù)據(jù)模型是指在抽象現(xiàn)實(shí)系統(tǒng)中有應(yīng)用價值的元素及其關(guān)聯(lián)關(guān)

系,反映現(xiàn)實(shí)系統(tǒng)中有應(yīng)用價值的信息結(jié)構(gòu),并且不依賴于數(shù)據(jù)的組織層

結(jié)構(gòu)。

常用的概念層數(shù)據(jù)模型有實(shí)體一聯(lián)系(entity-relationship,E-R)模

型、語義對象模型。

E-R方法使用的工具稱為E-R圖,它所描述的現(xiàn)實(shí)世界的信息結(jié)構(gòu)稱為

企業(yè)模式(enterpriseschema),也把這種描述結(jié)果稱為E-R模型。

1.實(shí)體

實(shí)體是具有公共性質(zhì)且可以相互區(qū)分的現(xiàn)實(shí)世界對象的集合。實(shí)體是具

體的,如職工、學(xué)生、教師、課程。

2.屬性

每個實(shí)體都具有一定的特征或性質(zhì),屬性就是描述實(shí)體或者聯(lián)系的性質(zhì)

或特征的數(shù)據(jù)項(xiàng),一個實(shí)體中的所有實(shí)例都具有相同的性質(zhì),在E-R模型

中,這些性質(zhì)或特征就是屬性。

3.聯(lián)系

實(shí)體內(nèi)部的聯(lián)系通常是指一個實(shí)體內(nèi)屬性之間的聯(lián)系,實(shí)體之間的聯(lián)系

通常是指屬于不同實(shí)體的屬性之間的聯(lián)系。

兩個實(shí)體之間的聯(lián)系通常分為以下三類:

(1)一對一聯(lián)系(1:1)。

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

(3)多對多聯(lián)系(m:n).

圖>5不同類型的聯(lián)系

實(shí)際上,一對一聯(lián)系是一對多聯(lián)系的特例,而一對多聯(lián)系又是多對多聯(lián)

系的特例。

E-R模型不僅能描述兩個實(shí)體之間的聯(lián)系,而且還能描述兩個以上實(shí)體

之間的聯(lián)系。

1.4組織層數(shù)據(jù)模型

組織層數(shù)據(jù)模型是從數(shù)據(jù)組織形式的角度來描述信息,目前,在數(shù)據(jù)庫

技術(shù)的發(fā)展過程中用到的組織層數(shù)據(jù)模型主要有:層次模型(hierarchical

model)、網(wǎng)狀模型(networkmodel)、關(guān)系模型(relationalmodel)、

面向?qū)ο竽P?objectorientedmodel)和對象關(guān)系模型(object

relationalmodel)。

層次模型用樹形結(jié)構(gòu)表示實(shí)體和實(shí)體之間的聯(lián)系。現(xiàn)實(shí)世界中許多實(shí)體

之間的聯(lián)系本身就呈現(xiàn)出一種自然的層次關(guān)系,如行政機(jī)構(gòu)、家族關(guān)系等。

構(gòu)成層次模型的樹由節(jié)點(diǎn)和連線組成,節(jié)點(diǎn)表示實(shí)體,節(jié)點(diǎn)中的項(xiàng)表示

實(shí)體的屬性,連線表示相連的兩個實(shí)體間的聯(lián)系,這種是一對多的聯(lián)系。

在現(xiàn)實(shí)世界中事物之間更多的是非層次的聯(lián)系,用層次模型表達(dá)現(xiàn)實(shí)世

界中存在的聯(lián)系有很多限制。如果去掉層次模型中的兩點(diǎn)限制,即允許一

個以上的節(jié)點(diǎn)無父節(jié)點(diǎn),并且每個節(jié)點(diǎn)可以有多個父節(jié)點(diǎn),便構(gòu)成了網(wǎng)狀

模型。

用圖形結(jié)構(gòu)表示實(shí)體和實(shí)體之間聯(lián)系的數(shù)據(jù)模型稱為網(wǎng)狀模型。

關(guān)系模型是目前最重要的一種數(shù)據(jù)模型,關(guān)系數(shù)據(jù)庫就是采用關(guān)系模型

作為數(shù)據(jù)的組織方式。關(guān)系模型源于數(shù)學(xué),它把數(shù)據(jù)看作二維表中的元素,

而這個二維表在關(guān)系數(shù)據(jù)庫中就稱為關(guān)系。用關(guān)系(表格數(shù)據(jù))表示實(shí)體

和實(shí)體之間的聯(lián)系的模型就稱為關(guān)系模型。

如表1?1和表1-2所示分別為“學(xué)生”關(guān)系模型的數(shù)據(jù)結(jié)構(gòu)和"選課”

關(guān)系模型的數(shù)據(jù)結(jié)構(gòu),其中"學(xué)生"和"選課”間的聯(lián)系是通過“學(xué)號"

列實(shí)現(xiàn)的。

S1-1"學(xué)牛?關(guān)系模型的數(shù)拈結(jié)構(gòu)

學(xué)號姓名年齡性別所在系

202111101李勇21男計(jì)算機(jī)系

202111102劉晨20男計(jì)算機(jī)系

202111103王敏20女計(jì)算機(jī)系

202121101張立20男信息管理系

202121102吳賓19女信息管理系

___________________

a1-2“選課”關(guān)系模型的數(shù)據(jù)結(jié)柩

學(xué)號課程號成績

202111101C0019(

202111101C0028C

202111101C00384

202111101C00562

202111102C00192

202111102C0029c

202111102C00484

202121102C0017(

202121102C004&

202121102C00573

202121102C007?nj]

1.5數(shù)據(jù)庫的三級模式結(jié)構(gòu)

數(shù)據(jù)庫系統(tǒng)內(nèi)部的結(jié)構(gòu)劃分為外模式、模式和內(nèi)模式三個抽象結(jié)構(gòu),同

時在三個模式之間提供二級映像功能。這些結(jié)構(gòu)的劃分反映了看待數(shù)據(jù)庫

的三個角度。圖1-口說明了這三種模式以及模式之間的映像關(guān)系。

用戶A:

用戶級外模式1

面向每類用戶

概念級

模式

面向全體用戶

----------------干----------------模式/內(nèi)模式映像

物理皴

面向存儲

圖1-11數(shù)據(jù)庫系統(tǒng)的三級模式結(jié)構(gòu)

廣義地講:

?外模式:是最接近用戶的,也就是用戶所看到的數(shù)據(jù)視圖。

?模式:是介于內(nèi)模式和外模式之間的中間層次。

?內(nèi)模式:是最接近物理存儲的,也就是數(shù)據(jù)的物理存儲方式。

模式描述的是數(shù)據(jù)的全局邏輯結(jié)構(gòu),外模式描述的是數(shù)據(jù)的局部邏輯結(jié)

構(gòu)。

模式/內(nèi)模式映像定義了數(shù)據(jù)庫的邏輯結(jié)構(gòu)與物理存儲之間的對應(yīng)關(guān)

系,該映像關(guān)系通常被保存在數(shù)據(jù)庫的系統(tǒng)表(由數(shù)據(jù)庫管理系統(tǒng)自幼創(chuàng)

建和維護(hù),用于存放維護(hù)系統(tǒng)正常運(yùn)行的信息)中。

在數(shù)據(jù)庫的三級模式結(jié)構(gòu)中,模式(邏輯模式)是數(shù)據(jù)庫的中心與關(guān)鍵,

它獨(dú)立于數(shù)據(jù)庫的其他模式。設(shè)計(jì)數(shù)據(jù)庫時也是首先設(shè)計(jì)數(shù)據(jù)庫的邏輯模

式。

數(shù)據(jù)庫的內(nèi)模式依賴于數(shù)據(jù)庫的全局邏輯結(jié)構(gòu),但獨(dú)立于數(shù)據(jù)庫的用戶

視圖,也就是外模式,也獨(dú)立于具體的存儲結(jié)構(gòu)。內(nèi)模式將全局邏輯結(jié)構(gòu)

中所定義的數(shù)據(jù)結(jié)構(gòu)及其聯(lián)系按照一定的物理存儲策略進(jìn)行組織,以達(dá)到

較好的時間與空間效率。

數(shù)據(jù)庫的外模式面向具體的應(yīng)用程序,它定義在邏輯模式之上,并獨(dú)立

于存儲模式和存儲設(shè)備。當(dāng)應(yīng)用需求發(fā)生較大變化,相應(yīng)的外模式不能滿

足用戶要求時,就需要調(diào)整外模式定義,以滿足新的要求。

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

從狹義上講,數(shù)據(jù)庫系統(tǒng)主要指數(shù)據(jù)庫和數(shù)據(jù)庫管理系統(tǒng)。從廣義上講,

數(shù)據(jù)庫系統(tǒng)由數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)(及其開發(fā)工具)、應(yīng)用程序和用

戶組成。其中,用戶可分為數(shù)據(jù)庫管理員、開發(fā)人員和最終用戶三類。數(shù)

據(jù)庫系統(tǒng)結(jié)構(gòu)如圖1-12所示。

圖1?12數(shù)據(jù)庫系統(tǒng)結(jié)構(gòu)

數(shù)據(jù)庫管理系統(tǒng)是對數(shù)據(jù)庫進(jìn)行管理的系統(tǒng)軟件,其主要作用是使數(shù)據(jù)

庫成為方便用戶使用的資源,易于為各類用戶共享,并提供數(shù)據(jù)的安全性、

完整性和可靠性保證。數(shù)據(jù)庫的所有操作,數(shù)據(jù)的組織、存儲和訪問都必

須借助DBMS提供的工具或接口完成。

DBMS的功能概括起來如圖1-13所示。

|I~操~作I|

圖1-13DBMS的功能

(1)數(shù)據(jù)定義功能。

(2)數(shù)據(jù)操作功能。

(3)數(shù)據(jù)庫運(yùn)行管理和控制功能

(4)數(shù)據(jù)庫的建立和維護(hù)功能。

2.1關(guān)系模型

數(shù)據(jù)模型由數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)操作和數(shù)據(jù)完整性約束三部分組成,這三部

分也稱為關(guān)系數(shù)據(jù)模型三要素。下面就從這三個方面介紹關(guān)系數(shù)據(jù)模型。

關(guān)系模型源于數(shù)學(xué),它使用二維表來組織數(shù)據(jù),而這個二維表在關(guān)系數(shù)

據(jù)庫中就稱為關(guān)系。關(guān)系數(shù)據(jù)庫可以說是表或者關(guān)系的集合。

表2?1和表2-2分別為"學(xué)生〃關(guān)系和"選課〃關(guān)系示例。

表2-1“學(xué)生”關(guān)系

學(xué)號姓名年齡性別所在系

202111101李勇21男計(jì)悌

202111102劉晨20男計(jì)1系

202111103王敏20女計(jì)1系

202121101張立20里信息管理系

202121102吳賓19女信g管理系

蓑2-2"選課"關(guān)系

學(xué)號課程號成績

202111101C00193

202111101C00283

202111101C00384

202111101C00562

202111102C00192

202111102C00293

202111102C00484

202121102C00173

202121102C00485

202121102C00573

202121102C007NULL

*■———一一一一.一一一一一一一?一一一一…一一一一一.一一一一一一.................................................一一一.一一一一一一一一?一一一一一一一一.一一一.

關(guān)系模型給出了關(guān)系操作的能力。關(guān)系模型的操作包括:

1.傳統(tǒng)的關(guān)系運(yùn)算:并(union)、交(intersection)、差(difference)、

笛卡兒乘積(Cartesianproduct);

2.專門的關(guān)系運(yùn)算:選擇(select)、投影(project)、連接(join)

3.有關(guān)的數(shù)據(jù)操作:查詢(query)、插入(insert)、刪除(delete)

和更改(update)。

關(guān)系模型的數(shù)據(jù)操作主要包括4種:查詢、插入、刪除和更改。

在數(shù)據(jù)庫中數(shù)據(jù)的完整性是指保證數(shù)據(jù)正確性的特征。數(shù)據(jù)完整性由一

組完整性規(guī)則定義,在關(guān)系模型中一般將數(shù)據(jù)完整性分為三類,即實(shí)體完

整性、參照完整性和用戶定義的完整性。

2.2關(guān)系模型的基本術(shù)語

關(guān)系模型源于數(shù)學(xué),它有自己嚴(yán)格的定義和一些固有的術(shù)語。

通俗地講,關(guān)系(relation)就是二維表,二維表的名字就是關(guān)系的名

字,表2-1中的關(guān)系名就是“學(xué)生”。

二維表中的每一列稱為一個屬性(或字段),每個屬性(attribute)都

有一個名字,稱為屬性名。二維表中對應(yīng)某一列的值稱為屬性值;二維表

中列的個數(shù)稱為關(guān)系的元數(shù)。如果一個二維表有n歹!J,則稱其為n元關(guān)系。

如表2-1所示的"學(xué)生〃關(guān)系有學(xué)號、姓名、年齡、性別、所在系5個屬

性,是一個五元關(guān)系。

二維表中屬性的取值范圍稱為值域(domain)。例如,在表2-1中,

"年齡"列的取值為大于0的整數(shù),"性別"列的取值為"男"和"女"

兩個值,這些都是列的值域。

二維表中的一行數(shù)據(jù)稱為一個元組(tuple),即記錄值,表2-1"學(xué)

生〃關(guān)系中的元組有:

(202111101,李勇,21,男,計(jì)算機(jī)系)

(202111102,劉晨,20,男,計(jì)算機(jī)系)

(202111103,王敏,20,女,計(jì)算機(jī)系)

(202121101,張立,20,男,信息管埋系)

(202121102,吳賓,19,女,信息管理系)

元組中的每一個屬性值稱為元組的一個分量(component),n元關(guān)

系的每個元組有n個分量。例如,對于元組(202111101,李勇,21,男,

計(jì)算機(jī)系)有5個分量,對應(yīng)〃學(xué)號〃屬性的分量是"202111101"、對

應(yīng)"姓名〃屬性的分量是"李勇"、對應(yīng)〃年齡"屬性的分量是"21〃、

對應(yīng)"性別"屬性的分量是"男",對應(yīng)"所在系”屬性的分量是"計(jì)算

機(jī)系"。

二維表的結(jié)構(gòu)稱為關(guān)系模式(relationschema),或者說關(guān)系模式就

是二維表的表框架或表頭結(jié)構(gòu)。設(shè)有關(guān)系名為R,屬性分別為Ai,A2,…,

An,則關(guān)系模式可以表示為:

R(A1,A2,…,An)

每個Ai(i=1,…,n)還包括該屬性到值域的映像,即屬性的取值范

圍。例如,如表2-1所示關(guān)系的關(guān)系模式為:

學(xué)生(學(xué)號,姓名,年齡,性別,所在系)

如果將關(guān)系模式埋解為數(shù)據(jù)類型,則關(guān)系就是該數(shù)據(jù)類型的一個具體

值。

如果一個屬性或?qū)傩约闹的軌蛭ㄒ粯?biāo)識一個關(guān)系的元組而又不包含

多余的屬性,則稱該屬性或?qū)傩约癁楹蜻x鍵(candidatekey)。候選鍵又

稱為候選關(guān)鍵字或候選碼。在一個關(guān)系上可以有多個候選鍵。例如,對于

"學(xué)生"關(guān)系,假設(shè)增加了〃身份證號"屬性,則"身份證號”也可以作

為“學(xué)生”關(guān)系的候選鍵。

主鍵(primarykey)也稱為主碼或主關(guān)鍵字,是表中的屬性或?qū)傩越M,

用于確定唯一元組。主鍵可以由一個屬性組成,也可以由多個屬性共同組

成。例如,表2-1的"學(xué)生"關(guān)系中,"學(xué)號"是主鍵,因?yàn)?學(xué)號〃的

一個取值可以確定唯一學(xué)生。而表2-2的〃選課"關(guān)系中,主鍵就由〃學(xué)

號”和〃課程號〃共同組成。因?yàn)橐粋€學(xué)生可以選修多門課程,而且一門

課程也可以有多個學(xué)生選修,因此,只有將〃學(xué)號”和〃課程號”組合起

來才能共同確定一行記錄。我們稱由多個屬性共同組成的主鍵為復(fù)合主鍵。

當(dāng)某個關(guān)系的主健是由多個屬性共同組成時,需要用括號將這些屬性括起

來,表示共同作為主犍。如表2-2所示的“選課"關(guān)系的主鍵是(學(xué)號,

課程號)。

主鍵實(shí)際是從候選鍵中指定的,當(dāng)一個關(guān)系中僅有一個候選鍵時,則主

鍵同候選鍵;當(dāng)一個關(guān)系中有多個候選鍵時,可以指定某個候選鍵作為主

鍵。

包含在任一候選鍵中的屬性稱為主屬性(primaryattribute)。不包含

在任一候選鍵中的屬性稱為非主屬性(nonprimaryattribute)。

關(guān)系中的術(shù)語很多可以與現(xiàn)實(shí)生活中的表格所使用的術(shù)語相對應(yīng),如表

2-3所示。

表2-3術(shù)語對比

關(guān)系術(shù)語一般的表格術(shù)語

關(guān)系名表名

關(guān)系模式表頭(表所含列的描述)

關(guān)系二維表

元組記錄或行

屬性列

分里一條記錄中某個列的值

2.3完整性約束

關(guān)系模型中的數(shù)據(jù)完整性規(guī)則是對關(guān)系的某種約束條件,它的完整性約

束主要包括三大類:實(shí)體完整性、參照完整性和用戶定義的完整性。

實(shí)體完整性是保證關(guān)系中的每個元組都是可識別的和唯一的。實(shí)體完整

性是指關(guān)系數(shù)據(jù)庫中所有的表都必須有主鍵,而且表中不允許存在如下記

錄:

1.無主鍵值的記錄。

2.主鍵值相同的記錄。

參照完整性也稱為引用完整性。參照完整性就是用于描述實(shí)體之間的聯(lián)

系的。

參照完整性用于描述多個實(shí)體或關(guān)系之間的關(guān)聯(lián)關(guān)系。

“外鍵〃

定義:設(shè)F是關(guān)系R的一個或一組屬性,如果F與關(guān)系S的主鍵K相

對應(yīng),則稱F是關(guān)系R的外鍵(foreignKey),并稱關(guān)系R為參照關(guān)系

(referencingrelation),關(guān)系S為被參照關(guān)系(referencedrelation)

或目的關(guān)系(targetrelation)。關(guān)系R和關(guān)系S不一定是不同的關(guān)系。

外鍵并不要求與被參照的主鍵同名。但在實(shí)際應(yīng)用中,為了便于識別,

當(dāng)外鍵與被參照的主腿屬于不同的關(guān)系時,通常是給它們?nèi)∠嗤拿帧?/p>

參照完整性規(guī)則就是定義外鍵與被參照的主鍵之間的引用規(guī)則。

對于外鍵,一般應(yīng)符合如下要求:

1.或者值為空。

2.或者等于其所參照的關(guān)系中的某個元組的主鍵值。

主鍵要求必須是非空且不重復(fù)的,但外鍵無此要求。外鍵可以有重復(fù)值。

用戶定義的完整性也稱為域完整性或語義完整性。用戶定義的完整性就

是針對某一具體應(yīng)用領(lǐng)域定義的數(shù)據(jù)約束條件。用戶定義的完整性主要就

是指明關(guān)系中屬性的取值范圍,也就是屬性的域,這樣可以限制關(guān)系中屬

性的取值類型及取值范圍,防止屬性的值與應(yīng)用語義矛盾。

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

關(guān)系代數(shù)是一種純理論語言,它定義了一些操作,運(yùn)用這些操作可以從

一個或多個關(guān)系中得到另一個關(guān)系,而不改變源關(guān)系。因此,關(guān)系代數(shù)的

操作數(shù)和操作結(jié)果都是關(guān)系,而且一個操作的輸出可以是另一個操作的輸

入。關(guān)系代數(shù)同算術(shù)運(yùn)算一樣,可以出現(xiàn)一個套一個的表達(dá)式。這種性質(zhì)

稱為閉包(closure)。關(guān)系在關(guān)系代數(shù)下是封閉的,正如數(shù)字在算術(shù)操作

下是封閉的一樣。

關(guān)系代數(shù)的運(yùn)算對象是關(guān)系,運(yùn)算結(jié)果也是關(guān)系。與一般的運(yùn)算一樣,

運(yùn)算對象、運(yùn)算符和運(yùn)算結(jié)果是關(guān)系代數(shù)的三大要素。

關(guān)系代數(shù)的運(yùn)算可分為以下兩大類:

1.傳統(tǒng)的集合運(yùn)算。這類運(yùn)算完全把關(guān)系看成是元組的集合。傳統(tǒng)的

集合運(yùn)算包括集合的笛卡兒積、并、交和差運(yùn)算。

2.專門的關(guān)系運(yùn)算。這類運(yùn)算除把關(guān)系看作元組的集合外,還通過運(yùn)

算表達(dá)了查詢的要求。專門的關(guān)系運(yùn)算主要包括選擇、投影和連接。

關(guān)系代數(shù)中的運(yùn)算符可分為4類:傳統(tǒng)的集合運(yùn)算符、專門的關(guān)系運(yùn)算

符、比較運(yùn)算符和邏輯運(yùn)算符。表2-7列出了主要的關(guān)系運(yùn)算符,其中比

較運(yùn)算符和邏輯運(yùn)算符是配合專門的關(guān)系運(yùn)算符來構(gòu)造表達(dá)式的。

^2-7主要關(guān)系運(yùn)苴符

點(diǎn)算付含義

jj

U

n交

傳統(tǒng)的集合運(yùn)算

—差

X笛卡兒積

O選擇

專門的關(guān)系運(yùn)算n投影

X連接

>大于

<小于

=等于

比較運(yùn)算符

豐不等于

<小于或者等于

>大于或者等于

n*

送箱運(yùn)算付A與

V或

傳統(tǒng)的集合運(yùn)算是二目運(yùn)算,設(shè)關(guān)系R和S均是n元關(guān)系,且相應(yīng)的

屬性值取自同一個值域,則可以定義三種運(yùn)算:并運(yùn)算(U)、交運(yùn)算(n)

和差運(yùn)算(-)。笛卡兒積并不要求參與運(yùn)算的兩個關(guān)系的對應(yīng)屬性取自相

同的域。

以圖2-4(a)和2-4(b)所示的兩個關(guān)系為例,說明這三種傳統(tǒng)的集

合運(yùn)算。

顧客號姓名性別年齡顧客號姓名性別年齡

SOI張宏男45S02李麗女34

S02李麗女34S04錢景男50

S03王敏女28S06王平女24

(a)顧客表A(b)顧客表B

圖2-4描述顧客信息的兩個關(guān)系

設(shè)關(guān)系R與關(guān)系S均是n目關(guān)系,關(guān)系R與關(guān)系S的井記為

RUS={t|tGRvtGS}

其結(jié)果仍是n目關(guān)系,由屬于R或?qū)儆赟的元組組成,但不包含重復(fù)

的元組。其示意圖如圖2-5(a)所示。

圖2-5并、交、差運(yùn)算示意圖

圖2-6(a)顯示了圖2-4(a)和圖2-4(b)兩個關(guān)系的并運(yùn)算結(jié)果。

顧客號姓名性別年齡顧客號姓名性別年齡

SOI張宏男45S02李麗女34

S02李麗女34

(b)顧衣表AC顧客表B

S03王敏女28

顧客號性別

S04錢景男50姓名年齡

S06王平女24S01張宏男45____

S03王敏女28

(a)顧客表AU顧客表B

(c)顧客表A-顧在表B

圖2-6集合的并、交、差運(yùn)算示意圖

設(shè)關(guān)系R與關(guān)系S均是n目關(guān)系,則關(guān)系R與關(guān)系S的交記為

Rns={t|teRAtes}

其結(jié)果仍是n目關(guān)系,由屬于R并且也屬于S的元組組成,其示意圖

如圖2-5(b)所示。

圖2-6(b)顯示了圖2-4(a)和2-4(b)兩個關(guān)系的交運(yùn)算結(jié)果。

設(shè)關(guān)系R與關(guān)系S均是n目關(guān)系,則關(guān)系R與關(guān)系S的差記為

R-S={t|tGRAS}

其結(jié)果仍是n目關(guān)系,由屬于R并且不屬于S的元組組成,其示意圖

如圖2-5?所示。

圖2-6(c)顯示了圖2-4(a)和2-4(b)兩個關(guān)系的差運(yùn)算結(jié)果。

笛卡兒積不要求參加運(yùn)算的兩個關(guān)系具有相同的目。

m目的關(guān)系R和n目的關(guān)系S的笛卡兒積是一個(m+n)目的元組的

集合。元組的前m列是關(guān)系R的一個元組,后n列是關(guān)系S的一個元組。

若R有Ki個元組,S有G個元組,則關(guān)系R和關(guān)系S的笛卡兒積有Kix

G個元組,記作

A

RxS={trts|trGRAtseS}

tr7s表示由兩個元組匕和ts前后有序連接而成的一個元組。

任取元組tr和ts,當(dāng)且僅當(dāng)匕屬于R且ts屬于S時,匕和ts的有序連

接即為RxS的一個元組。

實(shí)際操作時,可從R的第一個元組開始,依次與S的每一個元組組合,

然后,對R的下一個元組進(jìn)行同樣的操作,直至R的最后一個元組也進(jìn)行

同樣的操作為止,即可得到RxS的全部元組。

如圖2-7所示為兩個關(guān)系的笛卡兒積操作示意圖。

CDE

rziC1dlel

C202e2

c3d3e3

圖2-7兩個關(guān)系的笛卡兒積操作示意圖

專門的關(guān)系運(yùn)算包括選擇、投影、連接、除等運(yùn)算,其中選擇和投影為

元操作,連接和除為二元操作.我們這里只介紹選擇、投影和連接運(yùn)算C

下面我們以表2-8~表2-10的三個關(guān)系為例,介紹選擇、投影和連接運(yùn)

算的含義。表2-8~表2-10所示的三個關(guān)系的屬性含義如下:

Student:Sno(學(xué)號),Sname(姓名),Ssex(性另U),Sage(年

齡),Sdept(所在系)。

Course:Cno(課程號),Cname(課程名),Credit(學(xué)分),Semester

(開課學(xué)期),Pen。(直接先修課)。

SC:Sn。(學(xué)號),Cn。(課程號),Grade(成績)。

p-"

表2-8Student

SnoSna*eSsexSage<qidept

202111101李勇再21計(jì)算融系

202111102劉晨男20計(jì)算系

202111103王敏女20計(jì)算系

202111104張小紅女19計(jì)幾系

202121101瞇立里20f=l理系

202121102吳賓女19信息管理系

信總管

202121103張海里20理系

表2-9Course

CnoCnaaeCreditSe>ester1,cnO

C001高等數(shù)學(xué)41oi

C002大學(xué)英語31WULL

C003大學(xué)英語32枷2

C004計(jì)算機(jī)文化學(xué)22L

C005Java23zoo4

C006數(shù)據(jù)庫基礎(chǔ)45:oo7

C007數(shù)據(jù)結(jié)構(gòu)44zoo5

表2-10SC

SnoCnoGrade

202111101C00196

202111101C0028D

202111101C00384

202111101C00562

202111102C00192

202111102C0029D

202111102C00484

202121102C00176

202121102C00485

202121102C00573

202121102C007NULL

202121103C00150

202121103C0048D

選擇(selection)運(yùn)算是從指定的關(guān)系中選擇滿足給定條件(用邏輯表

達(dá)式表達(dá))的元組而組成一個新的關(guān)系。選擇運(yùn)算示意圖如圖2-8所示。

圖2-8選擇運(yùn)算示意圖

選擇運(yùn)算表示為

oF(R)={r|reRAF(r)='真')

其中,。是選擇運(yùn)算符,R是關(guān)系名,「是元組,F(xiàn)是邏輯表達(dá)式,取邏

輯"真"值或"假"值。

例1.對照表2-8所示的Student關(guān)系,查詢計(jì)算機(jī)系學(xué)生信息。

關(guān)系代數(shù)表達(dá)式為

osdePt=,計(jì)算機(jī)系,(Student)

結(jié)果如表2-11所示。

表2-11例1的選擇結(jié)果

SnoSna>eSsexSageSdept

202111101李勇男21計(jì)算機(jī)系

202111102劉晨男20計(jì)算機(jī)系

202111103王敏女20計(jì)算機(jī)系

202111104張小紅女19計(jì)算機(jī)系

投影(projection)運(yùn)算是從關(guān)系R中選擇若干屬性,并用這些屬性組

成一個新的關(guān)系。如圖2-9顯示了投影運(yùn)算示意圖。

投影運(yùn)算表示為

DA(R)={r.A|rGR)

其中,n是投影運(yùn)算符,R是關(guān)系名,A是被投影的屬性或?qū)傩越M。r.A

表示r元組中相應(yīng)于屬性(集)A的分量,也可以表示為r[A]o

投影運(yùn)算一般由兩個步驟完成:

(1)選擇指定的屬性,形成一個可能含有重復(fù)數(shù)據(jù)行的新關(guān)系;

(2)刪除重復(fù)行,形成結(jié)果關(guān)系。

例2.對表2-8所示的Student關(guān)系,在Sname和Sdept兩個列上進(jìn)行

投影運(yùn)算,可以表示為

Dsname,sdept(Student)

結(jié)果如表272所示。

表2-12例2的投影結(jié)果

Sna>eSdept

李勇計(jì)算機(jī)系

劉晨計(jì)算機(jī)系

王敏計(jì)算機(jī)系

張小紅計(jì)算機(jī)系

張立信息管理系

吳賓信息管理系

張海信息管理系

連接(join)運(yùn)算用來連接相互之間有聯(lián)系的兩個關(guān)系,從而產(chǎn)生一個

新的關(guān)系。這個過程由連接屬性(字段)來實(shí)現(xiàn)。一般情況下連接屬性是

出現(xiàn)在不同關(guān)系中的音義相同的屬性。

常用的連接運(yùn)算有:6連接、等值連接(9連接的特例)、自然連接和外

連接,其中最重要也是最常用的是等值連接和自然連接。

e連接運(yùn)算一般表示為

RXS={tAJr^RAf^SAtJA]Ht,[R]}

A?B

其中A和B分別是關(guān)系R和S上語義相同的屬性或?qū)傩越M總是比較運(yùn)

算符。連接運(yùn)算從R和S的笛卡兒積RxS中選擇(R關(guān)系)在A屬性組上

的值與(s關(guān)系)在B屬性組上值滿足比較運(yùn)算符e的元組。

當(dāng)0為"二〃時的連接為等值連接,它是從關(guān)系R與關(guān)系S的笛卡兒積

中選取A、B屬性組值相等的那些元組,即

RXS={trWtreRAtseSAtr[A]=t,[B]}

A=B

自然連接是一種特殊的等值連接,它要求兩個關(guān)系中進(jìn)行比較的分量必

須是相同的屬性或?qū)傩越M,并且在連接結(jié)果中去掉重復(fù)的屬性列,使公共

屬性列只保留一個。即若關(guān)系R和s具有相同的屬性組A,則自然連接可

記作:

E*S={—心1<八/£$/\、網(wǎng)=0四}

一般的連接運(yùn)算是從行的角度進(jìn)行運(yùn)算,但自然連接還需要去掉重復(fù)的

列,所以是同時從行和列的角度進(jìn)行運(yùn)算。

自然連接與等值連接的差別為:

(1)自然連接要求相等的分量必須有相同的屬性名,等值連接則不要

求;

(2)自然連接要求把結(jié)果中重復(fù)的屬性去掉,等值連接卻不這樣做。

2.5關(guān)系規(guī)范化理論

函數(shù)對我們來說已經(jīng)是非常熟悉的概念,對公式:

Y=f(X)

自然也不會陌生,但是大家熟悉的是X和Y之間數(shù)量上的對應(yīng)關(guān)系,也

就是給定一個X值,都會有一個Y值和它對應(yīng),也可以說,X函數(shù)決定Y,

或Y函數(shù)依賴于X。在數(shù)據(jù)庫中,函數(shù)依賴注重的是語義上的關(guān)系,例如:

省二f(城市)

只要給定一個具體的城市值,就會有唯一省值和它對應(yīng),如"武漢市〃

在〃湖北省",這里〃城市"是自變量X,〃省〃是因變量或函數(shù)值Y。并

且把X函數(shù)決定Y,或Y函數(shù)依賴于X表示為

X-Y

由以上說明可以寫出較直觀的函數(shù)依賴定義:

設(shè)有關(guān)系模式R(A1,A2,…,An),X和Y為{A1,A2,…,An}的子集,如果對于

R中的任意一個X值,都只有一個Y值與之對應(yīng),則稱X函數(shù)決定Y,或Y

函數(shù)依賴于X。

下面給出我們用到的一些術(shù)語和符號。設(shè)有關(guān)系模式R(AI,A2,…,An),X

和Y均為{ALA2........An}的子集

(1)如果X-Y,但Y不包含于X,則稱X-Y是非平凡的函數(shù)依賴。

如不作特別說明,我們總是討論非平凡函數(shù)依賴。

(2)如果X-Y,則稱X為決定因子。

(3)如果X-Y,并且對于X的任意一個真子集X'都有X''Y,則

稱Y完全函數(shù)依賴于X,記作X-Y;如果X'-Y成立,則稱Y部分函

數(shù)依賴于X,記作X-Y。

(4)如果X-Y、Y-Z,則稱Z傳遞函數(shù)依賴于X。

討論屬性之間的函數(shù)依賴有什么必要呢?讓我們通過例子看一下。

設(shè)有描述學(xué)生選課及住宿情況的關(guān)系模式:

S-L-C(Sno,Sdept,Sloe,Cno,Grade)

其中,各屬性的含義分別為:學(xué)號、學(xué)生所在系、學(xué)生所住宿舍樓號、

課程號和考試成績。假設(shè)一個系的學(xué)生都住在一個宿舍樓里。該關(guān)系模式

的主鍵為(Sno,Cno)0

看一下這個關(guān)系模式存在什么問題?假設(shè)該表有如表2-17所示的數(shù)

據(jù)。

表277S-LY的數(shù)據(jù)示例

SnoSdeptSloeCnoGrade

202111101計(jì)算機(jī)系2公寓C00196

202111101計(jì)算機(jī)系2公寓C00280

202111101計(jì)算機(jī)系2公寓C00384

202111101計(jì)算機(jī)系2公寓C00562

202111102計(jì)算機(jī)系2公寓C00192

202111102計(jì)算機(jī)系2公寓C00290

202111102計(jì)算機(jī)系2公寓C00484

202121102信息管理系1公寓C00176

202121102信息管理系1公寓C00485

202121102信息管理系1公寓C00573

202121102信息管理系1公寓C007NULL

202121103信息管理系1公寓C00150

202121103信息管理系1公寓C00480

202131103通信工程系1公寓C00478

202131103通信工程系1公寓C00565

202131103通信工程系1公寓C007NULL

從這個表中我們可以看到如下問題:

(1)數(shù)據(jù)冗余。

(2)數(shù)據(jù)更新。

(3)數(shù)據(jù)插入。

(4)數(shù)據(jù)刪除。

類似的各種問題我們統(tǒng)稱為操作異常。

解決上述各種問題的方法就是進(jìn)行模式分解,即把一個關(guān)系模式分解成

兩個或多個關(guān)系模式,在分解的過程中消除那些"不良〃的函數(shù)依賴,從

而獲得好的關(guān)系模式。

關(guān)系數(shù)據(jù)庫中的關(guān)系要滿足一定的要求,滿足不同程度要求的為不同的

范式。滿足最低要求的為第一范式,簡稱INF(FirstNormalForm)。在

第一范式中進(jìn)一步滿足一些要求的為第二范式,簡稱2NF,依此類推,還

有3NF、BCNF、4NF和5NF.

定義:不包含非原子項(xiàng)屬性的關(guān)系是第一范式的關(guān)系。

定義:如果關(guān)系模式RelNF,并且R中的每個非主屬性都完全函數(shù)依

賴于主鍵,則Re2NF0

可以用模式分解的方法將非2NF的關(guān)系模式分解為2NF的關(guān)系模式。

消除部分函數(shù)依賴的分解步驟為:

(1)對于組成主鍵的屬性集合的每一個子集,用它作為主鍵構(gòu)成一個

關(guān)系模式。

(2)對每個關(guān)系模式,將依賴于此主鍵的屬性放置到此關(guān)系模式中。

(3)去掉只由主鍵的子集構(gòu)成的關(guān)系模式。

定義:如果關(guān)系模式R£2NF,并且所有非主屬性都不傳遞函數(shù)依賴于

主鍵,貝URe3NFo

消除傳遞函數(shù)依賴的分解步驟為:

(1)對

溫馨提示

  • 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

提交評論