版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度房地產(chǎn)開發(fā)項(xiàng)目合作國際旅游度假區(qū)合作協(xié)議范本3篇
- 貴州警察學(xué)院《設(shè)計(jì)素描》2023-2024學(xué)年第一學(xué)期期末試卷
- 2023年無機(jī)纖維項(xiàng)目可行性建設(shè)方案
- 2023年記憶綿枕項(xiàng)目可行性建設(shè)方案
- 2024年項(xiàng)目分包勞務(wù)協(xié)議
- 2024版農(nóng)民工勞務(wù)協(xié)議書
- 2025年度WTO電子商務(wù)國際電子商務(wù)市場監(jiān)測與協(xié)調(diào)服務(wù)合同3篇
- 2025年金融保險(xiǎn)VI設(shè)計(jì)服務(wù)協(xié)議2篇
- 2024年簽訂離婚協(xié)議時房產(chǎn)分割及遷出時間規(guī)定與注意事項(xiàng)3篇
- 2024年人體解剖學(xué)題庫
- 北京2025年首都醫(yī)科大學(xué)附屬北京友誼醫(yī)院招聘140人歷年參考題庫(頻考版)含答案解析
- 《工商管理專業(yè)畢業(yè)實(shí)習(xí)》課程教學(xué)大綱
- 國開電大本科《西方經(jīng)濟(jì)學(xué)(本)》網(wǎng)上形考(作業(yè)一至六)試題及答案
- 提高有風(fēng)險(xiǎn)患者預(yù)防跌倒墜床護(hù)理措施落實(shí)率品管圈PDCA案例匯報(bào)
- 應(yīng)急滅火疏散預(yù)案(范本)
- SCA自動涂膠系統(tǒng)培訓(xùn)講義課件
- 施工現(xiàn)場臨時建筑驗(yàn)收表
- 皓月集團(tuán)市場營銷策略研究
- 二次砌筑配管(JDG)技術(shù)交底
- 施工升降機(jī)定期檢驗(yàn)原始記錄
- AI技術(shù)打造智能客服機(jī)器人
評論
0/150
提交評論